论文部分内容阅读
密码技术用于保护军事和外交通信可以追溯到几千年前。在今天的信息时代,随着通信技术和计算机技术的发展和普遍应用,大量的敏感信息如法庭记录、资金转移、私人财产等常常通过公共通信设施或计算机网络进行交换,而这些信息的秘密性和真实性是人们迫切需要的。当代密码学的应用不再限于军事、政治和外交,其商用价值和社会价值已得到了充分的肯定,密码学的重要性凸现。密码体制按照加密密钥和解密密钥之间的关系可以分为对称密码体制和公钥密码体制。对称密码主要包括分组密码和流密码,具有运行速度快,存储量小,易于软硬件实现等优点。DES(Data Encryption Standard)在1977年被认为分组密码的标准,在之后的十几年,DES是应用最为广泛的分组加密算法,其分组大小和密钥长度分别为64比特和56比特,随着计算能力的大幅提高,DES的安全强度相对变弱。同时,在算法分析方面,差分分析和线性分析方法逐步改进,更使得DES抗攻击性减弱,需要一种新的加密算法来代替。1994年,B.Schneier在剑桥安全研讨会上发表了一种新的分组加密算法—Blowfish,Blowfish是一个64位分组及可变密钥长度的分组密码算法,可变密钥长度可达448位,数据加密由一个简单的函数迭代16轮,所有运算都是32位字的加法和异或,仅有的另一个运算是每轮的4个查表。Serge Vaudenay在文献[7]中给出了Blowfish算法的差分攻击,对于由弱密钥产生的可知F函数,攻击8轮算法只需要223对明文,攻击16轮算法需要3×251对明文;对不可知的F函数,这种攻击能探测出是否使用了弱密钥,但不能确定密钥的值。1996年,C.Adams和S.Tavares给出了CAST算法的一种改进形式—CAST-128,CAST-128也是一种迭代分组密码算法,分组大小为64比特,可变密钥长度为40~1208比特,密钥长度小于80比特时,算法迭代12轮,密钥长度大于80比特时,算法迭代16轮。CAST-128算法能有效的抵抗差分攻击和线性攻击,目前对该算法的差分攻击已达到了8轮[13],线性攻击达到了6轮[14]。2008年4月,Krishnamurthy G.N,Dr.V Ramaswamy等人给出了一种简单但更加强大、更加安全的密码算法,算法不仅安全性强,还大大减少了加解密所需时间,这种新的算法结合了Blowfish和CAST-128两者的优点,命名为Blow-CAST-Fish[1]。参考文献[1]中给出了详细的算法介绍,对Blow-CAST-Fish算法的实现速度进行了测试,并与Blowfish和CAST-128的实现速度进行了比较,文章中还指出,Blow-CAST-Fish算法使用了基于密钥的S-盒、基于轮数的轮函数、基于子密钥的循环移位运算,以上特征给出了强大的抗线性和差分分析的能力。S-盒的未知性和由密钥产生的特性,使得算法分析更加困难,文章中没有介绍对算法的相关分析。本论文给出了Blow-CAST-Fish算法的基于弱密钥的8轮和16轮差分攻击,攻击假定F函数是可知的,8轮攻击利用了多个活性S盒,特征概率为2-61,弱密钥比例为2-15。16轮攻击利用单个活性S盒,特征概率为2-49,弱密钥比例为2-47。当算法所使用的密钥长度大于47比特时,我们能将整个16轮算法破解。论文结构如下:第一章简单介绍了分组密码算法的相关知识,第二章给出了Blow-CAST-Fish算法的详细算法描述,第三章对算法进行了分析,分别给出了8轮和16轮算法攻击。