CN104967509B - 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法 - Google Patents

一种轮输出为算术掩码的zuc序列密码算法掩码防护方法 Download PDF

Info

Publication number
CN104967509B
CN104967509B CN201510221467.3A CN201510221467A CN104967509B CN 104967509 B CN104967509 B CN 104967509B CN 201510221467 A CN201510221467 A CN 201510221467A CN 104967509 B CN104967509 B CN 104967509B
Authority
CN
China
Prior art keywords
mask
wheel
algorithm
output
computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510221467.3A
Other languages
English (en)
Other versions
CN104967509A (zh
Inventor
罗鹏
李大为
曹伟琼
冯秀涛
陈华
李国友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Cryptography Administration Commercial Code Testing Center
Original Assignee
State Cryptography Administration Commercial Code Testing Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Cryptography Administration Commercial Code Testing Center filed Critical State Cryptography Administration Commercial Code Testing Center
Priority to CN201510221467.3A priority Critical patent/CN104967509B/zh
Publication of CN104967509A publication Critical patent/CN104967509A/zh
Application granted granted Critical
Publication of CN104967509B publication Critical patent/CN104967509B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Respiratory Apparatuses And Protective Means (AREA)
  • Electron Beam Exposure (AREA)

Abstract

本发明公开了一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法,该方法包括:(1)选择需要掩码的轮数,初始化前N轮,通过随机数得到带掩码输入R1+m1、R2+m2;(2)对于前N轮中每1轮的输入X1和X2分别加上掩码防护后通过转化函数为g(x,y)将加法运算转成异或运算;(4)进行16位移运算,L1和L2线性运算;(5)分别进行进行SL′、SR′运算;(6)对于F函数的W输出,通过转化函数h(x,y)转换成加法运算获得正确的W输出。本申请的技术方案设计的掩码防护方法运算中每个节点所带的掩码值均不相同,每轮S盒输出的掩码值也不相同,可抵抗汉明重量和汉明距离的一阶分析,此外,二阶分析也无法找到任何可利用的泄漏点。

Description

一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法
技术领域
本发明属于密码算法的防护技术领域,特别是为了使祖冲之序列密码算法(ZUC)抵抗侧信道分析,保护密钥k,设计了一种针对ZUC算法的掩码防护方法,即针对轮输出为算术掩码的ZUC序列密码算法掩码防护方法;该方法随机化算法的中间值,使得设备的能量消耗与所执行的密码算法的中间值之间无依赖关系。
背景技术
随着信息技术的发展,各种密码算法正被广泛地应用于经济、军事、行政等重要部门,保护信息的安全性。鉴于密码算法的重要性,密码算法软硬件实现(密码模块)的分析研究对保护信息安全具有重要的意义。
近年来,多种对密码模块的攻击已广为人知,所有这些攻击的目的都是为了获取密码模块中的密钥。通常的攻击方式可分为侵入式攻击、半侵入式攻击和非侵入式攻击。近年来,由于非侵入式攻击中的侧信道分析实施方便、相对成本低廉而被广泛使用。侧信道分析可以细分为计时分析、能量分析和电磁分析。其中的侧信道能量分析是众多分析手段中最常用的方法之一,它突破了传统密码算法的分析模式,能力强大,实施相对容易。侧信道能量分析利用了密码模块能量消耗与数据运算和执行之间的相关性,基于密码算法实现的能量泄露函数建立能量模型,使用统计方法,猜测和验证密码模块使用的受保护密钥,几乎可被用于破解所有的对称密码和公钥密码。破解时,仅需要数十条能量迹就可以在几分钟内迅速地破解没有防御措施的大多数智能卡。侧信道能量分析方法一般包括,简单能量分析(SPA)、差分能量分析(DPA)、相关能量分析(CPA)和高阶差分能量分析(HODPA)。
直接利用能量迹各尖峰形状不同这一特性的攻击称为简单能量分析攻击SPA(Simple Power Analysis);根据密码设备的能量消耗依赖于算法执行过程中所处理的中间值分别为0和1时,所对应的平均能量迹之间的差异进行密钥恢复的攻击方法称为差分能量分析攻击DPA(Differential Power Analysis);若密码分析者利用假设能量消耗和真正能量消耗之间的线性相关性进行密钥恢复,则为相关能量分析攻击CPA(CorrelationPower Analysis);在上述DPA分析中,如果仅利用了一个中间值,称为一阶DPA攻击,若是利用算法运算中的某种联合泄漏,该联合泄漏基于出现在密码设备中的多个中间值,则称相应的DPA攻击为高阶DPA分析。
鉴于当前对密码算法进行功耗分析攻击技术的不断发展,为应对能量分析带来的挑战,针对功耗分析攻击的防御技术也不断进步。抗功耗分析的防御技术包括各种隐藏技术和掩码技术,任何防御技术的目标都是使密码设备的能量消耗不依赖于设备所执行的密码算法中间值。
隐藏技术是通过能量消耗随机化,使所有操作具有相同能量消耗等方式切断被处理的中间值与设备能量消耗之间的关系。采用隐藏技术的密码设备与未加防护的设备执行相同的操作,但无法从中获取可用信息。
掩码技术是采用随机化密码设备所处理的中间值,对算法实现加入随机化掩码。其可以在算法级实现,无需改变密码设备的能量消耗特性,使设备的能量消耗与所执行的密码算法的中间值之间无依赖关系。
在掩码防御方案中,算法运算的中间值v都基于一个称为掩码的随机数m进行变换,即vm=v*m。掩码产生于密码设备内部,并且在每一次执行过程中各不相同,因此攻击者不能获知掩码。运算*通常根据密码算法所使用的操作进行定义。因此,运算*多为布尔异或运算、模加运算或模乘运算。在模加运算和模乘运算的情况下,模数根据密码算法进行选择。通常,掩码直接应用于明文或密钥。为了能够处理掩码型中间值以及对掩码进行跟踪,需要对算法进行修改。加密的结果也是掩码型的,为了获得密文,需要在计算结束时消除掩码。要保持每一个中间值在计算过程中始终处于被掩码状态,这一点非常重要。即使某一个中间值是基于它之前的中间值计算得到,保持上述性质仍然很重要。由于上述原因,对不同的中间值,往往需要分别采用不同的掩码。处于对实现性能的考虑,对每一个中间值采用一个新掩码并不合算。因此,为了获得合适的性能,需要仔细选择掩码的数量。
在算法一个执行路径中所叠加的掩码数量,称为算法掩码防御方案的阶数,对相应阶数的掩码进行能量分析的方法,称为高阶能量能量分析。一阶掩码可以防御一阶的能量分析,但不能防御二阶能量分析;二阶掩码可以防御二阶能量分析,但不能防御三阶能量分析。通常考虑到防御和分析的指数递增运算量增加,以及算法结构上可利用的能量泄露的点的限制,通常分组算法实现只能做到二阶能量分析,相应的防御措施也一般只做到二阶掩码防御即可。
祖冲之算法集(ZUC算法)是由我国学者自主设计的加密和完整性算法,已经被国际组织3GPP推荐为4G无线通信的第三套国际加密和完整性标准的侯选算法。下面对该算法进行简单介绍:祖冲之算法逻辑上分为上中下三层,如图1所示,上层是16级线性反馈移位寄存器(LFSR);中层是比特重组(BR);下层是非线性函数F。(1)LFSR包括16个31比特寄存器单元变量s0,s1,…,s15。LFSR的运行模式有2种:初始化模式和工作模式。在初始化模式下,LFSR接收一个31比特字u。u是由非线性函数F的32比特输出W通过舍弃最低位比特得到,即u=W>>1,在初始化模式下,LFSR计算过程如为:
LFSRWithInitialisationMode(u)
{
(1)v=215s15+217s13+221s10+220s4+(1+28)s0mod(231-1);
(2)s16=(v+u)mod(231-1);
(3)if(s16=0)then s16=231-1;
(4)(s1,s2,…,s15,s16)→(s0,s1,…,s14,s15);
}
在工作模式下,LFSR不接收任何输入。其计算过程如下:
LFSRWithInitialisationMode()
{
(1)s16=215s15+217s13+221s10+220s4+(1+28)s0mod(231-1);
(2)if(s16=0)then s16=231-1;
(3)(s1,s2,…,s15,s16)→(s0,s1,…,s14,s15);
}
(2)比特重组(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
}
(3)非线性函数F包含2个32比特记忆单元变量R1和R2。F的输入为3个32比特字X0、X1、X2,输出为一个32比特字W。F的计算过程如下:
F(X0,X1,X2)
{
(1)
(2)W1=R1+X1
(3)
(4)R1=S(L1(W1L||W2H))
(5)R2=S(L2(W2L||W1H))
}
其中S为32比特的S盒变换,32比特S盒由4个小的8×8的S盒并置而成,即S=(S0,S1,S2,S3),其中S0=S2,S1=S3。S0主要基于轻量级结构构造思想,采用小S盒构建大S盒的方法设计。具体而言,S0内部使用了3个4×4的小S盒P1、P2、P3组合而成,如图2所示,其中m=5。
S1盒的设计基于有限域GF(28)上的非线性逆函数x-1和线性仿射变换设计,与AES的S盒设计类似。底层有限域GF(28)采用本原多项式x8+x7+x3+x+1定义,S1盒的数学表达式为:其中矩阵M满足:
设S盒S的32比特输入X和32比特输出Y分别为:
X=x0||x1||x2||x3
Y=y0||y1||y2||y3
其中xi和yi均为8比特字节,i=0,1,2,3。则有yi=Si(xi);L1和L2为32比特线性变换,定义如下:
祖冲之算法的秘钥装入过程是:将128比特的初始密钥k和128比特的初始向量iv扩展为16个31比特字作为LFSR寄存器单元变量s0,s1,…,s15的初始状态。设k和iv分别为k0||k1||…||k15和iv0||iv1||…||iv15;其中ki和ivi均为8比特字节,0≤i≤15。密钥装入过程如下:(1)D为240比特的常量,可按如下方式分成16个15比特的子串:D=d0||d1||…||d15,其中:
d0=1000100110101112
d1=0100110101111002
d2=1100010011010112
d3=0010011010111102
d4=1010111100010012
d5=0110101111000102
d6=1110001001101012
d7=0001001101011112
d8=1001101011110002
d9=0101111000100112
d10=1101011110001002
d11=0011010111100012
d12=1011110001001102
d13=0111100010011012
d14=1111000100110102
d15=1000111101011002
(2)对0≤i≤15,有si=ki||di||ivi
在初始化阶段,首先把128比特的初始密钥k和128比特的初始向量iv按照前述密钥装入方法装入到LFSR的寄存器单元变量s0,s1,…,s15中,作为LFSR的初态,并置32比特记忆单元变量R1和R2为全0。然后执行下述操作:
重复执行下述过程32次:
(1)BitReconstruction();
(2)W=F(X0,X1,X2);
(3)LFSRWithInitialisationMode(W>>1);
工作阶段首先执行下列过程一次,并将F的输出W舍弃:
(1)BitReconstruction();
(2)F(X0,X1,X2);
(3)LFSRWithWorkMode();
然后进入密钥输出阶段。在密钥输出阶段,每运行一个节拍,执行下列过程一次,并输出一个32比特的密钥字Z:
(1)BitReconstruction();
(2)
(3)LFSRWithWorkMode();
目前,利用侧信道分析(SCA),特别是运用能量分析(PA)的能量分析方法,通过建立汉明重量模型,使用一阶差分能量分析(DPA)方法可分析出ZUC算法的密钥。为了抵抗DPA/CPA分析,通常采用了掩码防护和隐藏技术保护ZUC密码算法实现。鉴于掩码技术的易操作性及有效性,本发明在密码防护方面特别是对ZUC算法的结构和相关掩码防御技术进行深入研究分析,设计抗侧信道的掩码防御方法
发明内容
本发明技术方案的目的在于为了抵抗针对ZUC算法的侧信道分析,考虑线性移位寄存器的数据影响传递性以及能耗的泄露点,以及掩码技术的易操作性及有效性,针对于F函数,保护ZUC算法初始化过程中的前N(1≤N≤32)轮,实现ZUC序列算法掩码防护的策略。
实现上述目的本发明的技术方案为,一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法,该方法包括如下步骤:(1)选择需要掩码的轮数,初始化前N轮,1≤N≤32,r∈{0,1,…,N-1}为当前轮数,选择4个32比特随机掩码m1、m2、m3、m4,令m1=(c0,c1,c2,c3),m2=(d0,d1,d2,d3),ci、di(i=0,1,2,3)分别为8位随机数,第1轮F函数的输入R1、R2分别与m1、m2相加,得到带掩码输入R1+m1、R2+m2;若是第r(r∈{1,…,N-1})轮F函数输入R1、R2,由于前1轮S盒输出带有掩码防护为R1+m1、R2+m2,无需再加上掩码值;
(2)对于前N轮中每1轮的输入X1和X2分别加上掩码防护转化成X1-m1+m3其中Xi(0≤i≤3)为ZUC算法LFSR寄存器单元中抽取比特组成的32比特字;
(3)R1+m1加上X1-m1+m3得到R1+X1+m3=W1+m3;R2+m2加上得到其中W1=X1+R1;已知W1+m3、m3,代入转化函数g(x,y)可转成异或运算已知代入转化函数为g(x,y)转成异或运算其中转化函数g(x,y)定义为:
(4)左右两边经过16位移位后,分别为其中mi,H、mi,L(i=3,4)分别为mi的高/低16比特值,Wi,H、Wi,L(i=1,2)分别为Wi的高/低16比特值;再对应分别进行L1线性运算,左边转化成L2线性运算后,右边转化成令L1(m3,L||m4,H)=(a0,a1,a2,a3),L2(m4,L||m3,H)=(b0,b1,b2,b3),ai、bi(i=0,1,2,3)分别为8位随机数;
(5)进行S盒掩码运算,左边32位S盒SL'共包括4个8位小S盒S'L,0、S'L,1、S'L,2、S'L,3,即SL'=(S'L,0,S'L,1,S'L,2,S'L,3),其中,i∈{0,1,2,3},“+”为32位加法运算,右边32位S盒SR'共包括4个8位小S盒S'R,0、S'R,1、S'R,2、S'R,3,SR'=(S'R,0,S'R,1,S'R,2,S'R,3),其中, 运算后得到新1轮的R1+m1、R2+m2,依次进行N轮迭代运算;
(6)对于F函数的W输出,对每1轮的X0加掩码防护得到已知通过转化函数g(x,y)可得已知和(-m2),通过转化函数h(x,y)可得 加上R2+m2可得获得正确的W输出,转化函数为h(x,y)定义为:
上述步骤(3)中,加法运算转化成异或运算g(x,y)的原理为,已知A=x+r,A、r为已知值,x不能参与运算,求即输入(A,r),求输出X=g(A,r)算法如下:已知对于可得其中,K为32,中间迭代序列tK-1满足:
从而可得即将加法掩码转化成异或掩码,其具体算法步骤为:
上述步骤(6)中异或(布尔)运算转化成加法(算术)运算h(x,y)的原理为:已知X、r为已知值,x不能参与运算,求A=x+r,即输入(X,r),求输出A=h(X,r)的算法如下:已知对于可得即将加法掩码转化成异或掩码,具体算法步骤如下:
本申请的技术方案设计的掩码防护方法运算中每个节点所带的掩码值均不相同,每轮S盒输出的掩码值也不相同,可抵抗汉明重量和汉明距离的一阶分析,此外,二阶分析也无法找到任何可利用的泄漏点。其优点在于:(1)针对现有对ZUC算法的侧信道分析,创新地提出了对ZUC算法的抗侧信道掩码防护方法,使用本发明提出的新方法能够更有效、全面地抵抗侧信道分析;(2)对于ZUC算法的软硬件实现,采用该掩码防护方法,算法中无任何信息泄漏点,可以抵抗一阶侧信道分析;(3)采用该掩码防护方法,算法中无任何两个相关的信息点,可以抵抗二阶侧信道分析;(4)该掩码防护方法中的S盒掩码方案可有效地提高效率。
附图说明
图1是祖冲之算法逻辑层次结构图;
图2是S0盒结构构建示意图;
图3是对轮输出为算术掩码的ZUC序列密码算法掩码防护原理图;
图4是ZUC算法的初始化能量迹;
图5是ZUC算法初始化运算滤波对齐后的能量迹;
图6是另一检验中仿真得到的ZUC算法能量迹;;
具体实施方式
下面对本发明的技术方案进行具体描述,以智能卡芯片为载体,利用本申请的技术方案实现ZUC算法的掩码防护功能。这里,选择掩码的轮数N=5。具体步骤如下所示,参见图3:
(1)对于初始化前5轮,选取4个32比特随机数m1、m2、m3、m4,其中m1=(c0,c1,c2,c3),m2=(d0,d1,d2,d3);
(2)将第1轮的R1、R2分别与m1、m2相加,得到带掩码输入R1+m1、R2+m2;若是第r(r∈{1,…,N-1})轮的R1、R2输入,由于前1轮S盒输出带有掩码防护为R1+m1、R2+m2,无需再加上掩码值;
(3)对于前N轮中每1轮的输入X1,加上掩码防护转化成X1-m1+m3;对前N轮中每1轮的输入X2,加上掩码防护转化成
(4)R1+m1加上X1-m1+m3得到R1+X1+m3=W1+m3;R2+m2加上得到
(5)已知W1+m3、m3,将加法运算W1+m3通过函数g(W1+m3,m3)运算转换成已知的值,将加法运算通过函数运算转换成
(6)经过16位移位后,左右两边分别为
(7)L1线性运算后,左边转化成L2线性运算后,右边转化成其中,L1(m3,L||m4,H)=(a0,a1,a2,a3),L2(m4,L||m3,H)=(b0,b1,b2,b3);
(8)进行SL'运算,共包括4个S盒,SL'=(S'L,0,S'L,1,S'L,2,S'L,3),其中,同理,进行SR'运算,共包括4个S盒,SR'=(S'R,0,S'R,1,S'R,2,S'R,3),其中, 从而得到新1轮的R1+m1、R2+m2,依次进行5轮迭代运算;
(9)对于F函数的W输出,对每1轮的X0加掩码防护得到已知的值,通过转换成异或已知和(-m2)的值,通过函数运算转换成加法运算得 加上R2+m2即可得到获得正确的W输出。
为检验上述掩码防护方法,用能量分析方法进行攻击,检测攻击结果。采集智能卡芯片进行ZUC算法运算中的能耗曲线,这里以S盒具体实验步骤如下所示:采集本方法的带掩码防护方法的ZUC算法软件卡初始化阶段的能量迹,如图4所示,为采集到的能量迹数据,其中初始输入的密钥值为:对图4的能量迹进行低通滤波并对齐,得到图5结果。选择前5轮的能量迹部分,连续分析前5轮,选择S盒输出的汉明重量模型,以获得k5、k6、k7、k8、k9、k10、k11、k12、k13的值。CPA分析结果如下表1所示,分别罗列了前4个最大相关系数对应的密钥猜测值及采样时间点位置,从表1的结果可知无法获得正确的密钥值。
表1:本申请的带掩码防护方法的ZUC算法通过CPA分析结果
利用二阶能量分析进一步检验本申请方案的掩码防护有效性,如下:采集智能卡芯片进行ZUC算法运算中的能耗曲线,对其进行二阶的能量分析,选择相邻轮S盒输出之间的减法作为攻击点,预处理方法采用了归一化、减法绝对值方法。对于掩码防护方法中,第r(r=0,1,…,4)轮的左右S盒输出分别为Rr,1+m1、Rr,2+m2,第r+1轮的左右S盒输出分别为Rr+1,1+m1、Rr+1,2+m2,其中,m1、m2为32比特的掩码,r依次0,1,2,3,4,R0,1=R0,2=0。将前后轮的输出进行减法运算,消去掩码m1、m2,得到攻击点分别为Rr+1,1-Rr,1、Rr+1,2-Rr,2,对于第r+1轮分析,前1轮Rr,1、Rr,2为已知,从而仅需猜测Rr+1,1、Rr+1,2中的密钥值,使用DPA/CPA分析获取最优猜测密钥。前5轮分析的时间复杂度为9×28。具体实验步骤如下所示:1)在无噪声条件下,仿真出掩码方案的能量迹,每轮S盒输出带有相同的加法掩码,如图6所示,框中为初始化前5轮,前后Rr,1、Rr+1,1、Rr,2、Rr+1,2之间带有相同掩码,其中,初始输入的密钥值为2)依次分析前5轮,选择攻击点为前后轮S盒输出的减法值。分析当前轮时,采用最强攻击条件,假设前几轮密钥是已知正确的,选择S盒相邻轮减法的汉明重量模型进行CPA/DPA分析,以获得k5、k6、k7、k8、k9、k10、k11、k12、k13的值。预处理方法为归一化的分析结果如表2所示,当相关系数与最大相关系数比率值最小,其相关系数最大值对应的密钥猜测值为正确密钥。由表2可知,在已知前几轮正确密钥的前提下,通过二阶分析无法获取正确密钥。
表2:本申请的带掩码防护方法的ZUC算法通过二阶CPA分析结果
增加能量迹条数为30000条,分别用3种预处理方式,即归一化、减法绝对值及乘法分析第1轮,结果如表3,同样三种方法均无法获取正确密钥。
表3:能量迹条数为30000条分别用3种预处理方式的分析结果
上述技术方案仅体现了本发明技术方案的优选技术方案,本技术领域的技术人员对其中某些部分所可能做出的一些变动均体现了本发明的原理,属于本发明的保护范围之内。

