64位RC2的安全性如何?

时间:2010-09-08 16:51:56

标签: security encryption rc2-cipher

在加密中,如果两个对称算法的密钥大小相等,那么它们在安全性方面是否会被认为是相同的? (即64位RC2算法是否提供与64位AES算法相同的安全性?)

使用64位RC2算法有多安全(或不安全)?

我可以期待蛮力攻击破解这种加密需要多长时间?

使用此算法可以保护哪种数据? (例如,我猜测使用此算法加密信用卡信息是不合适的,因为算法不够安全)。

2 个答案:

答案 0 :(得分:12)

通常,由于各种原因,等效密钥大小并不意味着等效的安全性:

首先,只是某些算法具有已知攻击的情况,而其他算法则没有。密钥的大小只是打破密码所需努力的上限;在最坏的情况下,您可以在检查一半关键空间后尝试每个可能的密钥并成功(平均)。这并不意味着这是最好的攻击。这是一个例子:带有128位密钥的AES使用10轮。如果您使用带有128位密钥的AES,但只使用了一个圆,那么即使密钥大小相同,它也很容易破碎。对于许多算法,已知的攻击可以在搜索整个密钥空间时更快地破坏算法。

在分组密码的情况下,还有其他考虑因素。这是因为分组密码以比特块的形式处理数据。在您开始加密大量数据后,有各种组合属性可以发挥作用。例如,使用常见的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,仅仅因为在现代公共密码学研究运作的相对学术性的出版或灭亡模型中,有收益减少;如果你正在寻求任期(或希望增加你的声誉以获得更多的咨询工作),那么在攻击AES方面发表甚至非常微小的改进比完全拆除RC2要好得多,因为没有人再使用它了。 / p>

使用64位密钥,你已经立即将自己限制在上限,并且2 ^ 64的努力确实非常低;可能触及的不仅仅是情报机构,还有合理规模的公司(或僵尸网络牧民)。

最后,我要指出RC2被设计为在286/386时代处理器上快速运行。在现代机器上,它比过去10年设计的AES或类似密码慢大约(大约4-6倍)。

我真的看不到将RC2用于任何东西的任何好处,我能想象的唯一用途是与一些古老的(计算机时间)系统兼容。如果必须,请使用AES(或其他4位AES入围者之一)。

答案 1 :(得分:2)

以下是我在页面http://en.wikipedia.org/wiki/Block_cipher_security_summary上可以找到的关于“攻击n轮攻击”的表达的个人解释。但要注意:我实际上是将这个作为答案发布,以便人们可以告诉我我是不是错了。没有人向我解释过这个问题,而且我不是专家,这只是我能想到的唯一有道理的解释。

密码学家认为任何需要少于强力操作的算法都是成功的攻击。当一个密码据说攻击“n个p轮次”时,我想这意味着如果密码被定义为基本函数的n轮,它实际上被定义为p轮,就会有攻击为了它。也许算法实际上保持工作超过n轮,但它比蛮力更昂贵的截止点是n。换句话说,对于打破的算法来说,这是一个非常精细的区别,它告诉我们我们有多接近抽象地理解它实现的数学函数。这解释了看似任意的数字,而不是在使用这个表达式时作为“n”的值出现。

重申一下,对p轮中的n个进行攻击的密码是一个没有被破坏的密码。

此外,由于在128位密钥的2 100 操作中具有攻击,因此“破坏”的算法仍然有用。在这种情况下担心的是,进一步的数学发现可以继续吃掉破解它所需的操作次数。但2 100 与2 128 一样不切实际。