[發明專利]BWGCF分組密碼算法實現方法有效
| 申請號: | 201910225576.0 | 申請日: | 2019-03-25 |
| 公開(公告)號: | CN111740816B | 公開(公告)日: | 2023-03-31 |
| 發明(設計)人: | 范修斌;王福馳 | 申請(專利權)人: | 山東文斌信息安全技術有限公司 |
| 主分類號: | H04L9/06 | 分類號: | H04L9/06 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 271200 山東省泰安市新*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | bwgcf 分組 密碼 算法 實現 方法 | ||
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的輸入,其中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的輸入,其中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比特基本密鑰進行輪密鑰擴展,生成子密鑰k0,k1,…,k47,
2)設128比特明文輸入為密文輸出為計算Wi=ki0+2×ki1+4×ki2+8×ki3,其中ki3,ki2,ki1,ki0為子密鑰ki(i=0,1,…,47)的后四比特,
若Wi=0,則
若Wi=1,則
若Wi=2,則
若Wi=3,則
若Wi=4,則
若Wi=5,則
若Wi=6,則
若Wi=7,則
若Wi=8,則
若Wi=9,則
若Wi=10,則
若Wi=11,則
若Wi=12,則
若Wi=13,則
若Wi=14,則
若Wi=15,則
3)BWGCF算法運動48拍則寄存器狀態即為密文,即
(Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7)=(X48,X49,X50,X51,X52,X53,X54,X55)
(2)分組長度/密鑰長度為128/256
分組長度/密鑰長度為128/256的加密算法同分組長度/密鑰長度為128/128的加密算法相同;
(3)分組長度/密鑰長度為256/256
分組長度/密鑰長度為256/256的加密算法如下:
1)對256比特基本密鑰進行輪密鑰擴展,生成子密鑰k0,k1,…,k31,
2)設256比特明文輸入為密文輸出為計算Wi=ki0+2×ki1+4×ki2+8×ki3,其中ki3,ki2,ki1,ki0為子密鑰ki(i=0,1,…,31)的后四比特,
若Wi=0,則/
若Wi=1,則
若Wi=2,則
若Wi=3,則
若Wi=4,則
若Wi=5,則
若Wi=6,則
若Wi=7,則
若Wi=8,則
若Wi=9,則
若Wi=10,則
若Wi=11,則
若Wi=12,則
若Wi=13,則
若Wi=14,則
若Wi=15,則
3)BWGCF算法運動32拍則寄存器狀態即為密文,即
(Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7)=(X32,X33,X34,X35,X36,X37,X38,X39)
(4)解密算法
密文倒轉即得明文;
④BWGCF算法密鑰擴展算法
(1)分組長度/密鑰長度為128/128
加密密鑰記為若加密密鑰用字節表示為(d0,d1,…,d15),則
MK0=(d0,d1),
MK1=(d2,d3),
MK2=(d4,d5),
MK3=(d6,d7),
MK4=(d8,d9),
MK5=(d10,d11),
MK6=(d12,d13),
MK7=(d14,d15),
令子密鑰為/則子密鑰生成方式如下:
首先,
/
然后,對i=0,1,2,…,47,計算Wi=ki0+2×ki1+4×ki2+8×ki3,其中ki3,ki2,ki1,ki0為子密鑰ki的后4比特:
若Wi=0,則
若Wi=1,則
若Wi=2,則
若Wi=3,則
若Wi=4,則
若Wi=5,則
若Wi=6,則
若Wi=7,則
若Wi=8,則
若Wi=9,則
若Wi=10,則
若Wi=11,則
若Wi=12,則
若Wi=13,則
若Wi=14,則
若Wi=15,則
說明:
1)T′變換與加密算法輪函數中的T相同;
2)CKi為固定密鑰,取值方法如下:
設cki,j為固定密鑰CKi的第j字節(i=0,1,…,47;j=0,1),即則cki,j=(4i+j)×7(mod256),
(2)分組長度/密鑰長度為128/256
加密密鑰前128比特記為
若加密密鑰用字節表示為(d0,d1,…,d15),則
MK0=(d0,d1),
MK1=(d2,d3),
MK2=(d4,d5),
MK3=(d6,d7),
MK4=(d8,d9),
MK5=(d10,d11),
MK6=(d12,d13),
MK7=(d14,d15),
令子密鑰為/則子密鑰生成方式如下:
首先,
然后,對i=0,1,2,…,23,計算Wi=ki0+2×ki1+4×ki2+8×ki3:
若Wi=0,則
若Wi=1,則
若Wi=2,則
若Wi=3,則
若Wi=4,則
若Wi=5,則
若Wi=6,則
若Wi=7,則
若Wi=8,則
若Wi=9,則
若Wi=10,則
若Wi=11,則
若Wi=12,則
若Wi=13,則
若Wi=14,則
若Wi=15,則
說明:
1)T′變換與加密算法輪函數中的T相同;
2)CKi為固定密鑰,取值方法如下:
設cki,j為固定密鑰CKi的第j字節(i=0,1,…,23;j=0,1),即則cki,j=(4i+j)×7(mod256),/
加密密鑰后128比特的密鑰擴展方法和前128比特的密鑰擴展方法相同,將前128比特擴展的輪密鑰作為1,2,…,24輪中的輪密鑰,后128比特擴展的輪密鑰作為25,26,…,48輪中的輪密鑰;
(3)分組長度/密鑰長度為256/256
加密密鑰記為
若加密密鑰用字節表示為(d0,d1,…,d31),則
MK0=(d0,d1,d2,d3),
MK1=(d4,d5,d6,d7),
MK2=(d8,d9,d10,d11),
MK3=(d12,d13,d14,d15),
MK4=(d16,d17,d18,d19),
MK5=(d20,d21,d22,d23),
MK6=(d24,d25,d26,d27),
MK7=(d28,d29,d30,d31),
令子密鑰為/則子密鑰生成方式如下:
首先,
然后,對i=0,1,2,…,31,計算Wi=ki0+2×ki1+4×ki2+8×ki3:
若Wi=0,則
若Wi=1,則
若Wi=2,則
若Wi=3,則
若Wi=4,則
若Wi=5,則
若Wi=6,則
若Wi=7,則
若Wi=8,則
若Wi=9,則
若Wi=10,則/
若Wi=11,則
若Wi=12,則
若Wi=13,則
若Wi=14,則
若Wi=15,則
說明:
1)T′變換與加密算法輪函數中的T相同;
2)CKi為固定密鑰,取值方法如下:
設cki,j為固定密鑰CKi的第j字節(i=0,1,…,31;j=0,1),即則cki,j=(4i+j)×7(mod256)。/
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東文斌信息安全技術有限公司,未經山東文斌信息安全技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201910225576.0/1.html,轉載請聲明來源鉆瓜專利網。