Claims (3)

1.一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法,其特征在于,该方法包括如下步骤:
(1)选择需要掩码的轮数,初始化前N轮,1≤N≤32,r∈{0,1,…,N-1}为当前轮数,选择4个32比特随机掩码m1、m2、m3、m4,令m1=(c0,c1,c2,c3),m2=(d0,d1,d2,d3),ci、di(i=0,1,2,3)分别为8位随机数,第1轮F函数的输入R1、R2分别与m1、m2相加,得到带掩码输入R1+m1、R2+m2;若是第r(r∈{1,…,N-1})轮F函数输入R1、R2,由于前1轮S盒输出带有掩码防护为R1+m1、R2+m2,无需再加上掩码值;
(2)对于前N轮中每1轮的输入X1和X2分别加上掩码防护转化成X1-m1+m3其中Xi(0≤i≤3)为ZUC算法LFSR寄存器单元中抽取比特组成的32比特字;
(3)R1+m1加上X1-m1+m3得到R1+X1+m3=W1+m3;R2+m2加上得到其中W1=X1+R1;已知W1+m3、m3,代入转化函数g(x,y)可转成异或运算已知代入转化函数为g(x,y)转成异或运算其中转化函数g(x,y)定义为:
(4)左右两边经过16位移位后,分别为其中mi,H、mi,L(i=3,4)分别为mi的高/低16比特值,Wi,H、Wi,L(i=1,2)分别为Wi的高/低16比特值;再对应分别进行L1线性运算,左边转化成L2线性运算后,右边转化成令L1(m3,L||m4,H)=(a0,a1,a2,a3),L2(m4,L||m3,H)=(b0,b1,b2,b3),ai、bi(i=0,1,2,3)分别为8位随机数;
(5)进行S盒掩码运算,左边32位S盒SL'共包括4个8位小S盒S'L,0、S'L,1、S'L,2、S'L,3,即SL'=(S'L,0,S'L,1,S'L,2,S'L,3),其中,i∈{0,1,2,3},“+”为32位加法运算,右边32位S盒SR'共包括4个8位小S盒S'R,0、S'R,1、S'R,2、S'R,3,SR'=(S'R,0,S'R,1,S'R,2,S'R,3),其中, 运算后得到新1轮的R1+m1、R2+m2,依次进行N轮迭代运算;
(6)对于F函数的W输出,对每1轮的X0加掩码防护得到已知通过转化函数g(x,y)可得已知和(-m2),通过转化函数h(x,y)可得 加上R2+m2可得获得正确的W输出,转化函数为h(x,y)定义为:
2.根据权利要求1所述的轮输出为算术 掩码的ZUC序列密码算法掩码防护方法,其特征在于,步骤(3)中,加法运算转化成异或运算g(x,y)的原理为,已知A=x+r,A、r为已知值,x不能参与运算,求即输入(A,r),求输出X=g(A,r)算法如下:已知对于 可得其中,K为32,中间迭代序列tK-1满足:
从而可得即将加法掩码转化成异或掩码,其具体算法步骤为:
T=2γ
Ω=γ&X
γ=γ&r1
for k=1 to K-1 do
γ=T&r1
T=T&A
T=2γ
end for
3.根据权利要求1所述轮输出为算术掩码的ZUC序列密码算法掩码防护方法,其特征在于,步骤(6)中异或(布尔)运算转化成加法(算术)运算h(x,y)的原理为:已知X、r为已知值,x为掩码防护所保护的关键中间值,x不能参与运算,求A=x+r,即输入(X,r),求输出A=h(X,r)的算法如下:已知对于 可得即将加法掩码转化成异或掩码,具体算法步骤如下:
T=T-γ
A=A-γ
A=A+(r<<1)
CN201510221467.3A 2015-05-05 2015-05-05 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法 Active CN104967509B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510221467.3A CN104967509B (zh) 2015-05-05 2015-05-05 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510221467.3A CN104967509B (zh) 2015-05-05 2015-05-05 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法

