流密码技术的发展及分类
思考:假设j=n/4,n为分组长度
对于DES,n=64, j=16;对AES,n=128,j=32
CFB模式为(OFB模式为(CTR模式为()流密码?)流密码?)流密码?
自同步、同步、同步基于移位寄存器的流密码算法
rnbn?
rn-1…bn-1…r2b2r1b1?
挪威政府的首席密码学家Ernst Selmer 于1965年提出了移位寄存器理论,它是序列密码中研究随机密钥流的主要数学工具.
移位寄存器是指有n个寄存器(称为n-级移位寄存器)r1,r2,…,rn从右到左排列,每个寄存器中能存放1位二进制数,所有寄存器中的数可以统一向右(或向左)移动1位,称为进动1拍. 即r1的值(b1)右移1位后输出,然后r2的值(b2)送r1, r3的值(b3)送r2,……最后,rn的值(bn)送rn-1.
基于移位寄存器的流密码算法
?
?
反馈移位寄存器(feedback shift register,FSR)是由n位的寄存器和反馈函数(feedback function)组成,如下图所示,n位的寄存器中的初始值称为移位寄存器的初态.
工作原理:移位寄存器中所有位的值右移1位,最右边的一个寄存器移出的值是输出位,最左边一个寄存器的值由反馈函数的输出值填充,此过程称为进动1拍. 反馈函数f是n个变元(b1,b2,…,bn)的布尔函数.移位寄存器根据需要不断地进动m拍,便有m位的输出,形成输出序列a1,a2,…,am.
rnrn-1…r2r1
bnbn-1…b2b1输出位oi
反馈函数f基于移位寄存器的流密码算法
?
?
线性反馈移位寄存器LFSR(linear feedback shift register)的反馈函数为线性函数作为密钥流的序列{ai}的周期一定要大否则密钥流的空间太小,利用穷举搜索可以得到密钥流{ai}
n级LFSR输出的序列的周期r不依赖于寄存器的初始值,而依赖于特征多项式p(x)?