我想知道是否有必要解密整个DES加密文件,以确定给定的密钥是否正确。
如果是这样,这是否意味着暴力破解所需的时间取决于文件大小?还有别的选择吗?
另外,这也适用于AES吗?
我是在假设一个更大的文件需要更长的时间来解密/加密的情况下提出这个问题的。如果我错了,请纠正我。
发布于 2012-02-02 04:22:22
一般来说,当有更多的数据需要检查时,密码就会变得不那么安全。
我将给你一个例子:如果你知道你有数千个包含文本的加密块,你可能会尝试加密一段已知的包含字符的文本。现在您有数千个块可供测试,如果其中一个匹配,您就找到了关键。因此,如果与文件大小有关系,那就是相反的关系:如果纯文本上有更多的数据,你的密钥就更容易被泄露。当然,它有多大的帮助取决于数据和攻击本身,以及所使用的加密模式等。
许多易受旁路攻击的实现甚至可以使用某个(会话)密钥对块进行加密/解密的最大次数。在此之后,应该生成一个新密钥。
重复其他答案,在许多情况下,单个块足以对其执行暴力破解攻击。拥有更多的块只会帮助攻击者。
发布于 2012-02-01 15:46:44
通常,一个明文-密文对足以进行暴力破解攻击。这样的对通常可以通过文件头来检索,如果文件应该有一个的话。
发布于 2012-02-01 15:50:05
DES (或者更确切地说是3DES,因为没有人再使用DES了。破解DES需要...笔记本电脑和50分钟),以及AES,都是块密码。它们不验证输入,它们只是应用转换并输出输出。从纯密码的观点来看,无法知道文件是正确的还是错误的。
但是所有的块密码一次只在一个块上操作,你可以在你的数据开始时使用特定于应用程序的报头,这些报头可以被快速验证(短的魔术数字),如果它们没有验证,就丢弃整个数据,不解密(正如blether指出的那样,长的验证报头会导致婴儿床攻击)。这绝不等同于实际的加密验证数据,这是通过签名来完成的,并且确实需要整个数据。
总而言之,长话短说:不要重复发明轮子。使用像PGP这样的现成产品。"World is full of bad security systems designed by people who read Applied Cryptography."
https://stackoverflow.com/questions/9092440
复制相似问题