Publications (2)

Publication Number Publication Date
CN104967509A CN104967509A (zh) 2015-10-07
CN104967509B true CN104967509B (zh) 2018-05-18

Family

ID=54221458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510221467.3A Active CN104967509B (zh) 2015-05-05 2015-05-05 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法

Country Status (1)

Country Link
CN (1) CN104967509B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604987B (zh) * 2016-03-03 2022-03-29 密码研究公司 将布尔掩码值转换为用于加密操作的算术掩码值
CN107547189A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
CN106656465B (zh) * 2016-12-08 2019-09-06 上海爱信诺航芯电子科技有限公司 一种抵御能量分析攻击的加法掩码硬件实现方法及电路
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路
EP3874364A4 (en) * 2018-10-29 2022-08-03 Cryptography Research, Inc. TIME CONSTANT SAFE CONVERSION FROM ARITHMETIC TO BOOLEAN MASK

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138917A (zh) * 2013-01-25 2013-06-05 国家密码管理局商用密码检测中心 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用
CN103227717A (zh) * 2013-01-25 2013-07-31 国家密码管理局商用密码检测中心 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用
CN104202145A (zh) * 2014-09-04 2014-12-10 成都信息工程学院 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9379887B2 (en) * 2012-09-14 2016-06-28 Qualcomm Incorporated Efficient cryptographic key stream generation using optimized S-box configurations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138917A (zh) * 2013-01-25 2013-06-05 国家密码管理局商用密码检测中心 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用
CN103227717A (zh) * 2013-01-25 2013-07-31 国家密码管理局商用密码检测中心 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用
CN104202145A (zh) * 2014-09-04 2014-12-10 成都信息工程学院 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
祖冲之序列密码算法IP核的设计与实现;江丽娜,高能,马原;《第27次全国计算机安全学术交流会》;20120831;219-222 *

