首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >假设的加密技术,安全吗?

假设的加密技术,安全吗?
EN

Cryptography用户
提问于 2015-10-08 14:42:34
回答 4查看 496关注 0票数 2

对我来说,这听起来是个很好的主意,但是对于所有的玫瑰色的想法,它需要在现实中有一些基础。以下是假设系统的步骤(其中突出了假设部分):

用户运行程序加密文件。

提示输入用户密码。

假想部分(是否安全?):

  • 程序存储了一组加密技术(假设这些技术是公开的:它们可以是任何程度的复杂性,但它们是如何加密的)和它们的解密对应项。
  • 密码中的每个符号都选择不同的技术(假设哪个符号选择了已知的技术:它可以更改,但更改是公开的)。
  • 程序通过密码中的每个符号在每个阶段用不同的算法加密文件。
  • 每种加密技术都可以从密码中获取一个或全部值:到当前位置的符号之和(在密码中)、整个密码的和以及位置。它们用于修改内部加密过程(例如,作为模数的一部分所使用的当前位置之和)。这意味着,如果信在错误的地方,它将无法正确解密。

我是否正确地认为:

  • 在这个假想的场景中,更长的密码增加了更多的加密层,从而增加了更多的安全性,从而鼓励了更长的密码(双重积极特性)?
  • 即使使用已知的加密算法,因为密码决定了加密的顺序和层数,攻击者除了获得密码之外,也无法猜测它是如何加密的?
  • 没有一个文件(假设每个密码是不同的)会以相同的方式加密两次吗?
  • 密码是唯一的主要漏洞?

总之,它安全吗?

人们能看到这个想法有什么缺陷吗?

EN

回答 4

Cryptography用户

回答已采纳

发布于 2015-10-08 15:55:32

首先,我想向您介绍这个答案。从那里复制TL;DR:

多个加密解决了一个大部分不存在的问题。

您最好使用一个精心选择的算法。

尽管如此,以下是你的一些问题的答案:

在这个假想的场景中,更长的密码增加了更多的加密层,从而增加了更多的安全性,从而鼓励了更长的密码(双重积极特性)?

通常情况下,更多层等于更好的加密(cf ),这是不正确的。级联密码:第一位的重要性)。特别是,在这些情况下,可以证明它是强大的,甚至一个层,它被假定键是独立的。你的钥匙显然不是独立的。

没有一个文件(假设每个密码是不同的)会以相同的方式加密两次吗?

如果您所说的“相同方式”是指进入相同的密文,那么对于任何安全加密算法(高概率)来说都是如此。如果你指的是同样的级联,那么很可能是这样,如果你有和不同符号一样多的技术。例如,all等都给出了不同的算法。否则,一些不同的密码仍然会导致相同的级联。

密码是唯一的主要漏洞?

不,算法还可以通过实现错误甚至算法中的弱点泄露密码信息。而且你实现的算法越多,其中一个错误发生的几率就越高。作为这种错误的一个例子:

程序通过密码中的每个符号在每个阶段用不同的算法加密文件。

如果没有定时攻击,这可能几乎是不可能实现的,因此,在攻击者能够观察到加密/解密某物所需的时间的任何情况下,即使无法恢复整个密码,他们也可以了解有关密码的信息,缩小蛮力或字典攻击范围。

但是,如果您希望使用多个算法来防止中断,我建议:

  1. 只要用两个就行了。这是足够简单,以限制问题和机会,两者都打破应该是小的,与现代良好审查的算法。
  2. 使用流密码(或在CTR模式下使用块密码)。如果键是独立的,那么它们的级联就像强键一样强大。
  3. 使用使用强密码散列从密码派生的独立密钥。
  4. 添加身份验证。

例如,您可以使用AES-GCM(ChaCha20(m)),并使用氪派生密钥。

票数 8
EN

Cryptography用户

发布于 2016-06-08 22:08:14

我想我能发现一个隐含的假设,即你所做的可能会很容易地把这件事搞砸:

  • 假设:没有一个密码是它自己的相反。
  • 反例:流密码是一种流行的算法,其中加密和解密功能相同:encyrpt(key, encrypt(key, plaintext) = decrypt(key, encrypt(key, plaintext)) = plaintext

因此,为了便于论证,我们假设:

  • 你天真地选择了你计划中的所有密码成为流密码。
  • 您为每个流密码实例使用的密钥由密码中的相应符号确定。

更糟糕的是,流密码是基于带有伪随机密钥流的纯文本的XOR。由于XOR是一种关联和可交换的操作,所以我前面提到的“自取消”属性意味着:

  • 密码"ABAB“(或"ABBA”或其任何排列)“加密”所有明文;
  • 密码"ABBAS“(或其任何排列)等同于"S”。
  • 我们忘记添加您的第三个要求:“每种加密技术都可以从密码:...中获取一个或全部值。”

因此,任何密码都可以重写为等效的密码,其中只包含每个符号的一个实例,每个符号在原始密码中出现奇数次。这意味着这组真正不同的密码将相当于字母的幂集--例如,如果有26个不同的符号,不管你选择的密码有多长,只有2^26种真正不同的选择!

这可能是一个最坏的例子,但我认为这是最容易解释的潜在陷阱之一。从现在开始,事情只会变得更复杂!

票数 2
EN

Cryptography用户

发布于 2016-09-05 14:52:07

@JFlynn --请考虑以下情况:您有3种加密算法的列表。第一个算法--让我们称它为仙境--是一个不可破解的密码,它的密文是高度可识别的--你一眼就能看出密文是用Wonderland生成的,但是你不能告诉任何关于明文的信息。第二个算法=我们称之为LookingGlass -是一个保留明文特征的强密码。也许是某种模拟密码。第三种算法是Vignere密码。

你破坏了Vigenere密码。您知道您已经破坏了它,因为结果的明文看起来像仙境密文的LookingGlass加密。这给了你密码。一旦你知道密码,游戏就结束了。

你真的认为这比仅仅使用不可破解的仙境密码本身更强大吗?我不知道。(因为很明显,事实并非如此。)

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/29700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档