论文部分内容阅读
计算机和通信技术的快速发展,促使了分组密码设计和分析技术的深入研究和广泛使用。目前,分组密码的研究成果有很多,其中最具有代表性的当推被选作高级加密标准AES的Rijndeal算法。自从高级加密标准AES取代了数据加密标准DES成为新一代的加密标准以来,Rijndael算法一直倍受国内外学者的关注。本文针对Rijndael算法的实现和安全性进行研究,主要分为以下三部分内容:首先,对Rijndael算法的设计进行研究,提出了基于32位处理器的软件实现方案。该实现方案根据轮函数的特点,对轮函数的三个变换进行合并,得到4个256×256的表,而轮函数就可以用查表的方法来实现。由于轮函数是Rijndael算法的核心,因此,整个算法的实现可以转换为查表、移位、异或这三个操作来完成。此外,在实现时展开了所有可以预计算的操作和全部轮函数,以达到快速实现的目的。经测试,本文的算法在P4 3.0G的计算机上的平均速度可达906.9Mbps。第二,在研究Rijndael算法的S盒之后,发现其具有迭代循环周期短的缺点。而任何明文或明文差分在经过16轮线性扩散层变换之后会重现,所以,线性扩散层并不能很好地掩盖S盒迭代循环周期短的缺点,这有可能成为AES的致命弱点。本文根据这一发现,针对S盒的迭代循环周期与仿射变换的关系进行了进一步的研究,并发现了可以产生迭代循环周期为256的S盒(u,v)对共有100个,通过分析比较由(241,21)产生的S盒与原S盒密码特性后,发现前者比后者具有更好的安全性。本文建议在设计S盒时,设计者应该把S盒的迭代循环周期作为一条设计准则加以考虑。最后,研究了目前针对Rijndael简化算法最有效的攻击方法——Square攻击,给出了4到5轮的软件实现方案。并对5轮Square攻击的实现采用分布式的思想进行了优化,大大缩短了密码恢复的时间,在4台Intel P4 3.0G的计算机上运行只需要2.5天就恢复出一个正确密钥,一台Intel P4 3.0G的计算机上却耗费10天才能恢复密钥。可以看出,对5轮以上的Square攻击采用分布式的方法,同样可以缩短恢复密钥的时间。