一种国家密码标准算法SM4的安全白盒实现方法和装置制造方法及图纸

技术编号:13502452 阅读:71 留言:0更新日期:2016-08-09 23:48
本发明专利技术公开一种国家密码标准算法SM4的安全白盒实现方法和装置,可以在不可信的计算终端中有效地保护嵌入在密码软件中的密钥,并公开了该白盒SM4算法所需设备的必备组件,属于信息安全技术领域。本发明专利技术的白盒SM4密码算法是对中国商用分组密码标准SM4的安全实现,其原理是,将密钥嵌入到查找表中,并使用随机选取的仿射编码保护查找表,从而保护嵌入到查找表中的密钥。本算法使用TTC和TRT两种查找表,其中,由于将TTC查找表输出数据的最后一步异或操作嵌入到了TRT查找表中,而TRT查找表的输出数据又由新的32比特仿射编码保护,所以能够防止以组合查找表的方式抵消嵌入在查找表内部的32比特仿射编码,从而防止编码破解难度的降低,实现保护目的。

【技术实现步骤摘要】

本专利技术属于信息安全
,具体涉及计算终端密码系统的保护,尤其涉及数字产权系统中密码组件的防护。可用于防止恶意用户非法获取其控制的计算终端中运行的密码算法的密钥,防止恶意用户非法传播其非法获取的密钥并从中获利。
技术介绍
随着软件、硬件、网络等技术的发展,越来越多的软件发布到个人计算机、平板电脑、手机等计算终端运行,各种应用层出不穷,如电子邮件、数字媒体播放器、数字内容阅读器等等。然而,这些应用软件往往运行在不可信的计算终端,恶意用户可以通过合法购买或攻击破解等方式控制这个终端,并利用各种逆向工程技术、工具来控制终端上软件执行的整个过程,包括获取所有的中间计算结果、设置程序断点等。在这种不可信的计算终端中,恶意用户可以很容易地非法获取软件中密码模块的密钥,并通过非法传播这些密钥而获利。目前,很多服务提供商采用白盒密码技术来保护密码算法的密钥,防止密钥在恶意用户控制的不安全终端中被非法窃取。主流白盒密码技术着眼于设计密码算法的安全实现,通过将密钥嵌入到查找表中,并使用随机选取的编码对查找表进行保护,从而实现保护密钥的目的。目前,Irdeto公司提出了AES和DES的白盒实现方案,上海交通大学的来学嘉等人也提出了AES的白盒防护方案。然而,这些实现方案都有共同的弱点:虽然局部地破解单个查找表是非常困难的,但将一轮的查找表组合起来会大大地降低破解难度。这是因为,将查找表组合起来会抵消掉嵌入在查找表中的大的线性编码,从而降低了破解线性编码的难度。SM4是我国国家密码管理局公布的商用分组密码标准,在国内市场上得到广泛的应用,且不可避免地应用于各种恶意环境。因此,针对这些恶意环境对SM4密码算法的密钥进行保护是十分必要的。上海交通大学的来学嘉等人曾提出了SM4的白盒实现方案,但他们的方案仍不能避免上面分析的弱点。总之,目前多数白盒密码方案由于上面分析的弱点已被攻破,并且目前还没有SM4的安全白盒实现。这对SM4这种国家商用密码标准在国内市场的应用带来了不利的影响。
技术实现思路
针对SM4密码算法的上述需求,本专利技术提供了一种安全的白盒SM4实现方法和装置。本方法能够防止通过组合查找表来抵消大的线性编码,从而防止查找表编码破解难度的降低,达到防护目的。本专利技术的SM4密码算法的安全白盒实现方法中,白盒SM4加密算法与白盒SM4解密算法的结构完全相同,使用的查找表结构也是相同的,唯一的不同是使用密钥的顺序。下面介绍通用于白盒SM4加密和白盒SM4解密的查找表构造过程和对应的白盒密码算法。在本专利技术的SM4密码算法的安全白盒实现方法中,共使用两种查找表:TTC和TRT。其中,TTC查找表用于将本轮输入数据的32比特仿射编码转为4个8比特仿射编码(或一个新的32比特仿射编码),TRT查找表用于实现SM4算法的轮变换。TTC查找表的结构定义为其中:1.1≤r≤32是当前的轮数,0≤j≤3。2.ο是函数复合符号,||是连接符号,3.Lr+3是随机选取的32比特仿射变换Ar+3的线性部分。br+3,0,j和br+3,1,j是随机选取的32比特数值, b r + 3 = b r + 3 , 0 , 0 ⊕ ... ⊕ b r + 3 , 0 , 3 ⊕ b r + 3 , 1 , 0 ⊕ ... ⊕ b r + 3 , 1 , 3 ]]>是Ar+3的常数部分。4.同理,随机选取的32比特仿射变换是的第j个32×8子块,br+i-1,j是32比特数值, b r + i - 1 = b r + i - 1 , 0 ⊕ ... ⊕ b r + i - 1 , 3 . ]]>5.是随机选取的8比特仿射变换Ar,k,m的线性部分。cr,k,l,m是8比特数值,l=(i-1)×2+(jmod2),是Ar,k,m的常数部分。TRT查找表的结构定义为其中:1.kr是SM4密码算法第r轮的32比特轮密钥,kr,j是kr的第j个字节。2.S是SM4密码算法轮函数中的8比特S盒。3.M是SM4密码算法轮函数中的32比特线性变换,Mj是M的第j个32×8子块。本专利技术的白盒SM4密码算法共有32轮,每轮需要16个TTC查找表和4个TRT查找表。第r轮以4个32比特数值xr-1,xr,xr+1,xr+2作为输入,输出一个32比特数值xr+3,其计算步骤如下:1. s r , 0 ← TTC r , 1 , 0 ( x r , 0 ) ⊕ ... ⊕ TTC r , 3 , 本文档来自技高网
...

