浅析RC5、CAST、Blowfish加密算法比较

2018 年 9 月 25 日 0 条评论 1.82k 次阅读 0 人点赞

RC5加密算法
RC5密码是一种非常快速且简单的算法,由块尺寸、轮数和密钥长度参数化。这些参数能被调整以满足不同的安全目的、性能和出口能力。RC5加密算法有以下四种形式,第一种是原始的RC5块加密,RC5密码使用固定的输入长度,使用一个依赖密钥的转换产生一个固定长度的输出块。第二种是RC5-CBC,是RC5的块密码链接模式。它能处理长度是RC5块尺寸倍数的消息。第三种是RC5-CBC-Pad,处理任意长度的明文,尽管密文将比明文长但长度至多长一个RC5块。RC5-CTS密码是RC5算法的密文挪用模式,处理任意长度的明文且密文的长度匹配明文的长度。

CAST加密算法族
CAST属于称为Feistel结构的加密算法,对于微分密码分析、线性密码分析、密码相关分析具有较好的抵抗力,并符合严格雪崩标准和位独立标准,没有互补属性,也不存在软弱或者半软弱的密钥。因此,对于要求密码强壮、加密算法容易获取的Internet而言,CAST-128是一种能够满足一般应用的很好的选择。

尽管CAST-128支持上述12种长度的密码,但在典型的应用中发现40、64、80和128位是最有用的密码长度。因此,只要支持这四种长度的子集对于大多数应用就足够了。为了避免在使用不同的密码长度操作时发生混淆,CAST-128被认为与名CAST5是同义的,这样在后面加上密码长度就不会发生歧义了。这样,比方说使用40位密码的CAST-128就被表示为CAST5-40;如果明确地使用128位密码,应该使用名称CAST5-128。在密钥的选择上,CAST不像DES那样,在CAST中,没有弱密钥,也没有半弱密钥,CAST的密钥不存在定点,也没有相等的密钥。CAST算法具有相当高的安全性。

Blowfish加密算法
Blowfish加密算法是一种常用的强对称加密算法,由于它的高效、容易实现等优良性能,正越来越多地运用于电子商务、军事、安全通信等诸多领域,逐步取代了DES的地位。16轮Blowfish加密算法可以抗差分攻击。BLOWFISH-64是可变长密钥64位块加密系统。算法可分为两部分(密钥扩展部分和数据加/解密部分):密钥扩展部分把密钥(至多448位)转换为一些字密钥序列(共4168位)。数据加(解)密部分包括16轮位操作,每一轮由密钥变换和数据变换组成。所有的操作都为32位与运算。每轮唯一的附加操作是四次数据查询。

总结:
在DES算法逐渐不能适应数据安全的要求的形势下,三种新型的同样基于feistel结构的加密算法被提出来,在加密强度上大大超越了DES。CAST的使用高度非线性S置换箱的子密钥生成结构使得子密钥对于已知的密码分析攻击有很强的抗击力。Blowfish使用加密算法本身产生子密钥;RC5使用一个伪随机序列和一系列可变长度循环移位和模加法的复杂操作。CAST-128使用专门用于子密钥生成的S置换箱(S4~S7)的结构提供最佳的密码强度。然而,这三种加密方法都优于DES中简单的替代-置换结构。同时这三种加密方法也各有其缺点。CAST中使用了巨大的S盒,对于一些便携设备以及对数据安全要求较高的传感器设备来说都是相当大的;此外,CAST在生成子密钥时很慢,甚至比DES还要慢,可能就不能满足一些实时性要求较高的服务的要求。

RC5、CAST、Blowfish三种加密算法的安全性比较

浅析RC5、CAST、Blowfish加密算法比较

RC5、CAST、Blowfish三种加密算法与DES的性能比较

浅析RC5、CAST、Blowfish加密算法比较