CN105656622A - 一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法 - Google Patents

一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法 Download PDF

Info

Publication number
CN105656622A
CN105656622A CN201510202443.3A CN201510202443A CN105656622A CN 105656622 A CN105656622 A CN 105656622A CN 201510202443 A CN201510202443 A CN 201510202443A CN 105656622 A CN105656622 A CN 105656622A
Authority
CN
China
Prior art keywords
bits
disturbance
white
password
centerdot
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.)
Pending
Application number
CN201510202443.3A
Other languages
English (en)
Inventor
熊婉君
韦永壮
李灵琛
丁勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201510202443.3A priority Critical patent/CN105656622A/zh
Publication of CN105656622A publication Critical patent/CN105656622A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,包括如下步骤:密码算法运行过程中的32比特敏感变元平均分为四组,即(x0,0,x0,1,x0,2,x0,3),依次经过非线性置乱;加入扰乱信息(β*,Y,Φ*),计算β*=F(x0,0,x0,1,x0,2,x0,3)作为初始扰乱项;再将上述两步结果依次经过T3,T2,T1,T0*变换;将输出结果作列混淆变换;然后依次经过Q3,Q2,Q1,Y,Q0非线性置换,得到下一轮迭代的输入变元,从而得到白盒的最终输出结果。本发明将内、外置编码同时采用非线性双射变换,由于单个S盒的代数次数不超过8次,且列混淆部件和外置放射置乱编码并不会提高代数次数,故所需的运算较小;此外,在面对外部代数插值攻击时,不会直接恢复主密钥,而是构建出一个等价的解密布尔系统,因此本发明的安全性更强。

Description

