CN1845214A - 可随机更换的非线性正形置换生成器 - Google Patents
可随机更换的非线性正形置换生成器 Download PDFInfo
- Publication number
- CN1845214A CN1845214A CN 200610078666 CN200610078666A CN1845214A CN 1845214 A CN1845214 A CN 1845214A CN 200610078666 CN200610078666 CN 200610078666 CN 200610078666 A CN200610078666 A CN 200610078666A CN 1845214 A CN1845214 A CN 1845214A
- Authority
- CN
- China
- Prior art keywords
- linear
- orthormorphism
- displacement
- maker
- random replacing
- 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
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种可随机更换的非线性正形置换生成器,涉及用于密码设计的装置。为解决基于SP(代替和置换)结构设计的分组密码算法没有基础置换的迭代因素,且其代数次数较低;基于Feistel结构设计的分组密码算法的基本置换的密码学性质不够良好的问题而提出,本发明可随机更换的非线性正形置换生成器,通过下述步骤实现:(1)构造满足正形置换的函数fi(xi+1,…,xi+n-1),其中i为拍,i=0,1,…,s-1;(2)任意给定置换Ti;(3)对fi(xi+1,…,xi+n-1)的值进行Ti运算得Ti(fi(xi+1,…,xi+n-1));(4)再实施Ti(fi(xi+1,…,xi+n-1))得xi+n,其中可以是“”或“+”。该可随机更换的正形置换生成器代数次数高,同时具有密码学性质良好的优点。
Description
技术领域
本发明涉及用于密码设计的装置,特别涉及可随机更换的非线性正形置换生成器。
背景技术
众所周知,分组密码的设计实际上是生成在密钥控制之下的大集合随机置换,该随机置换由基础置换迭代与乘积生成。随机置换的随机原因可由两种逻辑生成:一种为内在因素,例如混沌逻辑;另一种为外在因素,例如带有外来输入的多输出布尔逻辑。基于混沌逻辑生成的置换由于受计算精度的影响,目前仍在预研阶段。基于带有外来输入的多输出布尔逻辑设计的分组密码是当前实际使用的分组密码算法的主流,这类分组密码算法主要包括两种结构:一种是SP结构,另一种是Feistel结构。
基于SP(代替和置换)结构设计的分组密码算法主要代表是AES算法等,此类为差分马氏链密码算法,虽然其为当前美国加密算法标准,但其仍有以下两个主要缺点:一为其是简单的基础置换乘积密码算法,没有基础置换的迭代因素;二为其代数次数较低,代数攻击方法攻击复杂度低于密钥枚举攻击复杂度。
基于Feistel结构设计的分组密码算法主要代表是DES、3-DES、CAST算法。基于Feistel结构设计的分组密码算法的基本置换的密码学性质不够良好。
上述两类结构的分组密码算法的S-盒是固定不变的。
发明内容
本发明的目的是解决基于SP(代替和置换)结构设计的分组密码算法是简单的基础置换乘积密码算法,没有基础置换的迭代因素;且其代数次数较低,代数攻击方法攻击复杂度低于密钥枚举攻击复杂度;基于Feistel结构设计的分组密码算法的基本置换的密码学性质不够良好的问题和不足,提供一种代数次数高、具有良好的密码学特性的可随机更换的非线性正形置换生成器。
为解决上述问题,本发明采用如下技术方案:该可随机更换的非线性正形置换生成器,通过下述步骤实现:
(1)构造满足正形置换的函数fi(xi+1,…,xi+n-1),其中i为拍,i=0,1,...,s-1;
(2)任意给定置换Ti;
(3)对fi(xi+1,…,xi+n-1)的值进行Ti运算得Ti(fi(xi+1,…,xi+n-1));
(4)再实施Ti(fi(xi+1,…,xi+n-1))得xi+n,其中可以是“”或“+”。
根据上述本发明技术方案,该可随机更换的正形置换生成器是置换的迭代,每拍与每轮都是正形置换,代数次数高,克服了基于SP结构设计的分组密码算法简单的基础置换乘积以及代数次数低的缺点。众所周知,正形置换是完全映射,其具有良好的密码学特性,克服了基于Feistel结构设计的分组密码算法基本置换的密码学性质不够良好的缺点。该可随机更换的正形置换生成器为高次大集合可随机更换的正形置换生成器。
附图说明
图1是本发明所述可随机更换的非线性正形置换生成器一步迭代逻辑框图。
具体实施方式
下面是对发明内容实现步骤的注释
[1]如fi(x1,...,xn-1)=ai1x1...ain-1xn-1,其中
通过如下方式所确定是给定的常数,则fi(x1,...,xn-1)称为满足正形置换的函数。
Ti是任意给定的Z2 e;上的置换,i=0,1,...,s-1,j=1,2,...,n-1。记F=(f0,f1,...,fs-1),T=(T0,T1,...,Ts-1)。一个由F,T定义的Z2 en上的高次大集合可随机更换的正形置换生成器的输入变量为(x0,x1,...,xn-1),其中
以(x0,x1,...,xn-1)为初始值作序列迭代:xn+i=xiTi(fi(xi+1,...,xi+n-1)),i=0,1,...,s-1,得到(xs,xs+1,...,xs+n-1),定义Z2 en到Z2 en上的映射:
′s: Z2 en→Z2 en
(x0,x1,...,xn-1)→(xs,xs+1,...,xs+n-1)
由xi=xn+iTi(fi(xi+1,...,xi+n-1)),i=s-1,...,1,0,可见该变换是可逆的,说明′s是Z2 en上的一个置换。其中,线性函数组F称为线性合成函数序列,置换组T称为合成置换序列。
设λi(x)=ai1x+ai2x2+…+ai(n-1)xn-1,且
λi(x)≡gi(x)=bi0+bi1x+...+bi,s-1xs-l(mod xs-1),
其中,
i,j=0,1,...,s-1。可以得到矩阵:
设s|n,当且仅当B′作为模2域上矩阵是可逆阵时,′s为正形置换。
设s|n,当n是偶数时,若λi(x)≡x+x2+...+xn-1(mod 2),i=0,1,...,s-1。则对任意置换T,′s是正形置换。
[2]高次大集合可随机更换的正形置换生成器,其中高次是指对称群Sl中的l非常大;大集合是指可生成的正形置换集合非常大;可随机更换是指Ti为任意置换的情况下,都生成正形置换。
下面算法是基于本发明的原理实现的,其具体实现方法如下:
本算法是一个分组算法。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
用Z2 e表示e-比特的向量集,Z2 32中的元素称为字,Z2 8中的元素称为字节。
S盒为固定的8比特输入8比特输出的置换,记为Sbox(.)。
基本运算
在本算法中采用了以下基本运算:
32比特异或
<<<i 32比特循环左移i位。
密钥及密钥参量
加密密钥长度为128比特,表示为MK=(MK0,MK1,MK2,MK3),其中MKi(i=0,1,2,3)为字。
轮密钥表示为(rk0,rk1,...,rk31),其中rki(i=0,...,31)为字。轮密钥由加密密钥生成。
FK=(FK0,FK1,FK2,FK3)为系统参数,CK=(CK0,CK1,...,CK31)为固定参数,用于密钥扩展算法,其中FKi(i=0,...,31)、CKi(i=0,...,31)为字。
轮函数F
本算法采用非线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换。
设输入为
轮密钥为
则轮函数F为:
F(X0,X1,X2,X3,rk)=X0T(X1X2X3rk)
合成置换T
T:Z2 32→Z2 32,是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.))。
非线性变换τ
τ由4个并行的S盒构成。
设输入为
输出为
则
(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))
线性变换L
非线性变换τ的输出是线性变换L的输入。设输入为
输出为 则
C=L(B)=B(B<<<2)(B<<<10)(B<<<18)(B<<<24)
S盒
S盒中数据均采用16进制表示。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | |
0 | d6 | 90 | e9 | fe | cc | e1 | 3d | b7 | 16 | b6 | 14 | c2 | 28 | fb | 2c | 05 |
1 | 2b | 67 | 9a | 76 | 2a | be | 04 | c3 | aa | 44 | 13 | 26 | 49 | 86 | 06 | 99 |
2 | 9c | 42 | 50 | f4 | 91 | ef | 98 | 7a | 33 | 54 | 0b | 43 | ed | cf | ac | 62 |
3 | e4 | b3 | 1c | a9 | c9 | 08 | e8 | 95 | 80 | df | 94 | fa | 75 | 8f | 3f | a6 |
4 | 47 | 07 | a7 | fc | f3 | 73 | 17 | ba | 83 | 59 | 3c | 19 | e6 | 85 | 4f | a8 |
5 | 68 | 6b | 81 | b2 | 71 | 64 | da | 8b | f8 | eb | 0f | 4b | 70 | 56 | 9d | 35 |
6 | 1e | 24 | 0e | 5e | 63 | 58 | dl | a2 | 25 | 22 | 7c | 3b | 01 | 21 | 78 | 87 |
7 | d4 | 00 | 46 | 57 | 9f | d3 | 27 | 52 | 4c | 36 | 02 | e7 | a0 | c4 | c8 | 9e |
8 | ea | bf | 8a | d2 | 40 | c7 | 38 | b5 | a3 | f7 | f2 | ce | f9 | 61 | 15 | a1 |
9 | e0 | ae | 5d | a4 | 9b | 34 | 1a | 55 | ad | 93 | 32 | 30 | f5 | 8c | b1 | e3 |
a | 1d | f6 | e2 | 2e | 82 | 66 | ca | 60 | c0 | 29 | 23 | ab | 0d | 53 | 4e | 6f |
b | d5 | db | 37 | 45 | de | fd | 8e | 2f | 03 | ff | 6a | 72 | 6d | 6c | 5b | 51 |
c | 8d | 1b | af | 92 | bb | dd | bc | 7f | 11 | d9 | 5c | 41 | 1f | 10 | 5a | d8 |
d | 0a | c1 | 31 | 88 | a5 | cd | 7b | bd | 2d | 74 | d0 | 12 | b8 | e5 | b4 | b0 |
e | 89 | 69 | 97 | 4a | 0c | 96 | 77 | 7e | 65 | b9 | f1 | 09 | c5 | 6e | c6 | 84 |
f | 18 | f0 | 7d | ec | 3a | dc | 4d | 20 | 79 | ee | 5f | 3e | d7 | cb | 39 | 48 |
例:输入‘ef’,则经S盒后的值为表中第e行和第f列的值,Sbox(‘ef’)=‘84’。
加/解密算法
定义反序变换R为:
R(A0,A1,A2,A3)=(A3,A2,A1,A0),
i=0,1,2,3。
设明文输入为
密文输出为
轮密钥为
i=0,1,2,…,31。则本算法的加密变换为:
Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=XiT(Xi+1Xi+2Xi+3rki),i=0,1,…,31.
(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)。
本算法解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。
加密时轮密钥的使用顺序为:(rk0,rk1,...,rk31)..
解密时轮密钥的使用顺序为:(rk31,rk30,...,rk0)
密钥扩展算法
本算法中加密算法的轮密钥由加密密钥通过密钥扩展算法生成。
加密密钥MK=(MK0,MK1,MK2,MK3),
i=0,1,2,3;
令
i=0,1,...,35,轮密钥为
i=0,1,...,31,则轮密钥生成方法为:
首先,(K0,K1,K2,K3)=(MK0FK0,MK1FK1,MK2FK2,MK3FK3)
然后,对i=0,1,2,...,31:
rki=Ki+4=KiT′(Ki+1Ki+2Ki+3CKi)
说明:
(1)T′变换与加密算法轮函数中的T基本相同,只将其中的线性变换L修改为以下L′:
L′(B)=B(B<<<13)(B<<<23);
(2)系统参数FK的取值,采用16进制表示为:
FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197),FK3=(B27022DC)
(3)固定参数CK的取值方法为:
设cki,j为CKi的第j字节(i=0,1,...,31;j=0,1,2,3),即
则cki,j=(4i+j)×7(mod 256)。32个固定参数CKi,其16进制表示为:
00070e15,1c232a31,383f464d,545b6269,
70777e85,8c939aa1,a8afb6bd,c4cbd2d9,
e0e7eef5,fc030a11,181f262d,343b4249,
50575e65,6c737a81,888f969d,a4abb2b9,
c0c7ced5,dce3eaf1,f8ff060d,141b2229,
30373e45,4c535a61,686f767d,848b9299,
a0a7aeb5,bcc3cad1,d8dfe6ed,f4fb0209,
10171e25,2c333a41,484f565d,646b7279
上述具体实施方式以较佳实施例对本发明进行了说明,但这只是为了便于理解而举的形象化的实例,不应被视为是对本发明范围的限制。同样,根据本发明的技术方案及其较佳实施例的描述,可以做出各种可能的等同改变或替换,而所有这些改变或替换都应属于本发明权利要求的保护范围。
Claims (8)
1、一种可随机更换的非线性正形置换生成器,其特征在于,所述正形置换生成器通过下述步骤实现:
(1)构造满足正形置换的函数fi(xi+1,...,xi+n-1),其中i为拍,i=0,1,...,s-1;
(2)任意给定置换Ti;
(3)对fi(xi+1,...,xi+n-1)的值进行Ti运算得Ti(fi(xi+1,...,xi+n-1));
(4)再实施Ti(fi(xi+1,...,xi+n-1))得xi+n,其中可以是“”或“+”。
2、根据权利要求1所述的可随机更换的非线性正形置换生成器,其特征在于,
fi(x1,...,xn-1)=ai1x1...ain-1xn-1,其中
通过如下方式所确定是给定的常数,fi(x1,...,xn-1)称为满足正形置换的函数;
Ti是任意给定的Z2 e上的置换,i=0,1,...,s-1,j=1,2,...,n-1;记F=(f0,f1,...,fs-1),T=(T0,T1,...,Ts-1);一个由F,T定义的Z2 en上的可随机更换的正形置换生成器的输入变量为(x0,x1,...,xn-1),其中
以(x0,x1,...,xn-1)为初始值作序列迭代:xn+i=xiTi(fi(xi+1,...,xi+n-1)),i=0,1,...,s-1,得到(xs,xs+1,...,xs+n-1),定义Z2 en到Z2 en上的映射:
′s:
(x0,x1,...,xn-1)→(xs,xs+1,...,xs+n-1)
由xi=xn+iTi(fi(xi+1,...,xi+n-1)),i=s-1,...,1,0,可见该变换是可逆的,说明′s是Z2 en上的一个置换;其中,线性函数组F称为线性合成函数序列,置换组T称为合成置换序列;
设λi(x)=ai1x+ai2x2+…+ai(n-1)xn-1,且
λi(x)≡gi(x)=bi0+bi1x+...+bi,s-1xs-1(mod xs-1),
其中,
可以得到矩阵:
设s|n,当且仅当B′作为模2域上矩阵是可逆阵时,′s为正形置换;
设s|n,当n是偶数时,若λi(x)≡x+x2+...+xn-1(mod 2),i=0,1,...,s-1;则对任意置换T,′s是正形置换。
3、根据权利要求1所述的可随机更换的非线性正形置换生成器,其特征在于,其中线性函数组F为线性合成函数序列,置换组T为合成置换序列。
4、根据权利要求1或2所述的可随机更换的非线性正形置换生成器,其特征在于,其中算法的分组长度为128比特。
5、根据权利要求4所述的可随机更换的非线性正形置换生成器,其特征在于,其中密钥长度为128比特。
6、根据权利要求5所述的可随机更换的非线性正形置换生成器,其特征在于,其中加密算法与密钥扩展算法都采用32轮非线性迭代结构。
7、根据权利要求6所述的可随机更换的非线性正形置换生成器,其特征在于,基中异或运算是32比特异或,其中循环移位运算是32比特循环左移16位。
8、根据权利要求7所述的可随机更换的非线性正形置换生成器,其特征在于,所述T是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.));
τ由4个并行的S盒构成,
设输入为
输出为
则
(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3));
非线性变换τ的输出是线性变换L的输入,设输入为
输出为
则C=L(B)=B(B<<<2)(B<<<10)(B<<<18)(B<<<24)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610078666 CN1845214A (zh) | 2006-04-30 | 2006-04-30 | 可随机更换的非线性正形置换生成器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610078666 CN1845214A (zh) | 2006-04-30 | 2006-04-30 | 可随机更换的非线性正形置换生成器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1845214A true CN1845214A (zh) | 2006-10-11 |
Family
ID=37064142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610078666 Pending CN1845214A (zh) | 2006-04-30 | 2006-04-30 | 可随机更换的非线性正形置换生成器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1845214A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104486066A (zh) * | 2014-11-25 | 2015-04-01 | 中国电子科技集团公司第三十研究所 | 一种布尔函数的构造方法以及使用该函数的密码部件 |
CN105900164A (zh) * | 2014-01-17 | 2016-08-24 | 日本电信电话株式会社 | 秘密计算方法、秘密计算系统、拣选装置以及程序 |
CN110266471A (zh) * | 2019-07-09 | 2019-09-20 | 华中农业大学 | 一种密码学置换的枚举方法及系统 |
-
2006
- 2006-04-30 CN CN 200610078666 patent/CN1845214A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105900164A (zh) * | 2014-01-17 | 2016-08-24 | 日本电信电话株式会社 | 秘密计算方法、秘密计算系统、拣选装置以及程序 |
CN105900164B (zh) * | 2014-01-17 | 2019-03-08 | 日本电信电话株式会社 | 秘密计算方法、秘密计算系统、拣选装置以及记录介质 |
CN104486066A (zh) * | 2014-11-25 | 2015-04-01 | 中国电子科技集团公司第三十研究所 | 一种布尔函数的构造方法以及使用该函数的密码部件 |
CN110266471A (zh) * | 2019-07-09 | 2019-09-20 | 华中农业大学 | 一种密码学置换的枚举方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101764686B (zh) | 一种用于网络与信息安全的加密方法 | |
CN107707343B (zh) | 加解密一致的sp网络结构轻量级分组密码实现方法 | |
CN104333446B (zh) | 一种新型超轻量级qtl分组密码实现方法 | |
CN1527531A (zh) | 一种数据加密标准或三重数据加密标准的实现方法 | |
CN105162590B (zh) | 一种云计算环境中并行同态数据加密方法 | |
CN105790930A (zh) | 用于移动终端的信息加密方法、信息加密装置和移动终端 | |
CN109861809B (zh) | 一种实用化的分组随机加解密方法 | |
CN104065474A (zh) | 一种新型低资源高效的轻量级Surge分组密码实现方法 | |
CN1795638A (zh) | 用于加密和解密数据块的设备和方法 | |
Kuang et al. | Quantum safe lightweight cryptography with quantum permutation pad | |
CN101841415A (zh) | 一种面向字的密钥流生成方法及加密方法 | |
CN111245598B (zh) | 一种轻量级aerogel分组密码的实现方法 | |
CN1845214A (zh) | 可随机更换的非线性正形置换生成器 | |
CN105939190A (zh) | 基于fpga的离线生成密钥的aes数据加密方法 | |
CN101826959A (zh) | 一种面向字节的密钥流生成方法及加密方法 | |
CN1190034C (zh) | 一种分组密码加密方法 | |
CN113746622A (zh) | 一种基于双二维混沌系统的轻量级分组文本加密方法 | |
CN105959100A (zh) | 一种基于fpga的在线生成密钥的aes数据加密方法 | |
Chugunkov et al. | Three-dimensional data stochastic transformation algorithms for hybrid supercomputer implementation | |
Stoianov | One approach of using key-dependent S-BOXes in AES | |
Salman et al. | Creation of S-Box based One-Dimensional Chaotic Logistic Map: Colour Image Encryption Approach. | |
CN101848078A (zh) | 一种密钥流序列扰动方法及加密方法 | |
CN107493164B (zh) | 一种基于混沌系统的des加密方法和系统 | |
CN104320420A (zh) | 一种基于aes算法的scada文件加密方法 | |
CN106921486A (zh) | 数据加密的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20061011 |