1 / 26
文档名称:

祖冲之序列密码算法(zuc算法).doc

格式:doc   大小:463KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

祖冲之序列密码算法(zuc算法).doc

上传人:相惜 2020/8/17 文件大小:463 KB

下载得到文件列表

祖冲之序列密码算法(zuc算法).doc

文档介绍

文档介绍:.:..祖冲之序列密码算法第1部分:算法描述1范围本部分描述了祖冲之序列密码算法,可用于指导祖冲之算法相关产品的研制、检测和使用。2术语和约定以下术语和约定适用于本部分。。。(包含2个)比特组成的比特串称之为字。本部分主要使用31比特字和32比特字。。当字采用其它进制表示时,总是在字的表示之前或之后添加指示符。例如,前缀0x指示该字采用十六进制表示,后缀下角标2指示该字采用二进制表示。,最低位总是位于字表示中的最右边。+算术加法运算mod整数取余运算⨁按比特位逐位异或运算⊞模232加法运算‖字符串连接符∙H取字的最高16比特∙L取字的最低16比特<<<k32比特字左循环移k位>>k32比特字右移k位aàb向量a赋值给向量b,:s0,s1,s2,…,s15 线性反馈移位寄存器的16个31比特寄存器单元变量 X0,X1,X2,X3 比特重组输出的4个32比特字R1,R2 非线性函数F的2个32比特记忆单元变量 W 非线性函数F输出的32比特字 Z 算法每拍输出的32比特密钥字 k 初始种子密钥 iv 初始向量 D :,见图1。上层是16级线性反馈移位寄存器(LFSR);中层是比特重组(BR);下层是非线性函数F。\*,s1,…,s15。LFSR的运行模式有2种:初始化模式和工作模式。,LFSR接收一个31比特字u。u是由非线性函数F的32比特输出W通过舍弃最低位比特得到,即u=W>>1。在初始化模式下,LFSR计算过程如下:LFSRWithInitialisationMode(u){(1)v=215s15+217s13+221s10+220s4+(1+28)s0mod(231-1);(2)s16=(v+u)mod(231-1);(3)如果s16=0,则置s16=231-1;(4)(s1,s2,…,s15,s16)®(s0,s1,…,s14,s15)。},LFSR不接收任何输入。其计算过程如下:LFSRWithWorkMode(){(1)s16=215s15+217s13+221s10+220s4+(1+28)s0mod(231-1);(2)如果s16=0,则置s16=231-1;(3)(s1,s2,…,s15,s16)®(s0,s1,…,s14,s15)。}、X1、X2、X3。BR的具体计算过程如下:BitReconstruction(){(1)X0=s15H‖s14L;(2)X1=s11L‖s9H;(3)X2=s7L‖s5H;(4)X3=s2L‖s0H。}。F的输入为3个32比特字X0、X1、X2,输出为一个32比特字W。F的计算过程如下:F(X0,X1,X2){(1)W=(X0ÅR1)⊞R2;(2)W1=R1⊞X1;(3)W2=R2ÅX2;(4)R1=S(L1(W1L‖W2H));(5)R2=S(L2(W2L‖W1H))。}其中S为32比特的S盒变换,定义在附录A中给出;L1和L2为32比特线性变换,定义如下:L1(X)=XÅ(X<<<2)Å(X<<<10)Å(X<<<18)Å(X<<<24),L2(X)=XÅ(X<<<8)Å(X<<<14)Å(X<<<22)Å(X<<<30)。,s1,…,s15的初始状态。设k和iv分别为k0‖k1‖……‖k15和iv0‖iv1‖……‖iv15,,0≤i≤15。密钥装入过程如下:(1)D为240比特的常量,可按如下方式分成16个15比特的子串:D=