论文摘要
长期以来,流密码在密码学领域中拥有相当重要的地位。近些年来,在ECRYPT流密码工程的带动下,流密码的设计问题成为密码学界的研究热点。Pomaranch是在ECRYPT流密码工程中提出的一个基于比特、易于硬件实现的同步流密码算法。它通过多次的改进最终发展改进到了第三个版本。Pomaranch算法首次将钟控跳转寄存器应用到流密码的设计中。这丰富了流密码的设计理论,也使得基于钟控跳转寄存器的流密码体制成为重要的研究问题。本文从算法的设计原理,软件实现和安全性分析等三个方面深入研究了Pomaranch Version 3算法。首先,考察了Pomaranch中跳转寄存器所使用的本原多项式,描述了构建跳转寄存器的本原多项式需要满足的必要条件。通过设置不同的参数(回馈抽头),寻找到了符合跳转寄存器要求的新的本原多项式。利用MAPLE编程对新的本原多项式进行了测试,计算得到了较大的跳转指数。其次,对Pomaranch原先的C语言实现代码进行了优化改进,以加快软件实现的速率。1.改进了跳转寄存器的软件实现方式。在预先计算建立的四个表中,通过查找来实现寄存器的跳转与不跳转,即跳转寄存器的当前状态可以通过随机查表得出下一步状态。2.密钥映射的预计算。用一个预先计算的8×512的二维表代替了整个密钥映射的所有运算。最后,本文讨论了钟控跳转寄存器中存在的线性等价偏差问题,从安全性角度研究了Pomaranch三个版本的演化过程,从而深入揭示了该流密码的设计原理。