一种SMS4的S盒掩码方法技术

技术编号:17472314 阅读:129 留言:0更新日期:2018-03-15 08:31
本发明专利技术公开了一种SMS4的S盒掩码方法,其包含,设x为S盒的输入,为提高安全性加入随机掩码mask,所述的SMS4的S盒掩码方法包含以下步骤:S1、计算L1(mask),若为0,则重新选择掩码值mask直到L1(mask)的计算结果不为0;S2、计算data1=L1(x+mask)+c1;S3、对线性部分进行布尔掩码,对模逆部分I进行带假密钥的乘法掩码,计算I(data1)=I(L1(x)+L1(mask)),得到data2=I(L1(x))+L1(mask);S4、计算Sbox(x)=L1(data2)+L1(L1(mask))+c1。其优点是:可以实现SMS4的全掩码,并且比查表法所占面积较现有技术更小,而且也易于实现。

A S box mask method for SMS4

【技术实现步骤摘要】
一种SMS4的S盒掩码方法
本专利技术涉及一种SMS4的S盒掩码方法。
技术介绍
SMS4分组加密算法是中国无线标准中使用的分组加密算法,在2012年已经被国家商用密码管理局确定为国家密码行业标准。SMS4的S盒是整个SMS4的非线性环节,S盒保证了整个算法的安全性,目前,在标准算法文档中只给出了S盒的查找表,并没有给出S盒的代数表达式,但是,已经有相关论文分析出了S盒在GF(28)的代数表达式:Sbox(x)=L1(I(L1(x))),其中:L(x)=A1*x+c1;I为在GF(28)的模逆;不可约多项式为:f(x)=x8+x7+x6+x5+x4+x2+1。目前SMS4在S盒的实现上主要采用固定掩码方式,而固定掩码缺点是显而易见的:首先掩码值是固定的,因为一张表对应一个固定掩码值,所以采用全掩码方案时,查表法所占面积会很大。
技术实现思路
本专利技术的目的在于提供一种SMS4的S盒掩码方法,可以实现SMS4的全掩码,并且查表法所占面积较现有技术更小,而且也易于实现。为了达到上述目的,本专利技术通过以下技术方案实现:一种SMS4的S盒掩码方法,其特征是,设x为S盒的输入,为提高安全性加入随机掩码mask,所述的SMS4的S盒掩码方法包含以下步骤:S1、计算L1(mask),若为0,则重新选择掩码值mask直到L1(mask)的计算结果不为0;S2、计算data1=L1(x+mask)+c1;S3、对线性部分进行布尔掩码,对模逆部分I进行带假密钥的乘法掩码,计算I(data1)=I(L1(x)+L1(mask)),得到data2=I(L1(x))+L1(mask);S4、计算Sbox(x)=L1(data2)+L1(L1(mask))+c1。上述的SMS4的S盒掩码方法,其中,所述的步骤S3中通过乘法掩码与FKEY校验对于模逆部分I的掩码的过程具体包含:S30、设计算模逆输入为x+rand,输出为x-1+rand,rand=L1(mask),rand为输入时加入的布尔掩码;S31、计算(x+rand)×rand;S32、计算(x+rand)×rand+rand2=x×rand;S33、向后级电路传递x-1×rand-1;S34、计算x-1×rand-1+1;S35、计算(x-1×rand-1+1)×rand=x-1+rand。上述的SMS4的S盒掩码方法,其中:所述的步骤S33中向后级电路传递x-1×rand-1前还包含FKEY校验,具体的:判断x是否为0,如果不为0,运算x×rand的模逆值,并校验,如果校验出错,则报警;如果x为0,运算伪轮密钥FKEY的模逆值,并校验,如果校验出错,则报警。上述的SMS4的S盒掩码方法,其中:所述步骤S3中所运算的模逆通过有限域降域运算,从而降低硬件设计复杂度。上述的SMS4的S盒掩码方法,其中:所述的有限域降域运算是通过GF(28)转化为GF((24)2)上运算,再通过GF(24)转化为GF((22)2)上运算来实现的。上述的SMS4的S盒掩码方法,其中:所述S盒在GF(28)的代数表达式为:Sbox(x)=L1(I(L1(x))),其中:L(x)=A1*x+c1;I为在GF(28)的模逆;不可约多项式为:f(x)=x8+x7+x6+x5+x4+x2+1。本专利技术与现有技术相比具有以下优点:1、可以实现SMS4的全掩码,并且查表法所占面积较现有技术更小,而且也易于实现;2、本专利技术中的乘法掩码可以抵御零值攻击。附图说明图1为本专利技术的方法流程图;图2为本专利技术的方法中对模逆部分的掩码过程的流程图。具体实施方式以下结合附图,通过详细说明一个较佳的具体实施例,对本专利技术做进一步阐述。已知S盒在GF(28)的代数表达式为:Sbox(x)=L1(I(L1(x))),其中:L(x)=A1*x+c1;I(inversion)为在GF(28)的模逆;不可约多项式为:f(x)=x8+x7+x6+x5+x4+x2+1。从S盒的上述代数表达式来看,除模逆部分,其余S盒的都是线性部分,完全可以采取异或掩码。如图1所示,基于上述条件,本专利技术提出一种SMS4的S盒掩码方法,设x为S盒的输入,为提高安全性加入随机掩码mask,所述的SMS4的S盒掩码方法包含以下步骤:S1、计算L1(mask),若为0,则重新选择掩码值mask直到L1(mask)的计算结果不为0;S2、计算data1=L1(x+mask)+c1;S3、对线性部分进行布尔掩码,对模逆部分I进行带假密钥的乘法掩码,乘法掩码时同时可以进行FKEY校验,计算I(data1)=I(L1(x)+L1(mask)),得到data2=I(L1(x))+L1(mask);S4、计算Sbox(x)=L1(data2)+L1(L1(mask))+c1。如图2所示,所述的步骤S3中通过乘法掩码与FKEY校验对于模逆部分I的掩码的过程具体包含:S30、设计算模逆输入为x+rand,输出为x-1+rand,rand=L1(mask),rand(randomnumber随机数)为输入时加入的布尔掩码;S31、计算(x+rand)×rand;S32、计算(x+rand)×rand+rand2=x×rand;S33、向后级电路传递x-1×rand-1;在这之前,本实施例中还设置了校验过程以抵御零值攻击,可以通过判断x是否为0,如果不为0,运算x×rand的模逆值,并校验,如果校验出错,则报警;如果x为0,运算伪轮密钥FKEY(fakekey)的模逆值,并校验,如果校验出错,则报警;所述的校验方式可以采用计算2次来比较结果或者以正向算模逆得到结果再将模拟结果与此时的输入值模乘得1来进行校验等等;S34、计算x-1×rand-1+1;S35、计算(x-1×rand-1+1)×rand=x-1+rand。上述乘法掩码之所以可以抵御零值攻击,是因为当x=0时,rand为任何值其结果都为0,简单来讲,就是如果攻击者可以选择明文使x为0,那么可以根据明文来推取轮密钥,而加入伪轮密钥FKEY操作就可以避免攻击者在功耗分析上得到x为0的情况,而又由于伪轮密钥FKEY操作并不实际参与后级运算,那么为了防止攻击者通过注入故障(如果故障注入成功并且结果正确,那么就是伪轮密钥FKEY运算)来分析伪轮密钥FKEY运算,就要通过校验来抵御注入攻击分析。所述步骤S3中所运算的模逆是先通过GF(28)转化为GF((24)2)上运算,再通过GF(24)转化为GF((22)2)上运算,即通过有限域降域运算从而降低硬件设计复杂度。实施例以S盒的输入x=10101010b(0xaa),掩码值mask=01010101b(0x55)为例:计算L1(mask)=01111001b(0x79),此L1(mask)即为S30的rand,此步骤为计算S1计算data1=L1(x+mask)+c1=00101100b(0x2c),此步骤为计算S2;计算data1×L1(mask)=11111111b(0xff),此步骤为计算S31;计算(L1(mask))^2=01110010b(0x72);计算data1×L1(mask)+(L1(mask))^2=11011100b(0xdc),此步骤为计算S32;计算(data1×本文档来自技高网...
一种SMS4的S盒掩码方法

【技术保护点】
一种SMS4的S盒掩码方法,其特征在于,设x为S盒的输入,为提高安全性加入随机掩码mask,所述的SMS4的S盒掩码方法包含以下步骤:S1、计算L1(mask),若为0,则重新选择掩码值mask直到L1(mask)的计算结果不为0;S2、计算data1=L1(x+mask)+c1;S3、对线性部分进行布尔掩码,对模逆部分I进行带假密钥的乘法掩码,计算I(data1)=I(L1(x)+L1(mask)),得到data2=I(L1(x))+L1(mask);S4、计算Sbox(x)=L1(data2)+L1(L1(mask))+c1。

【技术特征摘要】
1.一种SMS4的S盒掩码方法,其特征在于,设x为S盒的输入,为提高安全性加入随机掩码mask,所述的SMS4的S盒掩码方法包含以下步骤:S1、计算L1(mask),若为0,则重新选择掩码值mask直到L1(mask)的计算结果不为0;S2、计算data1=L1(x+mask)+c1;S3、对线性部分进行布尔掩码,对模逆部分I进行带假密钥的乘法掩码,计算I(data1)=I(L1(x)+L1(mask)),得到data2=I(L1(x))+L1(mask);S4、计算Sbox(x)=L1(data2)+L1(L1(mask))+c1。2.如权利要求1所述的SMS4的S盒掩码方法,其特征在于,所述的步骤S3中:对模逆部分I进行掩码过程中还包含FKEY校验。3.如权利要求1所述的SMS4的S盒掩码方法,其特征在于,所述的步骤S3中通过乘法掩码与FKEY校验对于模逆部分I的掩码的过程具体包含:S30、设计算模逆输入为x+rand,输出为x-1+rand,rand=L1(mask),rand为输入时加入的布尔掩码;S31、计算(x+rand)×rand;S32、计算(x+rand)×rand+rand2=x×rand;S33、向后级电路传递x-1×rand-1;S34、计算x-1×rand-1+1;S35、计算(...

【专利技术属性】
技术研发人员:张宇
申请(专利权)人:聚辰半导体上海有限公司
类型:发明
国别省市:上海,31

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

1