一种标准密文输出格式的商密SM4算法的白盒软件实现方法技术

技术编号:16042302 阅读:480 留言:0更新日期:2017-08-20 00:38
本发明专利技术提供了一种标准密文输出格式的商密SM4算法的白盒软件实现方法。本发明专利技术中,需要进行36轮运算,每轮运算将分为三层,每一层利用输入或者输出变换进行混淆,层与层之间的输入输出变换部分抵消,含有密钥的那一层运算通过查找表来实现,密钥不显式的出现在算法中,且无法通过分析中间数据获取密钥。本发明专利技术设计的SM4白盒算法将密钥隐藏在查找表中,且利用线性变换对查找表进行混淆,采用线性变换的复合来抵抗查找表的合并分析,达到有效保护密钥的目的。

【技术实现步骤摘要】
一种标准密文输出格式的商密SM4算法的白盒软件实现方法
本专利技术涉及信息安全
,特别是涉及一种标准密文输出格式的商密SM4算法的白盒软件实现方法。
技术介绍
随着网络和计算机技术应用的快速发展,信息安全问题已经成为关乎国计民生的大事。传统密码学建立在黑盒模型下,该模型假设算法运行在一个可信的终端,其运行子结果、内存等均处在不可查看和不可更改的可信任环境中。然而,密码学的应用已经遍及到人们日常生活的各个角落,例如电子邮件、网页访问、数字内容分发、网络交易、电子政务等。这些应用虽然在一个标准的终端上执行,像手机、智能卡等,但却使用在一个不可信任的环境中,软件加解密的动态过程对于攻击者是可见的,他们很容易就获得密钥信息。传统的黑盒模型较少考虑这些问题,它已经不再满足越来越高的安全要求。SM4算法是国家商用密码管理局制定的商用分组密码标准,主要用于无线局域网产品,其运行环境往往是不安全的。为了保护无线局域网产品中的密钥安全,设计能够抵抗白盒攻击的SM4算法是十分必要的。2002年,Chow等人提出了白盒攻击环境的概念,允许攻击者对加密软件及其运行环境拥有完全的控制能力、与软件的执行者拥有同等的权利。白盒攻击环境颠覆了传统密码学对攻击者能力的诸多限制,更加符合实际生活中的安全威胁。我们将能够抵抗白盒攻击的密码算法及其实现称为白盒密码。随后,Chow等人提出了AES白盒算法和DES白盒算法。不久,Jacob、Wyseur、Goubin、Billet等人采用注入错误攻击、截断差分分析、合并查找表等技术对AES白盒算法和DES白盒算法进行攻击,证明了Chow等人提出的白盒算法是不安全的。虽然白盒密码算法一直是学术界讨论的热点,但却一直未有安全的白盒密码算法出现。综上,目前并没有安全的SM4白盒算法被提出,这不利于保护无线局域网产品的密钥安全,产品中的密码模块存在着巨大的安全风险。
技术实现思路
为解决上述问题,本专利技术提供了一种标准密文输出格式的商密SM4算法的白盒软件实现方法,包括如下步骤:步骤一:产生一组128bit的字符串作为根密钥。步骤二:将128bit的根密钥按照标准SM4密钥扩展算法扩展为32个32bit的轮密钥,设为rk0,rk1,...,rk31,分别用于第1轮到第32轮的计算,第33、34、35、36轮计算的密钥分别为r28,r29,r30,r31。步骤三:随机生成420个8×8的可逆矩阵,分别记为Mi,i=1,...,420。步骤四:定义四类矩阵,分别为P、Ei、Qj、Rk。令:P=diag(P11,P12,P13,P14),Ei=diag(Ei1,Ei2,Ei3,Ei4);Qi=diag(Qj1,Qj2,Qj3,Qj4);Rk=diag(Rk1,Rk2,Rk3,Rk4);其中P11=M1,P12=M2,P13=M3,P14=M4,Eil=M4(i+1)+l,Qj1=M4(j+37)+l,Rkl=M4(k+73)+l,i=1,...,36,j=1,...,36,k=1,...,32,l=1,...,4。步骤五:产生复合线性变化Ai,j,i=1,...,36,j=1,2,3。步骤六:构造第一个查找表,具体方法为:步骤6.1:设在第i轮计算中,第一个查找表的输入为yi=(yi1,yi2,yi3,yi4)T。第一个查找表的构建方法如下:首先,yi经过线性变换作用,输出为:其中步骤6.2:将本轮计算的密钥rki隐藏在S盒中,设经过S盒作用后的输出为:步骤6.3:计算Qi*P*L*(zi1,zi2,zi3,zi4)T。记Hi=QiPL=(Hi1Hi2Hi3Hi4),Hij为32*8的矩阵,则:据上,可获得4个8bit到32bit的查找表:yij(→zij)→vij,j=1,2,3,4。第一个查找表其中Hi=QiPL=(Hi1Hi2Hi3Hi4),Hij为32*8的矩阵,i=1,...36,j=1,...,4。步骤七:构造第二个查找表,具体方法为:设在第i轮中,第二个查找表的输入为si=(si1,si2,si3,si4)和ti=(ti1,ti2,ti3,ti4)。对于第1轮到第4轮计算,第二个查找表的构建方法如下:步骤7.1:计算RiP(si)和RiP(si)=(Ri,1P1,1si,1,Ri,2P1,2si,2,Ri,3P1,3si,3,Ri,4P1,4si,4);步骤7.2:计算对于第5轮到第32轮,第二个查找表的构建方法如下:步骤7.1:计算和步骤7.2:计算对于第33轮到第36轮,第二个查找表的构建方法如下:步骤7.1:计算和步骤7.2:计算据上,得到第二个查找表的构造为步骤八:设明文输入为(x0,x1,x2,x3),经过36轮运算,最后输出的密文为(x39,x38,x37,x36),每一轮根据已经建立的复合线性变化Ai,j,第一个查找表及第二个查找表按如下步骤进行加密运算:设第i轮的输入为(xi-1,xi,xi+1,xi+2),其中xi-1,xi,xi+1,xi+2都为32bit。步骤8.1:利用复合线性变换Ai,1,Ai,2,Ai,3分别左乘xi,xi+1,xi+2,然后将结果进行异或,即:步骤8.2:计算yi=(yi1,yi2,yi3,yi4)T经过查找表一变换后的结果,即:步骤8.3:计算si=xi-1=(si1,si2,si3,si4)T和ti=(ti1,ti2,ti3,ti4)T经过查找表二变换后的结果,即:经过上述3步变换后,第i轮的输出xi+3=(xi+3,1,xi+3,2,xi+3,3,xi+4,4)。进一步的,步骤一中是利用随机数发生器产生根密钥。进一步的,步骤二中是利用标准SM4算法的密钥扩展算法将128bit的根密钥扩展32个32bit的密钥。本专利技术的有益效果为:1.安全性:本专利技术设计的SM4白盒算法将密钥隐藏在查找表中,且利用线性变换对查找表进行混淆,采用线性变换的复合来抵抗查找表的合并分析,到达有效保护密钥的目的。2.效率高:原始SM4算法有大量矩阵乘法运算,而本专利技术设计的SM4白盒算法实现时主要采用查找表和异或运算,及少量的矩阵乘法运算,在执行效率上优于标准SM4算法。3.通用性强:本专利技术设计的SM4白盒算法和标准的SM4算法拥有相同的密文输出格式,故任何经过标准SM4加密后的数据可以直接使用本专利技术所设计的SM4白盒算法进行解密,或任何经过本专利技术所设计的SM4白盒算法进行加密后的数据可以直接使用标准SM4算法进行解密。附图说明图1为第i+1轮计算的实现加解密过程简略图,i=0,…,35。具体实施方式本专利技术的设计构思是:将算法的每一轮分为三层,每一层利用输入或者输出变换进行混淆,层与层之间的输入输出变换部分抵消,含有密钥的那一层运算通过查找表来实现,密钥不显式的出现在算法中,且无法通过分析中间数据获取密钥。为了保证算法的输出为标准密文格式,同时保护算法初始轮和末轮密钥的安全性,我们在第一轮加入混淆矩阵P。然而,由于S盒非线性变换在经过异或、移位等线性操作之后将无法恢复,故在该矩阵经过S盒之前一定要将其先抵消,经过S盒之后再加入。本专利技术包括如下步骤:步骤一:产生一组128bit的字符串作为根密钥。优选的,采用随机数发生器产生一组128bit的字符串作为根密钥Key本文档来自技高网
...
一种标准密文输出格式的商密SM4算法的白盒软件实现方法

