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

文档序号:9914246阅读:来源:国知局
054] 7 .在设备的安全功能模块中,使用為f魂31,為],為51对(X35,X34,X33,X32 )进行解码, 从而获得解码后的明文。
[0055] 设备向服务器发送数据的过程如下:
[0056] 1.在设备的安全功能模块中,将数据划分为若干128比特的分组。
[0057] 2.在设备的安全功能模块中,使用此":":^^以寸每个分组进行编码。
[0058] 3 .在白盒SM4密码算法模块,使用白盒SM4加密查找表对经过编码的数据进行加 您 I_L| 〇
[0059] 4.将加密后的数据发送给服务器。
[0060] 5 ·服务器收到数据后,使用砣,A1,, 对收到的数据进行解码。
[0061] 6.服务器使用标准SM4算法和密钥V对解码后的数据进行解密,最终获取明文。
[0062]在白盒SM4密码算法的整体应用架构中,包括服务器设备和终端设备,如图2所示。 服务器设备应包括随机数发生器、密钥生成器(KG)、查找表生成器(TG)、仿射变换生成器 (AG)、标准SM4算法模块、编码单元、解码单元等组件,这些组件由于在一个安全的环境中运 行,所以,既可以用硬件实现,也可以用软件实现。
[0063]在SM4算法密钥、随机仿射映射、白盒SM4查找表的生成过程中,都需要生成随机 数。随机数的生成依赖随机数发生器,可以使用一些常用流密码算法构造,比如ZUC。
[0064]每个终端设备要有一个安全功能模块,设备中的编码/解码功能在这个安全功能 模块中进行。可以使用一些技术手段保障这些功能模块的安全,可以使用硬件保护,也可以 使用软件混淆等技术进行保护。比如,用硬件实现这些嵌入编码/解码子模块的功能模块, 即编码单元、解码单元和功能模块可以用硬件实现。终端中的白盒SM4算法模块可用软件实 现。
[0065]白盒SM4密码算法查找表的生成需要构造很多随机的8比特、32比特可逆仿射变 换,这种变换可以有很多种构造方法。对于η比特可逆仿射变换的生成,本发明提供一种方 法,以η+1个η比特非负整数S1,…,s n+1作为输入,输出对应的η比特可逆仿射变换,包括以下 步骤:
[0066] 1.构造所有η比特非零列向量组成的集合V。
[0067] 2.Vi-V;V2-{[0]} ([X]表示非负整数X对应的η比特列向量,下同)。
[0068] 3.从i-Ι到η重复第4步到第6步,然后转第7步。
[0069] 4.j^Si mod(2n-2i_1)〇
[0070] 5.将[h]取值为W的第j个元素。
[0071] 6.对V2的每个元素[v],将[/,]十Μ由Vi移到V2。
[0072] 7 .L-([li],…,[ln])(此处L是一个ηΧη二元矩阵,同时表示对应的η比特线性变 换)。
[0073] 8. j-<-Sn+imod(2n_l) 〇
[0074] 9. [c]取值为V中的第j个元素。
[0075] 10. j 。_£为所求的η比特可逆仿射变换。
[0076]在上述方法中,输入的η+1个η比特非负整数S1,…,sn+1可由随机数生成器生成。生 成仿射变换』<一 。i后,可以采用高斯消元法计算Γ1,从而获取f 1 f Γ 1 〇 ?f。
[0077]以上详细描述了本发明的基本原理、主要特征和本发明的优点。本领域一般技术 人员应该了解,本发明不受上述实施方式的限制,上述实施方式和说明书中描述的发明内 容只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和 改进,这些变化和改进都落入要求保护的本发明范围内。
【主权项】
1. 一种SM4密码算法的安全白盒实现方法,其特征在于,以128比特数据(XQ,XI,X2,X3)作 为输入,经过32轮变换后,以128比特数据(χ 35,X34,χ33,χ32)为输出,其中xi为32比特数据;所 述32轮变换中,每轮需要16个TTC查找表和4个TRT查找表,其中TTC查找表用于将本轮输入 数据的32比特仿射编码转为4个8比特仿射编码,TRT查找表用于实现SM4算法的轮变换;所 述32轮变换中,第r (1 < r < 32)轮变换以4个32比特数值n,xr,xr+1,xr+2作为输入,输出一 个32比特数值x r+3。2. 如权利要求1所述的方法,其特征在于,所述第32)轮变换的计算步骤如下:其中,-是赋值符号,?是比特异或符号,I I是连接符号;sr,〇和Sr,:都是32比特数值, 8:,0,」和8:,1,」分别是8:,()和8:,1的第」个字节^+:1-1,」是1:+:1-1的第」个字节。3. 如权利要求1所述的方法,其特征在于,所述TTC查找表的结构定义为:其中亿3,0是函数复合符号,⑴=Y ? C ; U3是随机选取的32比特仿射变换A说的线性部 分;br+3 A j和br+3,1, j是随机选取的32比特数值,= U? …? Φ九+3,1,。,·.4+3,1,3 是Ar+3的常数部分;随机选取的32比特仿射变换4+w = 的第j个 32\8子块,心+卜1,」是32比特数值,1"=4+_毋...?《+,-1,3义_(1 =[力/2」,0<^^ 机选取的8比特仿射变换Ar,k,m的线性部分;cr,k,i,m是8比特数值,1 = (i-Ι) X 2+( jmod2), ~,?= W? ? c,以",是Ar,k,m的常数部分。4. 如权利要求1所述的方法,其特征在于,所述TRT查找表的结构定义为:其中: (1 )kr是SM4密码算法第r轮的32比特轮密钥,kr, j是kr的第j个字节; (2) S是SM4密码算法轮函数中的8比特S盒; (3) M是SM4密码算法轮函数中的32比特线性变换,Mj是Μ的第j个32 X 8子块。5. 如权利要求3或4所述的方法,其特征在于,在TTC查找表和TRT查找表的生成过程中, 以n+1个η比特非负整数si,···,sn+l作为输入,输出对应的η比特可逆仿射变换,包括以下步 骤: 1)构造所有η比特非零列向量组成的集合V; {[0]};其中[X]表示非负整数X对应的η比特列向量,下同; 3) 从i - 1到η重复第4)步到第6)步;然后转第7)步; 4. j^simod(2n-2i_1); 5) 将[li]取值为Vi的第j个元素; 6) 对V2的每个元素[v],将[4]? W由乂:移到V2; 7. L-([li],…,[In]);此处L是一个ηXn二元矩阵,同时表示对应的η比特线性变换; 8. j-<-Sn+imod(2n_l); 9) [ c ]取值为V中的第j个元素; 10. J t 。i为所求的η比特可逆仿射变换;生成仿射变换』f ?。L后,采用高斯消6. -种采用权利要求1所述方法的安全通信装置,其特征在于,包括服务器设备和终端 设备,所述服务器设备包括查找表生成器、密钥生成器和仿射变换生成器,所述终端设备包 括安全功能模块和白盒SM4算法模块;所述仿射变换生成器用于随机生成可逆仿射变换,所 述密钥生成器用于根据终端设备的唯一性标识为其生成SM4算法的密钥;所述查找表生成 器用于为终端设备生成白盒SM4解密查找表和白盒SM4加密查找表,并将该两个查找表发布 到终端设备的白盒SM4算法模块,所述白盒SM4算法模块用于使用白盒SM4解密查找表和白 盒SM4加密查找表对数据进行加密或解密。7. 如权利要求6所述的装置,其特征在于,所述服务器设备还包括随机数发生器、标准 SM4算法模块、编码单元、解码单元,所述终端设备还包括编码单元、解码单元。8. 如权利要求6或7所述的装置,其特征在于,所述仿射变换生成器随机生成8对32比特 可逆仿射变换Α32,為入Α33,為/,Α34,為4^35,為5',Β。,^/.,Β?,A ,見.1,Β3,尽1,并将 421,,B2,B3与终端设备的安全功能模块捆绑在一起,A32,a 33,a34,a35, 式1, 孕1,及1留在服务器使用,用于生成白盒SM4密码算法的查找表; 在服务器与终端设备进行数据通信之前,服务器为每个设备生成白盒SM4解密查找表 和白盒SM4加密查找表,其方法是: a) 服务器的仿射变换生成器根据每个终端设备的唯一性标识为其随机生成8对32比特 可逆仿射变换A。,為―1,A!,4- 1,A2,為-1, A3,岑1,B32,W. B33,.?1, B34,和,B35,g,其中 A。,Ai,A2, A3,<, , ,%留在服务器使用,用于实现数据的编码/解码功能; b) 服务器的密钥生成器根据每个终端设备的唯一性标识为其生成SM4算法的密钥k,然 后服务器的查找表生成器利用k和為^,^,^,^,^,^,^为该终端设备生成白盒 SM4解密查找表,并将白盒SM4解密查找表发布到该终端设备的白盒SM4算法模块; c) 服务器的密钥生成器根据每个终端设备的唯一性标识为其生成SM4算法的密钥V, 然后服务器的查找表生成器使用1^和501,5「1,5: 1,/^1,832,833,834,8 35为该终端设备生成白 盒SM4加密查找表,并将白盒SM4加密查找表发布到该终端设备的白盒SM4算法模块。9. 如权利要求7所述的装置,其特征在于,所述终端设备的编码单元和解码单元使用硬 件保护,或者使用软件混淆技术进行保护。10.如权利要求6所述的装置,其特征在于,所述终端设备的安全功能模块包括视频播 放器、音乐播放器、电子书阅读器。
【专利摘要】本发明公开一种国家密码标准算法SM4的安全白盒实现方法和装置,可以在不可信的计算终端中有效地保护嵌入在密码软件中的密钥,并公开了该白盒SM4算法所需设备的必备组件,属于信息安全技术领域。本发明的白盒SM4密码算法是对中国商用分组密码标准SM4的安全实现,其原理是,将密钥嵌入到查找表中,并使用随机选取的仿射编码保护查找表,从而保护嵌入到查找表中的密钥。本算法使用TTC和TRT两种查找表,其中,由于将TTC查找表输出数据的最后一步异或操作嵌入到了TRT查找表中,而TRT查找表的输出数据又由新的32比特仿射编码保护,所以能够防止以组合查找表的方式抵消嵌入在查找表内部的32比特仿射编码,从而防止编码破解难度的降低,实现保护目的。
【IPC分类】H04L9/06
【公开号】CN105681025
【申请号】CN201610064799
【发明人】白琨鹏, 武传坤
【申请人】中国科学院信息工程研究所
【公开日】2016年6月15日
【申请日】2016年1月29日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1