一种基于SM4算法的安全高效的白盒实现方法及装置制造方法及图纸

技术编号:18429543 阅读:97 留言:0更新日期:2018-07-12 02:46
本发明专利技术公开一种基于SM4算法的安全高效的白盒实现方法,包括:使服务端和终端共享n个32比特随机数;在服务端生成随机密钥;在服务端构造解密查找表,并将解密查找表发送给终端;根据随机密钥及标准SM4算法对服务端的每块数据进行加密,获得加密数据;在服务端对加密数据进行编码,得到编码数据,并将所述编码数据发送给终端;在终端对编码数据进行解密,得到所述编码数据的明文;在终端对明文进行解码,并将解码后的数据传送给应用软硬件。本方法只需要在终端对n个32比特随机数进行保护,白盒解密查找表生成效率高,终端所需储存空间低,在安全高效的同时可以降低成本。

【技术实现步骤摘要】
一种基于SM4算法的安全高效的白盒实现方法及装置
本专利技术涉及信息安全
,具体涉及一种基于SM4算法的安全高效的白盒实现方法及装置。
技术介绍
随着软件、硬件、网络等技术的发展,越来越多的软件发布到个人计算机、平板电脑、手机等计算终端运行,各种应用层出不穷,如电子邮件、数字媒体播放器、数字内容阅读器等等。然而,这些应用软件往往运行在不可信的计算终端,恶意用户可以通过合法购买或攻击破解等方式控制这个终端,并利用各种逆向工程技术、工具来控制终端上软件执行的整个过程,包括获取所有的中间计算结果、设置程序断点等。在这种不可信的计算终端中,恶意用户可以很容易地非法获取软件中密码模块的密钥,并通过非法传播这些密钥来获利。由于终端所要保护的信息较多,现有的白盒SM4方案要么运算效率低,要么所需储存空间大,难以满足实际应用需求,因此,如何高效可靠保护终端密钥,避免攻击者非法获取密钥并传播获利是当前急需解决的问题。
技术实现思路
有鉴于此,本申请提供一种基于SM4算法的安全高效的白盒实现方法,本方法只需要在终端对随机数进行保护,白盒解密查找表生成效率高,终端所需储存空间低,在安全高效的同时可以降低成本。本专利技术通过以下技术方案实现:一种基于SM4算法的安全高效的白盒实现方法,包括:使服务端和终端共享n个32比特随机数Δ0,Δ1,…,Δn,其中,n≤35;在服务端生成128比特随机密钥;根据所述随机密钥和Δ0,Δ1,…,Δn,在服务端构造解密查找表,并将所述解密查找表发送给终端;计算随机数并将Δ′0,Δ′1,…,Δ′31发送给终端,其中Δi=Δimodn,imodn表示i除以n求余数,r=1,2,…,32;根据所述随机密钥及标准SM4算法对服务端的每块数据(X0,X1,X2,X3)进行加密,获得加密数据(X35,X34,X33,X32);在服务端利用Δ35,Δ34,Δ33,Δ32对所述加密数据(X35,X34,X33,X32)进行编码,得到编码后的密文数据(X′35,X′34X′33,X′32),并将所述编码数据(X′35,X′34,X′33,X'32)发送给终端,其中,在终端利用接收到的所述解密查找表和计算出的随机数Δ'32-r对接收到的所述编码数据(X′35,X′34,X′33,X′32)进行解密,得到所述编码数据(X′35,X′34,X′33,X′32)的明文(X′0,X′1,X′2,X′3);在终端对所述明文(X′0,X′1,X′2,X′3)进行解码,并将解码后的数据传送给应用软硬件。进一步地,在服务端构造的解密查找表的数量为128个。进一步地,所述解密查找表为8进32出解密查找表。进一步地,所述在服务端构造解密查找表具体包括:利用所述随机密钥,根据SM4密钥扩展算法得到32轮轮密钥K1,K2,…,K32;根据公式(I)遍历输入x,得到输出值y并储存构成解密查找表Tabler,j其中,r=1,2,…,32;j=0,1,2,3;L=L0||L1||L2||L3;Kr=Kr,0||Kr,1||Kr,2||Kr,3;Δr=Δr,0||Δr,1||Δr,2||Δr,3;表示函数复合,即将函数S的输出结果作为函数Lj的输入值;L为SM4轮函数中的线性变换矩阵,Lj为L的32×8分块矩阵,S(x)表示对输入x进行S盒查表操作,输出y为8×1向量,Kr,j为Kr的8比特分量,Δr,j为Δr的8比特分量,||是连接符号。进一步地,所述在终端利用接收到的所述解密查找表对接收到的所述编码数据(X′35,X′34,X′33,X′32)进行解密,得到所述编码数据(X′35,X′34,X′33,X′32)的明文(X′0,X′1,X′2,X'3)具体包括:输入所述编码后的密文数据(X'35,X′34,X′33,X′32);根据公式(II),计算Yr其中,r=1,2,…,32;Yr=Yr,0||Yr,1||Yr,2||Yr,3;Yr,j为Yr的8比特分量,j=0,1,2,3;根据所述解密查找表,对Yr,j进行查找,并将所得的4个结果及Δ′32-r相加得到X′32-r;经32轮运算后,将最后一轮的内部状态(X′3,X′2,X′1,X′0)逆序得被编码的明文(X′0,X′1,X′2,X′3)。进一步地,在终端对所述明文(X′0,X′1,X′2,X'3)进行解码具体为:在终端的安全区域对所述明文(X′0,X′1,X′2,X′3)进行解码得到明文(X0,X1,X2,X3)。一种装置,所述装置采用上述方法进行安全通信,包括服务端和终端,所述服务端包括:比特随机数据生成模块:用于提供比特随机数据供所述服务端和终端共享;随机密钥生成器:用于生成随机密钥,并将随机密钥提供给解密查找表构造器和SM4加密算法模块;解密查找表构造器:用于根据随机密钥生成器生成的随机密钥构造解密查找表,并将解密查找表传送给终端;数据块模块:用于为SM4加密算法模块提供待加密数据;SM4加密算法模块:用于根据随机密钥生成器生成的随机密钥对数据块模块提供的待加密数据进行加密,并将加密数据传送给编码器;编码器:利用比特随机数据生成模块提供的比特随机数据对接收到的加密数据进行编码,并将编码数据传送给终端;所述终端包括:SM4解密算法模块:根据从服务端接收到的解密查找表对服务端传送的编码数据进行解密,并将解密数据传送给解码器;解码器:利用比特随机数据生成模块提供的比特随机数据对接收到的解密数据进行解码,并将解码数据传送给数据应用模块;数据应用模块:用于接收解码器传送的解码数据并储存。进一步地,所述解密查找表构造器每次构造128个解密查找表。进一步地,所述解密查找表构造器构造的解密查找表为8进32出解密查找表。进一步地,所述终端还设置有安全区域模块,所述安全区域模块为所述解码器提供安全解码区域。本专利技术通过使服务端和终端共享比特随机数,使得终端攻击者在完全监控白盒解密算法的情况下,还必须搜索大量空间才能获得随机密钥,从而大大提高了随机密钥的安全性,使得本专利技术在实际应用中具有足够的安全强度;其次,本专利技术所需的终端解密算法储存空间低,只需要在终端保护n个32比特随机数据,解密查找表只需128KB,远远优于现有技术方案;另外,本专利技术生成的解密查找表效率高,不需要生成可逆矩阵,更不需要对矩阵求逆,提高了生成效率。附图说明图1为本专利技术实施例1提供的方法流程图。图2为本专利技术实施例3提供的装置结构框图。具体实施方式为了使本领域的技术人员更好地理解本专利技术的技术方案,下面结合附图和具体实施例对本专利技术作进一步的详细说明。实施例1如图1所示,本实施例提供一种基于SM4算法的安全高效的白盒实现方法,包括:步骤S1:使服务端和终端共享n个32比特随机数Δ0,Δ1,…,Δn,其中,n≤35;步骤S2:在服务端生成128比特随机密钥;步骤S3:根据所述随机密钥和Δ0,Δ1,…,Δn,在服务端构造解密查找表,并将所述解密查找表发送给终端;步骤S4:计算随机数并将Δ′0,Δ′1,…,Δ′31发送给终端,其中Δi=Δimodn,imodn表示i除以n求余数,r=1,2,…,32;步骤S5:根据所述随机密钥及标准SM4算法对服务端的每块数据(X0,X1,X2,X3)进行加密,获得加密数据(X35,X34,X33,X32)本文档来自技高网...

【技术保护点】
1.一种基于SM4算法的安全高效的白盒实现方法,其特征在于,包括:使服务端和终端共享n个32比特随机数Δ0,Δ1,…,Δn,其中n≤35;同时在服务端生成128比特随机密钥;根据所述随机密钥和Δ0,Δ1,…,Δn,在服务端构造解密查找表,并将所述解密查找表发送给终端;计算随机数

【技术特征摘要】
1.一种基于SM4算法的安全高效的白盒实现方法,其特征在于,包括:使服务端和终端共享n个32比特随机数Δ0,Δ1,…,Δn,其中n≤35;同时在服务端生成128比特随机密钥;根据所述随机密钥和Δ0,Δ1,…,Δn,在服务端构造解密查找表,并将所述解密查找表发送给终端;计算随机数并将Δ′0,Δ′1,…,Δ′31发送给终端,其中Δi=Δimodn,imodn表示i除以n求余数,r=1,2,…,32;根据所述随机密钥及标准SM4算法对服务端的每块数据(X0,X1,X2,X3)进行加密,获得加密数据(X35,X34,X33,X32);在服务端利用Δ35,Δ34,Δ33,Δ32对所述加密数据(X35,X34,X33,X32)进行编码,得到编码后的密文数据(X'35,X′34X'33,X′32),并将所述编码数据(X′35,X′34,X′33,X′32)发送给终端,其中,i=32,33,34,35;在终端利用接收到的所述解密查找表和计算出的随机数Δ′32-r对接收到的所述编码数据(X′35,X′34,X′33,X′32)进行解密,得到所述编码数据(X′35,X′34,X′33,X′32)的明文(X′0,X′1,X′2,X′3);在终端对所述明文(X′0,X′1,X′2,X′3)进行解码,并将解码后的数据传送给应用软硬件。2.根据权利要求1所述的一种基于SM4算法的安全高效的白盒实现方法,其特征在于,在服务端构造的解密查找表的数量为128个。3.根据权利要求1或2所述的一种基于SM4算法的安全高效的白盒实现方法,其特征在于,所述解密查找表为8进32出解密查找表。4.根据权利要求1所述的一种基于SM4算法的安全高效的白盒实现方法,其特征在于,所述在服务端构造解密查找表具体包括:利用所述随机密钥,根据SM4密钥扩展算法得到32轮轮密钥K1,K2,…,K32;根据公式(I)遍历输入x,得到输出值y并储存构成解密查找表Tabler,j其中,r=1,2,…,32;j=0,1,2,3;L=L0||L1||L2||L3;Kr=Kr,0||Kr,1||Kr,2||Kr,3;Δr=Δr,0||Δr,1||Δr,2||Δr,3;表示函数复合,即将函数S的输出结果作为函数Lj的输入值;L为SM4轮函数中的线性变换矩阵,Lj为L的32×8分块矩阵,S(x)表示对输入x进行S盒查表操作,输出y为8×1向量,Kr,j为Kr的8比特分量,Δr,j为Δr的8比特分量,||是连接符号。5.根据权利要求4所述的一种基于SM4算法的安全高效的白盒实现方法,其特征在...

【专利技术属性】
技术研发人员:潘文伦张立廷秦体红贾音
申请(专利权)人:成都卫士通信息产业股份有限公司
类型:发明
国别省市:四川,51

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

1