CN109714154A - 代码体积困难白盒安全模型下的白盒密码算法 - Google Patents
代码体积困难白盒安全模型下的白盒密码算法 Download PDFInfo
- Publication number
- CN109714154A CN109714154A CN201910162840.0A CN201910162840A CN109714154A CN 109714154 A CN109714154 A CN 109714154A CN 201910162840 A CN201910162840 A CN 201910162840A CN 109714154 A CN109714154 A CN 109714154A
- Authority
- CN
- China
- Prior art keywords
- grouping
- key
- encryption
- ciphertext
- 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
Links
Landscapes
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种代码体积困难白盒安全模型下的白盒密码算法,其特征在于,本算法加密过程:一个密钥数组与任意分组密码的加密器结合,在加密过程开始时,首先将明文划分为若干个等长的分组,然后使用从密钥数组中预先确定的密钥加密第一个分组,接下来使用第一个分组的明文和密文作为状态信息来选择加密第二个分组时使用的密钥,并加密第二个分组,再使用第二个分组的明文和密文来选择第三个分组的密钥。以此类推,使用这样的链式加密直至最后一个分组;本算法的解密过程为加密的逆过程。本发明提出的算法在白盒攻击的安全性,其在黑盒模型中的安全性是从底层分组密码继承的。而且,它所需的受保护存储的大小远小于现有方案。
Description
技术领域
本发明可应用于移动互联网,物联网,电子商务等。
背景技术
相似技术(产品)简述:
(1)Bogdanov,Andrey,and Takanori Isobe."White-box cryptographyrevisited:Space-hard ciphers."Proceedings of the 22nd ACM SIGSAC Conferenceon Computer and Communications Security.ACM,2015.此论文提出了通过限制明文和截取密文,使用典型的标准分组密码(例如AES)来构建白盒查找表的方法。
(2)Bogdanov,Andrey,Takanori Isobe,and Elmar Tischhauser."Towardspractical whitebox cryptography:Optimizing efficiency and space hardness."Advances in Cryptology–ASIACRYPT 2016:22nd International Conference on theTheory and Application of Cryptology and Information Security,Hanoi,Vietnam,December 4-8,2016,Proceedings,Part I 22.Springer Berlin Heidelberg,2016.此论文出了效率更高的密码SPNbox。SPNbox基于SPN类型的小型分组密码,该种密码使用密钥相关的S盒实现。
(3)Fouque,Pierre-Alain,et al."Efficient and Provable White-BoxPrimitives."Advances in Cryptology–ASIACRYPT 2016:22nd InternationalConference on the Theory and Application of Cryptology and InformationSecurity,Hanoi,Vietnam,December 4-8,2016,Proceedings,Part I 22.SpringerBerlin Heidelberg,2016.此论文提出了白盒密码WhiteBlock。WhiteBlock使用Feistel网络结构,其中Feistel的轮函数是对巨大查找表的查询。WhiteBlock具有可证明安全性。
发明内容
本发明功能:在白盒攻击环境中,实现一种保护加密和解密的新方法。此方法将密钥数组与分组密码相结合,并以链式方式进行,其中当前的明文块和相应的密文将用于确定加密下一个块的密钥。
本发明需要保护的技术方案:
一种代码体积困难白盒安全模型下的白盒密码算法,其特征在于,本算法加密过程:一个密钥数组与任意分组密码的加密器结合,在加密过程开始时,首先将明文划分为若干个等长的分组,然后使用从密钥数组中预先确定的密钥加密第一个分组,接下来使用第一个分组的明文和密文作为状态信息来选择加密第二个分组时使用的密钥,并加密第二个分组,再使用第二个分组的明文和密文来选择第三个分组的密钥。以此类推,使用这样的链式加密直至最后一个分组。本算法的解密过程为加密的逆过程。
本发明提出的算法在白盒攻击的安全性,其在黑盒模型中的安全性是从底层分组密码继承的。而且,它所需的受保护存储的大小远小于现有方案。更重要的是,本发明的算法与任意分组密码兼容,因此可以重用遗留代码和硬件。对普通计算机和资源受限的嵌入式设备的效率分析和实验评估表明,这种新方法在实践中表现良好,比现有的白盒分组密码更高效,更节省成本。
附图说明
图1本发明算法示意图
图2为本发明加密算法流程图。
图3为本发明解密算法流程图。
具体实施方式
下面从算法的基本思想和算法过程两方面介绍本算法。
基本思想
本算法的基本思想是将一个密钥数组与任意分组密码的加密器结合,在加密过程开始时,首先将明文划分为若干个等长的分组,然后使用从密钥数组中预先确定的密钥加密第一个分组,接下来使用第一个分组的明文和密文作为状态信息来选择加密第二个分组时使用的密钥,并加密第二个分组,再使用第二个分组的明文和密文来选择第三个分组的密钥。以此类推,使用这样的链式加密直至最后一个分组。本算法加密过程的示意图图1。解密过程为加密的逆过程。
本发明算法在space-hardness模型中的安全性来源于攻击者仅掌握部分密钥的事实,并且用于加密下一个分组的密钥索引由当前分组的明文与密文确定,其中明文是随机抽取的,密文亦可认为是足够随机的(分组密码可以被认为是伪随机置换)。
算法过程
以下首先说明在算法中使用的符号,以及加密、解密算法。接下来介绍加密和解密算法的具体过程。
1.符号
设l为明文分组的数量,s为密钥数组的长度,并且r∈${0,...,s-1}。本算法使用表格1中定义的符号。
表格1常用符号
aV是初始化向量(IV)。
b输入为当前状态(例如S[i])和一个分组的明文(例如P[i]),输出为一个分组的密文C[i]。
c输入为当前状态(例如S[i])和一个分组的密文(例如C[i]),输出为一个分组的明文P[i]。
2.加密、解密算法
1)加密算法
2)解密算法
3.加密算法的详细过程(见图2)
加密算法接受明文作为输入,输出与明文长度相同的密文。加密过程如下:
1)初始化
将明文分为l个等长分组,并初始化加密时需要的组件,包括:
a. IV:初始向量,长度与分组长度相同
b. K:一个包含s个密钥的数组
c. r:最初使用的密钥的索引
2)加密第一个分组的明文
将IV与第一个分组的明文P[0]相加,再将相加的结果输入使用了密钥K[r]的加密器EK[r]加密得到第一个分组的密文C[0],并设W[1]为即:
3)加密其余分组的明文
加密第一个分组后,依次加密其余分组的明文。设i∈{1,...l-1},对于第i个分组,首先使用上一分组的明文、密文来选择本分组的密钥,即:使用计算本分组使用的密钥的索引index(对应图中的Key selection),再使用此索引指向的密钥计算本分组的密文。
所述索引index的算法为:得到index后计算密文:同时如果i<l-1,有
4.解密算法的详细过程
解密为加密的逆过程(见图3):
1)解密第一个分组的密文
对于第一个分组,有并有
2)解密其余分组的密文
解密第一个分组后,依次解密其余分组的密文。设i∈{1,...l-1},对于第i个分组,首先使用δ计算本分组使用的密钥的索引index,再计算本分组的明文。
index的算法为:得到index后计算明文:同时如果i<l-1,有
创新点
1.由于链式结构的设计,此方法所需的受保护存储的大小远小于现有方案。随着加密迭代次数的增加,破解算法的难度会越来越大,相对应的所需要保护的密钥数组的大小便会减小。
2.本发明方法与任意分组密码兼容,算法中的分组密码(Block Cipher)的部分可以替换为任意分组密码算法,因此可以重用遗留代码和硬件。
3.本发明方法比现有的白盒分组密码更高效,更节省成本。本算法实现时需要的操作简单:例如在加密过程中,每一个分组只需要3次分组长度的异或、1次模运算以及1次分组密码的加密,其中的异或操作可以使用单指令多数据(SIMD)技术快速完成,而如果分组密码使用的是AES(现有技术)的话,也可借助AES-NI指令集取得优秀的效率。
Claims (2)
1.一种代码体积困难白盒安全模型下的白盒密码算法,其特征在于,本算法加密过程:一个密钥数组与任意分组密码的加密器结合,在加密过程开始时,首先将明文划分为若干个等长的分组,然后使用从密钥数组中预先确定的密钥加密第一个分组,接下来使用第一个分组的明文和密文作为状态信息来选择加密第二个分组时使用的密钥,并加密第二个分组,再使用第二个分组的明文和密文来选择第三个分组的密钥。以此类推,使用这样的链式加密直至最后一个分组;本算法的解密过程为加密的逆过程。
2.如权利要求1所述的代码体积困难白盒安全模型下的白盒密码算法,其特征在于,加密算法的详细过程
加密算法接受明文作为输入,输出与明文长度相同的密文。加密过程如下:
1)初始化
将明文分为l个等长分组,并初始化加密时需要的组件,包括:
a.IV:初始向量,长度与分组长度相同
b.K:一个包含s个密钥的数组
c.r:最初使用的密钥的索引
2)加密第一个分组的明文
将IV与第一个分组的明文P[0]相加,再将相加的结果输入使用了密钥K[r]的加密器EK[r]加密得到第一个分组的密文C[0],并设W[1]为即:
3)加密其余分组的明文
加密第一个分组后,依次加密其余分组的明文。设i∈{1,...l-1},对于第i个分组,首先使用上一分组的明文、密文来选择本分组的密钥,即:使用计算本分组使用的密钥的索引index(对应图中的Key selection),再使用此索引指向的密钥计算本分组的密文。
所述索引index的算法为:得到index后计算密文:同时如果i<l-1,有
解密算法的详细过程:
1)解密第一个分组的密文
对于第一个分组,有并有
2)解密其余分组的密文
解密第一个分组后,依次解密其余分组的密文。设i∈{1,...l-1},对于第i个分组,首先使用δ计算本分组使用的密钥的索引index,再计算本分组的明文。
index的算法为:得到index后计算明文:同时如果i<l-1,有
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910162840.0A CN109714154B (zh) | 2019-03-05 | 2019-03-05 | 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910162840.0A CN109714154B (zh) | 2019-03-05 | 2019-03-05 | 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714154A true CN109714154A (zh) | 2019-05-03 |
CN109714154B CN109714154B (zh) | 2021-10-29 |
Family
ID=66265564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910162840.0A Active CN109714154B (zh) | 2019-03-05 | 2019-03-05 | 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714154B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111769943A (zh) * | 2020-09-01 | 2020-10-13 | 北京连山科技股份有限公司 | 一种基于粒子化的数据安全保护方法 |
CN114491587A (zh) * | 2022-01-13 | 2022-05-13 | 西安电子科技大学 | 基于类似sm4结构的白盒密码加解密方法 |
CN115987483A (zh) * | 2022-12-19 | 2023-04-18 | 豪符密码检测技术(成都)有限责任公司 | 一种检测白盒密码的方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2458774A1 (en) * | 2010-11-24 | 2012-05-30 | Nagravision S.A. | A method of processing a cryptographic function in obfuscated form |
CN101984574B (zh) * | 2010-11-29 | 2012-09-05 | 北京卓微天成科技咨询有限公司 | 一种数据加解密方法及装置 |
US20140348323A1 (en) * | 2013-05-24 | 2014-11-27 | Apple Inc. | Protecting against white box attacks using column rotation |
CN105099666A (zh) * | 2015-06-26 | 2015-11-25 | 中国科学院信息工程研究所 | 混淆轮边界的白盒密码系统和方法 |
CN106059752A (zh) * | 2016-07-04 | 2016-10-26 | 中国科学院信息工程研究所 | 一种基于扩张密文的白盒密码加解密方法 |
US20170033922A1 (en) * | 2015-07-30 | 2017-02-02 | Nxp B.V | Balanced Encoding of Intermediate Values Within a White-Box Implementation |
CN106603224A (zh) * | 2016-12-05 | 2017-04-26 | 同济大学 | 基于白盒加密的安全运行方法及系统 |
US20180062828A1 (en) * | 2016-09-01 | 2018-03-01 | Cryptography Research, Inc. | Protecting block cipher computation operations from external monitoring attacks |
CN107947917A (zh) * | 2017-12-29 | 2018-04-20 | 北京梆梆安全科技有限公司 | 一种生成白盒密钥的方法及装置 |
CN108134673A (zh) * | 2017-12-29 | 2018-06-08 | 北京梆梆安全科技有限公司 | 一种生成白盒库文件的方法及装置 |
CN108183796A (zh) * | 2017-12-29 | 2018-06-19 | 北京梆梆安全科技有限公司 | 利用白盒库文件和白盒密钥文件进行加解密的方法及装置 |
US20180315350A1 (en) * | 2015-04-30 | 2018-11-01 | Koninklijke Philips N.V. | Cryptographic device for calculating a block cipher |
CN109067517A (zh) * | 2018-06-22 | 2018-12-21 | 成都卫士通信息产业股份有限公司 | 加密、解密装置、加密、解密方法和隐藏密钥的通信方法 |
WO2019025046A1 (en) * | 2017-05-24 | 2019-02-07 | Koninklijke Philips N.V. | CRYPTOGRAPHIC DEVICE AND METHOD |
-
2019
- 2019-03-05 CN CN201910162840.0A patent/CN109714154B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2458774A1 (en) * | 2010-11-24 | 2012-05-30 | Nagravision S.A. | A method of processing a cryptographic function in obfuscated form |
CN101984574B (zh) * | 2010-11-29 | 2012-09-05 | 北京卓微天成科技咨询有限公司 | 一种数据加解密方法及装置 |
US20140348323A1 (en) * | 2013-05-24 | 2014-11-27 | Apple Inc. | Protecting against white box attacks using column rotation |
US20180315350A1 (en) * | 2015-04-30 | 2018-11-01 | Koninklijke Philips N.V. | Cryptographic device for calculating a block cipher |
CN105099666A (zh) * | 2015-06-26 | 2015-11-25 | 中国科学院信息工程研究所 | 混淆轮边界的白盒密码系统和方法 |
US20170033922A1 (en) * | 2015-07-30 | 2017-02-02 | Nxp B.V | Balanced Encoding of Intermediate Values Within a White-Box Implementation |
CN106059752A (zh) * | 2016-07-04 | 2016-10-26 | 中国科学院信息工程研究所 | 一种基于扩张密文的白盒密码加解密方法 |
US20180062828A1 (en) * | 2016-09-01 | 2018-03-01 | Cryptography Research, Inc. | Protecting block cipher computation operations from external monitoring attacks |
CN106603224A (zh) * | 2016-12-05 | 2017-04-26 | 同济大学 | 基于白盒加密的安全运行方法及系统 |
WO2019025046A1 (en) * | 2017-05-24 | 2019-02-07 | Koninklijke Philips N.V. | CRYPTOGRAPHIC DEVICE AND METHOD |
CN108134673A (zh) * | 2017-12-29 | 2018-06-08 | 北京梆梆安全科技有限公司 | 一种生成白盒库文件的方法及装置 |
CN108183796A (zh) * | 2017-12-29 | 2018-06-19 | 北京梆梆安全科技有限公司 | 利用白盒库文件和白盒密钥文件进行加解密的方法及装置 |
CN107947917A (zh) * | 2017-12-29 | 2018-04-20 | 北京梆梆安全科技有限公司 | 一种生成白盒密钥的方法及装置 |
CN109067517A (zh) * | 2018-06-22 | 2018-12-21 | 成都卫士通信息产业股份有限公司 | 加密、解密装置、加密、解密方法和隐藏密钥的通信方法 |
Non-Patent Citations (4)
Title |
---|
ANDREY BOGDANOV, TAKANORI ISOBE AND ELMAR TISCHHAUSER: "Towards Practical Whitebox Cryptography: Optimizing Efficiency and Space Hardness", 《INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH 2016》 * |
TING-TING LIN 1,2, XUE-JIA LAI,WEI-JIA XUE AND YIN JIA: "A New Feistel-Type White-Box Encryption Scheme", 《JOURNAL OF COMPUTER SCIENCE》 * |
YANG SHI, WUJING WEI AND ZONGJIAN HE: "A Lightweight White-Box Symmetric Encryption Algorithm against Node Capture for WSNs", 《SENSORS》 * |
邓胡滨,胡锐锋: "基于压缩感知贪婪算法的分组密码设计理论的研究", 《电子技术与软件工程》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111769943A (zh) * | 2020-09-01 | 2020-10-13 | 北京连山科技股份有限公司 | 一种基于粒子化的数据安全保护方法 |
CN111769943B (zh) * | 2020-09-01 | 2021-01-01 | 北京连山科技股份有限公司 | 一种基于粒子化的数据安全保护方法 |
CN114491587A (zh) * | 2022-01-13 | 2022-05-13 | 西安电子科技大学 | 基于类似sm4结构的白盒密码加解密方法 |
CN114491587B (zh) * | 2022-01-13 | 2024-03-19 | 西安电子科技大学 | 基于类似sm4结构的白盒密码加解密方法 |
CN115987483A (zh) * | 2022-12-19 | 2023-04-18 | 豪符密码检测技术(成都)有限责任公司 | 一种检测白盒密码的方法 |
CN115987483B (zh) * | 2022-12-19 | 2024-01-30 | 豪符密码检测技术(成都)有限责任公司 | 一种检测白盒密码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109714154B (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110313146B (zh) | 模糊度增强 | |
CN104202145B (zh) | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 | |
Yegireddi et al. | A survey on conventional encryption algorithms of Cryptography | |
CN108476132A (zh) | 用于加密操作的密钥序列生成 | |
CN109714154A (zh) | 代码体积困难白盒安全模型下的白盒密码算法 | |
JP2011512562A (ja) | アクセス及び通信に関するデータのランダム暗号化及び復号化方法 | |
Reyad et al. | Key-based enhancement of data encryption standard for text security | |
Andrushkevych et al. | The block symmetric ciphers in the post-quantum period | |
Prajwal et al. | User defined encryption procedure for IDEA algorithm | |
JP2000511755A (ja) | バイナリーコード情報を暗号化する方法 | |
Natarajan et al. | A novel approach for data security enhancement using multi level encryption scheme | |
US8891761B2 (en) | Block encryption device, decryption device, encrypting method, decrypting method and program | |
Singh et al. | An ordeal random data encryption scheme (ORDES) | |
Minier et al. | Solving a symmetric key cryptographic problem with constraint programming | |
Ooi et al. | Cryptanalysis of s-des | |
CN114745105B (zh) | 一种融合量子漫步和改进aes的图像加密方法 | |
Chunguang et al. | Permutation of image encryption system based on block cipher and stream cipher encryption algorithm | |
Parihar et al. | Blowfish algorithm: a detailed study | |
Kumar et al. | New Symmetric Key Cipher Based on Quasigroup | |
Sharma et al. | Comparative analysis of block key encryption algorithms | |
Al Mahri et al. | A fault-based attack on AEZ v4. 2 | |
Amro et al. | Known-plaintext attack and improvement of PRNG-based text encryption | |
RU2518950C1 (ru) | СПОСОБ ШЛИФОВАНИЯ n-БИТОВОГО БЛОКА ДАННЫХ М | |
Putra et al. | Performance Analysis Of The Combination Of Advanced Encryption Standard Cryptography Algorithms With Luc For Text Security | |
Sudeepa et al. | Maximum period word oriented non-binary key sequence generation and its application in image encryption/decryption |
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 |