基于ARX结构和反馈机制的序列密码算法Phelix
基于ARX结构的序列密码算法Phelix
Phelix算法简介
Phelix是一种高速、非专利、面向硬件的流密码,由Doug Whiting、Bruce Schneier、Stefan Lucks和Frédéric Muller设计。它于2004年被提交到eSTREAM项目(欧洲用于软件和硬件的序列密码计划),旨在为需要高性能加密的应用提供一个优秀的候选方案。Phelix的核心设计理念是速度和简洁性,特别优化了在现代32位或更高位处理器上的性能。它巧妙地将加法、异或和循环移位操作结合起来,以实现每个时钟周期的高吞吐量。Phelix算法借鉴了分组密码的设计结构,采用了分组密码中轮函数迭代的结构。并通过交叉使用逐位异或、模232加和循环移位三种运算,使得输出的乱数序列和输入的密钥之间的关系足够复杂,且其乱数序列的产生是通过算法的轮函数实现的。为了进一步加强系统的安全性,Phelix还把256比特的密钥注入系统参与轮变换,在流密钥输出前还和先前的状态进行结合,使得有更多的状态可以影响当前的输出。Phelix通过大量的内部状态以及密钥和状态的不间断混合(传统的序列密码仅在初始化阶段应用密钥)来保证系统的高度安全性,这种设计方法对于序列密码的研究很有借鉴意义。Phelix的设计结构采用了分组密码的轮函数迭代结构,但是轮函数中没有类似于分组密码S盒操作,使得Phelix的随机性能不是很好。
Phelix算法参数