一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法
技术领域
本发明涉及信息安全领域,具体涉及一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法。
背景技术
在传统的密码算法与安全协议的设计和实现,一般是假定密码算法的运行环境终端是安全的、可信的,整个系统的安全性在于密钥的保密性。随着数字化信息技术的不断发展,研究发现密码软件通常运行在一个不安全的环境中,比如恶意病毒和不诚实用户的存在,在这种环境下,攻击者可以通过观察或执行密码软件,很容易捕获密钥信息,一个新的安全挑战是:在软件代码开放式的环境下,如何把密钥信息直接隐藏于算法的实现中,并使攻击者无法抽取出密钥。针对这个问题,Chow等人首先提出了白盒攻击环境(White-BoxAttackContext):攻击者对密码算法的软件执行过程完全可见的环境。在这种环境下,攻击者通过观察或执行密码程序,很容易提取密钥。而白盒密码的主要目的是为了在白盒攻击环境中保护密钥,防范攻击者利用密码软件执行过程捕获密钥信息。白盒密码的基本设计思想是:对于给定的密码算法和密钥信息,明文变换到密文的映射也就确定了;把明文到密文的映射进行置乱编码(obfuscationencoding),密码算法的执行过程通过查找表的方法来完成,密钥隐藏在表格中,但是攻击者无法由查找表抽取出密钥。然而,目前有关白盒密码的方案都存在一个共同问题,即利用查找表的输入输出特点,消除内轮置乱编码的非线性部分后,而外置编码仅剩下线性置乱运算,因此在白盒条件下被攻破所需的计算量较小,密码的安全性仍需进一步提高。
发明内容
本发明的目的是针对现有技术的不足,而提供一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,其内置编码与外置编码同时采用非线性双射变换实现,从而能抵抗代数差值攻击,具有安全性高的特点。
实现本发明目的的技术方案:
一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,包括如下步骤:
1)密码算法运行过程中的32比特敏感变元平均分为四组,每组8比特,即(x0,0,x0,1,x0,2,x0,3),并依次经过非线性置乱;
2)加入扰乱信息(β*,Y,Φ*),这里我们选取只加入1组扰乱信息作为说明,计算β*=F(x0,0,x0,1,x0,2,x0,3)作为初始扰乱项,其中F为32比特到8比特的映射;
3)将步骤1)和步骤2)的输出依次经过T3,T2,T1,T0*变换;
4)修改列混淆变换(MixColumns)操作,修改后的MixColumns操作相对于原始的4个输入块作用仍然相同,涉及到的扰乱信息在经过MixColumns操作后消除。将3)所有输出结果做列混淆变换(MixColumns);
5)将步骤4)的输出结果依次经过Q3,Q2,Q1,Y,Q0非线性置换,且输出结果作为密码算法的下一轮迭代步骤中的输入,即对5个密码块进行操作,也就是在原始密码算法操作的基础上加上混乱项的个数,从而得到白盒密码的最终输出结果。
步骤2)中,F映射为哈希算法。
步骤3)中,改变原密码算法的加解密流程中每一轮的边界,以AES算法为例:改变AES的轮边界后,把AddRoundKey和SubBytes组合在一起,这两个步骤组合起来可以用T-Box来表示。T-Box的计算公式如下:
T i , j r ( x ) = S ( x ⊕ K i , j r - 1 ) r = 1 , . . . , 9 i , j = 0 , . . . , 3 - - - ( 1 )
T i , j 10 ( x ) = S ( x ⊕ K i , j 10 ) ⊕ K sr ( i , j ) 10 i , j = 0 , . . . , 3 - - - ( 2 )
其中,Ki,j r为第r轮在单元(i,j)的子密钥,sr(i,j)表示单元(i,j)在经过ShiftRows操作后的位置,S表示AES的S盒。
步骤4)中,MixColumn操作每一次作用在一列上,可以用一个32×32(比特)的矩阵MC乘以一个32比特的列向量来表示。如果整个MixColumn用一个表格来表示,这个表格的大小为232×32=16GB。为了防止用如此之大的查找表,把MC按列分成2部分,MixColumn操作可以用如下公式表示:
MC · ( x 0 · · · x 31 ) T = ( MC 0 | | MC 1 ) · ( x 0 · · · x 31 ) T = MC 0 · ( x 0 · · · x 15 ) T ⊕ MC 1 · ( x 16 · · · x 31 ) T - - - ( 3 )
其中,MC为MixColumn的表格表示方式,MC0、MC1为MC的左右两部分。
因此,MixColumns的计算可以拆分成2个16比特到32比特的变换组成,然后将2个变换结果进行异或得到最后的MixColumn结果。
其中,(β*,Y,Φ*)为非线性扰乱信息。这里,Φ*为一个由多项式生成的,在绝大多数情况下取值固定为θ的多项式。因此可以利用这一个之前已经固定好的取值来构造MixColumns矩阵,使得该值在经过MixColumns操作后对原本的矩阵乘法没有影响,即为零元。由Φ*确定的固定值θ这里同样作为秘密信息在实现时确定。
本发明的有益效果:
本发明一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,内置编码与外置编码同时采用非线性双射变换,由于单个S盒的代数次数不超过8次,且列混淆部件和外置放射置乱编码并不会提高代数次数,故本发明所需的运算较小;此外,本发明在面对外部代数插值攻击时,不会直接恢复主密钥,而是构建出一个等价的解密布尔系统,因此本发明的保密性和安全性更强。
附图说明
图1为一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法的关键部件的白盒设计图。
具体实施方式
下面结合附图对本发明做进一步的阐述,但不是对本发明的限定。
实施例:
一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,包括如下步骤:
1)密码算法运行过程中的32比特敏感变元平均分为四组,每组8比特,即(x0,0,x0,1,x0,2,x0,3),并依次经过非线性置乱;
2)加入扰乱信息(β*,Y,Φ*),这里我们选取只加入1组扰乱信息作为说明,计算β*=F(x0,0,x0,1,x0,2,x0,3)作为初始扰乱项,其中F为32比特到8比特的映射;
3)将步骤1)和步骤2)的输出依次经过T3,T2,T1,T0*变换;
4)修改列混淆变换(MixColumns)操作,修改后的MixColumns操作相对于原始的4个输入块作用仍然相同,涉及到的扰乱信息在经过MixColumns操作后消除。将3)所有输出结果做列混淆变换(MixColumns);
5)将步骤4)的输出结果依次经过Q3,Q2,Q1,Y,Q0非线性置换,且输出结果作为密码算法的下一轮迭代步骤中的输入,即对5个密码块进行操作,也就是在原始密码算法操作的基础上加上混乱项的个数,从而得到白盒密码的最终输出结果。
步骤2)中,F映射为哈希算法;
步骤3)中,改变原密码算法的加解密流程中每一轮的边界,以AES算法为例:改变AES的轮边界后,把AddRoundKey和SubBytes组合在一起,这两个步骤组合起来可以用T-Box来表示。T-Box的计算公式如下:
T i , j r ( x ) = S ( x ⊕ K i , j r - 1 ) r = 1 , . . . , 9 i , j = 0 , . . . , 3 - - - ( 1 )
T i , j 10 ( x ) = S ( x ⊕ K i , j 10 ) ⊕ K sr ( i , j ) 10 i , j = 0 , . . . , 3 - - - ( 2 )
其中,Ki,j r为第r轮在单元(i,j)的子密钥,sr(i,j)表示单元(i,j)在经过ShiftRows操作后的位置,S表示AES的S盒。
步骤4)中,MixColumn操作每一次作用在一列上,可以用一个32×32比特的矩阵MC乘以一个32比特的列向量来表示。如果整个MixColumn用一个表格来表示,这个表格的大小为232×32=16GB。为了防止用如此之大的查找表,把MC按列分成2部分,MixColumn操作可以用如下公式表示:
MC · ( x 0 · · · x 31 ) T = ( MC 0 | | MC 1 ) · ( x 0 · · · x 31 ) T = MC 0 · ( x 0 · · · x 15 ) T ⊕ MC 1 · ( x 16 · · · x 31 ) T - - - ( 3 )
其中,MC为MixColumn的表格表示方式,MC0、MC1为MC的左右两部分。
因此,MixColumns的计算可以拆分成2个16比特到32比特的变换组成,然后将2个变换结果进行异或得到最后的MixColumn结果。
其中,(β*,Y,Φ*)为非线性扰乱信息。这里,Φ*为一个由多项式生成的,在绝大多数情况下取值固定为θ的多项式。因此可以利用这一个之前已经固定好的取值来构造MixColumns矩阵,使得该值在经过MixColumns操作后对原本的矩阵乘法没有影响,即为零元。由Φ*确定的固定值θ这里同样作为秘密信息在实现时确定。
具体地,基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,其内置编码与外置编码同时采用非线性双射变换实现,如图1所示,包括如下步骤:
1、设原始输入为x0,0,x0,1,x0,2,x0,3,均为8比特;
2、计算Qi *(x0,j),i=3...0,j=0...3,记结果为qi,i=0...3,β*=F(x0,0,x0,1,x0,2,x0,3),记结果为β;
3、计算Ti(qi)、Φ*(β);
4、将步骤3的所有结果记为T,计算mci=MixColumns(T),i=0...5;
5、将步骤4的结果分为五组,每组8比特,分别计算Q3(mc0),Q2(mc1),Q1(mc2),Y(mc3),Q0(mc4),结果即为下一轮的输入。
伪代码如下:
Input(x0,i)
qi=Qi *(x0,j)、β=β*=F(x0,0,x0,1,x0,2,x0,3)
Ti(qi)、Φ*(β)
mci=MixColumns(T)
OutputQ3(mc0)、Q2(mc1)、Q1(mc2)、Y(mc3)、Q0(mc4)。