Also Published As

Publication number Publication date
CN104967509A (zh) 2015-10-07

Similar Documents

Publication Publication Date Title
CN104852795B (zh) 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法
CN104967509B (zh) 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法
CN106788974A (zh) 掩码s盒、分组密钥计算单元、装置及对应的构造方法
Groß et al. Domain-oriented masking: Compact masked hardware implementations with arbitrary protection order
CN103825722B (zh) 一种sm4密码算法的二阶侧信道能量分析方法
CN103647637B (zh) 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法
KR101026439B1 (ko) Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법
CN103138917A (zh) 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用
CN103457719A (zh) 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN104283669B (zh) 全同态加密中重加密深度优化方法
CN104333447A (zh) 一种可抵御能量分析攻击的sm4方法
CN104796250B (zh) 针对RSA密码算法M-ary实现的侧信道攻击方法
Masoumi et al. Novel approach to protect advanced encryption standard algorithm implementation against differential electromagnetic and power analysis
CN102752103A (zh) 一种抗des功耗攻击的增强型mask掩码方法
Duan et al. Differential power analysis attack and efficient countermeasures on PRESENT
CN104811297B (zh) 针对RSA之M-ary实现模乘余数输入侧信道攻击
CN104811295A (zh) 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法
CN106656465B (zh) 一种抵御能量分析攻击的加法掩码硬件实现方法及电路
CN111931176B (zh) 防御侧信道攻击的方法、装置及可读存储介质
CN109936437B (zh) 一种基于d+1阶掩码的抗功耗攻击方法
Luo et al. Cryptanalysis of a chaotic block cryptographic system against template attacks
CN103888245A (zh) 一种智能卡的s盒随机化方法和系统
Oder Efficient and side-channel resistant implementation of lattice-based cryptography
CN108173642A (zh) 一种抗高阶差分功耗攻击的aes硬件实现方法
Unger et al. TVLA, Correlation Power Analysis and Side-Channel Leakage Assessment Metrics

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant