一种针对祖冲之算法的猜测决定攻击

2015-02-09 08:08赵跃华刘文山
关键词:寄存器复杂度比特

赵跃华,刘文山,韩 牟

(江苏大学计算机科学与通信工程学院,江苏镇江212013)

一种针对祖冲之算法的猜测决定攻击

赵跃华,刘文山,韩 牟

(江苏大学计算机科学与通信工程学院,江苏镇江212013)

为了分析ZUC算法在抵御猜测决定攻击方面的安全性,针对ZUC算法在比特重组以及非线性函数中独特的16比特半字的运算,提出基于16比特半字的猜测决定攻击.该攻击方法首先将ZUC中的状态转换运算变换为半位的运算,将线性反馈移位寄存器中的每个状态分为上下半位,然后通过使用Viterbi-like算法计算出猜测决定攻击的基本点,根据已知的基本点状态和变换后的半位运算,决定出其他未知的状态,从而实现对内部状态的恢复.结果表明,这种猜测决定攻击计算复杂度为2398,所需数据量为6个32比特密钥字,该结果优于已有的针对ZUC的猜测决定攻击.

3GPP;ZUC;猜测决定攻击;密码分析;流密码;Viterbi-like算法

ZUC算法即祖冲之算法[1],是3GPP(3rd generation partnership project,第3代合作伙伴计划)机密性算法EEA3和完整性算法EIA3的核心[2],是中国自主设计的加密算法,目前已成为国内TD-LTE(time-division long term evolution,分时长期演进)行业标准,主要用于移动通信系统空中传输信道的信息加密和身份认证,以确保用户通信安全.如适用于车载网的通信[3],实现车载通信的隐私保护等.ZUC算法于2011年9月正式被3GPPSA全会通过,成为继SNOW 3G和AES(advanced encryption standard,高级加密标准)之后的3GPP LTE第3套加密标准核心算法.

算法标准组ETSI SAGE和2个专业团队分别对ZUC进行了内部和外部评估,认为ZUC算法健壮.随后中国科学院数据保护与通信安全研究中心(date assurance and communication security research center,DACAS)公开ZUC v1.4,算法进入公开评估阶段.Wu Hongjun等[4]发现ZUC v1.4安全漏洞,DACAS发布新的ZUC v1.5.目前,针对ZUC v1.5安全分析的成果较少,其中周春芳等针对其构造了一条24轮的选择IV差分传递链[5].丁林等基于求解特征非线性方程,提出对ZUC的猜测决定攻击,计算复杂度为2403,所需密钥为9个比特字[5].杜红红等[6]针对初始化2轮的ZUC v1.5算法进行猜测决定攻击,证明了初始化33轮的必要性.

文中利用猜测决定攻击的方法对ZUC算法进行分析,攻击的基本思路是,针对ZUC独特的16比特半字的运算,将基于32比特的非线性函数转化为基于16比特半字的非线性函数,利用一种对流密码通用的猜测攻击方法进行猜测攻击.

1 ZUC算法简介

ZUC是一个同步流密码算法,密钥规模为128比特.ZUC逻辑上采用3层结构,即线性反馈移位寄存器(linear feedback shift register,LFSR)、比特重组(bit Reorganization,BR)和非线性函数F,其整体结构如图1所示[7].

图1 ZUC整体结构图

1.1 线性反馈移位寄存器(LFSR)

LFSR由16个31位的寄存器(s0,s1,…,s15)组成,每一个都是定义在素域GF(231-1)上.其中寄存器内部状态更新方式如下:

1)st+16=215st+15+217st+13+221st+10+220st+4+(1+28)stmod(231-1).

2)如果st+16=0,设定st+16=231-1.

3)(s1,s2,…,s15,s16)→(s0,s1,…,s14,s15).

1.2 比特重组(BR)

比特重组是一个过渡层,其主要从LFSR中抽取128比特内容组成4个32比特的字X0,X1,X2,X3,以供下层非线性函数F和密钥输出使用,重组方式如下:

其中SH,SL分别表示S的高16位和低16位.

1.3 非线性函数F

非线性函数F有2个32位的存储单元R1,R2,输入为X0,X1,X2,输出为32位的W.F的更新方式如下:

其中,S表示S盒变换,且有

1.4 密钥产生

经过33轮的初始化过程后,进入密钥流生成过程,每个时刻产生一个密钥字Z,产生方式如下:

比特重组生成X0,X1,X2,X3

2 ZUC猜测决定攻击