Claims (5)

1.一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,其特征在于,包括如下步骤:
1)密码算法运行过程中的32比特敏感变元平均分为四组,每组8比特,即(x0,0,x0,1,x0,2,x0,3),并依次经过非线性置乱;
2)加入扰乱信息(β*,Y,Φ*),这里我们选取只加入1组扰乱信息作为说明,计算β*=F(x0,0,x0,1,x0,2,x0,3)作为初始扰乱项,其中F为32比特到8比特的映射;
3)将步骤1)和步骤2)的输出依次经过T3,T2,T1,T0*变换;
4)修改列混淆变换(MixColumns)操作,修改后的MixColumns操作相对于原始的4个输入块作用仍然相同,涉及到的扰乱信息在经过MixColumns操作后消除。将3)所有输出结果做列混淆变换(MixColumns);
5)将步骤4)的输出结果依次经过Q3,Q2,Q1,Y,Q0非线性置换,且输出结果作为密码算法的下一轮迭代步骤中的输入,即对5个密码块进行操作,也就是在原始密码算法操作的基础上加上混乱项的个数,从而得到白盒密码的最终输出结果。
2.根据权利要求1所述的基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,其特征在于,步骤2)中计算β*=F(x0,0,x0,1,x0,2,x0,3)作为初始扰乱项,其中F为32比特到8比特的映射。
3.根据权利要求1所述的基于查表和扰动置乱相结合的比特白盒密码非线性编码保护方法,其特征在于,步骤3)中改变原密码算法的加解密流程中每一轮的边界,以AES算法为例:改变AES的轮边界后,把AddRoundKey和SubBytes组合在一起,这两个步骤组合起来可以用T-Box来表示,T-Box的计算公式如下:
T i , j r ( x ) = S ( x ⊕ K i , j r - 1 ) , r = 1 , . . . , 9 , i , j = 0 , . . . , 3 - - - ( 1 )
T i , j 10 ( x ) = S ( x ⊕ K i , j 10 ) ⊕ K sr ( i , j ) 10 , i , j = 0 , . . . , 3 - - - ( 2 )
其中,Ki,j r为第r轮在单元(i,j)的子密钥,sr(i,j)表示单元(i,j)在经过ShiftRows操作后的位置,S表示AES的S盒。
4.根据权利要求1所述的基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,其特征在于,步骤4)中,MixColumn操作每一次作用在一列上,可以用一个32×32比特的矩阵MC乘以一个32比特的列向量来表示,如果整个MixColumn用一个表格来表示,这个表格的大小为232×32=16GB,为了防止用如此之大的查找表,把MC按列分成2部分,MixColumn操作可以用如下公式表示:
MC · ( x 0 . . . x 31 ) T = ( MC 0 | | MC 1 ) · ( x 0 . . . x 31 ) T = MC 0 · ( x 0 . . . x 15 ) T ⊕ MC 1 · ( x 16 . . . x 31 ) T - - - ( 3 )
其中,MC为MixColumn的表格表示方式,MC0、MC1为MC的左右两部分,
因此,MixColumns的计算可以拆分成2个16比特到32比特的变换组成,然后将2个变换结果进行异或得到最后的MixColumn结果。
5.根据权利要求1所述的基于查表和扰动置乱相结合的白盒密码非线性编码保护方法,其特征在于,步骤5)将4)的输出结果依次经过Q3,Q2,Q1,Y,Q0非线性置换;
其中,(β*,Y,Φ*)为非线性扰乱信息,这里,Φ*为一个由多项式生成的,在绝大多数情况下取值固定为θ的多项式,因此可以利用这一个之前已经固定好的取值来构造MixColumns矩阵,使得该值在经过MixColumns操作后对原本的矩阵乘法没有影响,即为零元,由Φ*确定的固定值θ这里同样作为秘密信息在实现时确定。
CN201510202443.3A 2015-04-24 2015-04-24 一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法 Pending CN105656622A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510202443.3A CN105656622A (zh) 2015-04-24 2015-04-24 一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510202443.3A CN105656622A (zh) 2015-04-24 2015-04-24 一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法

