CN110784306A - Sm4算法白盒实现方法、装置、电子设备及计算机介质 - Google Patents

Sm4算法白盒实现方法、装置、电子设备及计算机介质 Download PDF

Info

Publication number
CN110784306A
CN110784306A CN201911059536.XA CN201911059536A CN110784306A CN 110784306 A CN110784306 A CN 110784306A CN 201911059536 A CN201911059536 A CN 201911059536A CN 110784306 A CN110784306 A CN 110784306A
Authority
CN
China
Prior art keywords
round
equal
lookup table
lookup
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911059536.XA
Other languages
English (en)
Other versions
CN110784306B (zh
Inventor
张立廷
潘文伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Westone Information Industry Inc
Original Assignee
Chengdu Westone Information Industry Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN201911059536.XA priority Critical patent/CN110784306B/zh
Publication of CN110784306A publication Critical patent/CN110784306A/zh
Application granted granted Critical
Publication of CN110784306B publication Critical patent/CN110784306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本公开提供了一种SM4算法白盒实现方法、装置、电子设备及计算机介质,获取待加密的明文信息;对明文信息进行32轮变换,得到明文信息对应的加密结果;32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr用于完成SM4算法的第r轮运算,并对运算结果进行了编码保护;密钥安全性高。

Description

SM4算法白盒实现方法、装置、电子设备及计算机介质
技术领域
本公开涉及信息安全技术领域,更具体地说,涉及SM4算法白盒实现方法、装置、电子设备及计算机介质。
背景技术
网络与智能终端的普及,各类隐私数据在终端读取并加解密,而终端所处的环境往往不可控,攻击者或恶意用户可通过逆向工程等技术获取加解密算法的中间计算结果,进而极易地恢复加解密算法的密钥,从而获取数据。如何在不可控的终端上保护加解密算法的密钥是目前急需解决的问题。
现有的解决上述问题的方法是采用对密码算法白盒化实现的方式来保护密钥。目前,一些文献构造了AES、DES、SM4等密码算法的白盒实现方案,如肖雅莹-来学嘉、白鲲鹏-武传坤等分别构造过SM4白盒实现方案等,这些方案均将算法分解成一层一层的来计算,然后每一层使用可逆函数变换保护算法中间运算结果,并使用查找表来隐藏密钥有关的信息。
然而,现有SM4算法白盒实现方法中,大多采用外部编码,难以与现有的系统兼容,造成信息交换不畅。少数不采用外部编码的方案构造方式单一,安全性有限,难以满足多样化的应用需求。
综上所述,如何构造满足兼容性要求、具有较高安全性且满足多样化应用需求的SM4算法白盒实现方案是目前本领域技术人员亟待解决的问题。
发明内容
本公开的目的是提供一种SM4算法白盒实现方法,其能满足兼容性要求,且在一定程度上解决如何提高SM4算法白盒实现方法安全性的技术问题。本公开还提供了一种SM4算法白盒实现装置、电子设备及计算机可读存储介质。
根据本公开实施例的第一方面,提供一种SM4算法白盒实现方法,包括:
获取待加密的明文信息;
对所述明文信息进行32轮变换,得到所述明文信息对应的加密结果;
所述32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;
其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr用于完成所述SM4算法的第r轮运算,并对运算结果进行编码保护。
优选的,所述对所述明文信息进行32轮变换之前,还包括:
获取主密钥KEY;
基于所述主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr,且r=1,2,3,…,32;选定整数t1,t2,其中,4≤t1≤t2≤29;
当1≤r≤t1或t2≤r≤32时,基于公式
Figure BDA0002257502860000021
构造查找表TAr;
当1≤r≤t1或t2≤r≤32时,基于公式构造查找表TBr;
当1≤r≤t1或t2≤r≤32时,基于公式
Figure BDA0002257502860000023
构造查找表TCr;
当1≤r≤t1或t2≤r≤32时,基于公式
Figure BDA0002257502860000024
构造查找表TDr;
其中,x,x′,
Figure BDA00022575028600000210
Fr,Gr,Hr,Pr-1,Pr,Pr+1,Pr+3均为
Figure BDA0002257502860000025
上的可逆映射,且P0、P1、P2、P3、P32、P33、P34、P35为恒等变换;T表示所述SM4算法中的轮函数,且
Figure BDA00022575028600000211
L为32阶线性变换,τ=S||S||S||S,S表示8比特非线性变换;
Figure BDA0002257502860000026
表示异或运算。
优选的,所述基于所述主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr之后,还包括:
若t1<t2,且当t1<r<t2时,查找表TAr、TBr、TDr均用于直接对输入的两个32比特向量进行异或运算;查找表TCr用于对输入的信息x进行运算;;
其中,
Figure BDA0002257502860000028
且此时
Figure BDA0002257502860000029
均为32比特随机向量。
优选的,所述方法包括:
根据预设条件,确定所述SM4算法每一轮变换中查找表的构造方式,所述预设条件包括预设安全性条件、预设存储条件、预设效率条件。
根据本公开实施例的第二方面,提供一种SM4算法白盒实现装置,包括:
第一获取模块,用于获取待加密的明文信息;
第一处理模块,用于对所述明文信息进行32轮变换,得到所述明文信息对应的加密结果;所述32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;
其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr用于完成所述SM4算法的第r轮运算,并对运算结果进行编码保护。
优选的,还包括:
第二获取模块,用于所述第一处理模块对所述明文信息进行32轮变换之前,获取主密钥KEY;
第一生成模块,用于基于所述主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr,且r=1,2,3,…,32;选定整数t1,t2,其中,4≤t1≤t2≤29;
第一构造模块,用于当1≤r≤t1或t2≤r≤32时,基于公式
Figure BDA0002257502860000031
构造查找表TAr;用于当1≤r≤t1或t2≤r≤32时,基于公式构造查找表TBr;
用于当1≤r≤t1或t2≤r≤32时,基于公式构造查找表TCr;用于当1≤r≤t1或t2≤r≤32时,基于公式
Figure BDA0002257502860000034
构造查找表TDr;
其中,x,x',
Figure BDA0002257502860000035
Fr,Gr,Hr,Pr-1,Pr,Pr+1,Pr+3均为
Figure BDA0002257502860000036
上的可逆映射,且P0、P1、P2、P3、P32、P33、P34、P35为恒等变换;T表示所述SM4算法中的轮函数,且
Figure BDA0002257502860000038
L为32阶线性变换,τ=S||S||S||S,S表示8比特非线性变换;
Figure BDA0002257502860000037
表示异或运算。
优选的,还包括:
第一运算模块,用于所述第一生成模块基于所述主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr之后,若t1<t2,且当t1<r<t2时,查找表TAr、TBr、TDr均用于直接对输入的两个32比特向量进行异或运算;查找表TCr用于对输入的信息x进行
Figure BDA0002257502860000043
运算;
其中,
Figure BDA0002257502860000044
且此时
Figure BDA0002257502860000045
均为32比特随机向量。
优选的,包括:
第一确定模块,用于根据预设条件,确定所述SM4算法每一轮变换中查找表的构造方式,所述预设条件包括预设安全性条件、预设存储条件、预设效率条件。
根据本公开实施例的第三方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现如上任一所述方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一所述方法的步骤。
本公开提供的一种SM4算法白盒实现方法,获取待加密的明文信息;对明文信息进行32轮变换,得到明文信息对应的加密结果;32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr用于完成SM4算法的第r轮运算,并对运算结果进行编码保护。本公开提供的一种SM4算法白盒实现方法,在获取明文信息之后,可以直接应用构造的查找表对明文信息进行加密,无需外部对明文信息进行编码,可以提高信息交互畅通度;且每一轮变换均借助查找表对轮变换信息进行了隐藏,使得外界无法破解轮变换过程来获取SM4算法的密钥,提高了密钥安全性,实现了抵御白盒攻击的效果。本公开提供的一种SM4算法白盒实现装置、电子设备及计算机可读存储介质也解决了相应技术问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为根据一示例性实施例示出的一种SM4算法白盒实现方法的第一流程图;
图2为SM4算法白盒实现方法前4轮变换的示意图;
图3为SM4算法白盒实现方法中间24轮变换的示意图;
图4为SM4算法白盒实现方法后4轮变换的示意图;
图5为64进32出查找表的构造示意图;
图6为32进32出查找表的分解示意图;
图7为根据一示例性实施例示出的一种SM4算法白盒实现装置的第一结构示意图;
图8为根据一示例性实施例示出的一种电子设备900的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
请参阅图1,图1为根据一示例性实施例示出的一种SM4算法白盒实现方法的第一流程图。
本公开涉及的一种SM4算法白盒实现方法,可以包括以下步骤:
步骤S101:获取待加密的明文信息。
可以理解的是,待加密的明文信息的信息类型可以根据应用场景来确定,比如明文信息可以为音视频传输过程中的音视频数据等。SM4算法对待加密的明文信息进行分组加密,每个分组长度为128比特,记其中一个明文分组为X=X0||X1||X2||X3,其中X0、X1、X2、X3均为32比特的数据。
步骤S102:对明文信息进行32轮变换,得到明文信息对应的加密结果;32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr用于完成对SM4算法的第r轮运算,并对运算结果进行编码保护。
可以理解的是,在获取明文信息之后,需要按照SM4算法每一轮变换的查找表对明文信息进行32轮变换,应当指出,进行32轮变换时,将明文信息的X0作为第1轮变换的第一个待处理数据,将明文信息的X1作为第1轮变换的第二个待处理数据,将明文信息的X2作为第1轮变换的第三个待处理数据,将明文信息的X3作为第1轮变换的第四个待处理数据;之后,从第1轮变换到第31轮变换,将第r轮变换的第二个待处理数据作为第r+1轮变换的第一个待处理数据,将第r轮变换的第三个待处理数据作为第r+1轮变换的第二个待处理数据,将第r轮变换的第四个待处理数据作为第r+1轮变换的第三个待处理数据,将第r轮变换的第四查找结果作为第r+1轮变换的第四个待处理数据;最后,将第32轮变换的第二个待处理数据、第三个待处理数据、第四个待处理数据及第32轮的第四查找结果输出作为明文信息的加密结果。为了便于理解,现结合附图对该过程进行描述,请参阅图2、图3和图4,图2为SM4算法白盒实现方法前4轮变换的示意图;图3为SM4算法白盒实现方法中间24轮变换的示意图;图4为SM4算法白盒实现方法后4轮变换的示意图;其中,明文信息对应的加密结果C=(X35,X34,X33,X32)。由图2、图3、图4及步骤S102的描述可知,本公开提供的SM4白盒实现方法,查找表TAr、查找表TBr、查找表TCr、查找表TDr为基于SM4算法的轮密钥生成的查找表,借助查找表实现了对轮密钥的隐藏,且借助查找表实现了对轮变换过程的隐藏,使得外界难以根据轮变换的中间运行结果推导出与SM4算法密钥相关的信息,密钥安全程度高。此外,不难理解,查找表TAr、TBr、TDr实现了对输入的64比特信息完成运算并对运算结果进行编码;查找表TCr实现了对输入的32比特信息完成运算并对运算结果进行编码。
本公开提供的一种SM4算法白盒实现方法,获取待加密的明文信息;对明文信息进行32轮变换,得到明文信息对应的加密结果;32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr用于完成SM4算法的第r轮运算,并对运算结果进行编码保护。本公开提供的一种SM4算法白盒实现方法,在获取明文信息之后,可以直接应用构造的查找表对明文信息进行加密,无需外部对明文信息进行编码,便于在实际应用场景中直接替代现有的SM4算法;且每一轮变换均借助查找表对轮变换信息进行了隐藏,使得外界无法破解轮变换过程来获取SM4算法的密钥,提高了密钥安全性,实现了抵御白盒攻击的效果。
本公开涉及的一种SM4算法白盒实现方法中,查找表TAr、TBr、TCr、TDr构造方式可以如下:
获取主密钥KEY;基于主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr,且r=1,2,3,…,32;选择两个整数t1,t2,4≤t1≤t2≤29;当1≤r≤t1或t2≤r≤32时,基于公式
Figure BDA0002257502860000071
构造查找表TAr;基于公式
Figure BDA0002257502860000072
构造查找表TBr;基于公式
Figure BDA0002257502860000073
构造查找表TCr;基于公式
Figure BDA0002257502860000074
构造查找表TDr;其中,x,x′,
Figure BDA0002257502860000075
Fr,Gr,Hr,Pr-1,Pr,Pr+1,Pr+3均为
Figure BDA0002257502860000076
上的可逆映射,且P0、P1、P2、P3、P32、P33、P34、P35为恒等变换;T表示SM4算法中的轮函数,且
Figure BDA00022575028600000711
L为32阶线性变换,τ=S||S||S||S,S表示8比特非线性变换;
Figure BDA0002257502860000078
表示异或运算;且每个查找表均为顺序遍历输入变量(x,x')或x,然后依次存储输出值y而生成。
若t1<t2,且当t1<r<t2时,查找表TAr、TBr、TDr均用于直接对输入的两个32比特向量进行异或运算;查找表TCr用于对输入的信息x进行
Figure BDA0002257502860000079
运算;其中,
Figure BDA00022575028600000710
且此时
Figure BDA0002257502860000077
均为32比特随机向量。此时,在保证密钥安全性的前提下,为了减小存储空间及提高整个方案的运行速度,可以不存储查找表,只需按照查找表的功能直接对数据进行相应运算。
可以理解的是,在本公开查找表的基础上,可以根据需要灵活配置查找表,比如可在前t1轮中选取特殊的查找表,使经过前t1轮查表运算所得的结果
Figure BDA0002257502860000081
满足特定编码
Figure BDA0002257502860000082
其中,
Figure BDA0002257502860000083
为预先选定的32比特随机向量;然后对中间t2-t1-1轮利用SM4算法循环差分的特点完成计算,也即采用随机数对中间t2-t1-1轮轮密钥进行掩码保护,
Figure BDA0002257502860000087
i=t1+1,t1+2,…,t2-1;从而,可以根据K'ii+3,i=t1+1,t1+2,…,t2-1,对于中间t2-t1-1轮按循环差分的方式
Figure BDA0002257502860000088
i=t1+1,t1+2,…,t2-1计算得到
Figure BDA0002257502860000084
Figure BDA0002257502860000085
最后在后32-t2+1轮以查找表的方式完成计算并得到加密结果。在此方式构造的查找表下,中间t2-t1-1轮中的轮密钥被掩码保护,攻击者只能获取到K'ii+3的信息,可知,攻击者仅根据此t2-t1-1轮的运算过程,无法获取关于此t2-t1-1轮的轮密钥的任何信息,从而方案的安全性可归结到前t1轮及后32-t2+1的安全性。
本公开涉及的一种SM4算法白盒实现方法中,为了满足外界的不同需求,可以灵活的构造本公开每一轮所应用的查找表,则本公开涉及的一种SM4算法白盒实现方法中可以包括:根据预设安全性、存储、效率等条件,确定SM4算法每一轮变换中查找表的构造方式。
可以理解的是,在确定SM4算法每一轮变换中查找表的构造方式时,可以将大规模的查找表分解为多个小规模的查找表,比如可以将64比特输入32比特输出的查找表分解为8个8比特输入4比特输出的查找表等。下面以查找表TAr、TCr为例进行说明。
请参阅图5,图5为64进32出查找表的构造示意图。由上述描述可知,查找表TAr用于完成对两个32比特向量输入计算并对结果进行编码的64比特输入32比特输出的查找表,查找表TAr可按如下方式构造:记输入X=x0||x1||…||x7,Y=y0||y1||…||y7,其中xi,yi均为4比特向量,并构造查找表Tablei:
Figure BDA0002257502860000086
zi=hi(xi,yi),其中hi为预先生成的8比特输入4比特输出的函数;即将查找表TAr采用8个8比特输入4比特输出的查找表实现,每个查找表处理8比特输入得到4比特输出,从而对64比特输入(X,Y)通过查找表TAr完成计算得到输出结果Z=h(X,Y),其中h=h0||h1||…||h7
请参阅图6,图6为32进32出查找表的分解示意图。由上述描述可知,查找表TCr用于完成对32比特输入向量完成计算并编码的查找表,在构造查找表TCr时,可以构造查找表Table1.i:
Figure BDA0002257502860000091
yi=fi(xi),其中,fi为预先生成的8比特输入32比特输出的函数,也即,首先将32比特输入X分解为4个8比特,分别经过4个8进32出查找表Table1.0,Table1.1,Table1.2,Table1.4得到32比特向量的输出结果y0,y1,y2,y3;然后采用3个64比特输入32比特输出的查找表Table2.0,Table2.1,Table2.2对输入值y0,y1,y2,y3进行查表计算,得到最终的输出值Y,计算过程为:将y0,y1输入查找表Table2.0得到输出y'0,将y2,y3输入查找表Table2.1得到输出y'1,将y'0,y'1输入查找表Table2.0得到输出Y。其中,查找表Table2.0,Table2.1,Table2.2可以按照查找表TAr的构造方式进行构造。
请参阅图7,图7为根据一示例性实施例示出的一种SM4算法白盒实现装置的第一结构示意图。
本公开涉及的一种SM4算法白盒实现装置700,可以包括:
第一获取模块710,用于获取待加密的明文信息;
第一处理模块720,用于对明文信息进行32轮变换,得到明文信息对应的加密结果;32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;
其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr完成SM4算法的第r轮运算,并对运算结果进行编码保护。
本公开涉及的一种SM4算法白盒实现装置,还可以包括:
第二获取模块,用于第一处理模块对明文信息进行32轮变换之前,获取主密钥KEY;
第一生成模块,用于基于主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr,且r=1,2,3,…,32;并选定整数t1,t2,其中4≤t1≤t2≤29;
第一构造模块,用于当1≤r≤t1或t2≤r≤32时,基于公式
Figure BDA0002257502860000101
构造查找表TAr;基于公式
Figure BDA0002257502860000102
构造查找表TBr;基于公式
Figure BDA0002257502860000103
构造查找表TCr;基于公式
Figure BDA0002257502860000104
构造查找表TDr;
其中,x,x′,
Figure BDA0002257502860000105
Fr,Gr,Hr,Pr-1,Pr,Pr+1,Pr+3均为
Figure BDA0002257502860000106
上的可逆映射,且P0、P1、P2、P3、P32、P33、P34、P35为恒等变换;T表示SM4算法中的轮函数,且
Figure BDA00022575028600001011
L为32阶线性变换,τ=S||S||S||S,S表示8比特非线性变换;
Figure BDA00022575028600001010
表示异或运算。
本公开涉及的一种SM4算法白盒实现装置,还可以包括:
第一运算模块,用于当所选定的整数t1<t2时,且当t1<r<t2时,查找表TAr、查找表TBr、查找表TDr用于直接对输入的两个32比特向量进行异或运算;当t1<r<t2时,查找表TCr用于对输入的信息x进行
Figure BDA0002257502860000108
运算;
其中,
Figure BDA0002257502860000109
且此时
Figure BDA0002257502860000107
均为32比特随机向量。
本公开涉及的一种SM4算法白盒实现装置,可以包括:
第一确定模块,用于根据预设安全性、存储、效率等条件,确定SM4算法每一轮变换中查找表的构造方式。
图8为根据一示例性实施例示出的一种电子设备900的框图。如图8所示,该电子设备900可以包括:处理器901,存储器902。该电子设备900还可以包括多媒体组件903,输入/输出(I/O)接口904,以及通信组件905中的一者或多者。
其中,处理器901用于控制该电子设备900的整体操作,以完成上述的SM4算法白盒实现方法中的全部或部分步骤。存储器902用于存储各种类型的数据以支持在该电子设备900的操作,这些数据例如可以包括用于在该电子设备900上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件903可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器902或通过通信组件905发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口904为处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件905可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的报文加解密方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的SM4算法白盒实现方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器902,上述程序指令可由电子设备900的处理器901执行以完成上述的SM4算法白盒实现方法。
本公开实施例提供的一种SM4算法白盒实现装置、电子设备及计算机可读存储介质中相关部分的说明请参见本公开实施例提供的一种SM4算法白盒实现方法中对应部分的详细说明,在此不再赘述。另外,本公开实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本公开。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种SM4算法白盒实现方法,其特征在于,包括:
获取待加密的明文信息;
对所述明文信息进行32轮变换,得到所述明文信息对应的加密结果;
所述32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;
其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr用于完成所述SM4算法的第r轮运算,并对运算结果进行编码保护。
2.根据权利要求1所述的方法,其特征在于,所述对所述明文信息进行32轮变换之前,还包括:
获取主密钥KEY;
基于所述主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr,且r=1,2,3,…,32;选定整数t1,t2,其中,4≤t1≤t2≤29;
当1≤r≤t1或t2≤r≤32时,基于公式
Figure FDA0002257502850000011
构造查找表TAr;
当1≤r≤t1或t2≤r≤32时,基于公式
Figure FDA0002257502850000012
构造查找表TBr;
当1≤r≤t1或t2≤r≤32时,基于公式构造查找表TCr;
当1≤r≤t1或t2≤r≤32时,基于公式
Figure FDA0002257502850000014
构造查找表TDr;
其中,x,x′,
Figure FDA0002257502850000015
Fr,Gr,Hr,Pr-1,Pr,Pr+1,Pr+3均为
Figure FDA0002257502850000016
上的可逆映射,且P0、P1、P2、P3、P32、P33、P34、P35为恒等变换;T表示所述SM4算法中的轮函数,且
Figure FDA0002257502850000017
L为32阶线性变换,τ=S||S||S||S,S表示8比特非线性变换;
Figure FDA0002257502850000018
表示异或运算。
3.根据权利要求2所述的方法,其特征在于,所述基于所述主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr之后,还包括:
若t1<t2,且当t1<r<t2时,查找表TAr、TBr、TDr均用于直接对输入的两个32比特向量进行异或运算;查找表TCr用于对输入的信息x进行
Figure FDA0002257502850000019
运算;
其中,
Figure FDA0002257502850000021
且此时
Figure FDA0002257502850000022
均为32比特随机向量。
4.根据权利要求1至3任一项所述的方法,其特征在于,包括:
根据预设条件,确定所述SM4算法每一轮变换中查找表的构造方式,所述预设条件包括预设安全性条件、预设存储条件、预设效率条件。
5.一种SM4算法白盒实现装置,其特征在于,包括:
第一获取模块,用于获取待加密的明文信息;
第一处理模块,用于对所述明文信息进行32轮变换,得到所述明文信息对应的加密结果;所述32轮变换中的每一轮变换步骤包括:在该轮查找表TAr中,查找该轮第二个待处理数据和该轮第三个待处理数据对应的第一查找结果;在该轮查找表TBr中,查找该轮第一个查找结果和该轮第四个待处理数据对应的第二查找结果;在该轮查找表TCr中,查找该轮第二查找结果对应的第三查找结果;在该轮查找表TDr中,查找该轮第一个待处理数据和该轮第三查找结果对应的第四查找结果;r=1,2,3,…,32;
其中,查找表TAr、查找表TBr、查找表TCr、查找表TDr用于完成所述SM4算法的第r轮运算,并对运算结果进行编码保护。
6.根据权利要求5所述的装置,其特征在于,还包括:
第二获取模块,用于所述第一处理模块对所述明文信息进行32轮变换之前,获取主密钥KEY;
第一生成模块,用于基于所述主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr,且r=1,2,3,…,32;选定整数t1,t2,其中,4≤t1≤t2≤29;
第一构造模块,用于当1≤r≤t1或t2≤r≤32时,基于公式
Figure FDA0002257502850000023
构造查找表TAr;用于当1≤r≤t1或t2≤r≤32时,基于公式
Figure FDA0002257502850000024
构造查找表TBr;
用于当1≤r≤t1或t2≤r≤32时,基于公式
Figure FDA0002257502850000025
构造查找表TCr;用于当1≤r≤t1或t2≤r≤32时,基于公式
Figure FDA0002257502850000026
构造查找表TDr;
其中,x,x′,
Figure FDA0002257502850000027
Fr,Gr,Hr,Pr-1,Pr,Pr+1,Pr+3均为
Figure FDA0002257502850000028
上的可逆映射,且P0、P1、P2、P3、P32、P33、P34、P35为恒等变换;T表示所述SM4算法中的轮函数,且
Figure FDA0002257502850000031
L为32阶线性变换,τ=S||S||S||S,S表示8比特非线性变换;
Figure FDA0002257502850000032
表示异或运算。
7.根据权利要求6所述的装置,其特征在于,还包括:
第一运算模块,用于所述第一生成模块基于所述主密钥KEY,通过密钥扩展算法生成对应的轮密钥Kr之后,若t1<t2,且当t1<r<t2时,查找表TAr、TBr、TDr均用于直接对输入的两个32比特向量进行异或运算;查找表TCr用于对输入的信息x进行
Figure FDA0002257502850000033
运算;
其中,
Figure FDA0002257502850000034
且此时
Figure FDA0002257502850000035
均为32比特随机向量。
8.根据权利要求5至7任一项所述的装置,其特征在于,包括:
第一确定模块,用于根据预设条件,确定所述SM4算法每一轮变换中查找表的构造方式,所述预设条件包括预设安全性条件、预设存储条件、预设效率条件。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-4中任一所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4中任一项所述方法的步骤。
CN201911059536.XA 2019-11-01 2019-11-01 Sm4算法白盒实现方法、装置、电子设备及计算机介质 Active CN110784306B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911059536.XA CN110784306B (zh) 2019-11-01 2019-11-01 Sm4算法白盒实现方法、装置、电子设备及计算机介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911059536.XA CN110784306B (zh) 2019-11-01 2019-11-01 Sm4算法白盒实现方法、装置、电子设备及计算机介质

Publications (2)

Publication Number Publication Date
CN110784306A true CN110784306A (zh) 2020-02-11
CN110784306B CN110784306B (zh) 2023-10-27

Family

ID=69388403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911059536.XA Active CN110784306B (zh) 2019-11-01 2019-11-01 Sm4算法白盒实现方法、装置、电子设备及计算机介质

Country Status (1)

Country Link
CN (1) CN110784306B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651487A (zh) * 2020-05-25 2020-09-11 上海寒武纪信息科技有限公司 处理装置及方法
CN111865559A (zh) * 2020-06-16 2020-10-30 郑州信大捷安信息技术股份有限公司 一种sm4算法快速实现方法及装置
CN111901097A (zh) * 2020-08-06 2020-11-06 成都卫士通信息产业股份有限公司 一种白盒实现方法、装置、电子设备及计算机存储介质
CN112003687A (zh) * 2020-08-26 2020-11-27 成都卫士通信息产业股份有限公司 一种白盒运算方法、装置、电子设备及计算机存储介质
CN112019327A (zh) * 2020-08-26 2020-12-01 成都卫士通信息产业股份有限公司 一种白盒实现方法、装置、电子设备及计算机存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130061061A1 (en) * 2011-09-01 2013-03-07 Apple Inc. Protecting look up tables by mixing code and operations
CN105681025A (zh) * 2016-01-29 2016-06-15 中国科学院信息工程研究所 一种国家密码标准算法sm4的安全白盒实现方法和装置
CN107070636A (zh) * 2016-12-23 2017-08-18 中国电子科技集团公司第三十研究所 一种标准密文输出格式的商密sm4算法的白盒软件实现方法
CN108270550A (zh) * 2018-01-10 2018-07-10 成都卫士通信息产业股份有限公司 一种基于sm4算法的安全高效的白盒实现方法及装置
CN108809626A (zh) * 2018-05-30 2018-11-13 北京安如山文化科技有限公司 一种白盒sm4密码算法方案与系统
CN109257162A (zh) * 2018-11-02 2019-01-22 北京京东金融科技控股有限公司 加密算法白盒化的方法和装置
CN109450632A (zh) * 2019-01-11 2019-03-08 西安电子科技大学 基于白盒分组密码clefia分析的密钥恢复方法
CN109951273A (zh) * 2019-05-08 2019-06-28 郑州信大捷安信息技术股份有限公司 一种sm4算法白盒实现方法与装置
US20190238330A1 (en) * 2014-09-26 2019-08-01 Intel Corporation Instructions and logic to provide simd sm4 cryptographic block cipher functionality
CN110278072A (zh) * 2019-07-11 2019-09-24 北京电子科技学院 一种16轮sm4-128/128白盒密码实现方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130061061A1 (en) * 2011-09-01 2013-03-07 Apple Inc. Protecting look up tables by mixing code and operations
US20190238330A1 (en) * 2014-09-26 2019-08-01 Intel Corporation Instructions and logic to provide simd sm4 cryptographic block cipher functionality
CN105681025A (zh) * 2016-01-29 2016-06-15 中国科学院信息工程研究所 一种国家密码标准算法sm4的安全白盒实现方法和装置
CN107070636A (zh) * 2016-12-23 2017-08-18 中国电子科技集团公司第三十研究所 一种标准密文输出格式的商密sm4算法的白盒软件实现方法
CN108270550A (zh) * 2018-01-10 2018-07-10 成都卫士通信息产业股份有限公司 一种基于sm4算法的安全高效的白盒实现方法及装置
CN108809626A (zh) * 2018-05-30 2018-11-13 北京安如山文化科技有限公司 一种白盒sm4密码算法方案与系统
CN109257162A (zh) * 2018-11-02 2019-01-22 北京京东金融科技控股有限公司 加密算法白盒化的方法和装置
CN109450632A (zh) * 2019-01-11 2019-03-08 西安电子科技大学 基于白盒分组密码clefia分析的密钥恢复方法
CN109951273A (zh) * 2019-05-08 2019-06-28 郑州信大捷安信息技术股份有限公司 一种sm4算法白盒实现方法与装置
CN110278072A (zh) * 2019-07-11 2019-09-24 北京电子科技学院 一种16轮sm4-128/128白盒密码实现方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
YANG SHI ECT.: "A Light-Weight White-Box Encryption Scheme for Securing Distributed Embedded Devices", 《IEEE TRANSACTIONS ON COMPUTERS》 *
崔西宁;董星廷;牟明;吴姣;: "白盒攻击环境下的任务规划系统安全传输方法" *
林婷婷, 来学嘉: "白盒密码研究", 《密码学报》 *
潘文伦, 秦体红, 贾音, 张立廷: "对两个SM4 白盒方案的分析", 《密码学报》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651487A (zh) * 2020-05-25 2020-09-11 上海寒武纪信息科技有限公司 处理装置及方法
CN111651487B (zh) * 2020-05-25 2023-06-27 上海寒武纪信息科技有限公司 处理装置及方法
CN111865559A (zh) * 2020-06-16 2020-10-30 郑州信大捷安信息技术股份有限公司 一种sm4算法快速实现方法及装置
CN111865559B (zh) * 2020-06-16 2022-02-18 郑州信大捷安信息技术股份有限公司 一种sm4算法快速实现方法及装置
CN111901097A (zh) * 2020-08-06 2020-11-06 成都卫士通信息产业股份有限公司 一种白盒实现方法、装置、电子设备及计算机存储介质
CN112003687A (zh) * 2020-08-26 2020-11-27 成都卫士通信息产业股份有限公司 一种白盒运算方法、装置、电子设备及计算机存储介质
CN112019327A (zh) * 2020-08-26 2020-12-01 成都卫士通信息产业股份有限公司 一种白盒实现方法、装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
CN110784306B (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
CN110784306A (zh) Sm4算法白盒实现方法、装置、电子设备及计算机介质
CN107196926B (zh) 一种云外包隐私集合比较方法与装置
CN106850221B (zh) 信息加密、解密方法及装置
GB2538022A (en) Multiple secrets in quorum based data processing
CN105187364A (zh) 保护白盒实现方案不受攻击
CN110795762B (zh) 基于流密码的保留格式加密方法
CN112003696B (zh) Sm9密钥生成方法、系统、电子设备、装置及存储介质
Belazi et al. Algebraic analysis of a RGB image encryption algorithm based on DNA encoding and chaotic map
CN108270550B (zh) 一种基于sm4算法的安全高效的白盒实现方法及装置
CN105049400A (zh) 在白盒实现方案中拆分s盒以防止攻击
CN107579813A (zh) 信息加密、解密方法及装置
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
CN108768617A (zh) 一种基于传统分组密码的保持格式加密方法
CN105184115A (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
Yang et al. Image encryption based on fractional chaotic pseudo-random number generator and DNA encryption method
CN112865957A (zh) 数据加密传输方法、装置、计算机目标设备和存储介质
CN107070636A (zh) 一种标准密文输出格式的商密sm4算法的白盒软件实现方法
CN111901097B (zh) 一种白盒实现方法、装置、电子设备及计算机存储介质
CN107248914B (zh) 一种iOS设备上新型对称加密系统及加密方法
Mandal et al. An adaptive genetic key based neural encryption for online wireless communication (AGKNE)
CN105281893A (zh) 用于引入白箱实现对串集合的依赖性的方法
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
CN111859440A (zh) 基于混合协议的分布式隐私保护逻辑回归模型的样本分类方法
CN112019327B (zh) 一种白盒实现方法、装置、电子设备及计算机存储介质
CN112003687B (zh) 一种白盒运算方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant