CN106452729A - 一种基于随机置换的白盒密码的加密方法 - Google Patents
一种基于随机置换的白盒密码的加密方法 Download PDFInfo
- Publication number
- CN106452729A CN106452729A CN201610767351.4A CN201610767351A CN106452729A CN 106452729 A CN106452729 A CN 106452729A CN 201610767351 A CN201610767351 A CN 201610767351A CN 106452729 A CN106452729 A CN 106452729A
- Authority
- CN
- China
- Prior art keywords
- random permutation
- random
- whitepack
- password based
- permutation
- 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
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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开一种基于随机置换的白盒密码的加密方法,包括如下输入混淆函数P;随机置换S;输出混淆函数Q。本发明除了能够观测到查找表以外不能获得更多其它的信息,能够保证该加密方案不会由于遭受到白盒攻击而被攻击者恢复整个加密,即复制出一个具有相同加密功能的算法;从而保证了在不可信任终端运行加密算法的安全性。
Description
技术领域
本发明涉及信息安全领域中保护方法,具体地说,涉及的是在不安全的软件运行环境中进行安全加解密的基于随机置换的白盒密码的加密方法。
背景技术
随着科学技术的发展,人们对电脑技术的研究更加地全面,对机密信息的探测途径越来越多。对于密码算法而言,传统仅局限于通信信道中信息的截取与分析已经无法满足攻击者的需求,他们已经逐渐开始将目标定位于密码算法的运行平台(如个人电脑、服务器等),通过越来越先进的技术对算法运行时的内部状态进行观测、改动等操作,从而获取机密信息,破坏密码算法所要保护的机密性、完整性、不可否认性等。
这样的攻击方式被称之为白盒攻击。传统的密码算法在这样的攻击环境的平台上运行毫无安全性可言,因此需要研究开发出一种新的密码技术,能够在不可信任平台上运行时保证所需的安全性,达到更高级别信息安全的目的。
白盒密码即是这样一种密码技术,通过结合代数、概率、混淆、软件保护、信息隐藏等知识,研究如何设计安全的白盒密码算法和白盒攻击环境下密码算法的安全评估;用于保护密码算法及其相关软件在不可信任环境下的安全执行;白盒密码是对传统黑盒密码安全概念的一次颠覆,它将更加全面地保护机密信息。
白盒密码可以应用到任何在不可信任的运行平台上执行的密码方案,因此其应用前景非常的广泛,可以应用于数字内容的安全发行,为内容创作者和提供者的数字资产提供防止盗窃或滥用的安全保护;可以应用于无线自组网络、云计算等的安全计算,为不可信任终端处理机密信息提供防观测、防篡改、防窃取等服务;可以应用于软件保护,破坏软件设计的原有的结构从而防止逆向工程等等。
目前白盒密码的设计大体分为两大类:对已有的分组密码设计白盒实现方案,新的白盒密码算法。
在对已有的分组密码设计白盒实现方案方面,主要有Chow等人在2002年提出的AES的白盒加密[1]和DES的白盒加密实现[2]。但是这两种方案都陆续被攻破,即在有效的时间复杂度内将AES或DES的加密密钥恢复出来。
2009年,肖雅莹等改进了Chow等人的白盒AES方案,提出了一种新的白盒AES实现方案[3]。但是在2013年,该方案被证明可以以232的复杂度恢复密钥。
同年,肖雅莹等提出了SMS4白盒实现算法[4],但在2013年,林婷婷等人对其进行分析,以低于247的时间复杂度恢复出密钥。
2010年,Karroumi等人提出了基于双重密码的白盒AES[5],但此方案依旧被攻破。
而另一种设计白盒AES的方法是Bringer等人[6]在2006年提出,但在2010年攻破。
在新的白盒密码算法方面,2014年,Alex Biryukov等人[7]提出了基于ASASA结构的白盒密码方案的构造方法,但也在2015年被攻破。2015年,一种称为Sapce-hard cipher[8]的白盒密码方案也被提出,但其占用内存空间过大,在实现效率上并不占有优势。
综上所述,在白盒密码的技术实现方面,到目前为止还未有公认的安全的且实现效率较高的白盒密码方案出现,因此,设计能够抵抗白盒攻击的安全有效的密码算法迫在眉睫,是目前保证网络安全的一个重要手段。
参考文献:
[1]Stanley Chow,Philip A.Eisen,Harold Johnson,and Paul C.vanOorschot.White-Box Cryptography and an AES Implementation.In Proceedings ofthe 9th International Workshop on Selected Areas in Cryptography(SAC 2002),volume2595of Lecture Notes in Computer Science,pages 250–270.Springer,2002.
[2]Stanley Chow,Philip A.Eisen,Harold Johnson,and Paul C.vanOorschot.A white-box DES implementation for DRM applications.In Proceedingsof the ACM Workshop on Security and Privacy in Digital Rights Management(DRM2002).
[3]Yaying Xiao and Xuejia Lai.A secure implementation of white-boxAES.In 2ndInternational Conference on Computer Science and its Applications(CSA 2009),pages 1-6.IEEE,2009.
[4]肖雅莹,来学嘉.白盒密码及SMS4算法的白盒实现.裴定一,杨波.密码学进展:中国密码学会2009年会论文集.USA:Science Press USA Inc.,2009:24-34.
[5]Mohamed Karroumi.Protecting White-Box AES with Dual Ciphers.InKyung Hyune Rhee and DaeHunNyang,editors,ICISC,volume 6829of Lecture Notes inComputer Science,pages 278-291.Springer,2010.
[6]Bringer J,Chabanne H,Dottax E.White Box Cryptography:AnotherAttempt[J].IACR Cryptology ePrint Archive,2006,2006:468.
[7]Biryukov A,Bouillaguet C,Khovratovich D.Cryptographic schemesbased on the ASASA structure:Black-box,white-box,and public-key[M]//Advancesin Cryptology–ASIACRYPT 2014.Springer Berlin Heidelberg,2014:63-84.
[8]Bogdanov A,Isobe T.White-box cryp-tography revisited:Space-hardci-phers[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer andCommunications Security.ACM,2015:1058-1069.
发明内容
针对上述现有技术的不足,本发明的目的在于提出一种基于随机置换的白盒密码的加密方法,用于在白盒攻击环境中保证加解密算法的顺利进行,对机密信息进行最完善的保护。
本发明的技术解决方案如下:
一种基于随机置换的白盒密码的加密方法,该方法包括如下步骤:
步骤1、输入混淆函数P;
步骤2、随机置换S;
步骤3、输出混淆函数Q;
所述的随机置换S是指将n比特的所有串看作是一个集合,从这个集合映至自身的双射称为一个置换,从n比特到n比特的所有置换中随机选取一个,即单一随机置换。
所述的随机置换S是由k个随机选择的单一随机置换S1,S2,......,Sk并行排列而成,即并行随机置换。
所述的随机置换S是由多层并行随机置换构成,每层并行随机置换的单一随机置换Si的输出是下一层并行随机置换的单一随机置换Si的输入,即复合层随机置换。
所述的随机置换S是各单一随机置换Si的输出之间进行加、减、乘、除等运算后而成,即运算随机置换。
所述的随机置换S是单一随机置换与运算随机置换的任一结合,即迭代随机置换。
与现有技术相比,本发明的有益效果是:针对现有白盒密码方案容易被攻击者恢复密钥或者提取整个代码的缺憾,使用了随机置换作为整个加密方案的主要部件,白盒攻击者除了能够观测到查找表以外不能获得更多其它的信息,能够保证该加密方案不会由于遭受到白盒攻击而被攻击者恢复整个加密,即复制出一个具有相同加密功能的算法;从而保证了在不可信任终端运行加密算法的安全性。
附图说明
图1为本发明基于随机置换的白盒密码的加密方法的流程图;
图2为防止代码提取的方法流程图;
图3为本发明实施例并行随机置换的示意图;
图4为本发明实施例多个随机置换的组合构造示意图;
图5为本发明实施例多层随机置换的示意图;
图6为本发明实施例运算随机置换的示意图;
图7为本发明实施例迭代随机置换的示意图;
图8为本发明实施例迭代随机置换的引入随机值示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。
请先参阅图1,图1为本发明基于随机置换的白盒密码的加密方法的流程图,如图所示,一种基于随机置换的白盒密码的加密方法,包括输入混淆函数P、随机置换S、以及输出混淆函数Q三步骤。其中,S是一个随机置换,将n比特的所有串看作是一个集合,从这个集合映至自身的双射称为一个置换。从n比特到n比特的所有置换中随机选取一个,即为随机置换。P和Q是两个单射,它们可以是线性的也可以是非线性的。
设输入为x,x经过P-S-Q的作用后,得到的输出是y。将所有可能的输入x和它们经过P-S-Q的作用后得到的相应的y做成一张查找表,在进行加密时就通过对这个表的查找来进行。输入长度n是可选的,可以是n=8、n=16等等。
通常情况下,为了防止加密软件被直接拷贝并使用在其它平台上,在加密方案中,即为了防止整个查找表被提取出来(称之为代码提取,即code lifting)在其他的设备上使用,需要将P-1和Q-1嵌入到查找表所在设备的其余部件中,使得真实的明文X需要经过P-1的处理后才能进入我们的方案中完成加密,而真实的密文Y则是y经过Q-1的处理后的输出,如图2所示。
然而,对于这里的P-1和Q-1是如何嵌入到其他部件中并不是本发明所考虑内容,不予详细讨论。在以下的描述中,将默认所有的算法的输入输出均要经过P-1和Q-1的处理,而不再格外强调。
本发明利用了随机置换作为主要的加密部件。由于n比特的随机置换有2n!种,要在2n!种随机置换中确定本发明使用的是哪一个随机置换的概率是1/(2n!)。当n≥4时,此概率小到几乎可以忽略,即攻击者能够从通过观察加密方案的执行来确定使用的是哪一个置换的概率可以忽略。因此,本发明防止了其中所使用的置换被攻击者确定,从而保证了攻击者除了查找表以外不能获得其它更多的信息。
除了上述的基本结构,还可以扩展为更多的形式。由于并不考虑P、Q的设计,因此这里的扩展所指的是随机置换层S层的不同实现方式。
实施例1:
S层由多个随机置换S1,S2,......,Sk经过简单的并行排列来代替,如图3所示,这里S1,S2,......,Sk为k个随机选择的置换,令它们的输入长度为t1,t2,......,tk,这里t1,t2,......,tk可以不同。假设,S层的输入为I,将I按照长度t1,t2,......,tk划分为k个分块,第一个分块I1由S1进行置换,得到结果O1;第二个分块I2由S2进行置换,得到结果O2,以此类推,最后将k个结果串联起来,O1||O2||......||Ok即为S层的输出。
实施例2:
S层由多个小的随机置换Si经过多种方式组合构造完成,即下图所示虚线框中的构造,虚线框中的Si的组合构造按照如图4所示:
i)Si可以有多个,也可以只有一个。当Si只有一个时,这时不存在多个Si组合构造的情况,即为图1的基本结构。
ii)Si可以进行多次的交换位置的操作。即是说,S1,S2,......,Sk的输出O=O1||O2||......||Ok将作为Sj1,Sj2,......,Sjk的输入,这里j1,j2,......,jk为1,2,......,k的全排;而Sj1,Sj2,......,Sjk的输出又将作为St1,St2,......,Stk的输入,这里t1,t2,......,tk为1,2,......,k的另一个全排,以此类推,S1,S2,......,Sk的位置交换可以进行多次,如图5所示,多层随机置换。
iii)在ii)中每一层所使用的随机置换可以是不同的,但需要保证上一层的输出长度与下一层的输入长度相同。
iv)各个随机置换Si的输出之间可以进行任意的加法、乘法等运算,如图6所示。
v)可以引入其它的变换,将Si的输出作为其他变换的输入,或者将Si作为其他变换的一部分。其他的变换是指除随机置换以外的任意变换,如线性变换、指数变换等等。如图7所示,M即是一个线性变换,Sk则用来替代了Feistel结构中的轮函数F。同理,还可以将其他已知的密码结构引入,例如AES、SMS4等,用随机置换Si代替它们的S盒。
vi)可以在虚线框中的任何一个变换中加入随机选择数值,从而增加虚线框所表示的整个变换的随机性。在图7的示例中加入随机值r1和r2作为示例,如图8所示。
vii)完成一轮对Si的处理后,可以进行多轮迭代,如图5所示。多轮迭代可以将所使用的随机置换进一步地混淆。
viii)虚线框外输入长度与输出长度一致。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种基于随机置换的白盒密码的加密方法,其特征在于,该方法包括如下步骤:
步骤1、输入混淆函数P;
步骤2、随机置换S;
步骤3、输出混淆函数Q。
2.根据权利要求1所述的基于随机置换的白盒密码的加密方法,其特征在于,所述的随机置换S是指将n比特的所有串看作是一个集合,从这个集合映至自身的双射称为一个置换,从n比特到n比特的所有置换中随机选取一个,即单一随机置换。
3.根据权利要求2所述的基于随机置换的白盒密码的加密方法,其特征在于,所述的随机置换S是由k个随机选择的单一随机置换S1,S2,......,Sk并行排列而成,即并行随机置换。
4.根据权利要求3所述的基于随机置换的白盒密码的加密方法,其特征在于,所述的随机置换S是由多层并行随机置换构成,每层并行随机置换的单一随机置换Si的输出是下一层并行随机置换的单一随机置换Si的输入,即复合层随机置换。
5.根据权利要求2所述的基于随机置换的白盒密码的加密方法,其特征在于,所述的随机置换S是各单一随机置换Si的输出之间进行加、减、乘、除运算后而成,即运算随机置换。
6.根据权利要求5所述的基于随机置换的白盒密码的加密方法,其特征在于,所述的随机置换S是单一随机置换与运算随机置换的任一结合,即迭代随机置换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610767351.4A CN106452729B (zh) | 2016-08-30 | 2016-08-30 | 一种基于随机置换的白盒密码的加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610767351.4A CN106452729B (zh) | 2016-08-30 | 2016-08-30 | 一种基于随机置换的白盒密码的加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106452729A true CN106452729A (zh) | 2017-02-22 |
CN106452729B CN106452729B (zh) | 2020-02-21 |
Family
ID=58090381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610767351.4A Expired - Fee Related CN106452729B (zh) | 2016-08-30 | 2016-08-30 | 一种基于随机置换的白盒密码的加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106452729B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107968706A (zh) * | 2017-11-21 | 2018-04-27 | 武汉珈港科技有限公司 | 具有流程保护功能的白盒密码方法及系统 |
CN109412791A (zh) * | 2018-11-29 | 2019-03-01 | 北京三快在线科技有限公司 | 密钥信息处理方法、装置、电子设备及计算机可读介质 |
CN112054896A (zh) * | 2020-08-12 | 2020-12-08 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
CN115396103A (zh) * | 2022-10-26 | 2022-11-25 | 杭州海康威视数字技术股份有限公司 | 基于白盒密钥的ai数据共享方法、系统和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656622A (zh) * | 2015-04-24 | 2016-06-08 | 桂林电子科技大学 | 一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法 |
-
2016
- 2016-08-30 CN CN201610767351.4A patent/CN106452729B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656622A (zh) * | 2015-04-24 | 2016-06-08 | 桂林电子科技大学 | 一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法 |
Non-Patent Citations (6)
Title |
---|
YINJIA等: "A Generic Attack against White Box", 《IEEE》 * |
卢致旭: ""基于白盒加密算法的软件防篡改技术研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑2012年第07期》 * |
来学嘉等: "白盒密码的设计与研究 ", 《信息安全与通信保密》 * |
来学嘉等: "白盒密码的设计与研究", 《信息安全与通信保密》 * |
陈明: "白盒密码安全性分析与研究 ", 《网络安全技术与应用》 * |
陈明: "白盒密码安全性分析与研究", 《网络安全技术与应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107968706A (zh) * | 2017-11-21 | 2018-04-27 | 武汉珈港科技有限公司 | 具有流程保护功能的白盒密码方法及系统 |
CN107968706B (zh) * | 2017-11-21 | 2020-10-13 | 武汉珈港科技有限公司 | 具有流程保护功能的白盒密码方法及系统 |
CN109412791A (zh) * | 2018-11-29 | 2019-03-01 | 北京三快在线科技有限公司 | 密钥信息处理方法、装置、电子设备及计算机可读介质 |
CN109412791B (zh) * | 2018-11-29 | 2019-11-22 | 北京三快在线科技有限公司 | 密钥信息处理方法、装置、电子设备及计算机可读介质 |
CN112054896A (zh) * | 2020-08-12 | 2020-12-08 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
CN112054896B (zh) * | 2020-08-12 | 2023-10-03 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
CN115396103A (zh) * | 2022-10-26 | 2022-11-25 | 杭州海康威视数字技术股份有限公司 | 基于白盒密钥的ai数据共享方法、系统和装置 |
CN115396103B (zh) * | 2022-10-26 | 2023-03-24 | 杭州海康威视数字技术股份有限公司 | 基于白盒密钥的ai数据共享方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106452729B (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105024803B (zh) | 白箱实现中的行为指纹 | |
Akhil et al. | Enhanced cloud data security using AES algorithm | |
Wang et al. | ABE with improved auxiliary input for big data security | |
CN110235409A (zh) | 使用同态加密被保护的rsa签名或解密的方法 | |
JP6877889B2 (ja) | 暗号化装置、暗号化方法、復号化装置、及び復号化方法 | |
CN106452729A (zh) | 一种基于随机置换的白盒密码的加密方法 | |
Gafsi et al. | Efficient encryption system for numerical image safe transmission | |
JP7078631B2 (ja) | 暗号化装置、暗号化方法、復号化装置、及び復号化方法 | |
CN103795527A (zh) | 防止基于功耗分析攻击aes算法的软件掩码防护方案 | |
Gafsi et al. | High securing cryptography system for digital image transmission | |
Liu et al. | Image encryption via complementary embedding algorithm and new spatiotemporal chaotic system | |
CN105022937A (zh) | 用于将白箱实现紧附到周围程序的接口兼容方式 | |
CN105978680A (zh) | 在白盒实现方案中实现填充 | |
Yang | [Retracted] Application of Hybrid Encryption Algorithm in Hardware Encryption Interface Card | |
CN116796345A (zh) | 加解密方法、装置、设备及存储介质 | |
KR102327771B1 (ko) | 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법 | |
Lin et al. | A new Feistel-type white-box encryption scheme | |
Mohammed et al. | Implementation of new secure encryption technique for cloud computing | |
Yu et al. | On the value of order number and power in secret image sharing | |
Gong | [Retracted] Application Research of Data Encryption Algorithm in Computer Security Management | |
Sachdeva et al. | Implementation of AES-128 using multiple cipher keys | |
KR101026647B1 (ko) | 통신 보안 시스템 및 그 방법과 이에 적용되는 키 유도 암호알고리즘 | |
Kaushik et al. | A Review Paper on Data Encryption and Decryption | |
Priyanka et al. | A hybrid encryption method handling big data vulnerabilities | |
Jin et al. | A nonlinear white-box SM4 implementation applied to edge IoT agents |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: To learn Jia Inventor after: Lin Tingting Inventor before: To learn Jia Inventor before: Lin Tingting Inventor before: Yuan Ye Inventor before: Chen Jianping |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200221 Termination date: 20210830 |