Publications (1)

Publication Number Publication Date
CN105656622A true CN105656622A (zh) 2016-06-08

Family

ID=56481687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510202443.3A Pending CN105656622A (zh) 2015-04-24 2015-04-24 一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法

Country Status (1)

Country Link
CN (1) CN105656622A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106452729A (zh) * 2016-08-30 2017-02-22 上海交通大学 一种基于随机置换的白盒密码的加密方法
CN107623566A (zh) * 2016-07-15 2018-01-23 青岛博文广成信息安全技术有限公司 基于非线性变换的sm4白盒算法
CN108494546A (zh) * 2018-02-13 2018-09-04 北京梆梆安全科技有限公司 一种白盒加密方法、装置及存储介质
CN108809626A (zh) * 2018-05-30 2018-11-13 北京安如山文化科技有限公司 一种白盒sm4密码算法方案与系统
CN109831295A (zh) * 2019-03-11 2019-05-31 国网甘肃省电力公司信息通信公司 一种基于电力应急通信系统的加密算法
CN114095148A (zh) * 2021-10-28 2022-02-25 重庆邮电大学 一种基于本地差分隐私保护的白盒密码加密方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101536398A (zh) * 2006-11-17 2009-09-16 皇家飞利浦电子股份有限公司 用于白盒实现的加密方法
CN101578813A (zh) * 2007-01-11 2009-11-11 皇家飞利浦电子股份有限公司 跟踪实现的拷贝
US20120093313A1 (en) * 2009-06-19 2012-04-19 Irdeto B. V. White-box cryptographic system with configurable key using intermediate data modification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101536398A (zh) * 2006-11-17 2009-09-16 皇家飞利浦电子股份有限公司 用于白盒实现的加密方法
CN101578813A (zh) * 2007-01-11 2009-11-11 皇家飞利浦电子股份有限公司 跟踪实现的拷贝
US20120093313A1 (en) * 2009-06-19 2012-04-19 Irdeto B. V. White-box cryptographic system with configurable key using intermediate data modification

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王冰: "白盒密码的设计方法和安全性分析", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
陈明: "白盒密码安全性分析与研究", 《网络安全技术与应用》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107623566A (zh) * 2016-07-15 2018-01-23 青岛博文广成信息安全技术有限公司 基于非线性变换的sm4白盒算法
CN107623566B (zh) * 2016-07-15 2022-09-06 青岛博文广成信息安全技术有限公司 基于非线性变换的sm4白盒实现方法
CN106452729A (zh) * 2016-08-30 2017-02-22 上海交通大学 一种基于随机置换的白盒密码的加密方法
CN106452729B (zh) * 2016-08-30 2020-02-21 上海交通大学 一种基于随机置换的白盒密码的加密方法
CN108494546A (zh) * 2018-02-13 2018-09-04 北京梆梆安全科技有限公司 一种白盒加密方法、装置及存储介质
CN108494546B (zh) * 2018-02-13 2021-10-15 北京梆梆安全科技有限公司 一种白盒加密方法、装置及存储介质
CN108809626A (zh) * 2018-05-30 2018-11-13 北京安如山文化科技有限公司 一种白盒sm4密码算法方案与系统
CN109831295A (zh) * 2019-03-11 2019-05-31 国网甘肃省电力公司信息通信公司 一种基于电力应急通信系统的加密算法
CN114095148A (zh) * 2021-10-28 2022-02-25 重庆邮电大学 一种基于本地差分隐私保护的白盒密码加密方法
CN114095148B (zh) * 2021-10-28 2023-09-26 重庆邮电大学 一种基于本地差分隐私保护的白盒密码加密方法

