问题1: 对于256位密钥的两次传递,解决方案空间的大小将与512位密钥相同,因为2 ^(256 + 256)= 2 ^ 512
每个decrypt()的实际运行时间可能会随着密钥大小的增长而非线性增加(这取决于算法),在这种情况下,我认为暴力强制256 + 256将比2 ^ 512运行得更快,但是仍然是不可行的。
问题2: 可能有方法来识别某些密文。如果许多算法留下一些可用于识别的签名或工件,我不会感到惊讶。
通常,如果使用k位AES加密文件,然后使用k位AES加密,则只能获得(k + 1)位安全性,而不是2k位安全性,并且具有中间人攻击。对于大多数类型的加密也是如此,例如DES。 (请注意,由于这个原因,三重DES不仅仅是三轮加密。)
此外,使用方法A加密文件然后使用方法B加密文件甚至不需要像使用方法B加密一样强大! (尽管方法A存在严重缺陷,但很少会出现这种情况。)相比之下,你保证至少与方法A一样强。(任何记住这个定理名称的人都会被鼓励发表评论;我'我忘记了。)
通常,只要选择尽可能强的单一方法,你就会好得多。
对于您的第二个问题:是的,对于大多数方法,攻击者会知道第一层已被泄露。
这里有更多意见......
首先,当计算机强大到足以对AES-256进行暴力攻击时,它也将用于相同的迭代......在该级别上加倍或三倍的时间或努力是微不足道的。
接下来,根据您尝试使用此加密的应用程序,这些注意事项可能无效......您需要携带的“秘密”变得更大(迭代次数和您需要的所有不同密钥,如果事实上它们不同的是,加密和解密的时间也需要增加。
我的预感是迭代加密并没有多大帮助。要么算法强大到足以维持蛮力附着,要么不是。其余的都是保护钥匙。
更实际的是,如果你的前门上有三个相同或类似的锁,你认为你的房子会受到更多的保护吗? (并且包括随身携带的钥匙数量,不要松开那些钥匙,确保窗户和后门也被固定......)