【技术保护点】
一种基于余数系统的商密SM2加密算法的白盒软件实现方法,其特征在于,包括如下步骤:步骤一:选取一个余数系统,该余数系统的余数基为β=(p1,p2,...,pt),基β的动态范围满足ω=p1p2p3…pt≤2

【技术特征摘要】
1.一种基于余数系统的商密SM2加密算法的白盒软件实现方法,其特征在于,包括如下步骤:步骤一:选取一个余数系统,该余数系统的余数基为β=(p1,p2,...,pt),基β的动态范围满足ω=p1p2p3…pt≤2512;预先生成客户端私钥dA,将dA在β这组基下表示为dA=(dA,1,dA,2,...,dA,t),其中dA,i=dAmodpi,i=1,...,t;预先确定密文信息C,所述C=C1||C2||C3,客户端和云服务器端预先确定β与dA作为椭圆曲线系统参数、确定椭圆曲线的基点G,其阶数为n;步骤二:从密文C中提取出C1;验证C1是否为椭圆曲线上的非无穷远点,如果是的话则将C1发送给云服务器端,否则跳出本流程;步骤三:云服务器端产生一个随机数k,且k∈[1,n-1];步骤四:云服务器端计算椭圆曲线上的点P,P=[k]*C1;步骤五:云服务器端计算k模n的逆k-1,即:k*k-1=1modn;将k-1在β这组基下表示为其中i=1、2...

【专利技术属性】
技术研发人员:周洁白健刘尚麟安红章
申请(专利权)人:中国电子科技集团公司第三十研究所
类型:发明
国别省市:四川,51

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

1