BWGCF分组密码算法实现方法技术

技术编号:25842389 阅读:75 留言:0更新日期:2020-10-02 14:21
本发明专利技术《BWGCF分组密码算法实现方法》,属于信息安全技术领域,涉及密码算法设计。本发明专利技术BWGCF分组密码算法实现方法由BWGCF算法控选算法、BWGCF算法T函数构造算法、BWGCF算法加密算法、BWGCF算法密钥扩展算法4个算法构成,并给出了这4个算法的具体实施方式。BWGCF分组密码算法的分组长度/密钥长度支持128/128、128/256和256/256。

【技术实现步骤摘要】
BWGCF分组密码算法实现方法
本专利技术属于信息安全
,涉及密码算法设计。
技术介绍
由于密码技术是信息安全的基础,各国都十分重视密码算法的研究。在这样的一个时代,密码已经由秘密对抗进入公开竞争和国际合作。BWGCF密码算法是一个迭代分组密码算法。该算法的分组长度/密钥长度支持128/128、128/256和256/256,BWGCF密码算法的基本拓扑结构由十六个八级反馈多项式构成,该十六个反馈多项式是所有的本原多项式,它们分别是:(1)f(x)=x8+x4+x3+x2+1(2)f(x)=x8+x5+x3+x1+1(3)f(x)=x8+x5+x3+x2+1(4)f(x)=x8+x6+x3+x2+1(5)f(x)=x8+x6+x4+x3+x2+x1+1(6)f(x)=x8+x6+x5+x1+1(7)f(x)=x8+x6+x5+x2+1(8)f(x)=x8+x6+x5+x3+1(9)f(x)=x8+x6+x5+x4+1(10)f(x)=x8+x7+x2+x1+1(11)f(x)=x8+x7+x3+x2+1(12)f(x)=x8+x7+x5+x3+1(13)f(x)=x8+x7+x6+x1+1(14)f(x)=x8+x7+x6+x3+x2+x1+1(15)f(x)=x8+x7+x6+x5+x2+x1+1(16)f(x)=x8+x7+x6+x5+x4+x2+1BWGCF密码算法遵从DP逻辑设计思想,D为Drive,即分组密码的驱动部分,此处D为上述16个八级本原多项式,P为Permutation,每一拍为置换,拍的复合仍为置换;遵从正形置换设计思想;遵从算法重构设计思想,每一拍选择的反馈多项式是由密钥控制随机选取的,总可重构的空间大小为24×l(l为拍数),128bit密钥实际可达264以上个不重的。遵从广义feistel结构,DES,GHOST,SM4,CAST都隶属于Feistel或广义Feistel结构,本分组密码算法是广义Feistel结构的继承和发展,特别是SM4的进一步发展;遵从P逻辑设计思想,即密钥控制随机置换算子设计逻辑。该算法充分体现了序列密码设计思想与分组密码设计思想的高度统一。
技术实现思路
本专利技术BWGCF分组密码实现方法由下述四个算法构成:算法1:BWGCF算法控选算法;算法2:BWGCF算法T函数构造算法;算法3:BWGCF算法加密算法;算法4:BWGCF算法密钥扩展算法。附图说明附图为BWGCF分组密码算法基本拓扑结构图具体实施方式本专利技术BWGCF分组密码算法实现方法由下述4个算法构成,各个算法的具体实施方式为:算法1:BWGCF算法控选算法设子密钥为k0,k1,k2,k3,...,kL-1,则BWGCF控选算法为:W=ki0+2×ki1+4×ki2+8×ki3,其中ki3,ki2,ki1,ki0为子密钥ki的后四比特。算法2:BWGCF算法T函数构造算法(1)分组长度/密钥长度为128/128T是的变换,是与密钥无关的固定的合成置换,它由非线性变换层和线性变换层两部分构成。1)非线性变换τ非线性变换τ由2个并行的8×8的S-盒构成,实际上为字节代替变换。设输入为输出为则(b0,b1)=τ(A)=(sbox(a0),sbox(a1)).2)线性变换A非线性变换τ的输出就是线性变换A(满足线性分支数和差分分支数都为3)的输入。设输入为输出为则S-盒生产方式:S-盒仿射等价于有限域GF(28)中的乘法逆函数。定义GF(2)上可逆的仿射变换π如下:设输入8比特变量a=(a0,a1,...,a7),输出8比特变量b=π(a)=(b0,b1,...,b7),则定义有限域GF(28)中的乘法逆f如下:在GF(28)中利用本原多项式g(x)=x8+x7+x6+x5+x4+x2+1,将x映射到x-1,“00”映射到自身。S-盒生产方式为:设输入输出则y=sbox(x)=π(f(π(x))).S-盒如下:0123456789abcdef0d690e9fecce13db716b614c228fb2c0512b679a762abe04c3aa4413264986069929c4250f491ef987a33540b43edcfac623e4b31ca9c908e89580df94fa758f3fa644707a7fcf37317ba83593c19e6854fa85686b81b27164da8bf8eb0f4b70569d3561e240e5e6358d1a225227c3b012178877d40046579fd327524c3602e7a0c4c89e8eabf8ad240c738b5a3f7f2cef96115a19e0ae5da49b...

