ZUC-256流密码算法
1 引言
众所周知,3GPP机密性与完整性算法128-EEA 3和128-EIA 3的核心是ZUC-128流密码[1].随着通信与计算技术的发展,对未来5G应用环境下可提供256比特安全性的新型流密码有着迫切的需求.
本文给出ZUC-256流密码的完整描述,在保持与ZUC-128流密码高度兼容的基础上,同时满足5G的应用环境.与ZUC-128流密码相比,ZUC-256流密码在初始化阶段、消息认证码(MAC,也称认证标签或者标签)生成阶段采用了新的设计方案以满足5G应用的各种需求.
本文结构如下:首先在第2节给出ZUC-256流密码的完整描述,包含了初始化阶段、密钥流生成阶段及消息认证码生成阶段;第3节总结了全文.
2 算法描述
本节给出ZUC-256流密码的完整描述.首先约定下列符号.
-记整数的模232加法为?,即对于0 6 x,y<232,x?y就是 mod232的整数加法运算;
本文中我们采用哈希算法,主要的过程为:发送方采用单向哈希函数对消息进行计算,得到摘要并发送消息和摘要。接收方将接收到的消息,按同样方式进行哈希函数计算,并将新得出的结果与发送方的原摘要结果进行比对。如结果一致,说明消息完整。在本系统中,摘要信息的不可变,保证了需要存证信息的完整性和真实性。将需要存证的电子数据放在区块链中,避免数据被恶意篡改。
-记整数的模(231−1)加法为(x+y)mod(231−1),其中1 6 x 6 231−1,且1 6 y 6 231−1;
-记比特级的异或操作为⊕;
-记比特串的连接操作为∥;
-记比特级的逻辑或运算为|;
-令 K=(K 31,K 30,···,K 1,K 0)为 ZUC-256流密码采用的 256-比特密钥,其中 K i(0 6 i 6 31)为8-比特字节;
- 令 IV=(IV24,IV23,···,IV17,IV16,IV15,···,IV1,IV0)为 ZUC-256 流密码采用的 184-比特初始向量,其中 IV i(0 6 i 6 16)为 8-比特字节;IV i(17 6 i 6 24)为6-比特长的比特串,占据一个字节的低6位;
5.R 2=S(L2(W 2L∥W 1H))
-记64-比特操作数的向左循环移位为≪,x≪n即为 ((x≪n)|(x≫(64−n))),其中≪与 ≫分别为相应操作数的逻辑左移与逻辑右移.
图1 ZUC-256流密码的密钥流生成阶段Figure 1 Keystream generation of ZUC-256 stream cipher
ZUC-256流密码由 3部分组成,如图1与图2所示:首先是一个 496-比特长的线性反馈移位寄存器(LFSR),该 LFSR 定义在域 GF(231−1)上,由 16个 31-比特寄存器单元 (s15,s14,···,s1,s0)构成,这些单元均定义在代表元集合 {1,2,···,231−1}上;其次是一个比特重组层 (BR),它主要用来从 LFSR中抽取一些存储内容,并拼接成4个32-比特字(X 0,X 1,X 2,X 3),用于下面的有限状态自动机(FSM)和输出处理;最后是FSM层,包含2个32-比特字R1与R2作为FSM中的记忆单元.
图2 ZUC-256流密码的初始化阶段Figure 2 Initialization of ZUC-256 stream cipher
ZUC-256流密码的密钥/初始向量装载过程如下.
其中(K 31)4H是字节K 31的高4位,(K 31)4L是K 31的低4位,所使用的填充常数d i(0 6 i 6 15)如下.
ZUC-256流密码的初始化阶段共有32+1=33轮,其具体描述如下.
1.按如上所述将密钥、初始向量及常数装载到LFSR各单元
2.初始化记忆单元为R1=R2=0
(7)急性视网膜坏死:阿昔洛韦 10 mg/kg,每 8小时1次,静脉滴注,病情稳定后伐昔洛韦1 g,3次/d,口服。
3.for i=0 to 31 do
4.Bitreorganization()
下面,我们逐一给出各个相关子程序的描述.
本文待分析的数据涉及员工基本信息表、工种表、部门表、出勤表和勤种表五张表。其中主关系表有5000条记录,联系表有44万条记录。系统的开发环境为Visual C++2010,后台数据库为SQL Server 2008。系统主要包括数据导入、数据预处理、系统配置、频繁项集挖掘和关联规则导出五个功能模块。
国君进贤,如不得已,将使卑踰尊,疏踰戚,可不慎与!左右皆曰贤,未可也;诸大夫皆曰贤,未可也;国人皆曰贤,然后察之;见贤焉,然后用之。左右皆曰不可,勿听;诸大夫皆曰不可,勿听;国人皆曰不可,然后察之;见不可焉,然后去之。左右皆曰可杀,勿听;诸大夫皆曰可杀,勿听;国人皆曰可杀,然后察之;见可杀焉,然后杀之。故曰,国人杀之也。如此,然后可以为民父母。[17](P143-145)
LFSR With Initialization Mode(u)
在进行程序界面设计时,应与传统手工计算的表格一致,以便于后续使用者。Qt是奇趣公司旗下的软件开发平台,它是一款优秀的基于C++的跨平台GUI应用程序框架,同时为用户提供了良好的封装库,其主要使用信号与槽机制来连接事件与函数间关系,使得界面与代码完美配合。且在Qt中自身带有表格显示与图片显示控件,非常方便进行软件界面设计[9,10]。基于此,本文选择Qt进行界面设计,使用C++进行编程实现缓和曲线放样数据计算。
1.v=(215·s15+217·s13+221·s10+220·s4+(1+28)·s0)mod(231−1)
2.若 v=0,则令 v=231−1
令 W i=(z t+i,···,z i+2 t−1)
2.W 1=R 1?X 1
5.(s16,s15,···,s2,s1) → (s15,s14,···,s1,s0),其中 → 表示赋值操作
LFSRWithworkMode()
1.s16=(215·s15+217·s13+221·s10+220·s4+(1+28)·s0)mod(231−1)
2.若 s16=0,则令 s16=231−1
3.(s16,s15,···,s2,s1) → (s15,s14,···,s1,s0)
Bitreorganization()
1.X 0=s15H∥s14L
2.X 1=s11L∥s9H
3.X 2=s7L∥s5H
2. 初始化 Tag=(z0,z1,···,z t−1)
其中s iH为寄存器单元s i的高16位,而s j L为寄存器单元s j的低16位.
F(X 0,X 1,X 2)
1.W=(X 0⊕R1)?R 2
4.若 s16=0,则令 s16=231−1
3.W 2=R 2⊕X 2
3.2 BI在高龄ACS患者中的应用情况 BI是目前信度、效度较佳且应用最广的个人日常生活能力评估量表。其由10个项目组成,总分为100分,分数越低,表示依赖性越强。BI目前一般用于脑血管意外以及老年人失能状态的评价。我国人口老龄化趋势明显,其中相当比例的老人日常生活能力受限。2010年的统计资料[13]表明,我国失能老年人口占老年人口的2.95%,达522万。
4.R 1=S(L1(W 1L∥W 2H))
-令d i(0 6 i 6 15)为ZUC-256流密码采用的7-比特常数;
其中S=(S0,S1,S0,S1)为4个并置的S-盒,这一部分与之前ZUC-128流密码的同一部件完全相同;而L1与L2也是ZUC-128流密码采用的两个MDS矩阵.ZUC-256流密码每一节拍产生一个32-比特字作为输出密钥流.
KeystreamGeneration()
1.Bitreorganization()
2.Z=F(X 0,X 1,X 2)⊕X 3
3.LFSRWithworkMode()
在5G应用环境中,ZUC-256流密码每一帧产生20000-比特到232比特长的密钥流,亦即每一帧产生625到227个密钥流字;随后进行一次密钥/初始向量的再同步过程,在这一过程中保持密钥/常数不变,而初始向量则演变为一个新值.
本研究使用丁酸钠干预,结果显示,丁酸钠组SD大鼠放疗后,放射性肠损伤动物模型成功率只有83.3%,显著低于模型组的100%成功率,提示丁酸钠有可能发挥保护肠黏膜的功能。赖衍宗等[8]在结肠炎的小鼠模型中发现丁酸钠通过促进Th1/Th2/Th17类细胞因子平衡,减轻模型小鼠肠黏膜的损伤发挥治疗作用。本研究的肠黏膜形态学检测显示,丁酸钠组黏膜绒毛高度和黏膜厚度显著高于模型组,也证明丁酸钠可以保护放射治疗导致的肠损伤。
ZUC-256流密码的M AC生成原理与ZUC-128流密码的M AC生成原理相同,具体过程如下.令M=(m 0,m 1,···,m l−1)为一段 l-比特长的明文消息,其认证标签长度 t可取为32,64及 128比特.M AC_Generation(M)
1.运行ZUC-256流密码产生一段包含个字的密钥流.记该密钥流的二元序列为
z0,z1,···,z32·L−1,其中z0是第一个密钥流字的最高位而 z31是该字的最低位.
4.X 3=s2L∥s0H
白丽筠说,你不找个正式工作怎么行呢?我倒是认识一位领导,似乎可以帮上忙。那家单位是国企,不知道你嫌不嫌?
3.for i=0 to l−1 do
3.s16=(v+u)mod(231−1)
如果他继续往下深入,她也许会展露更多令他困惑和无解的内容。也有可能始终守口如瓶。他已失去所有力气,说,其实我并不懂得什么是爱情,虽然我恋爱过多次。她说,时间本身保持着一种神秘感,所以我们才会虽然做过多次的事情,却依然不能够知晓它的真味。
若m i=1,则Tag=Tag⊕W i
(2)化探异常特标志:区内金矿化均在化探异常范围,化探分散流及次生晕Ag、Au、Pb、Zn、Sb等元素综合异常区是找矿的有利部位。
4.W l=(z l+t,···,z l+2 t−1)
5.Tag=Tag⊕W l
6.返回Tag
做好基建工程项目档案资料管理工作,可以为工程的各环节提供真实可靠数据,使工程项目顺利完成。在开展基建工程项目中,对档案资料进行科学化管理和监控,做好基建档案管理是一项必不可少的工作。
对于不同长度的认证标签,为了防止伪造攻击,各长度所采用的常数如下.
1.对于32-比特的标签长度,所采用的常数如下.
2.对于64-比特的标签长度,所采用的常数如下.
3.对于128-比特的标签长度,所采用的常数如下.
(3)查看空气储罐使用单位相应的安全管理人员和操作人员是否持有特种设备作业人员证,压力容器作业人员是否定期接受安全教育和专业培训。
ZUC-256流密码的测试向量如下.首先对于密钥流生成阶段,有如下测试向量.
•251ab65b,949f7b26,ef7157f2,96dd2fa9,df95e3ee,
•58d03ad6,2e032ce2,dafc683a,39bdcb03,52a2bc67,
•f1b7de74,163ce3a1,01ef5558,9639d75b,95fa681b,
•7f090df7,56391ccc,903b7612,744d544c,17bc3fad,
•8b163b08,21787c0b,97775bb8,4943c6bb,e8ad8afd
2.令密钥K i=0xff,对于0 ≤ i ≤ 31,而初始向量 IV i=0xff,对 0 ≤ i ≤ 16及IV i=0x3f,对17 ≤ i ≤ 24,则头20个密钥流字为
•3356cbae,d1a1c18b,6baa4ffe,343f777c,9e15128f,
武汉大学有专门设计的图书馆卡通形象——小布,取名源自“书籍”的英文“book”的谐音,外形活泼,清新自然。武汉大学新生专栏内栏目全部以小布为基础进行创作,其中“新生游戏”之“拯救小布”是其中的亮点。游戏长期开放,不设置截止日期,读者们可以随时登录游戏,通关之后即可获取开通图书馆服务权限。为了鼓励新生在一定时间段内快速完成,武大规定,新生参加游戏可以参与游戏排行榜环节,新生依据游戏排行榜积分高低可以获取奖励。通关秘笈为图书馆编制的《读者手册》或《图书馆攻略》。
1.令密钥K i=0x00,对于 0 ≤ i ≤ 31,而初始向量 IV i=0x00,对于0 ≤ i ≤ 24,则头 20个密钥流字为
•7a5be02e,c32ba585,505af316,c2f9ded2,7cdbd935,
•e441ce11,15fd0a80,bb7aef67,68989416,b8fac8c2
其次对于消息认证码生成阶段,有如下测试向量.
1.令密钥 K i=0x00,对于 0 ≤ i ≤ 31,而初始向量IV i=0x00,对于 0 ≤ i ≤ 24,l=400-比特的消息为则相应的32-比特标签,64-比特标签与128-比特标签分别如下
• 32-比特认证标签为9b972a74
• 64-比特认证标签为673e5499 0034d38c
• 128-比特认证标签为d85e54bbcb960096 7084c952 a1654b26
2.令密钥K i=0x00,对于0 ≤ i ≤ 31,而初始向量IV i=0x00,对于0 ≤ i ≤ 24,l=4000-比特的消息为则相应的32-比特标签,64-比特标签与128-比特标签分别如下
• 32-比特认证标签为8754f5cf
• 64-比特认证标签为130dc225 e72240cc
• 128-比特认证标签为df1e8307 b31cc62b eca1ac6f 8190c22f
3.令密钥 K i=0xff,对于 0 ≤ i ≤ 31,而初始向量 IV i=0xff,对于 0 ≤ i ≤ 16及 IV i=0x3f,对于 17 ≤ i ≤ 24,l=400-比特的消息为则 32-比特标签,64-比特标签与128-比特标签分别如下
• 32-比特认证标签为1f3079b4
• 64-比特认证标签为8c71394d 39957725
• 128-比特认证标签为a35bb274 b567c48b 28319f11 1af34fbd
4.令密钥 K i=0xff,对于 0 ≤ i ≤ 31,而初始向量 IV i=0xff,对于 0 ≤ i ≤ 16及 IV i=0x3f,对于 17 ≤ i ≤ 24,l=4000-比特的消息为则 32-比特标签,64-比特标签与128-比特标签分别如下
• 32-比特认证标签为5c7c8b88
• 64-比特认证标签为ea1dee54 4bb6223b
• 128-比特认证标签为3a83b554 be408ca5 494124ed 9d473205
ZUC-256流密码的安全性目标是提供5G应用环境下的256比特安全性.对于认证部分的伪造攻击,ZUC-256流密码可提供相当于标签长度的安全性,这里特别强调,在ZUC-256流密码中,初始向量不可复用;在认证标签验证失败时,不可产生任何的输出.
3 结束语
在本文中我们给出了ZUC-256流密码的完整描述,欢迎专家学者对ZUC-256流密码进行密码分析.
References
[1]Specification of the 3GPP Confidentiality and Integrity Algorithms 128-EEA 3 and 128-EIA 3,Document 4:Design and Evaluation Rep rot[OL].http://www.gsmworld.com/docum ents/EEA3_EIA3_Design Evaluation_v11.pd f.