猜测决定攻击(guess and determine attack)是针对流密码的一类攻击方法[8].猜测决定攻击的基本思想是攻击者可以通过猜测流密码算法中部分记忆单元的数值,然后利用该部分记忆单元的数值和得到的密钥流以较少的复杂度计算出流密码算法中其他记忆单元的值.攻击者往往会运行算法一定拍数,将算法输出和已知的真实密钥流进行对比,以检验猜测部分的正确性.如果不正确,则重复上面猜测确定过程,直到正确恢复出算法的内部状态.自从Hawkes和Rose提出针对SNOW1.0的猜测决定攻击后,猜测决定攻击逐渐成为一种针对面向字的流密码的有效攻击方法.近期出现了一些具有代表性的研究成果,如对Loiss,SOSEMUNK,SNOW 3G的猜测决定攻击[9-11].

文中利用ZUC算法的独特结构,提出一种半比特字节的猜测决定攻击方法,进而恢复出ZUC算法的内部状态.

根据ZUC独特的半比特位的重组运算,对内部状态更新的公式进行变换,具体如下.

1)LFSR内部状态更新.

变换后:

其中c1t表示1比特进位,满足如下关系:

2)非线性函数F内部状态更新.

变换后:

其中c2t表示1比特进位,满足如下关系:

变换后:

3)内部状态的状态更新.

4)密钥流生成变换.

变换后:

其中c3t表示1比特进位,满足如下关系:

针对ZUC算法的猜测决定攻击的过程如下.

1)根据Viterbi-like算法,将公式2),(3),(5),(6),(8),(9)作为基本式,找到猜测的基本点,即内部状态st,H,st+1,H,st+2,st+3,L,st+4,st+6,L,st+15,st+16,st+17,H,st+18,L,st+19,H,R1t,R1t+1,R1t+2,R1t+4,然后猜测c10,c11,c15,c20,c21,c23.

2)根据已猜测的内部状态,决定st,st+1,st+2,…,st+15,R1t,R2t,决定过程见表1.

表1 ZUC的猜测决定攻击的决定过程

续表

至此,得到连续的ZUC的内部状态(s0,s1,s2,…,s15,),R10,R20.

3 复杂度分析

本次对ZUC的猜测决定攻击中猜测的内部状态有s0,H,s1,H,s2,s3,L,s4,s6,L,s14,s15,s16,s17,H,s18,L,s19,H,R10,R11,R12,R14,c10,c11,c15,c20,c21,c23(共401比特),此时的猜测量为2401.通过验证步骤7得到的s6,H的最低比特与步骤8猜测的s6,L最高比特是否相等.对于正确的猜测,该验证式一定相等,对于错误的猜测,相等的可能性为0.5,所以猜测量可以降低一半,为2400;同理,步骤4的S11,L与步骤18的s11,H,步骤17的s20,L与步骤21的s20,H也存在这样的关系,所以猜测量可以降为2398.因此,该攻击的计算复杂度为2398,攻击所需的数据量Z0,Z1,Z2,Z4,Z5,Z6共6个32比特字节.

目前针对ZUC的分析结果主要是猜测决定攻击和选择IV差分攻击,下面就文中的分析结果与已有的分析结果进行比较,见表2.

表2 与已有的针对ZUC分析结果的比较

从表2可以看出,文中的猜测结果优于目前已有的猜测决定攻击.

4 结 论

文中利用猜测决定攻击方法对ZUC算法进行了分析,在分析过程中,利用ZUC独特的算法结构,提出半比特字节的猜测决定攻击,根据Viterbi-like算法,找出猜测的基本点,进而恢复全部的内部状态.分析得最终结果:计算复杂度为2398,所需数据量为6个32比特密钥字.

[1]冯秀涛.3GPP LTE国际加密标准ZUC算法[J].信息安全与通信保密,2011,19(12):45-46. Feng Xiutao.ZUC algorithm:3GPP LTE international encryption standard[J].Information Security and Communications Privacy,2011,19(12):45-46.(in Chinese)

[2]ETSI/SAGE TS 35.223-2011.Specification of the 3GPP confidentiality and integrity algorithms 128-EEA3 &128-EIA3;document3:implementors′test data[S].

[3]马世典,江浩斌,韩 牟,等.车载网环境下车载电控系统信息安全综述[J].江苏大学学报:自然科学版,2014,35(6):635-643. Ma Shidian,Jiang Haobin,Han Mu,et al.Survey of information security research for vehicle electronic control system in vehicle Internet environment[J].Journal of Jiangsu University:Natural Science Edition,2014,35(6):635-643.(in Chinese)

