CN113541942B - 基于arx白盒分组密码的数字内容加解密方法 - Google Patents
基于arx白盒分组密码的数字内容加解密方法 Download PDFInfo
- Publication number
- CN113541942B CN113541942B CN202110782707.2A CN202110782707A CN113541942B CN 113541942 B CN113541942 B CN 113541942B CN 202110782707 A CN202110782707 A CN 202110782707A CN 113541942 B CN113541942 B CN 113541942B
- Authority
- CN
- China
- Prior art keywords
- block
- updated
- bit
- aes
- ciphertext
- 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 115
- 238000006467 substitution reaction Methods 0.000 claims abstract description 11
- 230000002087 whitening effect Effects 0.000 claims abstract 4
- 239000011159 matrix material Substances 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 31
- 238000012805 post-processing Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000009795 derivation Methods 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 abstract description 3
- 238000004088 simulation Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001074639 Eucalyptus albens Species 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
Images
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- 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
-
- 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
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Technology Law (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于ARX白盒分组密码的数字内容加解密方法,主要解决现有技术加解密方法运行效率不高以及解密方法存储空间成本太高的问题。该方法包括在加密中执行ARX的循环操作以及AES‑128的轮函数操作,在解密中执行AES‑128的逆轮函数操作以及对一个32比特输入、32比特输出的查找表的查询操作。所述ARX的循环操作指模加、循环移位、异或操作。所述AES‑128的轮函数操作指预白化密钥、字节代换、行移位、列混淆、轮密钥加操作。本发明保证加解密方法运行效率高于现有技术,且解密方法存储空间成本低于现有技术。
Description
技术领域
本发明属于网络信息安全技术领域,更进一步涉及信息安全技术领域中的一种基于模加、循环移位、异或ARX(Addition,Rotation,XOR)白盒分组密码的数字内容加解密方法。本发明可用于对数字内容加解密,达到版权保护的目的。
背景技术
随着电子时代的来临,视听内容的载体由物理设备逐渐转为数字形态。尽管数字内容更易于生产、分发,以及存储,保护数字内容的任务却愈发艰巨。数字版权管理即是采用访问控制技术来保护数字内容的版权,具体地,限制数字资产的使用、修改和分发。经典的数字版权管理系统,如微软的Windows媒体数字版权管理系统和苹果FairPlay系统,均采用密码算法来控制客户对于数字内容的使用权限。数字内容提供商通过加密算法加密数字内容,并将加密后的内容发布至公开网络,付费客户通过许可证颁发商获取嵌入了解密密钥的解密设备,并运行解密算法,从而获得数字内容。由于客户拥有解密设备的使用权限,这为版权管理带来潜在威胁,即,客户可以从解密设备中提取解密密钥,并完全拥有数字内容的解密权,而白盒分组密码算法可以有效解决这一威胁。这一技术在保障加解密正确性的前提下,能够保证加密算法不泄露加密密钥,且解密算法不泄露解密密钥。
Andrey Bogdanov和Takanori Isobe在其发表的论文“White-box CryptographyRevisited:Space-Hard Ciphers”(In Proceedings of 22nd ACM SIGSAC Conference onComputer and Communications Security,USA,2015,pp.1058-1069.)中公开了一种基于白盒分组密码的数字内容加解密方法SPACE-32。该方法利用Feistel网络的结构来进行加解密。加密方法和解密方法的轮函数均迭代128轮。具体地,加密方法的每一轮需要首先进行截断的高级加密标准AES(Advanced Encryption Standard)的操作,随后再进行异或操作和调换操作,解密方法需要查询一个32比特输入、96比特输出的查找表。但是,该方法存在的不足之处是,其加密方法和解密方法均需执行128轮复杂轮函数,因此该方法的运行效率不高。该方法存在的第二点不足之处是,其解密方法需要预存储一个大小为51.5GB的查找表,因此该方法的解密方法的存储空间成本太高。
Andrey Bogdanov,Takanori Isobe,and Elmar Tischhauser在其发表的论文“Towards Practical Whitebox Cryptography:Optimizing Efficiency and SpaceHardness”(In Proceedings of 22nd International Conference on the Theory andApplication of Cryptology andInformation Security,Vietnam,2016,pp.126-158.)中公开了一种基于白盒分组密码的数字内容加解密方法SPNbox-32。该方法利用替换置换网络的结构来进行加解密。加密方法和解密方法的轮函数均迭代10轮。具体地,加密方法执行16轮的小尺寸AES,解密方法需要查询一个32比特输入、32比特输出的查找表。但是,该方法存在的不足之处是,其加密方法总共需要执行160轮AES的轮函数组件操作,因此该方法的加密方法的运行效率不高。
Pierre-Alain,Fouque Pierre Karpman,Paul Kirchner,and Brice Minaud在其发表的论文“Efficient and Provable White-Box Primitives”(In Proceedings of22nd International Conference on the Theory and Application of Cryptology andInformation Security,Vietnam,2016,pp.159-188.)中公开了一种数字内容加解密方法HOUND 32。该方法利用Feistel网络的结构来进行加解密。加密方法和解密方法的轮函数均迭代34轮。具体地,加密方法的每一轮需要首先执行AES,随后再进行两个并行的截断AES的操作与异或操作,解密方法需要查询两个32比特输入、64比特输出的查找表。但是,该方法存在的不足之处是,其加密方法和解密方法均需要执行34轮的轮函数操作,因此运行效率不高。该方法存在的第二点不足之处是,其解密方法需要预存储一个大小为64GB的查找表,因此该方法的解密方法的存储空间成本非常高。
发明内容
本发明目的在于针对上述现有技术的不足,提出一种基于ARX白盒分组密码的数字内容加解密方法,以解决加密方法和解密方法运行效率不高和解密方法存储空间成本太高的问题。
为实现上述目的,本发明的思路是:加密方法执行24轮ARX的循环操作以及AES-128的轮函数操作,解密方法执行AES-128的逆轮函数操作以及对一个32比特输入、32比特输出的查找表的查表操作。由于ARX的操作具备快速的算术实现指令,AES-128的轮函数具备AES-NI的快速实现指令,解决了加密方法和解密方法运行效率不高的问题。由于解密方法仅仅查询一个32比特输入、32比特输出的查找表,其占用的存储空间大小为16GB,解决了解密方法存储空间成本太高的问题。
本发明的技术方案包括如下:
步骤1,生成加密密钥:
利用密钥导出函数KDF,将一个128位的主密钥变换为25个32位的轮密钥k0,k1,...,ki,...,k24,作为数字内容的加密密钥;
步骤2,利用ARX循环操作生成解密密钥:
(2a)将232个32位比特串0,1,10,…,11111111111111111111111111111111分别与初始轮密钥k0异或,得到异或后的232个32位比特串;
(2b)对每个32位比特串中的高16位循环右移7位后,再与低16位进行模数为65536的相加操作,得到该比特串的高16位,将每个32位比特串中的低16位复制,得到该比特串的低16位;
(2c)对每个32位比特串中的低16位循环左移2位后,再与高16位进行异或操作,得到该比特串的低16位,将每个32位比特串中的高16位复制,得到该比特串的高16位;
(2d)对每个32位比特串与轮密钥ki进行异或操作,得到异或后的32位比特串,其中i表示循环轮次;
(2e)遍历步骤(2b)、(2c)、(2d)24次,得到232个32位比特串;
(2f)将232个32位比特串排列在一张查找表中,作为数字内容的解密密钥;
步骤3,对数字内容进行预处理:
将数字内容编码为比特串,将比特串切分为128位的明文分组,对于不足128位的分组填充比特‘0’;
步骤4,利用初始轮密钥异或操作更新明文分组:
将每个128位的明文分组切分为4个32比特的小块,将每个小块与初始轮密钥k0异或,得到该小块异或后的小块;
步骤5,利用ARX循环操作更新明文分组:
(5a)采用与步骤(2b)、(2c)、(2d)、(2e)的相同方法,对每个明文分组的每个小块进行ARX循环操作,得到每个明文分组的4个更新后的小块;
(5b)对每个明文分组的4个更新后的小块,按照其更新前的顺序从高位到低位进行级联操作,得到128位比特串,作为每个明文分组的更新后的明文分组;
步骤6,利用AES-128的轮函数操作更新明文分组:
(6a)利用AES-128的密钥编排操作,将一个随机的128位比特串变换为与轮次相同数量的128位的比特串,作为AES-128的轮密钥;
(6b)对每个明文分组和AES-128的轮密钥进行AES-128的轮函数操作,得到明文分组更新后的明文分组;
步骤7,对明文分组进行后处理:
将所有更新后的明文分组按照其更新前的顺序从高位到低位进行级联操作,得到密文比特串,将密文比特串编码为密文形式的数字内容;
步骤8,对密文形式的数字内容进行预处理:
将密文形式的数字内容解码为比特串,将比特串切分为128位的密文分组;
步骤9,利用查表操作更新密文分组:
(9a)将每个密文分组切分为4个32比特的小块,对每个小块对应的32比特索引,查找其在步骤(2f)生成的查找表中对应的32位比特串,作为该小块更新后的小块;
(9b)采用与步骤(5b)的相同方法,对每个密文分组进行级联操作,得到128位比特串,作为每个密文分组的更新后的密文分组;
步骤10,利用AES-128的逆轮函数操作更新密文分组:
对每个密文分组和AES-128的轮密钥进行AES-128的逆轮函数操作,得到密文分组更新后的密文分组;
步骤11,对密文分组进行后处理:
将所有更新后的密文分组按照其更新前的顺序从高位到低位进行级联操作,得到明文比特串,将明文比特串解码为明文形式的数字内容。
本发明与现有技术相比,具有如下优点:
第一,本发明由于采用了ARX的循环操作来更新明文分组,以及采用了AES-128的逆轮函数操作来更新密文分组,与现有技术相比,解决了加密方法和解密方法运行效率不高的问题,使得本发明具有了加解密运行速度快的优点。
第二,本发明由于采用了一个32比特输入、32比特输出的查找表,与现有技术相比,解决了解密方法存储空间成本太高的问题,使得本发明具有了解密存储空间成本低的优点。
附图说明
图1为本发明的实现流程图;
图2为本发明的仿真实验中加密方法耗费的每字节时钟周期数结果图;
图3为本发明的仿真实验中解密方法耗费的每字节时钟周期数结果图;
图4为本发明的仿真实验中解密方法需要的存储空间大小结果图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步的详细说明。
参照图1,对本发明的实现步骤做进一步的描述。
步骤1,生成加密密钥。
利用密钥导出函数KDF,将一个128位的主密钥变换为25个32位的轮密钥k0,k1,...,ki,...,k24,作为数字内容的加密密钥。
所述的密钥导出函数KDF是指安全哈希算法族里的输出可扩展函数SHAKE128、SHAKE256中的任意一种。
步骤2,利用ARX循环操作生成解密密钥。
S1:将232个32位比特串0,1,10,…,11111111111111111111111111111111分别与初始轮密钥k0异或,得到异或后的232个32位比特串。
S2:对每个32位比特串中的高16位循环右移7位后,再与低16位进行模数为65536的相加操作,得到该比特串的高16位,将每个32位比特串中的低16位复制,得到该比特串的低16位。
S3:对每个32位比特串中的低16位循环左移2位后,再与高16位进行异或操作,得到该比特串的低16位,将每个32位比特串中的高16位复制,得到该比特串的高16位。
S4:对每个32位比特串与轮密钥ki进行异或操作,得到异或后的32位比特串,其中i表示循环轮次。
S5:遍历步骤S2、S3、S4共24次,得到232个32位比特串。
S6:将232个32位比特串排列在一张查找表中,作为数字内容的解密密钥。
步骤3,对数字内容进行预处理。
将数字内容编码为比特串,将比特串切分为128位的明文分组,对于不足128位的分组填充比特‘0’。
步骤4,利用初始轮密钥异或操作更新明文分组。
将每个128位的明文分组切分为4个32比特的小块,将每个小块与初始轮密钥k0异或,得到该小块异或后的小块。
步骤5,利用ARX循环操作更新明文分组。
S1:采用与步骤2中S2、S3、S4、S5的相同方法,对每个明文分组的每个小块进行ARX循环操作,得到每个明文分组的4个更新后的小块。
S2:对每个明文分组的4个更新后的小块,按照其更新前的顺序从高位到低位进行级联操作,得到128位比特串,作为每个明文分组的更新后的明文分组。
步骤6,利用AES-128的轮函数操作更新明文分组。
S1:利用AES-128的密钥编排操作,将一个随机的128位比特串变换为6个128位的比特串,作为AES-128的轮密钥。
S2预白化密钥:将每个明文分组与AES-128的第1个轮密钥进行异或操作,得到更新后的明文分组。
S3字节代换:将每个更新后的明文分组切分为16个8比特的小块,将16个小块按照从左到右、从上到下的顺序排列在一个4行4列的矩阵中,对每个小块对应的8比特索引,查找其在AES-128的字节代换查找表中对应的8位比特串,作为该小块更新后的小块,得到更新后的矩阵。
S4行移位:对于每个明文分组,将更新后的矩阵中的第1行内的4个小块保持不变,第2行内的4个小块循环左移1个位置,第3行内的4个小块循环左移2个位置,第4行内的4个小块循环左移3个位置,得到更新后的矩阵。
S5列混淆:对于每个明文分组,对更新后的矩阵的每一列左乘AES-128的列混淆矩阵,得到更新后的矩阵,将矩阵中的16个小块按照从左到右、从上到下的顺序排列成128位的比特串,作为更新后的明文分组。
S6轮密钥加:将每个更新后的明文分组与第j个AES-128的轮密钥进行异或操作,得到更新后的明文分组,其中j表示循环轮次。
S7:遍历步骤S3、S4、S5、S6共5次,得到更新后的明文分组。
步骤7,对每个明文分组,遍历步骤5、步骤6共12次,得到更新后的明文分组。
步骤8,对每个明文分组,采用与步骤5相同的方法,得到更新后的明文分组。
步骤9,对明文分组进行后处理。
将所有更新后的明文分组按照其更新前的顺序从高位到低位进行级联操作,得到密文比特串,将密文比特串编码为密文形式的数字内容。
步骤10,对密文形式的数字内容进行预处理。
将密文形式的数字内容解码为比特串,将比特串切分为128位的密文分组。
步骤11,利用查表操作更新密文分组。
将每个密文分组切分为4个32比特的小块,对每个小块对应的32比特索引,查找其在步骤(2f)生成的查找表中对应的32位比特串,作为该小块更新后的小块。
采用与步骤5中S2的相同方法,对每个密文分组进行级联操作,得到128位比特串,作为每个密文分组的更新后的密文分组。
步骤12,利用AES-128的逆轮函数操作更新密文分组。
S1预白化密钥:将每个密文分组与AES-128的第6个轮密钥进行异或操作,得到更新后的密文分组。
S2逆列混淆:将每个更新后的密文分组切分为16个8比特的小块,将16个小块按照从左到右、从上到下的顺序排列在一个4行4列的矩阵中,对矩阵的每一列左乘AES-128的逆列混淆矩阵,得到更新后的矩阵。
S3逆行移位:对于每个密文分组,将更新后的矩阵中的第1行内的4个小块保持不变,第2行内的4个小块循环右移1个位置,第3行内的4个小块循环右移2个位置,第4行内的4个小块循环右移3个位置,得到更新后的矩阵。
S4逆字节代换:对于每个密文分组,对更新后的矩阵中的每个小块对应的8比特索引,查找其在AES-128的逆字节代换查找表中对应的8位比特串,作为该小块更新后的小块,得到更新后的矩阵,将更新后的矩阵中的16个小块按照从左到右、从上到下的顺序排列成128位的比特串,作为更新后的密文分组。
S5轮密钥加:将每个更新后的密文分组与第6-k个AES-128的轮密钥进行异或操作,得到更新后的密文分组,其中k表示循环轮次。
S6:遍历步骤S2、S3、S4、S5共5次,得到更新后的密文分组。
步骤13,对每个密文分组,遍历步骤11、步骤12共12次,得到更新后的密文分组。
步骤14,对每个密文分组,采用与步骤11相同的方法,得到更新后的密文分组。
步骤15,对密文分组进行后处理。
将所有更新后的密文分组按照其更新前的顺序从高位到低位进行级联操作,得到明文比特串,将明文比特串解码为明文形式的数字内容。
下面结合仿真实验对本发明的效果做进一步的说明:
1.仿真实验条件。
本发明的仿真实验的硬件平台为:处理器为Intel Xeon(R)Silver 4110 CPU,主频为2.10GHz,内存为16GB。
本发明的仿真实验的软件平台为:Windows 10操作系统和python 3.6。
2.仿真内容及其结果分析。
本发明仿真实验是采用本发明和三个现有技术(白盒分组密码SPACE-32加解密方法、白盒分组密码SPNbox-32加解密方法、白盒分组密码HOUND 32加解密方法)分别对2048位的比特串进行加解密,获得加解密运行时间和解密查找表存储空间的结果。其中,图2为本发明的加密方法和三个现有技术的加密方法运行时需要耗费的每字节时钟周期数结果图,图3为本发明的解密方法和三个现有技术的解密方法运行时需要耗费的每字节时钟周期数结果图,图4为本发明的解密方法和三个现有技术的解密方法需要的存储空间大小结果图。
在仿真实验中,采用的三个现有技术是指:
白盒分组密码SPACE-32加解密方法是指,Andrey Bogdanov和Takanori Isobe在其发表的论文“White-box Cryptography Revisited:Space-Hard Ciphers”(InProceedings of 22nd ACM SIGSAC Conference on Computer and CommunicationsSecurity,USA,2015,pp.1058-1069.)中公开的一种基于白盒分组密码的数字内容加解密方法SPACE-32,简称白盒分组密码SPACE-32加解密方法。
白盒分组密码SPNbox-32加解密方法是指,Andrey Bogdanov,Takanori Isobe,and Elmar Tischhauser在其发表的论文“Towards Practical Whitebox Cryptography:Optimizing Efficiency and Space Hardness”(In Proceedings of 22ndInternational Conference on the Theory and Application of Cryptology andInformation Security,Vietnam,2016,pp.126-158.)中公开的一种基于白盒分组密码的数字内容加解密方法SPNbox-32,简称白盒分组密码SPNbox-32加解密方法。
白盒分组密码HOUND 32加解密方法是指,Pierre-Alain,Fouque PierreKarpman,Paul Kirchner,and Brice Minaud在其发表的论文“Efficient and ProvableWhite-Box Primitives”(In Proceedings of 22nd International Conference on theTheory and Application of Cryptology and Information Security,Vietnam,2016,pp.159-188.)中公开的一种数字内容加解密方法HOUND32,简称白盒分组密码HOUND 32加解密方法。
下面结合图2、图3、图4的仿真图对本发明的效果做进一步的描述。
随机选择一个2048位的比特串作为明文,分别采用本发明的加密方法与现有技术的加密方法对其进行加密,得到2048位的比特串作为密文,测试运行需要消耗的时钟周期数,随后计算出每字节时钟周期数,得到图2。由图2可以看出,本发明的加密方法与现有技术的白盒分组密码SPACE-32加解密方法的加密方法相比,需要耗费的每字节时钟周期数较低,证明本发明加密方法的运行时间效率优于白盒分组密码SPACE-32加解密方法。
随机选择一个2048位的比特串作为密文,分别采用本发明的解密方法与现有技术的解密方法对其进行解密,得到2048位的比特串作为明文,测试运行需要消耗的时钟周期数,随后计算出每字节时钟周期数,得到图3。由图3可以看出,本发明的解密方法与现有技术的白盒分组密码SPACE-32加解密方法、白盒分组密码HOUND 32加解密方法的解密方法相比,需要耗费的每字节时钟周期数较低,证明本发明解密方法的运行时间效率优于白盒分组密码SPACE-32加解密方法和白盒分组密码HOUND 32加解密方法。
随机选择一个2048位的比特串作为密文,分别采用本发明的解密方法与现有技术的解密方法对其进行解密,测试解密方法所采用的查找表在内存中占用的空间大小,得到图4。由图4可以看出,本发明解密方法所采用的查找表,相比于三个现有技术解密方法所采用的查找表,其占用的空间更小,证明本发明解密方法的存储空间成本优于前三种现有技术解密方法的存储空间成本。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
Claims (4)
1.一种基于ARX白盒分组密码的数字内容加解密方法,其特征在于,在加密中执行24轮ARX的循环操作后再执行AES-128的轮函数操作,解密时执行AES-128的逆轮函数操作后再查询一个32比特输入、32比特输出的查找表;该加解密方法的步骤包括如下:
步骤1,生成加密密钥:
利用密钥导出函数KDF,将一个128位的主密钥变换为25个32位的轮密钥k0,k1,...,ki,...,k24,作为数字内容的加密密钥;
步骤2,利用ARX循环操作生成解密密钥:
(2a)将232个32位比特串0,1,10,…,11111111111111111111111111111111分别与初始轮密钥k0异或,得到异或后的232个32位比特串;
(2b)对每个32位比特串中的高16位循环右移7位后,再与低16位进行模数为65536的相加操作,得到该比特串的高16位,将每个32位比特串中的低16位复制,得到该比特串的低16位;
(2c)对每个32位比特串中的低16位循环左移2位后,再与高16位进行异或操作,得到该比特串的低16位,将每个32位比特串中的高16位复制,得到该比特串的高16位;
(2d)对每个32位比特串与轮密钥ki进行异或操作,得到异或后的32位比特串,其中i表示循环轮次;
(2e)遍历步骤(2b)、(2c)、(2d)24次,得到232个32位比特串;
(2f)将232个32位比特串排列在一张查找表中,作为数字内容的解密密钥;
步骤3,对数字内容进行预处理:
将数字内容编码为比特串,将比特串切分为128位的明文分组,对于不足128位的分组填充比特‘0’;
步骤4,利用初始轮密钥异或操作更新明文分组:
将每个128位的明文分组切分为4个32比特的小块,将每个小块与初始轮密钥k0异或,得到该小块异或后的小块;
步骤5,利用ARX循环操作更新明文分组:
(5a)采用与步骤(2b)、(2c)、(2d)、(2e)的相同方法,对每个明文分组的每个小块进行ARX循环操作,得到每个明文分组的4个更新后的小块;
(5b)对每个明文分组的4个更新后的小块,按照其更新前的顺序从高位到低位进行级联操作,得到128位比特串,作为每个明文分组的更新后的明文分组;
步骤6,利用AES-128的轮函数操作更新明文分组:
(6a)利用AES-128的密钥编排操作,将一个随机的128位比特串变换为与轮次相同数量的128位的比特串,作为AES-128的轮密钥;
(6b)对每个明文分组和AES-128的轮密钥进行AES-128的轮函数操作,得到明文分组更新后的明文分组;
步骤7,对明文分组进行后处理:
将所有更新后的明文分组按照其更新前的顺序从高位到低位进行级联操作,得到密文比特串,将密文比特串编码为密文形式的数字内容;
步骤8,对密文形式的数字内容进行预处理:
将密文形式的数字内容解码为比特串,将比特串切分为128位的密文分组;
步骤9,利用查表操作更新密文分组:
(9a)将每个密文分组切分为4个32比特的小块,对每个小块对应的32比特索引,查找其在步骤(2f)生成的查找表中对应的32位比特串,作为该小块更新后的小块;
(9b)采用与步骤(5b)的相同方法,对每个密文分组进行级联操作,得到128位比特串,作为每个密文分组的更新后的密文分组;
步骤10,利用AES-128的逆轮函数操作更新密文分组:
对每个密文分组和AES-128的轮密钥进行AES-128的逆轮函数操作,得到密文分组更新后的密文分组;
步骤11,对密文分组进行后处理:
将所有更新后的密文分组按照其更新前的顺序从高位到低位进行级联操作,得到明文比特串,将明文比特串解码为明文形式的数字内容。
2.根据权利要求1所述的基于ARX白盒分组密码的数字内容加解密方法,其特征在于,步骤1中所述的密钥导出函数KDF是指安全哈希算法族里的输出可扩展函数SHAKE128、SHAKE256中的任意一种。
3.根据权利要求1所述的基于ARX白盒分组密码的数字内容加解密方法,其特征在于,步骤(6b)中所述的AES-128的轮函数操作是指预白化密钥、字节代换、行移位、列混淆、轮密钥加的操作,包括如下:
预白化密钥:将128位明文分组与AES-128的第1个轮密钥进行异或操作,得到更新后的明文分组;
字节代换:将更新后的明文分组切分为16个8比特的小块,将16个小块按照从左到右、从上到下的顺序排列在一个4行4列的矩阵中,对每个小块对应的8比特索引,查找其在AES-128的字节代换查找表中对应的8位比特串,作为该小块更新后的小块,得到更新后的矩阵;
行移位:将更新后的矩阵中的第1行内的4个小块保持不变,第2行内的4个小块循环左移1个位置,第3行内的4个小块循环左移2个位置,第4行内的4个小块循环左移3个位置,得到更新后的矩阵;
列混淆:对更新后的矩阵的每一列左乘AES-128的列混淆矩阵,得到更新后的矩阵,将矩阵中的16个小块按照从左到右、从上到下的顺序排列成128位的比特串,作为更新后的明文分组;
轮密钥加:将更新后的明文分组与AES-128的轮密钥进行异或操作,得到更新后的明文分组。
4.根据权利要求1所述的基于ARX白盒分组密码的数字内容加解密方法,其特征在于,步骤10中所述的AES-128的逆轮函数操作是指预白化密钥、逆列混淆、逆行移位、逆字节代换、轮密钥加的操作,包括如下:
预白化密钥:将128位密文分组与AES-128的最后一个轮密钥进行异或操作,得到更新后的密文分组;
逆列混淆:将更新后的密文分组切分为16个8比特的小块,将16个小块按照从左到右、从上到下的顺序排列在一个4行4列的矩阵中,对矩阵的每一列左乘AES-128的逆列混淆矩阵,得到更新后的矩阵;
逆行移位:将更新后的矩阵中的第1行内的4个小块保持不变,第2行内的4个小块循环右移1个位置,第3行内的4个小块循环右移2个位置,第4行内的4个小块循环右移3个位置,得到更新后的矩阵;
逆字节代换:对更新后的矩阵中的每个小块对应的8比特索引,查找其在AES-128的逆字节代换查找表中对应的8位比特串,作为该小块更新后的小块,得到更新后的矩阵,将更新后的矩阵中的16个小块按照从左到右、从上到下的顺序排列成128位的比特串,作为更新后的密文分组;
轮密钥加:将更新后的密文分组与AES-128的轮密钥进行异或操作,得到更新后的密文分组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110782707.2A CN113541942B (zh) | 2021-07-12 | 2021-07-12 | 基于arx白盒分组密码的数字内容加解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110782707.2A CN113541942B (zh) | 2021-07-12 | 2021-07-12 | 基于arx白盒分组密码的数字内容加解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113541942A CN113541942A (zh) | 2021-10-22 |
CN113541942B true CN113541942B (zh) | 2022-06-07 |
Family
ID=78098437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110782707.2A Active CN113541942B (zh) | 2021-07-12 | 2021-07-12 | 基于arx白盒分组密码的数字内容加解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113541942B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114491587B (zh) * | 2022-01-13 | 2024-03-19 | 西安电子科技大学 | 基于类似sm4结构的白盒密码加解密方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080043205A (ko) * | 2006-11-13 | 2008-05-16 | 한국전자통신연구원 | Aes 및 aria의 암호화/복호화 기능을 지원하는 연산방법 및 장치 |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
DE102014016548A1 (de) * | 2014-11-10 | 2016-05-12 | Giesecke & Devrient Gmbh | Verfahren zum Testen und zum Härten von Softwareapplikationen |
EP3477889A1 (en) * | 2017-10-27 | 2019-05-01 | Nxp B.V. | Using white-box in a leakage-resilient primitive |
CN111555862A (zh) * | 2020-05-13 | 2020-08-18 | 华南师范大学 | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 |
CN112054896A (zh) * | 2020-08-12 | 2020-12-08 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
CN112199696A (zh) * | 2020-10-09 | 2021-01-08 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8966285B2 (en) * | 2011-01-10 | 2015-02-24 | Apple Inc. | Securing implementation of a cryptographic process having fixed or dynamic keys |
US20130067212A1 (en) * | 2011-09-14 | 2013-03-14 | Augustin J. Farrugia | Securing implementation of cryptographic algorithms using additional rounds |
-
2021
- 2021-07-12 CN CN202110782707.2A patent/CN113541942B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080043205A (ko) * | 2006-11-13 | 2008-05-16 | 한국전자통신연구원 | Aes 및 aria의 암호화/복호화 기능을 지원하는 연산방법 및 장치 |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
DE102014016548A1 (de) * | 2014-11-10 | 2016-05-12 | Giesecke & Devrient Gmbh | Verfahren zum Testen und zum Härten von Softwareapplikationen |
EP3477889A1 (en) * | 2017-10-27 | 2019-05-01 | Nxp B.V. | Using white-box in a leakage-resilient primitive |
CN111555862A (zh) * | 2020-05-13 | 2020-08-18 | 华南师范大学 | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 |
CN112054896A (zh) * | 2020-08-12 | 2020-12-08 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
CN112199696A (zh) * | 2020-10-09 | 2021-01-08 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
Non-Patent Citations (4)
Title |
---|
A WHITE-BOX CLEFIA IMPLEMENTATION FOR MOBILE DEVICES;Shuai Su等;《2014 Communications Security Conference (CSC 2014)》;20141222;全文 * |
Black box system identification dedicated to a microwave heating process;Yupeng Yuan等;《The 27th Chinese Control and Decision Conference (2015 CCDC)》;20150720;全文 * |
SM4算法的一种新型白盒实现;姚思等;《密码学报》;20200615(第03期);全文 * |
白盒密码研究;姚思等;《广播电视信息》;20191106;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113541942A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6934963B2 (ja) | データを暗号化する方法およびシステム | |
CN1993922B (zh) | 流密码组合系统和方法 | |
US10009168B2 (en) | System and method for secure communications and data storage using multidimensional encryption | |
KR101119933B1 (ko) | 보안성을 향상시키는 순열 데이터 변환 | |
US20090220083A1 (en) | Stream cipher using multiplication over a finite field of even characteristic | |
EP2892175B1 (en) | Secure software components anti-reverse-engineering by table interleaving | |
US10148425B2 (en) | System and method for secure communications and data storage using multidimensional encryption | |
CN112199696B (zh) | 基于白盒分组密码的加解密方法 | |
WO2021129470A1 (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
US20150127950A1 (en) | Method of encrypting data | |
US9391770B2 (en) | Method of cryption | |
CN113541942B (zh) | 基于arx白盒分组密码的数字内容加解密方法 | |
Mendonca | Data security in cloud using AES | |
CN106656500A (zh) | 加密装置及方法 | |
US20040120521A1 (en) | Method and system for data encryption and decryption | |
KR101240243B1 (ko) | Aes의 ctr 모드에 따른 암호화 장치 및 방법 | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
US11664976B2 (en) | Method and devices for creating redundancy and encryption using Mojette Transform | |
Kalaichelvi et al. | ENAES CCSA to preserve confidentiality of outsourced data in public cloud | |
Yadav et al. | Encryption and Obfuscation: Confidentiality technique for enhancing data security in public cloud storage | |
GB2463031A (en) | Encrypting data or providing an encryption key | |
KR20010032479A (ko) | 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법 | |
Zbitnev et al. | Probabilistic Block Cipher for distributed systems | |
Kuznetsov et al. | Analysis of Stream Modes for Block Symmetric Ciphers | |
Joshi et al. | Hybrid Encryption Technique for Securing Cloud Data |
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 |