我想知道是否有必要解密整个DES加密文件以确定给定密钥是否正确。
如果是这样,是否意味着强力攻击所需的时间取决于文件大小?还有其他选择吗?
此外,这也适用于AES吗?
我在假设更大的文件需要更长的时间来解密/加密的情况下问这个问题。如果我错了,请纠正我。
答案 0 :(得分:1)
通常情况下,一对明文 - 密文对足以发动暴力攻击。如果文件应该有一个文件头,通常可以检索这些对。
答案 1 :(得分:1)
但是所有分组密码一次只能在一个块上运行,您可以在数据开头处拥有特定于应用程序的标头,这些标头可以快速验证(短幻数)并丢弃整个数据,没有解密它,如果他们没有验证(长验证标题适合婴儿床攻击,正如blether指出的那样)。这绝不是与实际加密验证数据相同,这是通过签名完成的, 需要整个数据。
总而言之,长话短说:不要重新发明轮子。使用像PGP这样的货架产品。 "World is full of bad security systems designed by people who read Applied Cryptography."
答案 2 :(得分:1)
您可能想要研究“单一距离”的概念。通常,您只需要对文件进行远程测试,以确保您拥有正确的密钥。 DES有一个64位密钥,8个字节。出于大多数目的,在确定试用密钥是否正确之前,您可能不需要解密超过前两个块(16个字节)。
Rossum的
答案 3 :(得分:1)
通常,当需要检查更多数据时,密码会变得更少安全。
我将举例说明:如果您知道有数千个包含文本的加密块,您可以尝试加密包含字符的已知文本。现在你有数以千计的块来测试,如果匹配,你就找到了密钥。因此,如果存在与文件大小的连接,则它是相反的:如果纯文本上有更多数据,则更容易破坏密钥。当然,它有多大帮助取决于数据和攻击本身,加密模式等等。
许多易受侧信道攻击影响的实现甚至可以获得使用某个(会话)密钥加密/解密块的最大次数。之后,应生成一个新密钥。
要重复其他答案,在许多情况下,单个块足以执行暴力攻击。拥有更多块只能帮助攻击者。