[4]Wu Hongjun,Huang Tao,Nguyen Phuong Ha,et al. Differential attacks against stream cipher ZUC[C]∥Proceeding of 18th International Conference on the Theory and Application of Cryptology and Information Security.Beijing:Springer Verlag,2012:262-277.

[5]Zhou Chunfang,Feng Xiutao,Lin Dongdai.The initialization stage analysis of ZUC v1.5[C]∥Proceeding of the 10th International Conference on Cryptography and Network Security.Sanya:Springer Verlag,2011:40-53.

[6]杜红红,张文英.祖冲之算法的安全分析[J].计算机技术与发展,2012,22(6):151-155. Du Honghong,Zhang Wenying.Security analysis onZUC stream cipher[J].Computer Technology and Development,2012,22(6):151-155.(in Chinese)

[7]Orhanou G,EIHajji S,Lakbabi A,et al.Analytical evaluation of the stream cipher ZUC[C]∥Proceedings of2012 International Conference on Multimedia Computing and Systems.Tangiers:IEEE Computer Society,2012:927-930.

[8]关 杰,丁 林,刘树凯.SNOW3G与ZUC流密码的猜测决定攻击[J].软件学报,2013,24(6):1324-1333. Guan Jie,Ding Lin,Liu Shukai.Guess and determine attack on SNOW3G and ZUC[J].Journal of Software,2013,24(6):1324-1333.(in Chinese)

[9]Feng Xiutao,Liu Jun,Zhou Zhaocun,et al.A bytebased guess and determine attack on SOSEMANUK[C]∥Proceeding of the16th International Conference on the Theory and Application of Cryptology and Information Security.Singapore:Springer Verlag,2010:146-157.

[10]Nia M SN,Eghlidos T.Improved Heuristic guess and determine attack on SNOW 3G stream cipher[C]∥Proceeding of the 7th International Symposium on Telecommunications.Tehran:IEEE Computer Society,2014:972-976.

[11]周照存,刘 骏,冯登国.对Loiss算法的猜测确定分析[J].中国科学院研究生院学报,2012,29(1):125-130. Zhou Zhaocun,Liu Jun,Feng Dengguo.Guess-and-determine attacks on Loiss[J].Journal of Graduate University of Chinese Academy of Sciences,2012,29(1):125-130.(in Chinese)

(责任编辑 梁家峰)

A guess and determine attack on ZUC algorithm

Zhao Yuehua,Liu Wenshan,Han Mu
(School of Computer Science and Communication Engineering,Jiangsu University,Zhenjiang,Jiangsu 212013,China)

To analyze the security of ZUC algorithm for resisting guess and determine attack,a guess and determine attack was proposed based on unique 16 bite half word for ZUC algorithm in half word operation.The operation of state transition was transformed to the halfword operation,and every state in LFSR was divided into up and down half word.The basic point of the guess and determine attack was computed out by Viterbi-like algorithm.The other unknown states were determined according to the known state of basic points and the operation of halfword to recover all internal states.The results show that the proposed attack on ZUC has a computational complexity of2398and requires 6 key stream words,which is better than the previous guess and determine attack on ZUC.

3GPP;ZUC;guess and determine attack;cryptanalysis;stream cipher;Viterbi-like algorithm

TP309

A

1671-7775(2015)05-0578-05

赵跃华,刘文山,韩 牟.一种针对祖冲之算法的猜测决定攻击[J].江苏大学学报:自然科学版,2015,36(5):578-582.

10.3969/j.issn.1671-7775.2015.05.015

2015-01-09

国家自然科学基金资助项目(61300229);中国博士后基金资助项目(2013M531283);江苏省博士后基金资助项目(1201037C);江苏省“六大人才高峰”计划项目(DZXX-012);江苏省高校自然科学基金资助项目(12KJD580002);江苏省研究生创新基金资助项目(KYLX-1057)

赵跃华(1958—),男,江苏镇江人,教授(zhaoyh@ujs.edu.cn),主要从事信息安全研究.

刘文山(1991—),男,江苏盐城人,硕士研究生(1296465272@qq.com),主要从事信息安全、密码学研究.

猜你喜欢
寄存器复杂度比特
Lite寄存器模型的设计与实现
一种低复杂度的惯性/GNSS矢量深组合方法
比特币还能投资吗
比特币分裂
分簇结构向量寄存器分配策略研究*
求图上广探树的时间复杂度
比特币一年涨135%重回5530元
某雷达导51 头中心控制软件圈复杂度分析与改进
出口技术复杂度研究回顾与评述
多个超导磁通量子比特的可控耦合