Similar Documents

Publication Publication Date Title
CN105656622A (zh) 一种基于查表和扰动置乱相结合的白盒密码非线性编码保护方法
CN105591734A (zh) 一种基于查表的白盒密码非线性编码保护方法
EP3186802B1 (en) Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
CN106411518B (zh) 一种密钥不固定的对称白盒加密方法和装置
CN103875001B (zh) 用于保护密码散列函数的执行的方法和系统
CN104065474B (zh) 一种轻量级Surge分组密码实现方法
CN110278072A (zh) 一种16轮sm4-128/128白盒密码实现方法
CN104618094B (zh) 一种增强抗攻击能力的密码Mask方法
CN104333446B (zh) 一种新型超轻量级qtl分组密码实现方法
CN101729241A (zh) 抵御差分能量攻击的aes加密方法
CN108809626A (zh) 一种白盒sm4密码算法方案与系统
CN111555862B (zh) 基于掩码保护的随机冗余轮函数的白盒aes实现方法
CN104639502B (zh) 一种sm4算法抗能量攻击的掩码方法及装置
CN103501227A (zh) 一种改进的多变量公钥密码加解密方案
CN113940028A (zh) 实现白盒密码的方法和装置
CN104410490B (zh) 非线性挤压保护密码s盒的方法
CN104184579A (zh) 基于双伪随机变换的轻量级分组密码vh算法
Yingbing et al. The design and implementation of a symmetric encryption algorithm based on DES
Li et al. Differential fault analysis on SMS4 using a single fault
Biryukov et al. Multiset-algebraic cryptanalysis of reduced Kuznyechik, Khazad, and secret SPNs
CN103607276A (zh) 新型基于随机函数的抗已知明文密文对攻击的分组加密方法
Alemami et al. Advanced approach for encryption using advanced encryption standard with chaotic map
CN109951273B (zh) 一种sm4算法白盒实现方法与装置
Tang et al. A meet-in-the-middle attack on reduced-round ARIA
CN104753668B (zh) 一种针对sm4密码线性变换输出的侧信道能量攻击方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160608

RJ01 Rejection of invention patent application after publication