祖冲之序列密码算法(ZUC算法).docx

祖冲之序列密码算法(ZUC算法).docx

ID:55136042

大小:136.65 KB

页数:25页

时间:2020-04-28

祖冲之序列密码算法(ZUC算法).docx_第1页
祖冲之序列密码算法(ZUC算法).docx_第2页
祖冲之序列密码算法(ZUC算法).docx_第3页
祖冲之序列密码算法(ZUC算法).docx_第4页
祖冲之序列密码算法(ZUC算法).docx_第5页
资源描述:

《祖冲之序列密码算法(ZUC算法).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、GM/T10004.2-2012祖冲之序列密码算法第1部分:算法描述1范围本部分描述了祖冲之序列密码算法,可用于指导祖冲之算法相关产品的研制、检测和使用。2术语和约定以下术语和约定适用于本部分。2.1比特bit二进制字符0和1称之为比特。2.2字节byte由8个比特组成的比特串称之为字节。2.3字word由2个以上(包含2个)比特组成的比特串称之为字。本部分主要使用31比特字和32比特字。2.4字表示wordrepresentation本部分字默认采用十进制表示。当字采用其它进制表示时,总是在字的表示之前或

2、之后添加指示符。例如,前缀0x指示该字采用十六进制表示,后缀下角标2指示该字采用二进制表示。2.5高低位顺序bitordering本部分规定字的最高位总是位于字表示中的最左边,最低位总是位于字表示中的最右边。17GM/T10004.2-20121符号和缩略语3.1运算符+算术加法运算mod整数取余运算⨁按比特位逐位异或运算⊞模232加法运算‖字符串连接符∙H取字的最高16比特∙L取字的最低16比特<<>k32比特字右移k位aàb向量a赋值给向量b,即按分量逐分量赋值3.2符号下列

3、符号适用于本部分: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用于算法初始化的字符串常量3.3缩略语下列缩略语适用于本部分:ZUC祖冲之序列密码算法或祖冲之算法LFSR线性反馈移位寄存器BR比特重组F非线性函数2算法描述4.1算法整体结构祖冲之算法逻辑上分为上中下三层,见图1。上层是16级线性

4、反馈移位寄存器(LFSR);中层是比特重组(BR);下层是非线性函数F。17GM/T10004.2-2012图1祖冲之算法结构图4.1线性反馈移位寄存器LFSR4.2.1概述LFSR包括16个31比特寄存器单元变量s0,s1,…,s15。LFSR的运行模式有2种:初始化模式和工作模式。4.2.2初始化模式在初始化模式下,LFSR接收一个31比特字u。u是由非线性函数F的32比特输出W通过舍弃最低位比特得到,即u=W>>1。在初始化模式下,LFSR计算过程如下:LFSRWithInitialisationMo

5、de(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)。}17GM/T10004.2-20124.2.3工作模式在工作模式下,LFSR不接收任何输入。其计算过程如下:LFSRWithWorkMode(){(1)s16=215s15+217s13+221s10+220s4+(1+28)

6、s0mod(231-1);(2)如果s16=0,则置s16=231-1;(3)(s1,s2,…,s15,s16)®(s0,s1,…,s14,s15)。}4.1比特重组BR比特重组从LFSR的寄存器单元中抽取128比特组成4个32比特字X0、X1、X2、X3。BR的具体计算过程如下:BitReconstruction(){(1)X0=s15H‖s14L;(2)X1=s11L‖s9H;(3)X2=s7L‖s5H;(4)X3=s2L‖s0H。}4.2非线性函数FF包含2个32比特记忆单元变量R1和R2。F的输入为

7、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<

8、<<30)。4.3密钥装入密钥装入过程将128比特的初始密钥k和128比特的初始向量iv扩展为16个31比特字作为LFSR寄存器单元变量s0,s1,…,s15的初始状态。设k和iv分别为k0‖k1‖……‖k15和iv0‖iv1‖……‖iv15,17GM/T10004.2-2012其中ki和ivi均为8比特字节,0≤i≤15。密钥装入过程如下:(1)D为240比特的常量,可按如下方式分成16个15比特的子串:D=d

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。