CN114337993B - 一种应用于边缘物联代理的白盒sm4加解密方法及*** - Google Patents
一种应用于边缘物联代理的白盒sm4加解密方法及*** Download PDFInfo
- Publication number
- CN114337993B CN114337993B CN202210251798.1A CN202210251798A CN114337993B CN 114337993 B CN114337993 B CN 114337993B CN 202210251798 A CN202210251798 A CN 202210251798A CN 114337993 B CN114337993 B CN 114337993B
- Authority
- CN
- China
- Prior art keywords
- encryption
- decryption
- round
- algorithm
- pseudo
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 78
- 238000004364 calculation method Methods 0.000 claims abstract description 67
- 230000009466 transformation Effects 0.000 claims abstract description 57
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 26
- 239000011159 matrix material Substances 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 20
- 238000010276 construction Methods 0.000 claims description 5
- 230000006872 improvement Effects 0.000 abstract description 5
- 238000012545 processing Methods 0.000 abstract description 5
- 239000003795 chemical substances by application Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000000844 transformation Methods 0.000 description 7
- 230000002441 reversible effect Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100379081 Emericella variicolor andC gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000000843 powder Substances 0.000 description 1
- 239000011541 reaction mixture Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种应用于边缘物联代理的白盒SM4加解密方法及***,包括:利用外部编码及解码函数对输入数据进行外部编码;利用存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果;利用外部编码及解码函数对加解密计算结果进行外部解码,得到加解密结果;外部编码及解码函数的处理过程,包括:根据设置的伪状态的数量确定待添加的随机伪数据;将随机伪数据加入到输入数据进行仿射变换,完成外部编码;对加解密计算结果进行逆仿射变换,完成外部解码。优点:通过引入伪状态,极大地提升了白盒实现的多样性与含混度,本发明在安全性上提升的幅度明显更高,保护效率有明显提升。
Description
技术领域
本发明涉及一种应用于边缘物联代理的白盒SM4加解密方法及***,属于白盒密码学技术领域。
背景技术
智慧物联体系是综合能源***安全稳定运行的重要保障,而边缘物联代理作为物联终端的汇聚接入节点,其信息安全将极大地影响综合能源***的运行安全。随着智慧物联体系的建设,物联感知范围不断延伸,随之而来的是越来越复杂的环境,边缘物联代理正面临越来越突出的安全问题。在国内外网络安全形势日益严峻的背景下,对边缘物联代理中的信息,特别是密钥信息进行保护具有十分重大的意义。传统的基于安全芯片的硬密钥保护技术虽然具备足够高的安全性,但也存在着诸如升级维护困难、缺乏可扩展性和灵活性以及端点设备管理复杂等等不足。而以新兴的白盒密码技术为代表的软密钥保护技术则能在保证信息安全的同时,有效降低硬件成本,方便升级和维护,因此更适合在海量的电力物联网传感层设备中应用。
随着以逆向工程为代表的白盒攻击的兴起,攻击者有能力访问设备CPU、寄存器和内存中任何内部信息与数据,而传统的加解密算法实现方式不具备有效的应对措施,这将导致在白盒攻击环境下,密钥信息通过内存等途径直接泄露。白盒密码技术通过将密钥信息隐藏在经混淆的矩阵与查找表中,能够有效解决这个问题。SM4算法作为在我国应用最为广泛的加解密算法之一,目前已有多种不同的白盒实现方案,如肖-来方案、史扬方案、白-武方案以及WSISE算法等等。
随着研究的不断深入,目前已有多种针对白盒SM4实现的攻击被提出,如林婷婷所设计的改进BGE攻击。这些攻击利用数学方法,可以在一定的时间复杂度内恢复出白盒SM4实现中隐藏的密钥信息。在现有的白盒实现方案中,很大一部分在这些攻击下安全性不足,获取密钥所需的时间复杂度较低,如肖-来方案。而也有部分方案虽然实现了足够的安全性,但内存占用明显偏大,在存储空间有限的边缘物联代理上实用性不足,如白-武方案。为此,亟需设计一种新型的白盒SM4实现方法,在保证内存占用足够小的前提下,大幅度提升其在以白盒SM4实现为目标的攻击下的安全性。
发明内容
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种应用于边缘物联代理的白盒SM4加解密方法及***,通过引入伪状态,在保证加解密结果正确性、内存占用足够小的前提下,极大地提升了白盒SM4实现的多样性、含混度以及抵抗攻击的能力,从而提升白盒SM4实现的安全性。
为解决上述技术问题,本发明提供一种应用于边缘物联代理的白盒SM4加解密方法,包括:
获取输入数据;
利用预先确定的外部编码及解码函数对输入数据进行外部编码;
利用预先存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果;
利用所述外部编码及解码函数对加解密计算结果进行外部解码,得到加解密结果;
所述外部编码及解码函数的处理过程,包括:
获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据;
将随机伪数据加入到输入数据进行仿射变换,完成外部编码;
对加解密计算结果进行逆仿射变换,之后删除多余的随机伪数据,完成外部解码。
进一步的,所述利用预先存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果,包括:
将SM4算法的每一轮加解密分解成三部分,第一部分用于对后n-1个输入值进行按位异或操作,第二部分用于对第一部分的输出值依次进行扩展后的加轮密钥、非线性变换和线性变换操作,第三部分用于对第二部分的输出及第一个输入值进行按位异或操作,得到此轮的输出值,第一轮的n个输入值为外部编码后的输入数据,之后的每轮的前n-1个输入值为上一轮的后三个输入值,第四个输入值为上一轮的输出值;进行每轮的输出值计算,得到最后一轮的输出值,将最后一轮的后三个输入值和最后一轮的输出值作为加解密计算结果。
进一步的,所述改进的白盒SM4算法的构建包括:
获取SM4算法;
将SM4算法的原始密钥扩展成为轮密钥,在轮密钥中引入伪密钥得到扩展后的轮密钥;接着根据伪状态的数量对SM4算法中的非线性变换τ和线性变换L进行扩展,得到改进的SM4算法;
将改进的SM4算法的第一部分、第三部分表示为矩阵的形式,第二部分表示为查找表的形式,并使用随机的可逆仿射变换作为置乱编码对矩阵和查找表进行混淆得到改进的白盒SM4算法。
进一步的,所述将SM4算法的原始密钥扩展成为轮密钥,包括:
利用密钥扩展算法进行32轮迭代运算,将128位的SM4算法的原始密钥扩展成为1024位的轮密钥。
进一步的,所述利用预先确定的外部编码及解码函数对输入数据进行外部编码,包括:
输入数据经外部编码后传输至该边缘物联代理,利用存储的矩阵和查找表进行加解密计算,输出数据经外部解码后得到加解密结果。
进一步的,所述获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据,包括:
依据边缘物联代理的内存大小确定所引入的伪状态的数量n,对于SM4算法中每一个32位的中间结果X i ,加入8×n位的随机伪数据。
一种应用于边缘物联代理的白盒SM4加解密***,包括:
获取模块,用于获取输入数据;
外部编码模块,用于利用预先确定的外部编码及解码函数对输入数据进行外部编码;
计算模块,用于利用预先存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果;
外部解码模块,用于利用所述外部编码及解码函数对加解密计算结果进行外部解码,得到加解密结果;
所述外部编码及解码函数的处理过程,包括:
获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据;
将随机伪数据加入到输入数据进行仿射变换,完成外部编码;
对加解密计算结果进行逆仿射变换,之后删除多余的随机伪数据,完成外部解码。
进一步的,所述计算模块,
用于将SM4算法的每一轮加解密分解成三部分,第一部分用于对后n-1个输入值进行按位异或操作,第二部分用于对第一部分的输出值依次进行扩展后的加轮密钥、非线性变换和线性变换操作,第三部分用于对第二部分的输出及第一个输入值进行按位异或操作,得到此轮的输出值,第一轮的n个输入值为外部编码后的输入数据,之后的每轮的前n-1个输入值为上一轮的后三个输入值,第四个输入值为上一轮的输出值;进行每轮的输出值计算,得到最后一轮的输出值,将最后一轮的后三个输入值和最后一轮的输出值作为加解密计算结果。
进一步的,所述计算模块包括构建单元,
用于获取SM4算法;将SM4算法的原始密钥扩展成为轮密钥,在轮密钥中引入伪密钥得到扩展后的轮密钥;接着根据伪状态的数量对SM4算法中的非线性变换τ和线性变换L进行扩展,得到改进的SM4算法;将改进的SM4算法的第一部分、第三部分表示为矩阵的形式,第二部分表示为查找表的形式,并使用随机的可逆仿射变换作为置乱编码对矩阵和查找表进行混淆得到改进的白盒SM4算法。
进一步的,所述构建单元包括第一扩展单元,
用于利用密钥扩展算法进行32轮迭代运算,将128位的SM4算法的原始密钥扩展成为1024位的轮密钥。
进一步的,所述外部编码模块,
用于将输入数据经外部编码后传输至该边缘物联代理,利用存储的矩阵和查找表进行加解密计算,输出数据经外部解码后得到加解密结果。
进一步的,所述获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据,包括:
依据边缘物联代理的内存大小确定所引入的伪状态的数量n,对于SM4算法中每一个32位的中间结果X i ,加入8×n位的随机伪数据。
本发明所达到的有益效果:
1.通过引入伪状态,极大地提升了白盒实现的多样性与含混度,并且在基于BGE攻击与差分分析法相结合的针对白盒SM4实现攻击下,获取密钥所需的时间复杂度得到了极大的提升。相较于内存占用的增长,本发明在安全性上提升的幅度明显更高,保护效率有明显提升。
2. 所添加的伪状态的数量不是唯一的,该数值越大,安全性越高,但内存占用也会不可避免的增加。可以根据实际需要,在对安全性与内存占用进行权衡后确定引入的伪状态的数量。通过这种方式,本发明的适用范围得到了极大的扩展,在不同场景下均有其实用价值。
附图说明
图1是本发明的流程示意图;
图2是每一轮引入伪状态的白盒SM4实现的示意图;
图3是在边缘物联代理上进行加解密操作的流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,一种应用于边缘物联代理的白盒SM4加解密方法,包括:
获取输入数据;
利用预先确定的外部编码及解码函数对输入数据进行外部编码;
利用预先存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果;
利用所述外部编码及解码函数对加解密计算结果进行外部解码,得到加解密结果;
所述外部编码及解码函数的处理过程,包括:
获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据;
将随机伪数据加入到输入数据进行仿射变换,完成外部编码;
对加解密计算结果进行逆仿射变换,之后删除多余的随机伪数据,完成外部解码。
所述改进的白盒SM4算法,包括以下三个步骤:
步骤A:将SM4算法的原始密钥扩展成为轮密钥;
确定所引入的伪状态的数量,并确定在中间结果中添加的随机伪数据;
步骤B:在轮密钥中引入伪密钥,对原算法中的非线性变换τ和线性变换L进行扩展,引入的数据以及扩展的方式等需要经过设计,以保证加解密结果的正确性;
将每一轮SM4加解密算法分解成三部分,第一部分用于对后三个输入数据进行按位异或操作,第二部分用于对第一部分的输出依次进行扩展后的加轮密钥、非线性变换和线性变换操作,第三部分用于对第二部分的输出及第一个输入数据进行按位异或操作;
将上述第一、三部分表示为矩阵的形式,第二部分表示为查找表的形式,并添加如图2所示的随机可逆仿射变换作为置乱编码对其进行混淆;
步骤C:通过如图3所示的流程在边缘物联代理上利用存储的矩阵和查找表进行加解密操作。
进一步,所述步骤A包括:
密钥的扩展通过密钥扩展算法实现,该算法采用32轮迭代结构,可以将128位的原始密钥转化为1024位的轮密钥。在第一轮中,输入数据K = [K 0, K 1, K 2, K 3]是原始密钥与***参数FK进行按位异或计算得到的结果。其中第i个输入值K i 的长度为32位,而FK的长度为128位,在中华人民共和国密码行业标准GM/T 0002-2012中有详细的定义。每一轮的密钥扩展计算可以用式(1)和(2)表示:
式(1)中的计算结果K i+4即为加解密算法所需的轮密钥rk i 。在每一轮计算结束后,K i+1, K i+2, K i+3以及K i+4将会输出,作为下一轮的输入数据。在式(1)中,符号表示按位异或操作,固定参数CK i 由四个固定值ck i,j 组成,其计算过程如式(3)和(4)所示:
如式(2)所示,变换T’由两部分组成,其中非线性变换τ为四个并行的S盒变换,定义如下:
式中,x表示随机的32位数据,x i 表示表示随机的8位数据,x由x i 组成,τ(x)表示对x进行非线性变换τ计算,表示τ是由4个并行的S盒变换构成。
而线性变换L’的计算过程如式(7)所示:
式(5)中,x i 的长度为8位,函数Sbox(·)在标准GM/T 0002-2012中有详细定义。符号<<<j表示32位数据循环左移j位。
本发明所提出的白盒实现方案通过引入伪状态来提高自身安全性,而所引入的伪状态的数量n将直接决定所提出实现的内存占用、抗攻击能力等指标的数值,因此需要根据实际需要提前确定。n越大,所提出实现的安全性能越好,但同时内存占用也会不可避免地增加,在确定n的值时需要在二者之间进行权衡。
在SM4算法中,每一轮的输入输出数据都以32位进行划分,用X i 表示。由于伪状态的引入,X i 需要进行A i 变换,实现在数据后方加入额外的随机8×n位伪数据的操作,变换后的数据用X i '表示。该过程可以用式(5)和(8)表示。
所加入的数据需要预先确定,其取值并不会对计算结果造成影响,但在后续矩阵与查找表生成时,为保证加解密结果的正确性,某些参数的取值需要根据该值确定。
进一步,所述步骤B包括:
SM4算法的加解密过程同样采用32轮迭代结构,加密与解密算法的计算过程基本一致,只是轮密钥的使用顺序相反。128位的明文或者密文输入可以表示为X = [X 0, X 1,X 2, X 3],每一轮的加解密计算可以用式(9)和(10)表示。在每一轮的计算结束后,X i+1,X i+2,X i+3和X i+4将会输出,作为下一轮的输入。
其中rk m 表示步骤A中生成的轮密钥。当进行加密计算时,m=i;当进行解密计算时,m=31-i。变换T由两部分组成,非线性变换τ已经在式(6)中进行定义,而线性变换L的定义如式(11)所示。
在32轮迭代运算结束后,会执行如式(12)所示的反序变换,最后输出加密或解密结果。
基于以上加解密计算过程,每一轮矩阵和查找表的具体生成方式如图2所示。其中P i ,Q i ,P i+4'和P i+4''表示t=32+8×n位随机的可逆仿射变换,该变换可以等价为转置后在有限域GF(2)上与一个t×t位的矩阵M相乘再加上一个t位的常数C。在GF(2)中,乘法相当于按位与操作而加法相当于按位异或操作。为了确保映射是双射,即保证其逆映射的存在,矩阵M必须在GF(2)上是可逆的。相较于未引入伪状态的情况,仿射变换的选择明显增多了。变换P i+4,P i+4'和P i+4''除了常数部分C,C'和C''不同外,其余完全一致,并且常数部分满足
E i 表示4+n个并行的8位随机可逆仿射变换,如式(14)所示
变换I k 用于打乱第二部分的输入,该变换可以等价为与一个t位的方阵相乘。该方阵由8×8位的矩阵I ij (i,j=0,1,…,3+n)组成,且在每一行或每一列中,有且仅有一个I ij 是8位的单位矩阵,其余均是8×8位的零矩阵。变换q i 表示与一个t位的常数进行按位异或操作,该常数的值由变换A i 和A i+4确定。通过引入变换q i ,每一轮的计算结果P i+4(X i+4')所对应的变换A i+4能够与预先确定的值相一致。图2中的符号“◦”可以用式(15)表示:
函数S ij 可以表示为:
在第二部分中,输入的数据是以8位为单位进行划分的,每一部分称之为一个输入。由于伪状态的引入,输入的数量从原本的4个增加为4+n个,但其中仍然只有4个是加解密过程所需要的,其余的仅仅是为实现更好的混淆而额外添加的。对于4+n个8位的rk ik ,其中四个是轮密钥rk i 的组成部分,其余的是经过设计的伪密钥。他们的具***置由I k 决定。为了获得正确的加解密结果,结合预先确定的变换A i ,伪输入x k 需要满足条件S ij (x k )=0。
由于伪状态的引入,所提出的实现将原本的线性变换L扩展为Lp。变换Lp等价于在GF(2)中与式(17)所示的矩阵Lp相乘。
Lp是一个t位的方阵,其组成元素为8位的方阵B 1,B 2和B 3,具体数值在文献[K. P.Bai, and C. K. Wu, “A secure white-box SM4 implementation,” in Security andCommunication Networks, vol. 9, no. 10, pp. 996-1006, Jul. 2016.]中有定义。通过对线性变换Lp、伪密钥以及变换A i 的精心设计,伪状态的引入对加解密结果的影响可以被完全消除,保证了所提出的白盒实现的正确性。
在生成矩阵、查找表、外部编码与解码函数时,通过对所使用的伪密钥、X i 引入的伪数据以及线性变换Lp等进行设计,可以有效消除伪状态的引入对加解密结果的影响,使得在计算变得更为复杂,安全性得到提升的同时能够保证白盒实现的正确性。
基于每一轮SM4算法的计算过程,图2中每一个部分所实现的功能可以得到确定。其中Part 1实现X i+1,X i+2和X i+3三者的按位异或计算;第二部分实现该计算结果与轮密钥的按位异或计算,再将结果进行T变换操作;最后,第三部分实现上述T变换的结果与X i 的按位异或计算。
由于第一部分和第三部分仅由线性的仿射变换和按位异或操作构成,因此能够以矩阵的形式储存,但第二部分包含非线性的S盒变换,因此需要转换为查找表的形式进行储存。为了正确表示这一部分的输入输出对应关系,针对每个可能的输入的值,查找表中需要储存其对应的输出的值。由于第二部分中输入输出数据的长度均是t位,若将每一轮第二部分储存为一张查找表,则该表包含2 t 个t位数据,内存占用显然太大,严重影响力白盒实现的实用性。因此,需要对其进行处理。第二部分的计算过程可以简化为输入数据首先进行4+n个并行的8位非线性变换S ij (E ij (•)),然后再进行由I k -1,Lp,q i 和Q i 组成的仿射变换。该过程可以简化为4+n个包含28个t位数据的查找表,其转换过程如下。将非线性变换后的输出表示为Z = [Z 0, Z 1,…,Z 3+n ] T ,该值需要进行仿射变换,也就是与t位的方阵M相乘再加上t位的常数C。设该方阵的元素是8位的方阵M ij (i, j=0, 1,…,3+n),同时常数C = [C 0,C 1,…,C 3+n ] T 。因此,对于Z k ,第k+1张查找表的输出表示为[M 0k ; M 1k ;…;M (3+n)k ]×Z k T ,并且只有第一张表在输出时结果需要额外加上常数C。注意上述计算过程都在有限域GF(2)上进行。通过将上述查找表的输出进行按位异或操作,可以在不消耗过多内存的前提下得到与仅储存为一张查找表时相一致的结果。
矩阵和查找表的生成需要在可信的环境中进行;但是,一旦生成后,就可以将其存储在边缘物联代理上,即使他们的信息被攻击者恶意窃取,也可以很好地保护密钥信息的安全。
进一步,所述步骤C包括:
将步骤B中生成的矩阵和查找表储存在边缘物联代理上,然后执行如图3所示的加解密操作。输入的数据首先需要在可信的环境下进行外部编码,然后传输至该边缘物联代理。外部编码的过程可以用式(18)表示:
其中,变换A i 即为步骤A中预先确定的添加伪数据的操作,变换P i 与步骤B中所使用的P i 一致,X i 表示未经外部编码的输入数据,P i+3(A i+3(X i+3))为第i轮的计算结果。上述外部编码过程需要在可信的环境中执行,以防止P i (A i (•))的具体数值被攻击者窃取。由于相邻环节所添加的置乱编码是密切相关的,一旦P i (A i (•))泄露,攻击者就可能利用该数据对其他环节的混淆进行简化,这将极大地削弱白盒实现的安全性。此外,在可信的环境下,明文或者密文信息本身的安全也可以得到保障。
在边缘物联代理上,利用储存的矩阵和查找表进行加解密计算。如步骤B中所描述的那样,每一轮查找表的计算都包含了对输入信息的解码和对输出信息的编码,这既保证了加解密结果的正确性,也使得每一轮的中间结果都被混淆,从而保证了信息的安全。
最后,为了得到最终的加解密结果,反序变换后的数据需要在可信的环境下进行外部解码,可以用式(19)表示:
其中,Y 0 "表示最后一轮的计算结果,Y 1 "、Y 2 "、Y 3 "表示最后
一轮的后三个输入数据,Y"表示将要进行外部解码的数据,该数据由Y i "组成,具体见附图
3,Y i "=P 35-i (A 35-i (X 35-i ))。
通过以上步骤,可以在保证密钥信息安全的前提下实现在边缘物联代理上的加解密操作。
为了更好地评价所提出的白盒实现的安全性与实用性,下文将运用几个量化指标来对几种不同的白盒SM4实现方案进行对比分析。其中内存占用用于衡量实用性,而多样性、含混度以及获取密钥所需的时间复杂度用于衡量安全性。
本发明所提出的白盒实现方案,其内存占用为(9.25(4+n)2+ 0.1563(4+n)) KB。不同白盒SM4实现方案之间内存占用的比较如表1所示。WSISE算法中,64,128和256位代表内部状态扩充的位数。本发明中,1,2,3和4个伪状态代表引入的伪状态的个数,注意该数值在理论上是不受限制的,这里仅列出四种常见的情况。
表1:不同白盒SM4实现的内存占用比较
本发明所提出的白盒实现方案的内存占用足够小,可以保证实用性。为了证明其在安全性上的提升,计算得到每一轮各个部分的白盒多样性和含混度如表2所示。其中函数h(t)代表在GF(2)上所有t位可逆仿射变换的选择的个数,如式(20)所示。
表2:所提出白盒实现的多样性与含混度
通过引入伪状态,所提出实现中所使用的仿射变换具有更高的输入输出位数,因此也具有更多的选择。这极大地提高了实现的多样性与含混度,使其具备更强的抗暴力攻击的能力。由于不同实现方案的结构不尽相同,因此很难将它们的多样性与含混度指标进行统一的比较。由于肖-来方案在结构上与本发明最为相似,因此这里将二者进行比较。
表3:肖-来方案与本发明多样性与含混度的对比
上述计算结果表明,密钥信息被很好地隐藏在了实现中,攻击者几乎不可能通过暴力破解的方式获取该信息。更进一步,相较于肖-来方案,虽然本发明的内存占用有所增加,其多样性与含混度却有了显著的提升。
上述指标仅用于分析暴力攻击,而对于专门针对白盒实现的攻击,安全性的衡量指标如下。在众多以白盒实现为目标的攻击方式中,林婷婷设计的改进的BGE攻击是最典型的,参见[T. T. Lin, and X. J. Lai, “Efficient attack to white-box SMS4implementation,” in Journal of Software, vol. 24, no. 9, pp. 2238-2249, Sep.2013.],该攻击通过将BGE攻击与差分分析法等方法相结合,可以在一定的时间复杂度内恢复出白盒SM4实现的密钥。不同方案窃取密钥所需的时间复杂度如表4所示。
表4:不同方案时间复杂度比较
通过对比表1和4,可以清楚地看到与其他方案相比,本发明密钥信息被窃取所需的时间复杂度的增长幅度远远大于其内存占用的增长幅度,这显示出其在防御效率上的提升。
通过时间复杂度可以近似估计获取密钥所需的时间。在实际应用中,边缘物联代理上储存的矩阵和查找表需要根据该时间提前进行更换,以保证密钥信息的安全。而较大的时间复杂度意味着较长的更换周期,考虑到边缘物联代理应用范围广、数量多的特点,这在工程应用中具有极其重要的意义。
相应的本发明还提供一种应用于边缘物联代理的白盒SM4加解密***,包括:
获取模块,用于获取输入数据;
外部编码模块,用于利用预先确定的外部编码及解码函数对输入数据进行外部编码;
计算模块,用于利用预先存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果;
外部解码模块,用于利用所述外部编码及解码函数对加解密计算结果进行外部解码,得到加解密结果;
所述外部编码及解码函数的处理过程,包括:
获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据;
将随机伪数据加入到输入数据进行仿射变换,完成外部编码;
对加解密计算结果进行逆仿射变换,之后删除多余的随机伪数据,完成外部解码。
所述计算模块,
用于将SM4算法的每一轮加解密分解成三部分,第一部分用于对后n-1个输入值进行按位异或操作,第二部分用于对第一部分的输出值依次进行扩展后的加轮密钥、非线性变换和线性变换操作,第三部分用于对第二部分的输出及第一个输入值进行按位异或操作,得到此轮的输出值,第一轮的n个输入值为外部编码后的输入数据,之后的每轮的前n-1个输入值为上一轮的后三个输入值,第四个输入值为上一轮的输出值;进行每轮的输出值计算,得到最后一轮的输出值,将最后一轮的后三个输入值和最后一轮的输出值作为加解密计算结果。
所述计算模块包括构建单元,
用于获取SM4算法;将SM4算法的原始密钥扩展成为轮密钥,在轮密钥中引入伪密钥得到扩展后的轮密钥;接着根据伪状态的数量对SM4算法中的非线性变换τ和线性变换L进行扩展,得到改进的SM4算法;将改进的SM4算法的第一部分、第三部分表示为矩阵的形式,第二部分表示为查找表的形式,并使用随机的可逆仿射变换作为置乱编码对矩阵和查找表进行混淆得到改进的白盒SM4算法。
所述构建单元包括第一扩展单元,
用于利用密钥扩展算法进行32轮迭代运算,将128位的SM4算法的原始密钥扩展成为1024位的轮密钥。
所述外部编码模块,
用于将输入数据经外部编码后传输至该边缘物联代理,利用存储的矩阵和查找表进行加解密计算,输出数据经外部解码后得到加解密结果。
所述获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据,包括:
依据边缘物联代理的内存大小确定所引入的伪状态的数量n,对于SM4算法中每一个32位的中间结果X i ,加入8×n位的随机伪数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种应用于边缘物联代理的白盒SM4加解密方法,其特征在于,包括:
获取输入数据;
利用预先确定的外部编码及解码函数对输入数据进行外部编码;
利用预先存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果;
利用所述外部编码及解码函数对加解密计算结果进行外部解码,得到加解密结果;
所述外部编码及解码函数的处理过程,包括:
获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据;
将随机伪数据加入到输入数据进行仿射变换,完成外部编码;
对加解密计算结果进行逆仿射变换,之后删除多余的随机伪数据,完成外部解码;
所述利用预先存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果,包括:
将SM4算法的每一轮加解密分解成三部分,第一部分用于对后n-1个输入值进行按位异或操作,第二部分用于对第一部分的输出值依次进行扩展后的加轮密钥、非线性变换和线性变换操作,第三部分用于对第二部分的输出及第一个输入值进行按位异或操作,得到此轮的输出值,第一轮的n个输入值为外部编码后的输入数据,之后的每轮的前n-1个输入值为上一轮的后三个输入值,第四个输入值为上一轮的输出值;进行每轮的输出值计算,得到最后一轮的输出值,将最后一轮的后三个输入值和最后一轮的输出值作为加解密计算结果;
所述改进的白盒SM4算法的构建包括:
获取SM4算法;
将SM4算法的原始密钥扩展成为轮密钥,在轮密钥中引入伪密钥得到扩展后的轮密钥;接着根据伪状态的数量对SM4算法中的非线性变换τ和线性变换L进行扩展,得到改进的SM4算法;
将改进的SM4算法的第一部分、第三部分表示为矩阵的形式,第二部分表示为查找表的形式,并使用随机的可逆仿射变换作为置乱编码对矩阵和查找表进行混淆得到改进的白盒SM4算法。
2.根据权利要求1所述的应用于边缘物联代理的白盒SM4加解密方法,其特征在于,所述将SM4算法的原始密钥扩展成为轮密钥,包括:
利用密钥扩展算法进行32轮迭代运算,将128位的SM4算法的原始密钥扩展成为1024位的轮密钥。
3.根据权利要求1所述的应用于边缘物联代理的白盒SM4加解密方法,其特征在于,所述利用预先确定的外部编码及解码函数对输入数据进行外部编码,包括:
输入数据经外部编码后传输至该边缘物联代理,利用存储的矩阵和查找表进行加解密计算,输出数据经外部解码后得到加解密结果。
4.根据权利要求1所述的应用于边缘物联代理的白盒SM4加解密方法,其特征在于,所述获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据,包括:
依据边缘物联代理的内存大小确定所引入的伪状态的数量n,对于SM4算法中每一个32位的中间结果X i ,加入8×n位的随机伪数据。
5.一种应用于边缘物联代理的白盒SM4加解密***,其特征在于,包括:
获取模块,用于获取输入数据;
外部编码模块,用于利用预先确定的外部编码及解码函数对输入数据进行外部编码;
计算模块,用于利用预先存储有改进的白盒SM4算法的边缘物联代理对外部编码后的输入数据进行加解密计算,得到加解密计算结果;
外部解码模块,用于利用所述外部编码及解码函数对加解密计算结果进行外部解码,得到加解密结果;
所述外部编码及解码函数的处理过程,包括:
获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据;
将随机伪数据加入到输入数据进行仿射变换,完成外部编码;
对加解密计算结果进行逆仿射变换,之后删除多余的随机伪数据,完成外部解码;
所述计算模块,
用于将SM4算法的每一轮加解密分解成三部分,第一部分用于对后n-1个输入值进行按位异或操作,第二部分用于对第一部分的输出值依次进行扩展后的加轮密钥、非线性变换和线性变换操作,第三部分用于对第二部分的输出及第一个输入值进行按位异或操作,得到此轮的输出值,第一轮的n个输入值为外部编码后的输入数据,之后的每轮的前n-1个输入值为上一轮的后三个输入值,第四个输入值为上一轮的输出值;进行每轮的输出值计算,得到最后一轮的输出值,将最后一轮的后三个输入值和最后一轮的输出值作为加解密计算结果;
所述计算模块包括构建单元,
用于获取SM4算法;将SM4算法的原始密钥扩展成为轮密钥,在轮密钥中引入伪密钥得到扩展后的轮密钥;接着根据伪状态的数量对SM4算法中的非线性变换τ和线性变换L进行扩展,得到改进的SM4算法;将改进的SM4算法的第一部分、第三部分表示为矩阵的形式,第二部分表示为查找表的形式,并使用随机的可逆仿射变换作为置乱编码对矩阵和查找表进行混淆得到改进的白盒SM4算法。
6.根据权利要求5所述的应用于边缘物联代理的白盒SM4加解密***,其特征在于,所述构建单元包括第一扩展单元,
用于利用密钥扩展算法进行32轮迭代运算,将128位的SM4算法的原始密钥扩展成为1024位的轮密钥。
7.根据权利要求5所述的应用于边缘物联代理的白盒SM4加解密***,其特征在于,所述外部编码模块,
用于将输入数据经外部编码后传输至该边缘物联代理,利用存储的矩阵和查找表进行加解密计算,输出数据经外部解码后得到加解密结果。
8.根据权利要求5所述的应用于边缘物联代理的白盒SM4加解密***,其特征在于,所述获取预先设置的待引入的伪状态的数量,并根据伪状态的数量确定待添加的随机伪数据,包括:
依据边缘物联代理的内存大小确定所引入的伪状态的数量n,对于SM4算法中每一个32位的中间结果X i ,加入8×n位的随机伪数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210251798.1A CN114337993B (zh) | 2022-03-15 | 2022-03-15 | 一种应用于边缘物联代理的白盒sm4加解密方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210251798.1A CN114337993B (zh) | 2022-03-15 | 2022-03-15 | 一种应用于边缘物联代理的白盒sm4加解密方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114337993A CN114337993A (zh) | 2022-04-12 |
CN114337993B true CN114337993B (zh) | 2022-06-14 |
Family
ID=81033336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210251798.1A Active CN114337993B (zh) | 2022-03-15 | 2022-03-15 | 一种应用于边缘物联代理的白盒sm4加解密方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114337993B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951273A (zh) * | 2019-05-08 | 2019-06-28 | 郑州信大捷安信息技术股份有限公司 | 一种sm4算法白盒实现方法与装置 |
CN110278072A (zh) * | 2019-07-11 | 2019-09-24 | 北京电子科技学院 | 一种16轮sm4-128/128白盒密码实现方法 |
CN113824548A (zh) * | 2021-08-05 | 2021-12-21 | 国网江苏省电力有限公司信息通信分公司 | 一种应用于边缘物联代理的非线性白盒sm4实现方法 |
-
2022
- 2022-03-15 CN CN202210251798.1A patent/CN114337993B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951273A (zh) * | 2019-05-08 | 2019-06-28 | 郑州信大捷安信息技术股份有限公司 | 一种sm4算法白盒实现方法与装置 |
CN110278072A (zh) * | 2019-07-11 | 2019-09-24 | 北京电子科技学院 | 一种16轮sm4-128/128白盒密码实现方法 |
CN113824548A (zh) * | 2021-08-05 | 2021-12-21 | 国网江苏省电力有限公司信息通信分公司 | 一种应用于边缘物联代理的非线性白盒sm4实现方法 |
Non-Patent Citations (3)
Title |
---|
A Nonlinear White-Box SM4 Implementation Applied to Edge IoT Agents;Chao Jin et al.;《5th IEEE Conference on Energy Internet and Energy System Integration》;20211025;全文 * |
SM4算法的一种新型白盒实现;姚思等;《密码学报》;20200630;第7卷(第3期);全文 * |
对两个SM4白盒方案的分析;潘文伦等;《密码学报》;20181231;第5卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114337993A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Noura et al. | A new efficient lightweight and secure image cipher scheme | |
CN113940028B (zh) | 实现白盒密码的方法和装置 | |
CN109450632B (zh) | 基于白盒分组密码clefia分析的密钥恢复方法 | |
CN110071794B (zh) | 一种基于aes算法的信息加密方法、***及相关组件 | |
Mousa | Data encryption performance based on Blowfish | |
CN113098675B (zh) | 基于多项式完全同态的二进制数据加密***及方法 | |
Bai et al. | Protect white‐box AES to resist table composition attacks | |
Noura et al. | Overview of efficient symmetric cryptography: dynamic vs static approaches | |
Achkoun et al. | SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes | |
Wang et al. | Cryptanalysis of a white‐box SM4 implementation based on collision attack | |
CN116796345A (zh) | 加解密方法、装置、设备及存储介质 | |
CN113824548B (zh) | 一种应用于边缘物联代理的非线性白盒sm4实现方法 | |
CN116980194A (zh) | 一种基于云边端协同的安全高效数据传输方法及其*** | |
CN114337993B (zh) | 一种应用于边缘物联代理的白盒sm4加解密方法及*** | |
EP2363974A1 (en) | Variable table masking for cryptographic processes | |
CN116192364A (zh) | 抗侧信道的aes白盒加密方法及相关设备 | |
Sakallı et al. | On the construction of 20× 20 and 24× 24 binary matrices with good implementation properties for lightweight block ciphers and hash functions | |
CN112507357B (zh) | 一种基于密钥生成器的多级接口设计方法 | |
CN114598444A (zh) | 基于sm4和动态s盒的音频加密方法 | |
CN114629619A (zh) | 基于sm4和动态s盒的视频加密方法 | |
Alenezi et al. | A Study of Z-Transform Based Encryption Algorithm | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
Li et al. | Improved meet‐in‐the‐middle attacks on reduced‐round Joltik‐BC | |
Jin et al. | A lightweight nonlinear white-box sm4 implementation applied to edge iot agents | |
Shehab et al. | An Image Encryption Technique based on DNA Encoding and Round-reduced AES Block Cipher |
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 |