CN116566588B - 一种白盒sm4算法的防护方法及装置 - Google Patents
一种白盒sm4算法的防护方法及装置 Download PDFInfo
- Publication number
- CN116566588B CN116566588B CN202310458295.6A CN202310458295A CN116566588B CN 116566588 B CN116566588 B CN 116566588B CN 202310458295 A CN202310458295 A CN 202310458295A CN 116566588 B CN116566588 B CN 116566588B
- Authority
- CN
- China
- Prior art keywords
- box
- algorithm
- white
- output
- round
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 239000002131 composite material Substances 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/121—Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
- H04W12/122—Counter-measures against attacks; Protection against rogue devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
针对现有SM4白盒可能会受到高级攻击,安全性存在技术隐患的问题,本发明提供了一种白盒SM4算法的防护方法及装置,在隐藏密钥的查找表中,引入了随机掩码,同时结合了非线性编码,降低了密钥与加密过程中查表结果之间的相关性,增加了查表结果输出的不确定性,可以有效抵抗侧信道攻击,解决现有技术安全性不够的问题。
Description
技术领域
本发明涉及信息安全领域,具体涉及一种白盒SM4算法的防护方法及装置。
背景技术
在密码学中,我们总是假设密码算法的运行环境(终端)是安全的,只要保护好密钥就足够了。但是近几年随着数字化信息的广泛应用,很多时候密码运行在一个不安全的环境中,攻击者对设备终端拥有完全的控制能力。Chow等在2002年提出了白盒攻击(White-BoxAttack)的概念,攻击者对加密系统的运行环境和可执行程序拥有完全控制的能力,可以观察和修改任意的内部操作和数据,包括设备的CPU、寄存器、内存数据等等,这样攻击者很容易就可以获得密钥信息。
白盒密码(white-box cryptography,WBC)实现是指能够抵抗白盒攻击的密码技术,通过密钥与算法融合和混淆,使得密钥与加密程序不可区分,即使攻击者掌握了对白盒密码系统的控制能力,也无法进一步获取原始的密钥信息。SM4密码算法是我国商用密码管理办公室公布的商用分组密码标准,广泛地应用于无线局域网产品的保护。SM4算法是分组密码算法,算法的分组长度为128比特,密钥长度为128比特,加密算法与密钥扩展算法都采用32轮非线性迭代结构,解密过程与加密过程结构相同,只是轮密钥的使用顺序相反,解密算法的轮密钥是加密算法的轮密钥的逆序。
现有的SM4白盒实现在设计时更多考虑的是理论分析的安全性,对于白盒环境中的侧信道攻击防护往往采用非线性混淆的方式,对查找表的输出进行混淆,以隐藏嵌入查找表的密钥与加密过程中查表结果之间的相关性
现有技术,虽然通过非线性混淆的方式提升了安全性,但实际上隐藏嵌入查找表的密钥与加密过程中查表结果之间仍然存在着一定的相关性,仍然可能会受到高级攻击。
发明内容
本发明的目的在于克服上述现有技术的不足,提供一种白盒SM4算法的防护方法及装置,以通过在查表过程中引入随机性,增加了查表结果的熵,可以有效抵抗侧信道攻击,解决现有技术安全性不够的问题。
为实现上述目的,本发明的技术方案是:
第一方面,本发明提供一种白盒SM4算法的防护方法,在隐藏密钥的查找表中,引入了随机掩码,同时结合非线性编码。
进一步地,假设Xi,Xi+1,Xi+2,Xi+3,i=0,…,31分别表示第i轮四个32比特的输入,Xi+4表示该轮32比特的输出;
则,所述在隐藏密钥的查找表中,引入了随机掩码,同时结合非线性编码包括:
计算
计算rki表示第i轮的轮密钥,SM表示这里的S盒输出是带掩码的;
计算Xi+4; 其中,ROi为本轮运算结束时所添加的编码;
为上一轮次变换中所添加的编码,L为SM4算法L变换,/>为非线性输出编码Ni的逆变换,Ni(m)为m掩码经过Ni编码后的值,/>合并为复合编码,/> 合并为复合查表LLi。
进一步地,在计算时,每一次计算之前需要抵消上一轮次变换中所添加的编码/>并在本运算结束时添加输出编码SIi,计算过程为分别计算SIi。然后将j分别取1,2,3时对应的/>这三部分异或。
进一步地,所述合并为复合编码TIi。
进一步地,所述SM表示这里的S盒输出是带掩码的,具体计算方法为其中Ni为非线性输出编码。
进一步地,所述合并为复合查表SSi。
进一步地,所述复合查表SS表还有另外一个输出Ni(m),m是S盒的输出掩码。
第二方面,本发明提供一种白盒SM4算法的防护装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一所述方法的步骤。
第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
本发明与现有技术相比,其有益效果在于:
本发明在隐藏密钥的查找表中,引入了随机掩码,同时结合了非线性编码,降低了密钥与加密过程中查表结果之间的相关性,增加了查表结果输出的不确定性,可以有效抵抗侧信道攻击,在抵消掩码时,去掩操作与输出编码相结合,有效保护了轮中间运算结果,解决现有技术安全性不够的问题。
附图说明
图1为本发明实施例1提供的一种白盒SM4算法的防护方法过程原理图;
图2为本发明实施例2提供的一种白盒SM4算法的防护装置的组成示意。
具体实施方式
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1:
本实施例提供的白盒SM4算法的防护方法在隐藏密钥的查找表中,引入了随机掩码,同时结合了非线性编码,降低了密钥与加密过程中查表结果之间的相关性,增加了查表结果输出的不确定性,可以有效抵抗侧信道攻击,解决现有技术安全性不够的问题。
具体地,参阅图1所示,本实施例提供的白盒SM4算法的防护方法具体包括如下步骤:
计算在此步骤中,为保证计算的正确性,每一次计算之前需要抵消上一轮次变换中所添加的编码/>并在本运算结束时添加输出编码SIi,计算过程为分别计算/>然后将j分别取1,2,3时对应的/>这三部分异或。/>进一步合并为复合编码TIi,以增强实现的安全性。
计算rki表示第i轮的轮密钥,SM表示这里的S盒输出是带掩码的,也就是说SM的输出带随机掩码,即引入了随机掩码。/>的具体计算方法为/> 其中Ni为非线性输出编码。/>进一步合并为复合查表SSi,即引入了随机掩码,同时结合了非线性编码,降低了密钥与加密过程中查表结果之间的相关性,增加了查表结果输出的不确定性,可以有效抵抗侧信道攻击,增强实现安全性。由于引入了随机掩码,为了保证最终运算结果的正确性,引入的掩码最终是要消掉的,因此需要知道带的输出掩码是多少,故,除了Y之外,SSi表还有另外一个输出Ni(m),m是S盒的输出掩码。
计算Xi+4。
其中,ROi为本轮运算结束时所添加的编码;
为上一轮次变换中所添加的编码,L为SM4算法L变换,/>为非线性输出编码Ni的逆变换,Ni(m)为m掩码经过Ni编码后的值,/>合并为复合编码,/> 合并为复合查表LLi。
通过上述计算从而实现去掩操作与输出编码相结合,有效保护了轮中间运算结果,即保护白盒密码实现的安全性,攻击者无法利用中间运算结果进行攻击,解决现有技术安全性不够的问题。
实施例2:
参阅图2所示,本实施例提供的白盒SM4算法的防护装置包括处理器21、存储器22以及存储在该存储器22中并可在所述处理器21上运行的计算机程序23,例如白盒SM4算法的防护程序。该处理器21执行所述计算机程序23时实现上述实施例1步骤,例如图1所示的步骤。
示例性的,所述计算机程序23可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器22中,并由所述处理器21执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序23在所述白盒SM4算法的防护装置中的执行过程。
所述白盒SM4算法的防护装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述白盒SM4算法的防护装置可包括,但不仅限于,处理器21、存储器22。本领域技术人员可以理解,图2仅仅是白盒SM4算法的防护装置的示例,并不构成白盒SM4算法的防护装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述白盒SM4算法的防护装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器21可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器22可以是所述白盒SM4算法的防护装置的内部存储元,例如白盒SM4算法的防护装置的硬盘或内存。所述存储器22也可以是所述白盒SM4算法的防护装置的外部存储设备,例如所述白盒SM4算法的防护装置上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器22还可以既包括所述白盒SM4算法的防护装置的内部存储单元也包括外部存储设备。所述存储器22用于存储所述计算机程序以及所述白盒SM4算法的防护装置所需的其他程序和数据。所述存储器22还可以用于暂时地存储已经输出或者将要输出的数据。
实施例3:
本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现实施例1所述方法的步骤。
所示计算机可读介质可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理再以电子方式获得所述程序,然后将其存储在计算机存储器中。
上述实施例只是为了说明本发明的技术构思及特点,其目的是在于让本领域内的普通技术人员能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡是根据本发明内容的实质所做出的等效的变化或修饰,都应涵盖在本发明的保护范围内。
Claims (8)
1.一种白盒SM4算法的防护方法,其特征在于,在隐藏密钥的查找表中,引入了随机掩码,同时结合非线性编码;
假设Xi,Xi+1,Xi+2,Xi+3,i=0,...,31分别表示第i轮四个32比特的输入,Xi+4表示该轮32比特的输出;
则,所述在隐藏密钥的查找表中,引入了随机掩码,同时结合非线性编码包括:
计算
计算rki表示第i轮的轮密钥,SM表示这里的S盒输出是带掩码的;
计算Xi+4; 其中,
ROi为本轮运算结束时所添加的编码;
为上一轮次变换中所添加的编码,L为SM4算法L变换,/>为非线性输出编码Ni的逆变换,Ni(m)为m掩码经过Ni编码后的值,/>合并为复合编码,/> 合并为复合查表LLi。
2.如权利要求1所述的白盒SM4算法的防护方法,其特征在于,在计算 时,每一次计算之前需要抵消上一轮次变换中所添加的编码/>并在本运算结束时添加输出编码SIi,计算过程为分别计算/>然后将j分别取1,2,3时对应的/>这三部分异或。
3.如权利要求2所述的白盒SM4算法的防护方法,其特征在于,所述合并为复合编码TIi。
4.如权利要求1所述的白盒SM4算法的防护方法,其特征在于,所述的具体计算方法为/>其中Ni为非线性输出编码。
5.如权利要求4所述的白盒SM4算法的防护方法,其特征在于,所述合并为复合查表SSi。
6.如权利要5所述的白盒SM4算法的防护方法,其特征在于,所述复合查表SSi表还有另外一个输出Ni(m),m是S盒的输出掩码。
7.一种白盒SM4算法的防护装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310458295.6A CN116566588B (zh) | 2023-04-25 | 2023-04-25 | 一种白盒sm4算法的防护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310458295.6A CN116566588B (zh) | 2023-04-25 | 2023-04-25 | 一种白盒sm4算法的防护方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116566588A CN116566588A (zh) | 2023-08-08 |
CN116566588B true CN116566588B (zh) | 2023-12-01 |
Family
ID=87502899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310458295.6A Active CN116566588B (zh) | 2023-04-25 | 2023-04-25 | 一种白盒sm4算法的防护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116566588B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809626A (zh) * | 2018-05-30 | 2018-11-13 | 北京安如山文化科技有限公司 | 一种白盒sm4密码算法方案与系统 |
CN110474761A (zh) * | 2019-07-11 | 2019-11-19 | 北京电子科技学院 | 一种16轮sm4-256白盒密码实现方法 |
CN111555862A (zh) * | 2020-05-13 | 2020-08-18 | 华南师范大学 | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 |
CN113940028A (zh) * | 2019-03-29 | 2022-01-14 | 爱迪德技术有限公司 | 实现白盒密码的方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189425B2 (en) * | 2011-09-01 | 2015-11-17 | Apple Inc. | Protecting look up tables by mixing code and operations |
US10171234B2 (en) * | 2015-12-16 | 2019-01-01 | Nxp B.V. | Wide encoding of intermediate values within a white-box implementation |
CN106788974B (zh) * | 2016-12-22 | 2020-04-28 | 深圳国微技术有限公司 | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 |
-
2023
- 2023-04-25 CN CN202310458295.6A patent/CN116566588B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809626A (zh) * | 2018-05-30 | 2018-11-13 | 北京安如山文化科技有限公司 | 一种白盒sm4密码算法方案与系统 |
CN113940028A (zh) * | 2019-03-29 | 2022-01-14 | 爱迪德技术有限公司 | 实现白盒密码的方法和装置 |
CN110474761A (zh) * | 2019-07-11 | 2019-11-19 | 北京电子科技学院 | 一种16轮sm4-256白盒密码实现方法 |
CN111555862A (zh) * | 2020-05-13 | 2020-08-18 | 华南师范大学 | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116566588A (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Souyah et al. | An image encryption scheme combining chaos-memory cellular automata and weighted histogram | |
US10439797B2 (en) | Methods and devices against a side-channel analysis | |
US8121294B2 (en) | System and method for a derivation function for key per page | |
EP2924677B1 (en) | Splitting s-boxes in a white-box implementation to resist attacks | |
US9455833B2 (en) | Behavioral fingerprint in a white-box implementation | |
US20070237324A1 (en) | Cryptographic processing | |
EP2892175B1 (en) | Secure software components anti-reverse-engineering by table interleaving | |
CN103119888A (zh) | 用于不安全环境中的块密码处理的装置和方法 | |
CN109726565B (zh) | 在抗泄漏原语中使用白盒 | |
US11436946B2 (en) | Encryption device, encryption method, decryption device, and decryption method | |
JP2020529034A (ja) | 暗号装置及び方法 | |
Shi et al. | An ultra-lightweight white-box encryption scheme for securing resource-constrained IoT devices | |
US9641337B2 (en) | Interface compatible approach for gluing white-box implementation to surrounding program | |
EP2960891B1 (en) | Method for introducing dependence of white-box implementationon a set of strings | |
CN117640256B (zh) | 一种无线网卡的数据加密方法、推荐装置和存储介质 | |
US20210036864A1 (en) | Method and system for generating a keccak message authentication code (kmac) based on white-box implementation | |
Wang et al. | Cryptanalysis of a white‐box SM4 implementation based on collision attack | |
CN116566588B (zh) | 一种白盒sm4算法的防护方法及装置 | |
EP2940917B1 (en) | Behavioral fingerprint in a white-box implementation | |
EP3588841A1 (en) | Method and device for executing an authentication scheme | |
Sahni | A review on cryptographic hashing algorithms for message authentication | |
Lu et al. | White-box implementation of the KMAC message authentication code | |
Ganesh | Review of recent strategies in cryptography-steganography based security techniques | |
EP3267618B1 (en) | Equality check implemented with secret sharing | |
Ghimire et al. | Data integrity verification algorithms and performance evaluation for vehicle accident data recording system |
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 |