在加密中,如果两个对称算法的密钥大小相等,在安全性方面会被认为是相等的吗?(即64位RC2算法是否提供与64位算法完全相同的安全性?)
使用64位RC2算法会有多安全(或不安全)?
我预计暴力破解这种加密需要多长时间?
使用此算法可以保护哪种类型的数据?(例如,我猜信用卡信息不能用这个算法加密,因为这个算法不够安全)。
发布于 2010-09-09 02:00:58
一般来说,相同的密钥大小并不意味着相同的安全性,原因有很多:
首先,这是一个简单的情况,一些算法有已知的攻击,而其他算法没有。密钥的大小只是破解密码的努力的上限;在最坏的情况下,您总是可以尝试每个可能的密钥,并在检查一半的密钥空间后(平均)成功。这并不意味着这是最好的攻击。下面是一个例子:使用128位密钥的AES使用10轮。如果您使用的AES具有128位密钥,但只有一轮,那么即使密钥大小相同,也很容易破解。对于许多算法,已知的攻击可以通过搜索整个密钥空间来更快地破坏算法。
在块密码的情况下,还有其他的考虑因素。这是因为块密码以位块的形式处理数据。在您开始加密大量数据之后,有各种组合属性开始发挥作用。例如,使用普通的CBC模式,在加密大约2^(n/2)个块之后,您开始遇到问题(这个问题是CBC固有的)。对于像RC2这样的64位密码,这意味着2^32个64位块,或32 GiB,虽然很大,但很容易想象(例如,你用它加密磁盘镜像)。而对于像AES这样的128位密码,这个问题只有在大约2^64个128位块(大约295艾字节)之后才开始出现。在这样的场景中,使用64位密钥的AES实际上比使用64位密钥的RC2更安全。
这里我们得到了答案的认识论部分:即使没有已知的攻击,也不意味着没有可能的攻击。RC2相当古老,很少使用;即使它是一种相当新的密码,对它的分析也比DES要少得多。在过去的5年里,很可能没有人会费心回到过去,看看如何使用最新的攻击技术来破解RC2,这仅仅是因为在现代公共密码学研究运行的相对学术的发布或灭亡模型中,可以获得的收益很少;如果你正在寻求终身教职(或者希望提高你的声誉以获得更多的咨询工作),那么发布即使是非常微不足道的攻击RC2的改进也要比彻底摧毁它要好得多,因为已经没有人再使用它了。
使用64位密钥,您立即将自己限制在该上限,2^64的工作量实际上非常低;可能不仅对于情报机构,甚至对于规模合理的公司(或僵尸网络牧人)来说也是触手可及的。
最后,我要指出的是,RC2被设计为在286/386时代的处理器上是快速的。在现代机器上,它比过去10年设计的AES或类似的密码慢很多(大约4-6倍)。
我真的看不出使用RC2做任何事情有什么好处,我能想象的唯一有意义的用途是与一些古老的(计算机时代的)系统兼容。使用AES (如果需要,也可以使用其他4个最终AES中的一个)。
https://stackoverflow.com/questions/3670058
复制相似问题