首页> 中国专利> 一种国家密码标准算法SM4的安全白盒实现方法和装置

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

摘要

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

著录项

  • 公开/公告号CN105681025A

    专利类型发明专利

  • 公开/公告日2016-06-15

    原文格式PDF

  • 申请/专利权人 中国科学院信息工程研究所;

    申请/专利号CN201610064799.X

  • 发明设计人 白琨鹏;武传坤;

    申请日2016-01-29

  • 分类号H04L9/06(20060101);

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人邱晓锋

  • 地址 100093 北京市海淀区闵庄路甲89号

  • 入库时间 2023-12-18 15:41:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-16

    授权

    授权

  • 2016-07-13

    实质审查的生效 IPC(主分类):H04L9/06 申请日:20160129

    实质审查的生效

  • 2016-06-15

    公开

    公开

说明书

技术领域

本发明属于信息安全技术领域,具体涉及计算终端密码系统的保护,尤其涉及数 字产权系统中密码组件的防护。可用于防止恶意用户非法获取其控制的计算终端中运行的 密码算法的密钥,防止恶意用户非法传播其非法获取的密钥并从中获利。

背景技术

随着软件、硬件、网络等技术的发展,越来越多的软件发布到个人计算机、平板电 脑、手机等计算终端运行,各种应用层出不穷,如电子邮件、数字媒体播放器、数字内容阅读 器等等。然而,这些应用软件往往运行在不可信的计算终端,恶意用户可以通过合法购买或 攻击破解等方式控制这个终端,并利用各种逆向工程技术、工具来控制终端上软件执行的 整个过程,包括获取所有的中间计算结果、设置程序断点等。在这种不可信的计算终端中, 恶意用户可以很容易地非法获取软件中密码模块的密钥,并通过非法传播这些密钥而获 利。

目前,很多服务提供商采用白盒密码技术来保护密码算法的密钥,防止密钥在恶 意用户控制的不安全终端中被非法窃取。主流白盒密码技术着眼于设计密码算法的安全实 现,通过将密钥嵌入到查找表中,并使用随机选取的编码对查找表进行保护,从而实现保护 密钥的目的。目前,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比特数值,br+3=br+3,0,0...br+3,0,3br+3,1,0...br+3,1,3是Ar+3的常数部分。

4.同理,随机选取的32比特仿射变换是的第j个 32×8子块,br+i-1,j是32比特数值,br+i-1=br+i-1,0...br+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.sr,0TTCr,1,0(xr,0)...TTCr,3,0(xr+2,0)TTCr,1,1(xr,1)...TTCr,3,1(xr+2,1).

2.sr,1TTCr,1,2(xr,2)...TTCr,3,2(xr+2,2)TTCr,1,3(xr,3)...TTCr,3,3(xr+2,3).

3.xr+3[TRTr,0(sr,0,0||sr,1,0)TTCr,0,0(xr-1,0)]...[TRTr,3(sr,0,3||sr,1,3)TTCr,0,3(xr-1,3)].

其中:

1.sr,0和sr,1都是32比特数值,sr,0,j和sr,1,j分别是sr,0和sr,1的第j个字节。

2.xr+i-1,j是xr+i-1的第j个字节。

本发明的白盒SM4密码算法以(x0,x1,x2,x3)为输入,经过32轮变换后,以(x35,x34, x33,x32)为输出。

本发明还提供采用上述方法的安全通信装置,包括服务器设备和终端设备,所述 服务器设备包括查找表生成器、密钥生成器和仿射变换生成器,所述终端设备包括安全功 能模块和白盒SM4算法模块;所述仿射变换生成器用于随机生成可逆仿射变换,所述密钥生 成器用于根据终端设备的唯一性标识为其生成SM4算法的密钥;所述查找表生成器用于为 终端设备生成白盒SM4解密查找表和白盒SM4加密查找表,并将该两个查找表发布到终端设 备的白盒SM4算法模块,所述白盒SM4算法模块用于使用白盒SM4解密查找表和白盒SM4加密 查找表对数据进行加密或解密。

进一步地,所述服务器设备还包括随机数发生器、标准SM4算法模块、编码单元、解 码单元,所述终端设备还包括编码单元、解码单元。

和现有技术相比,本发明具有如下优势:

1.安全性:在本发明设计的白盒SM4密码算法中,在每一轮的变换中,sr,0和sr,1的 最终异或是嵌入在TRT查找表中进行的,异或之后输入数据的32比特才彻底抵消掉,而TRT 查找表输出时又有新的32比特仿射编码保护。因此,通过查找表组合的方式是不能将32比 特仿射编码彻底抵消掉的,编码破解难度也就无法降低,从而保证了算法的安全性。相比已 有的已经被破解的白盒SM4密码算法,本发明在安全性上无疑是具有优势的。

2.效率:由于现有的白盒SM4密码算法有大量的矩阵乘法操作,而本算法是完全的 查表+异或操作,因此,在执行速度上,本发明更具优势。即使是和其他的白盒实现方法相 比,本发明也具有明显的执行速度优势。

附图说明

图1是本发明白盒SM4密码算法的查找表发布流程图;

图2是本发明白盒SM4密码算法所用的服务器设备和终端设备必需的安全组件。

具体实施方式

下面将详细描述本发明的具体实施方式和特征,但不以任何方式限制本发明的范 围。

如图1所示,在安全的服务器端,有三个部件:查找表生成器(TG)、密钥生成器 (KG)、仿射变换生成器(AG)。