【技术保护点】
1.BWGCF分组密码算法实现方法,其特征在于包括:BWGCF分组密码算法实现方法由下述四个算法构成:/n①BWGCF算法控选算法/n设子密钥为k

【技术特征摘要】
1.BWGCF分组密码算法实现方法,其特征在于包括:BWGCF分组密码算法实现方法由下述四个算法构成:
①BWGCF算法控选算法
设子密钥为k0,k1,k2,k3,…,kL-1,则BWGCF控选算法为:
W=ki0+2×ki1+4×ki2+8×ki3,
其中ki3,ki2,ki1,ki0为子密钥ki的后四比特。
②BWGCF算法T函数构造算法
(1)分组长度/密钥长度为128/128
T是的变换,是与密钥无关的固定的合成置换,它由非线性变换层和线性变换层两部分构成。
1)非线性变换τ
非线性变换τ由2个并行的8×8的S-盒构成,实际上为字节代替变换。
设输入为输出为则
(b0,b1)=τ(A)=(sbox(a0),sbox(a1)).
2)线性变换A
非线性变换τ的输出就是线性变换A(满足线性分支数和差分分支数都为3)的输入。设输入为输出为则



S-盒生产方式:
S-盒仿射等价于有限域GF(28)中的乘法逆函数。
定义GF(2)上可逆的仿射变换π如下:
设输入8比特变量a=(a0,a1,…,a7),输出8比特变量b=π(a)=(b0,b1,…,b7),则



定义有限域GF(28)中的乘法逆f如下:
在GF(28)中利用本原多项式
g(x)=x8+x7+x6+x5+x4+x2+1,
将x映射到x-1,“00”映射到自身。
S-盒生产方式为:
设输入输出则
y=sbox(x)=π(f(π(x))).
S-盒如下:
























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
d1
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






(2)分组长度/密钥长度为128/256
分组长度/密钥长度为128/256的T函数与分组长度/密钥长度为128/128的T函数相同。
(3)分组长度/密钥长度为256/256
T是的变换,是与密钥无关的固定的合成置换,它由非线性变换层和线性变换层两部分构成。
1)非线性变换τ
非线性变换τ由2个并行的16×16的S-盒构成,实际上为双字节代替变换。
设输入为输出为则
(b0,b1)=τ(A)=(sbox(a0),sbox(a1)).
2)线性变换A
非线性变换τ的输出就是线性变换A(满足线性分支数和差分分支数都为3)的输入。设输入为输出为则



S-盒生产方式:
定义有限域GF(216)中的乘法逆f如下:
在GF(216)中利用本原多项式
g(x)=x16+x5+x3+x+1,
将x映射到x-1,“00”映射到自身。
③BWGCF算法加密算法
(1)分组长度/密钥长度为128/128
分组长度/密钥长度为128/128的加密算法如下:
1)对128比特...

【专利技术属性】
技术研发人员:范修斌王福驰
申请(专利权)人:山东文斌信息安全技术有限公司
类型:发明
国别省市:山东;37

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1