祖冲之算法密钥生成装置及方法制造方法及图纸

技术编号:7789018 阅读:279 留言:0更新日期:2012-09-21 23:16
本发明专利技术公开了一种ZUC算法密钥生成装置,包括接口模块,从高层协议模块获取初始密钥参数;iv计算模块,根据密钥模式计算加解密初始化向量或完整性校验初始化向量ivi;si计算模块,计算并存储si;s16计算模块,计算s16并发送计算结果到所述si计算模块;X计算模块,计算重组值Xj;W计算模块,计算密钥生产值W和中间变量W1、W2;R计算模块,计算R1、R2;密钥生成模块,在密钥生成阶段从所述X计算单元获取X3,从所述W计算单元获取W,生成密钥KEY_ZUC,本发明专利技术还公开了一种与所述装置相适应的ZUC算法密钥生成方法,为ZUC算法密钥生成提供了具体的实现方案。

【技术实现步骤摘要】

本专利技术涉及到通信系统数据加解密技术,特别涉及到一种祖冲之(简称,ZUC)算法密钥生成装置及方法。
技术介绍
通信系统数据发送方在发送数据之前,需要对待发送的数据进行加密和/或完整性校验操作,而数据接收方在接收到数据后,也需要对接收到的数据进行解密和/或完整性校验操作。通常发送方会通过一定的算法来生 成密钥,利用密钥对数据进行加密和/或完整性校验,接收方则利用相同的算法生成密钥,利用密钥对数据进行解密和/或完整性校验。ZUC算法是中国自主设计的流密码算法,用于生成加解密或完整性校验的密钥。ZUC算法密钥生成的算法分为两个阶段,算法初始化阶段和密钥生成阶段,在算法初始化阶段,不生成密钥,迭代计算密钥生成所需的各参数,直到迭代次数达到预先设置的算法初始化迭代次数N,进入密钥生成阶段,开始生成密钥。所述初始密钥参数包括,32比特的加密计数器(简称,Count)、5比特的无线承载标识(简称,Bearer)、1比特的传输方向(简称,Direction)、15个8比特的密钥计算参数(简称,key) i = 0 15、密钥模式(加解密或完整性校验)。算法初始化阶段的算法为I、生成初始化向量(简称,Ivi)加解密的iVi为iv0 = iv8 = Count [7:0], Iv1 = iv9 = Count [15:8]iv2 = iv10 = Count [23:16],iv3 = ivn = Count [31:24]iv4 = iv12 = Bearer Direction OO2iv5 = iv6 = iv7 = iv13 = iv14 = iv15 = 000000002完整性校验的iViS:iv0 = Count [7:0], Iv1 = iv9 = Count [15:8]iv2 = iv10 = Count [23:16],iv3 = ivn = Count [31:24]iv4 = iv12 = Bearer OOO2, iv5 = iv6 = iv7 = iv13 = iv15 = 000000002/V8 = /V0 十{Direction || 00000002} ,/V14 = /V6 十{Direction || 00000002}其中,i = 0 15 ;Count [m:n]表示Count的第n 第m位;| |为位拼接计算,拼接方法为将I I计算符左边的数据作为拼接后数据的高位,I I计算符右边的数据作为拼接后数据的低位; 为异或操作。2、计算存储移位值(简称,Si)如果是第一次计算Si, Si = Iceyi Idi Ivi其中,Cli为算法固定参数;i = 0 15 ;d。= 1000100110101112,Cl1 = 0 1 00110 1 01111002,d2 = 1100010011010112,d3 = 0010011010111102,d4 = 1010111100010012,d5 = 0110101111000102,d6 = 1110001001101012,d7 = 0001001101011112, d8 = 1001101011110002, d9 = 0101111000100112,d10 = 1101011110001002, dn = 0011010111100012,d12 = 1011110001001102, d13 = 0111100010011012,d14 = 1111000100110102, d15 = 1000111101011002。如果不是第一次计算Si, Si = Si+1 ;3、计算重组值(简称,Xj)X0 — S15hI I S141J X1 — S11lI I SgH, X2 — S7lI I S5H,X3 — S2lI I Soh (式 I)其中,j=0 3 AiHSsiDO: 15] ^为 Si[15:0];4、计算密钥生产值(简称,W)W= ( X0 Ri) +R2; W1 = R^X1 ;W2= R2 X2;(式 2)R1=Serch ((W1L||W2H) ((W1L||W2H) <2) ((W1L||W2H) <10) ((W1L||W2H) <18) ((W1L||W2H) <<<24))(式 3)R2=Serch ((W2L||W1H) ((W2L||W1H) <8) ((W2L||W1H) <14) ((W2L||W1H) <22) ((W2l||Wih) <30))(式 4)W计算过程中,首先利用随机变换值(R1和R2)的初始值(均为0)计算W和中间变量(W1和W2),根据WpW2计算出新的R1和R2,并将计算出的新的R1和R2替换原来的R1和R2作为下一次计算W、W1, W2时的Rl和R2 ;其中,^表示1[31:16] ;^表示1[15:0] ;SerchO为查表操作,即,根据0内的数值从预先设定的R参数表中查找出SerchO的值;<<< n为向左循环移位n比特操作,n表示移位的位数。5、计算存储移位值16 (简称,S16) s16 = ((W > > I) + (215s15+217s13+221s10+220s4+ (1+28) s0) mod (231-1)) mod (231-1)其中,mod为取模操作;>> n为向右移位n比特操作,n表示移位的位数;6、判断步骤2 5的执行次数是否达到预先设置的算法初始化迭代次数N ;,如果是,进入密钥生成阶段,否则,返回步骤2执行。密钥生成阶段算法为I、用si+1替换Si ;得到新的Si ;2、计算 W利用新的Si根据式I 式4计算得到W ;3、计算 S16s16 = (215s15+217s13+221s10+220s4+ (1+28) s0) mod (231-1)4、计算密钥KEY-ZUC= X3 W其中,KEY_ZUC为32比特的密钥;迭代执行密钥生成阶段可以连续生成多个KEY_ZUC。现有技术中还没有用于实现ZUC算法密钥生成的技术方案。
技术实现思路
有鉴于此,本专利技术提出了一种ZUC算法密钥生成装置及方法以实现ZUC算法密钥的生成。本专利技术的技术方案包括一种ZUC算法密钥生成装置,包括接口模块,从高层协议模块获取初始密钥参数; iv计算模块,从接口模块获取Count、Bearer、Direction参数,根据密钥模式计算加解密初始化向量或完整性校验初始化向量;Si计算模块,包括I个存储单元,存储单元i用于存储Si ;如果是第一次计算Si,从接口模块获取Iceyi参数,从iv计算模块获取Wi,Si = Iceyi (Ii | Ivi ;否则,Si = si+1 ;其中,I = 16 ;i = 0 15 ;S16计算模块,计算S16并发送计算结果到所述Si计算模块的存储单元16中保存;在算法初始化阶段,s16 = ((W > > I) + ((215s15+217s13+221s10+220s4+(1+28) s0) mod (231_1))) mod (231_1)本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种祖冲之ZUC算法密钥生成装置,其特征在于,包括 接ロ模块,从高层协议模块获取初始密钥參数; IV计算模块,从接ロ模块获取加密计数器Count、无线承载标识Bearer、传输方向Direction、密钥模式參数,根据密钥模式计算加解密初始化向量或完整性校验初始化向量IVi ; Si计算模块,包括I个存储単元,存储单元i用于存储存储移位值Si ; 如果是第一次计算Si,从接ロ模块获取密钥计算參数keyi;从iV计算模块获取ivp Si=Iieyi I dj Ivi ;否则,Si = si+1 ;其中,I = 16 ;i = O 15 为算法固定參数; S16计算模块,计算S16并发送计算结果到所述Si计算模块的存储单元16中保存; X计算模块,从Si存储模块获得数据,计算重组值Xパj = O 3 ; W计算模块,从X计算模块和R计算模块获得数据,计算密钥生产值W和中间变量W1.W2; 其中,随机变换值も、R2的初始值为O ; R计算模块,从所述W计算模块获取H计算も、R2 ; 密钥生成模块,在密钥生成阶段从所述X计算单元获取X3,从所述W计算单元获取W,生成密钥 KEY_ZUC,KEY-ZUC= X3 @W; 其中,I I为比特拼接操作,@为异或操作。2.根据权利要求I所述的装置,其特征在于,所述iv计算模块包括 选择单元,从接ロ模块接收Count、Bearer、Direction參数,根据密钥模式选择加解密IV计算单元或完整性校验iv计算单元计算对应的iVi ; 加解密iv计算单元,包括,15个加解密存储单元,加解密存储单元i存储对应的ivi; i=O 15 ;通过选择单元与接ロ模块连接,从接ロ模块接收Count、Bearer、Direction并存放到对应的加解密存储单元中; 完整性校验iv计算单元,通过选择単元与接ロ模块连接,从接ロ模块接收Count、Bearer> Direction,计算并保存完整性校验初始化向量;包括,15个完整性校验存储单元,完整性校验存储单元i存储对应的iv” i = O 15 ;iv8计算单元,从完整性校验存储单元O获取iVd,从接ロ模块获取Direction,计算iv8并存储到完整性校验存储单元8 ;iv14计算单元,从完整性校验存储单元6获取iv6,从接ロ模块获取Direction,计算iv14并存储到完整性校验存储単元14。3.根据权利要求I所述的装置,其特征在于,所述iv计算模块包括 15个iv存储单元,存储单元i存储对应的ivp i = O 15 ; iv8计算单元,从存储单元O获取ivci,从接ロ模块接收Direction,计算iv8,/V8 = /V0 Θ {Direction || 00000002}; IV14计算单元,从存储单元6获取iv6,从接ロ模块接收Direction,计算iv14,/V14 = iv,十(Direction || 00000002}; 选择单元,如果密钥模式为加解密,将存储单元O的数据保存发送到存储单元8 =,将存储单元6的数据保存发送到存储单元14,将Bearer | | Direction | | OO2保存到存储单元4和存储单元12 = Bearer Direction OO2 ;如果密钥模式为完整性校验,设置iv8计算单元输出发送到存储单元8,将iv14计算单元输出发送到存储单元14,将Bearer| OOO2保存到存储单元4和存储单元12。4.根据权利要求I所述的装置,其特征在于,所述R计算模块包括 第一数据拼接単元,计算Wj I W2h操作; 第二数据拼接単元,计算Wa I I Wih操作; 第一移位寄存单元,计算并保存W1J Iw2h < < < 2、W1J Iw2h < < < 10、Wj Iw2h<<< 18、Wil I W2h <<< 24 ; 第二移位寄存单元,计算并保存W2J |w1H < < < 8、w2L Iwih < < < 14、w2L| |w1H<<< 18, ff2L I Wih <<< 30 ; 第一异或器,将第一数据拼接単元的输出与第一移位寄存单元中的数据进行异或;第二异或器,将第二数据拼接単元的输出与第二移位寄存单元中的数据进行异或;查表单元,保存R參数表,根据第一异或器的输出从R參数表中获取R1,根据第二异或器的输出从R參数表中获取R2 ;将も、R2发送到R存储单元; R存储单元,保存R” R2况、R2的初始值为O ; 其中,Wih为W1的高16位,Wil为W1的低16位;ff2H为W2的高16位,W2l为W2的低16位;< < <为向左循环移位操作,< <<后的数字表示移位的位数。5.根据权利要求I 4中任一项所述的装置,其特征在于,所述S16计算模块包括 乘法单元,从 Si 计算模块读取 S。、S4> s1(l、s13、S15、计算 215s15、217s13、221s1(i、22°s4、28sq ; 第一选择器,与所述Si计算模块的存储单元O、所述乘法单元以及第一加法器的输出连接,根据第一加法器已执行加法的次数选择第一加法器的输入; 其中,第一加法器已执行加法的次数为5k时,选择存储单元O的数据和28S(i ;第一加法器已执行加法的次数为5k+l时,选择第一加法器的输出和22°s4,第一加法器已执行加法的次数为5k+2时,选择第一加法器的输出和221s1(l ;第一加法器已执行加法的次数为5k+3时,选择第一加法器的输出和217s13 ;第一加法器已执行加法的次数为5k+4时,选择第一加法器的输出和215s15 ; 第一加法器,对所述第一选择器选择的输入数据进行加法计算并将计算结果输出到所述第一选择器和第一取模单元; 第一取模单元,当第一加法器已执行加法的次数为5 (k+Ι)时,对第一加法器的输出执行 mod(231-l)操作; 移位寄存器,在算法初始化阶段,从所述W计算模块接收W,将W右移I位保存; 第二加法器,将第一取模单兀的输出与移位寄存器的输出相加; 第二取模单元,对第二加法器的输出执行mod (231-1)操作; 第二选择器,在算法初始化阶段选择第二取模单元的输出发送到S16输出单元,在密钥生成阶段选择第一取模单元的输出发送...

【专利技术属性】
技术研发人员:晏龙刘荣岳天天彭玲
申请(专利权)人:重庆重邮信科通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1