针对每个设备(不安全终端),服务器的AG随机生成8对32比特可逆仿射变换A32, A33,A34,A35,B0,B1,B2,B3,并将B0,B1,B2,B3与该设备的安全功能模块(如视频播放器、音乐播放器、电子书阅读器等等)捆绑在一起。该 设备还应该安装白盒SM4密码算法模块。然后,该设备可交付用户使用。在这里,32比特随机 可逆仿射变换可根据设备MAC地址、用户身份标识等设备相关的唯一性标识来生成。

A32,A33,A34,A35,留在服务器使用,用于生成白盒SM4密码算法的查 找表。这8对可逆仿射变换应减少更新频率或根本不更新。

在服务器与设备进行数据通信之前,服务器需要为每个设备生成白盒SM4解密查 找表和白盒SM4加密查找表(这些查找表也可以事先预置在设备中)。这些白盒SM4查找表也 是可以更新的。

首先,服务器的AG根据每个设备的唯一性标识为其随机生成8对32比特可逆仿射 变换A0,A1,A2,A3,B32,B33,B34,B35,这8对可逆仿射变换是可 更新的。其中A0,A1,A2,A3,留在服务器使用,用于实现数据的编码/解码功 能。

服务器的KG根据每个设备的唯一性标识为其生成SM4算法的密钥k。然后,服务器 的TG利用k和A32,A33,A34,A35为该设备生成白盒SM4解密查找表(包括前文所 述的TTC查找表和TRT查找表),并将白盒SM4解密查找表发布到该设备的白盒SM4密码算法 模块。

服务器的KG根据每个设备的唯一性标识为其生成SM4算法的密钥k′。然后,服务器 的TG使用k′和B32,B33,B34,B35为该设备生成白盒SM4加密查找表(包括前文 所述的TTC查找表和TRT查找表),并将白盒SM4加密查找表发布到该设备的白盒SM4密码算 法模块。k和k′可以是相同的密钥。

服务器与设备之间进行数据通信,分为服务器向设备发送数据和设备向服务器发 送数据两种情况。

服务器向设备发送数据的过程如下:

1.服务器将数据划分为若干128比特的分组。

2.服务器使用标准SM4算法和密钥k对每个分组进行加密。

3.服务器使用A0,A1,A2,A3对密文进行编码,得到(x0,x1,x2,x3)。

4.服务器将若干经过编码的分组(x0,x1,x2,x3)发送给设备。

5.设备收到数据后,白盒SM4密码算法模块使用白盒SM4解密查找表对其进行解 密,得到(x35,x34,x33,x32)。

6.设备将(x35,x34,x33,x32)发送给该设备的安全功能模块。

7.在设备的安全功能模块中,使用对(x35,x34,x33,x32)进行解码, 从而获得解码后的明文。

设备向服务器发送数据的过程如下:

1.在设备的安全功能模块中,将数据划分为若干128比特的分组。

2.在设备的安全功能模块中,使用B0,B1,B2,B3对每个分组进行编码。

3.在白盒SM4密码算法模块,使用白盒SM4加密查找表对经过编码的数据进行加 密。

4.将加密后的数据发送给服务器。

5.服务器收到数据后,使用对收到的数据进行解码。

6.服务器使用标准SM4算法和密钥k′对解码后的数据进行解密,最终获取明文。

在白盒SM4密码算法的整体应用架构中,包括服务器设备和终端设备,如图2所示。 服务器设备应包括随机数发生器、密钥生成器(KG)、查找表生成器(TG)、仿射变换生成器 (AG)、标准SM4算法模块、编码单元、解码单元等组件,这些组件由于在一个安全的环境中运 行,所以,既可以用硬件实现,也可以用软件实现。

在SM4算法密钥、随机仿射映射、白盒SM4查找表的生成过程中,都需要生成随机 数。随机数的生成依赖随机数发生器,可以使用一些常用流密码算法构造,比如ZUC。

每个终端设备要有一个安全功能模块,设备中的编码/解码功能在这个安全功能 模块中进行。可以使用一些技术手段保障这些功能模块的安全,可以使用硬件保护,也可以 使用软件混淆等技术进行保护。比如,用硬件实现这些嵌入编码/解码子模块的功能模块, 即编码单元、解码单元和功能模块可以用硬件实现。终端中的白盒SM4算法模块可用软件实 现。

白盒SM4密码算法查找表的生成需要构造很多随机的8比特、32比特可逆仿射变 换,这种变换可以有很多种构造方法。对于n比特可逆仿射变换的生成,本发明提供一种方 法,以n+1个n比特非负整数s1,…,sn+1作为输入,输出对应的n比特可逆仿射变换,包括以下 步骤:

1.构造所有n比特非零列向量组成的集合V。

2.V1←V;V2←{[0]}([x]表示非负整数x对应的n比特列向量,下同)。

3.从i←1到n重复第4步到第6步,然后转第7步。

4.j←simod(2n-2i-1)。

5.将[li]取值为V1的第j个元素。

6.对V2的每个元素[v],将由V1移到V2

7.L←([l1],…,[ln])(此处L是一个n×n二元矩阵,同时表示对应的n比特线性变 换)。

8.j←sn+1mod(2n-1)。

9.[c]取值为V中的第j个元素。

10.为所求的n比特可逆仿射变换。

在上述方法中,输入的n+1个n比特非负整数s1,…,sn+1可由随机数生成器生成。生 成仿射变换后,可以采用高斯消元法计算L-1,从而获取

以上详细描述了本发明的基本原理、主要特征和本发明的优点。本领域一般技术 人员应该了解,本发明不受上述实施方式的限制,上述实施方式和说明书中描述的发明内 容只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和 改进,这些变化和改进都落入要求保护的本发明范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号