ZUC算法原理及实现过程_第1页
ZUC算法原理及实现过程_第2页
ZUC算法原理及实现过程_第3页
ZUC算法原理及实现过程_第4页
ZUC算法原理及实现过程_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ZUC算法原理及实现过程1.1算法设计背景ZUC算法,即祖冲之算法,是3GPP机密性算法EEA3和完整性算法EIA3的 核心,为中国自主设计的流密码算法。2009年5月ZUC算法获得3GPP安全算 法 组SA立项,正式申请参加3GPPLT第三套机密性和完整性算法标准的竞选工 作。 历时两年多的时间,ZUC算法经过评估,于2011年9月正式被3GPPSA全 会通 过,成为3GPPLTE第三套加密标准核心算法。ZUC算法是中国第一个成为国际密 码标准的密码算法。1.2 算法原理ZUC是一个面向字的流密码。它采用128位的初始密钥作为输入和一个128 位的初始向量(IV),并输出尖于字的密钥流(从而

2、每 32位被称为一个密钥 字)。密钥流可用于对信息进行加密/解密ZUC的执行分为两个阶段:初始化阶段和工作阶段。在第一阶段,密钥和初始向量 进行初始化,即不产生输出。第二个阶段是工作阶段,在这个阶段,每一个时钟脉 冲产生一个32比特的密钥输出。(1 )运算符说明3l amod整数模整数比特异或字符串a和b的连接a二进制表示的最左16位值 a二进制表示的最右16位值a向左k比特的循环移位luan : LL112,11|,5a值分配到对应b的值(2 )算法结构ZUC有三个逻辑层,见下图。顶层为一个线性反馈移位寄存器(LFSR )的16个赛段,中间层是比特重组(BR),最下层为一个非线性函数F 。(

3、3) 线性移位反馈寄存器(LFSR)LFSR具有16个31比特的单元So,Sl|,S!5,每个单元S 0_i_15取值 均在下面 的集合中:123,川 231-1?LFSR有两种模式的操作,即初始化模式和工作模式。在初始化模式中,LFSR接收一个31比特的输入u,u是删除非线性函数F的32位输出W最右边的位 得到的。也就是说,可将初始化模式工作原理表示为:LFSRWithlnitialisationMode ( u) v=215S5 +217命 +221Sw +22oS4+(1 +28)smod(23i-i );312、S6 =(v+u )mod(2 -1 );3、如果 S!6=0,则设 $6

4、 =23i-1 ;4(S,S2, |,S6)T(So,Sij II,S5)在工作模式中,LFSR不接收任何输入,它的工作原理表示为:LFSRWithWorkMode() 仁 S6 =2i5$5 +2,7S3 +221Sw +22oS4 +(1 + 2sJsmod(2311 );2、如果 =0,则设 36 =231 -1 ;3、(s,S2,川,$6)T (So,Si j II, S5);(4) 比特重组ZUC算法的中间层是比特重组,从LFSR的单元中提取128比特的输出并形 成 4个32比特的字,前三个字将用于最底层的非线性F函数中,而最后一个字会在密 钥流的产生中用到。令S0iS2iS5,S7

5、iS9iSi1iSi4,Si5是LFSR中的8个单元,则形成4个32比特字的比特重组过程如下:Bitreorga nizatio n() 1 x0 = SAHLs14L ;2、3、X2 二 S7L L S5H ;4、X3 二勺 | _ LSoH (5) 非线性函数F非线性函数F有2个32位的存储单元,即R和甩。令到F的输入为X。,Xi和X2,即为比特重组的前三个输出,然后函数F输出一个32位字W。F的详细过程如下:F Xo,Xi,X2321、W = X。二 R Rmod2 ;2、W = R Xi mod 232 ;3、W2 =R2 二 X2 ;4、R 二 S Li wllw2h ;5、R, =

6、S L2 Wzllwh(6) S 盒F函数中包含的S盒S是由4个并列的8$的S盒组成的(S=(S,S,S,S3),其中So=S2、S=S3o So、s的定义由下面两张表分别给出:令X为S。(或SJ的8比特输入。将x表示成十六进制x = hUb则在查表 时h 和丨分别表示S盒的第h行和第丨列。(7) 线性变换函数线性变换Li和1_2均为32比特字输入到32比特字的输出,具体可定义为:LX i = X H X: 322 Z2 X: 3210X: 3218 X: 32241_2X 二 X 二 X:328 二 X: 32 14X: 3222Z2 X: 32 30(8) 密钥加载密钥的加载过程将把初始密

7、钥和初始向量扩展为16个31比特的LFSR初始状态。设k为128比特的初始密钥,iv为128比特的初始向量,则有:k = ko Lki j k2昆iv 二 iVoi_iviV2 j j ivis其中,0叮V15同时,设D为由16个15比特长的子数组组成的240位常值数组:D = do I d1 | .d15其中,do = ;d2;d3;d4;d8;d9;设sJli,S!5为LFSR的16个单元,则0勻兰15,有s =kjLdi _ M。1.3算法的实现过程ZUC算法的执行过程主要有四个步骤:密钥加载,初始化阶段,工作阶段和密 钥流产生阶段,具体过程如下:(1) 密钥加载阶段:在密钥加载阶段,将128位的初始密钥和128位的初始化向量载人LFSR,同时设置32位的记忆单元R1,R2为0值。(2) 初始化阶段在初始化阶段,执行下面的操作32次:1 、 Bitreorganization() ;2、w 二 FXoXX ;3、LFSRWithlnitialisationMode( w 1)(3) 工作阶段在工作阶段,算法执行下面的操作1次,并弃掉F的输出W1 、 Bitreorganization() ;2、FXo,XbX2 ;3、LFSRWithWorkMode().(4) 密钥

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论