【技术保护点】
一种SM4密码算法的安全白盒实现方法,其特征在于,以128比特数据(x0,x1,x2,x3)作为输入,经过32轮变换后,以128比特数据(x35,x34,x33,x32)为输出,其中xi为32比特数据;所述32轮变换中,每轮需要16个TTC查找表和4个TRT查找表,其中TTC查找表用于将本轮输入数据的32比特仿射编码转为4个8比特仿射编码,TRT查找表用于实现SM4算法的轮变换;所述32轮变换中,第r(1≤r≤32)轮变换以4个32比特数值xr‑1,xr,xr+1,xr+2作为输入,输出一个32比特数值xr+3。

【技术特征摘要】
1.一种SM4密码算法的安全白盒实现方法,其特征在于,以128比特数据(x0,x1,x2,x3)作
为输入,经过32轮变换后,以128比特数据(x35,x34,x33,x32)为输出,其中xi为32比特数据;所
述32轮变换中,每轮需要16个TTC查找表和4个TRT查找表,其中TTC查找表用于将本轮输入
数据的32比特仿射编码转为4个8比特仿射编码,TRT查找表用于实现SM4算法的轮变换;所
述32轮变换中,第r(1≤r≤32)轮变换以4个32比特数值xr-1,xr,xr+1,xr+2作为输入,输出一
个32比特数值xr+3。
2.如权利要求1所述的方法,其特征在于,所述第r(1≤r≤32)轮变换的计算步骤如下:
1) s r , 0 ← ⊕ i = 1 3 [ TTC r , i , 0 ( x r + i - 1 , 0 ) ⊕ TTC r , i , 1 ( x r + i - 1 , 1 ) ] ; ]]>2) s r , 0 ← ⊕ i = 1 3 [ TTC r , i , 2 ( x r + i - 1 , 2 ) ⊕ TTC r , i , 3 ( x ...

【专利技术属性】
技术研发人员:白琨鹏武传坤
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

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

1