栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【密码学】分组密码算法的工作模式(4)——密文反馈工作模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【密码学】分组密码算法的工作模式(4)——密文反馈工作模式

7 密文反馈工作模式 7.1 变量定义

CFB工作模式采用以下变量。
a)输入变量:
      1) q q q个明文分组 P 1 , P 2 , . . . , P q P_1,P_2,...,P_q P1​,P2​,...,Pq​所组成的序列,每个分组都为 j j j比特;
      2)密钥 K K K,需要加解密操作方约定一致,长度由分组密码算法 E E E决定;
      3)初始向量 I V IV IV,需要加解密操作方约定一致,长度为 r r r比特。
b)中间变量:
      1) q q q个密码输入变量 X 1 , X 2 , . . . , X q X_1,X_2,...,X_q X1​,X2​,...,Xq​所组成的序列,每个变量都为 n n n比特;
      2) q q q个密码输出变量 Y 1 , Y 2 , . . . , Y q Y_1,Y_2,...,Y_q Y1​,Y2​,...,Yq​所组成的序列,每个变量都为 n n n比特;
      3) q q q个临时变量 Z 1 , Z 2 , . . . , Z q Z_1,Z_2,...,Z_q Z1​,Z2​,...,Zq​所组成的序列,每个变量都为 j j j比特;
      4) q − 1 q-1 q−1个反馈变量 F 1 , F 2 , . . . , F q − 1 F_1,F_2,...,F_{q-1} F1​,F2​,...,Fq−1​所组成的序列,每个变量都为 k k k比特;
      5) q q q个反馈缓存 F B 1 , F B 2 , . . . , F B q FB_1,FB_2,...,FB_q FB1​,FB2​,...,FBq​所组成的序列,每个分组都为 r r r比特。
c)输出变量:
       q q q个密文分组 C 1 , C 2 , . . . , C q C_1,C_2,...,C_q C1​,C2​,...,Cq​所组成的序列,每个分组都为 j j j比特。

7.2 CFB的加密方式描述

设置反馈缓存 F B FB FB的初始向量: F B 1 = I V FB_1=IV FB1​=IV。
加密运算按照如下六个步骤进行:
a)生成密码输入变量: X i = n ∼ F B i X_i=n sim FB_i Xi​=n∼FBi​;
b)使用分组密码: Y i = E k ( X i ) Y_i=E_k(X_i) Yi​=Ek​(Xi​);
c)选择左侧的 j j j比特: Z i = j ∼ Y i Z_i=j sim Y_i Zi​=j∼Yi​;
d)生成密文分组: C i = P i ⊕ Z i C_i=P_i oplus Z_i Ci​=Pi​⊕Zi​;
e)生成反馈变量: F i = O n e ( k − j ) ∣ ∣ C i F_i=One(k-j)||C_i Fi​=One(k−j)∣∣Ci​;
f)更新反馈缓存: F B i + 1 = ( F B i ∣ ∣ F i ) ∼ r FB_{i+1}=(FB_i||F_i) sim r FBi+1​=(FBi​∣∣Fi​)∼r。
对 i = 1 , 2 , . . . , q i=1,2,...,q i=1,2,...,q,重复上述步骤,最后一个循环结束于 d ) d) d)。此过程如图5所示。分组密码输出变量 Y Y Y的左侧 j j j比特用来加密明文分组, Y Y Y的其他比特被舍弃。

生成新的反馈缓存 F B i + 1 FB_{i+1} FBi+1​的方法是,把长度为 k − j k-j k−j的全“1”比特串填充到密文分组 C i C_i Ci​的左侧,得到 k k k比特反馈变量 F i F_i Fi​;然后舍弃当前反馈缓存 F B i FB_i FBi​左侧的 k k k比特,并将 F i F_i Fi​填充到其右侧。此后, F B i + 1 FB_{i+1} FBi+1​左侧的 n n n比特将用于加密下一个输入 X X X。

7.3 CFB的加密方式示例

本示例使用的分组密码是GB/T 32907——2016中规定的SM4算法。所有变量采用“左高右低”的方式标记,即变量最左侧为其最高位。
此例所选的参数为: j = k = 8 j=k=8 j=k=8且 r = n r=n r=n。 k k k比特反馈以斜体形式给出。
密钥密钥为(十六进制):2B7E1516 28AED2A6 ABF71588 09CF4F3C。
初始向量为(十六进制):00010203 04050607 08090A0B 0C0D0E0F。
明文是(十六进制):6B C1 BE E2 2E 40 9F 96 。


i = 1 i=1 i=1时:
F B 1 = I V = FB_1=IV= FB1​=IV= 00010203 04050607 08090A0B 0C0D0E0F
a) X 1 = 128 ∼ F B 1 = X_1=128 sim FB_1= X1​=128∼FB1​= 00010203 04050607 08090A0B 0C0D0E0F
b) Y 1 = E k ( X 1 ) = Y_1=E_k(X_1)= Y1​=Ek​(X1​)= D7B0B394 034794B0 DF20D63A 27C5496C
c) Z 1 = 8 ∼ Y 1 = Z_1=8 sim Y_1= Z1​=8∼Y1​=D7
d) C 1 = P 1 ⊕ Z 1 = C_1=P_1 oplus Z_1= C1​=P1​⊕Z1​= (6B) ⊕ oplus ⊕ (D7) = = = BC
e) F 1 = O n e ( 0 ) ∣ ∣ C 1 = F_1=One(0)||C_1= F1​=One(0)∣∣C1​= BC
f) F B 2 = ( F B 1 ∣ ∣ F 1 ) ∼ 128 = FB_2=(FB_1||F_1) sim 128= FB2​=(FB1​∣∣F1​)∼128= (00010203 04050607 08090A0B 0C0D0E0FBC) ∼ sim ∼ 128=01020304 05060708 090A0B0C 0D0E0FBC


i = 2 i=2 i=2时:
a) X 2 = 128 ∼ F B 2 = X_2=128 sim FB_2= X2​=128∼FB2​= 01020304 05060708 090A0B0C 0D0E0FBC
b) Y 2 = E k ( X 2 ) = Y_2=E_k(X_2)= Y2​=Ek​(X2​)= 590B8185 E6B10E0D 71838FDC D0706FF5
c) Z 2 = 8 ∼ Y 2 = Z_2=8 sim Y_2= Z2​=8∼Y2​= 59
d) C 2 = P 2 ⊕ Z 2 = C_2=P_2 oplus Z_2= C2​=P2​⊕Z2​= (C1) ⊕ oplus ⊕ (59) = = = 98
e) F 2 = O n e ( 0 ) ∣ ∣ C 2 = F_2=One(0)||C_2= F2​=One(0)∣∣C2​= 98
f) F B 3 = ( F B 2 ∣ ∣ F 2 ) ∼ 128 = FB_3=(FB_2||F_2) sim 128= FB3​=(FB2​∣∣F2​)∼128= (01020304 05060708 090A0B0C 0D0E0FBC98) ∼ sim ∼ 128 = = = 02030405 06070809 0A0B0C0D 0E0FBC98


i = 3 i=3 i=3时:
a) X 3 = 128 ∼ F B 3 = X_3=128 sim FB_3= X3​=128∼FB3​= 02030405 06070809 0A0B0C0D 0E0FBC98
b) Y 3 = E k ( X 3 ) = Y_3=E_k(X_3)= Y3​=Ek​(X3​)= 08DB5E72 4D537170 C6C53D22 CF9C2AAE
c) Z 3 = 8 ∼ Y 3 = Z_3=8 sim Y_3= Z3​=8∼Y3​= 08
d) C 3 = P 3 ⊕ Z 3 = C_3=P_3 oplus Z_3= C3​=P3​⊕Z3​= (BE) ⊕ oplus ⊕ (08)= B6
e) F 3 = O n e ( 0 ) ∣ ∣ C 3 = F_3=One(0)||C_3= F3​=One(0)∣∣C3​= B6
f) F B 4 = ( F B 3 ∣ ∣ F 3 ) ∼ 128 = FB_4=(FB_3||F_3) sim 128= FB4​=(FB3​∣∣F3​)∼128= (02030405 06070809 0A0B0C0D 0E0FBC98B6) ∼ sim ∼ 128 = = = 03040506 0708090A 0B0C0D0E 0FBC98B6


i = 4 i=4 i=4时:
a) X 4 = 128 ∼ F B 4 = X_4=128 sim FB_4= X4​=128∼FB4​= 03040506 0708090A 0B0C0D0E 0FBC98B6
b) Y 4 = E k ( X 4 ) = Y_4=E_k(X_4)= Y4​=Ek​(X4​)= 7E5370A2 65433064 1081E3FE B85AC871
c) Z 4 = 8 ∼ Y 4 = Z_4=8 sim Y_4= Z4​=8∼Y4​= 7E
d) C 4 = P 4 ⊕ Z 4 = C_4=P_4 oplus Z_4= C4​=P4​⊕Z4​= (E2) ⊕ oplus ⊕ (7E) = = = 9C
e) F 4 = O n e ( 0 ) ∣ ∣ C 4 = F_4=One(0)||C_4= F4​=One(0)∣∣C4​= 9C
f) F B 5 = ( F B 4 ∣ ∣ F 4 ) ∼ 128 = FB_5=(FB_4||F_4) sim 128= FB5​=(FB4​∣∣F4​)∼128= (03040506 0708090A 0B0C0D0E 0FBC98B69C) ∼ sim ∼ 128 = = = 04050607 08090A0B 0C0D0E0F BC98B69C


i = 5 i=5 i=5时:
a) X 5 = 128 ∼ F B 5 = X_5=128 sim FB_5= X5​=128∼FB5​= 04050607 08090A0B 0C0D0E0F BC98B69C
b) Y 5 = E k ( X 5 ) = Y_5=E_k(X_5)= Y5​=Ek​(X5​)= 25F88D7B A32C5A53 05E4F141 B21BBFC6
c) Z 5 = 8 ∼ Y 5 = Z_5=8 sim Y_5= Z5​=8∼Y5​= 25
d) C 5 = P 5 ⊕ Z 5 = C_5=P_5 oplus Z_5= C5​=P5​⊕Z5​= (2E) ⊕ oplus ⊕ (25) = = = 0B
e) F 5 = O n e ( 0 ) ∣ ∣ C 5 = F_5=One(0)||C_5= F5​=One(0)∣∣C5​= 0B
f) F B 6 = ( F B 5 ∣ ∣ F 5 ) ∼ 128 = FB_6=(FB_5||F_5) sim 128= FB6​=(FB5​∣∣F5​)∼128= (04050607 08090A0B 0C0D0E0F BC98B69C0B) ∼ sim ∼ 128 = = = 05060708 090A0B0C 0D0E0FBC 98B69C0B


i = 6 i=6 i=6时:
a) X 6 = 128 ∼ F B 6 = X_6=128 sim FB_6= X6​=128∼FB6​= 05060708 090A0B0C 0D0E0FBC 98B69C0B
b) Y 6 = E k ( X 6 ) = Y_6=E_k(X_6)= Y6​=Ek​(X6​)= 7A3705B7 023A0A3B 5B628CA0 DA6D6EE2
c) Z 6 = 8 ∼ Y 6 = Z_6=8 sim Y_6= Z6​=8∼Y6​= 7A
d) C 6 = P 6 ⊕ Z 6 = C_6=P_6 oplus Z_6= C6​=P6​⊕Z6​= (40) ⊕ oplus ⊕ (7A) = = = 3A
e) F 6 = O n e ( 0 ) ∣ ∣ C 6 = F_6=One(0)||C_6= F6​=One(0)∣∣C6​= 3A
f) F B 7 = ( F B 6 ∣ ∣ F 6 ) ∼ 128 = FB_7=(FB_6||F_6) sim 128= FB7​=(FB6​∣∣F6​)∼128= (05060708 090A0B0C 0D0E0FBC 98B69C0B3A) ∼ sim ∼ 128 = = = 06070809 0A0B0C0D 0E0FBC98 B69C0B3A


i = 7 i=7 i=7时:
a) X 7 = 128 ∼ F B 7 = X_7=128 sim FB_7= X7​=128∼FB7​= 06070809 0A0B0C0D 0E0FBC98 B69C0B3A
b) Y 7 = E k ( X 7 ) = Y_7=E_k(X_7)= Y7​=Ek​(X7​)= 572474E1 96F3C58B 6E8F8BE6 B1712EBE
c) Z 7 = 8 ∼ Y 7 = Z_7=8 sim Y_7= Z7​=8∼Y7​= 57
d) C 7 = P 7 ⊕ Z 7 = C_7=P_7 oplus Z_7= C7​=P7​⊕Z7​= (9F) ⊕ oplus ⊕ (57) = = = C8
e) F 7 = O n e ( 0 ) ∣ ∣ C 7 = F_7=One(0)||C_7= F7​=One(0)∣∣C7​= C8
f) F B 8 = ( F B 7 ∣ ∣ F 7 ) ∼ 128 = FB_8=(FB_7||F_7) sim 128= FB8​=(FB7​∣∣F7​)∼128= (06070809 0A0B0C0D 0E0FBC98 B69C0B3AC8) ∼ sim ∼ 128 = = = 0708090A 0B0C0D0E 0FBC98B6 9C0B3AC8


i = 8 i=8 i=8时:
a) X 8 = 128 ∼ F B 8 = X_8=128 sim FB_8= X8​=128∼FB8​= 0708090A 0B0C0D0E 0FBC98B6 9C0B3AC8
b) Y 8 = E k ( X 8 ) = Y_8=E_k(X_8)= Y8​=Ek​(X8​)= EDDCA0DE 36FF1E63 55D0D67D A3B9C723
c) Z 8 = 8 ∼ Y 8 = Z_8=8 sim Y_8= Z8​=8∼Y8​= ED
d) C 8 = P 8 ⊕ Z 8 = C_8=P_8 oplus Z_8= C8​=P8​⊕Z8​= (96) ⊕ oplus ⊕ (ED) = = = 7B


7.4 CFB的解密方式描述

设置反馈缓存 F B FB FB的初始向量: F B 1 = I V FB_1=IV FB1​=IV。
解密运算按照如下六个步骤进行:
a)生成密码输入变量: X i = n ∼ F B i X_i=n sim FB_i Xi​=n∼FBi​;
b)使用分组密码: Y i = E k ( X i ) Y_i=E_k(X_i) Yi​=Ek​(Xi​);
c)选择左侧的 j j j比特: Z i = j ∼ Y i Z_i=j sim Y_i Zi​=j∼Yi​;
d)生成明文分组: P i = C i ⊕ Z i P_i=C_i oplus Z_i Pi​=Ci​⊕Zi​;
e)生成反馈变量: F i = O n e ( k − j ) ∣ ∣ C i F_i=One(k-j)||C_i Fi​=One(k−j)∣∣Ci​;
f)更新反馈缓存: F B i + 1 = ( F B i ∣ ∣ F i ) ∼ r FB_{i+1}=(FB_i||F_i) sim r FBi+1​=(FBi​∣∣Fi​)∼r。
对 i = 1 , 2 , . . . , q i=1,2,...,q i=1,2,...,q,重复上述步骤,最后一个循环结束于d)。此过程如下图所示。

注:建议使用 j j j和 k k k的值相等的CFB模式。按照这种建议 ( j = k ) (j=k) (j=k),加密操作和解密操作的e)可以写成 F i = C i ( j = k ) F_i=C_i(j=k) Fi​=Ci​(j=k)。

7.5 CFB的解密方式示例

本示例使用的分组密码是GB/T 32907——2016中规定的SM4算法。所有变量采用“左高右低”的方式标记,即变量最左侧为其最高位。
此例所选的参数为: j = k = 8 j=k=8 j=k=8且 r = n r=n r=n。 k k k比特反馈以斜体形式给出。
密钥密钥为(十六进制):2B7E1516 28AED2A6 ABF71588 09CF4F3C。
初始向量为(十六进制):00010203 04050607 08090A0B 0C0D0E0F。
密文是(十六进制):BC 98 B6 9C 0B 3A C8 7B。


i = 1 i=1 i=1时:
F B 1 = I V = FB_1=IV= FB1​=IV= 00010203 04050607 08090A0B 0C0D0E0F
a) X 1 = 128 ∼ F B 1 = X_1=128 sim FB_1= X1​=128∼FB1​= 00010203 04050607 08090A0B 0C0D0E0F
b) Y 1 = E k ( X 1 ) = Y_1=E_k(X_1)= Y1​=Ek​(X1​)= D7B0B394 034794B0 DF20D63A 27C5496C
c) Z 1 = 8 ∼ Y 1 = Z_1=8 sim Y_1= Z1​=8∼Y1​= D7
d) P 1 = C 1 ⊕ Z 1 = P_1=C_1 oplus Z_1= P1​=C1​⊕Z1​= (BC) ⊕ oplus ⊕ (D7) = = = 6B
e) F 1 = O n e ( 0 ) ∣ ∣ C 1 = F_1=One(0)||C_1= F1​=One(0)∣∣C1​= BC
f) F B 2 = ( F B 1 ∣ ∣ F 1 ) ∼ 128 = FB_2=(FB_1||F_1) sim 128= FB2​=(FB1​∣∣F1​)∼128= (00010203 04050607 08090A0B 0C0D0E0FBC) ∼ sim ∼ 128 = = = 01020304 05060708 090A0B0C 0D0E0FBC


i = 2 i=2 i=2时:
a) X 2 = 128 ∼ F B 2 = X_2=128 sim FB_2= X2​=128∼FB2​= 01020304 05060708 090A0B0C 0D0E0FBC
b) Y 2 = E k ( X 2 ) = Y_2=E_k(X_2)= Y2​=Ek​(X2​)= 590B8185 E6B10E0D 71838FDC D0706FF5
c) Z 2 = 8 ∼ Y 2 = Z_2=8 sim Y_2= Z2​=8∼Y2​= 59
d) P 2 = C 2 ⊕ Z 2 = P_2=C_2 oplus Z_2= P2​=C2​⊕Z2​= (98) ⊕ oplus ⊕ (59) = = = C1
e) F 2 = O n e ( 0 ) ∣ ∣ C 2 = F_2=One(0)||C_2= F2​=One(0)∣∣C2​= 98
f) F B 3 = ( F B 2 ∣ ∣ F 2 ) ∼ 128 = FB_3=(FB_2||F_2) sim 128= FB3​=(FB2​∣∣F2​)∼128= (01020304 05060708 090A0B0C 0D0E0FBC98) ∼ sim ∼ 128 = = = 02030405 06070809 0A0B0C0D 0E0FBC98


i = 3 i=3 i=3时:
a) X 3 = 128 ∼ F B 3 = X_3=128 sim FB_3= X3​=128∼FB3​= 02030405 06070809 0A0B0C0D 0E0FBC98
b) Y 3 = E k ( X 3 ) = Y_3=E_k(X_3)= Y3​=Ek​(X3​)= 08DB5E72 4D537170 C6C53D22 CF9C2AAE
c) Z 3 = 8 ∼ Y 3 = Z_3=8 sim Y_3= Z3​=8∼Y3​= 08
d) P 3 = C 3 ⊕ Z 3 = P_3=C_3 oplus Z_3= P3​=C3​⊕Z3​= (B6) ⊕ oplus ⊕ (08) = = = BE
e) F 3 = O n e ( 0 ) ∣ ∣ C 3 = F_3=One(0)||C_3= F3​=One(0)∣∣C3​= B6
f) F B 4 = ( F B 3 ∣ ∣ F 3 ) ∼ 128 = FB_4=(FB_3||F_3) sim 128= FB4​=(FB3​∣∣F3​)∼128= (02030405 06070809 0A0B0C0D 0E0FBC98B6) ∼ sim ∼ 128 = = = 03040506 0708090A 0B0C0D0E 0FBC98B6


i = 4 i=4 i=4时:
a) X 4 = 128 ∼ F B 4 = X_4=128 sim FB_4= X4​=128∼FB4​= 03040506 0708090A 0B0C0D0E 0FBC98B6
b) Y 4 = E k ( X 4 ) = Y_4=E_k(X_4)= Y4​=Ek​(X4​)= 7E5370A2 65433064 1081E3FE B85AC871
c) Z 4 = 8 ∼ Y 4 = Z_4=8 sim Y_4= Z4​=8∼Y4​= 7E
d) P 4 = C 4 ⊕ Z 4 = P_4=C_4 oplus Z_4= P4​=C4​⊕Z4​= (9C) ⊕ oplus ⊕ (7E) = = = E2
e) F 4 = O n e ( 0 ) ∣ ∣ C 4 = F_4=One(0)||C_4= F4​=One(0)∣∣C4​= 9C
f) F B 5 = ( F B 4 ∣ ∣ F 4 ) ∼ 128 = FB_5=(FB_4||F_4) sim 128= FB5​=(FB4​∣∣F4​)∼128= (03040506 0708090A 0B0C0D0E 0FBC98B69C) ∼ sim ∼ 128 = = = 04050607 08090A0B 0C0D0E0F BC98B69C


i = 5 i=5 i=5时:
a) X 5 = 128 ∼ F B 5 = X_5=128 sim FB_5= X5​=128∼FB5​= 04050607 08090A0B 0C0D0E0F BC98B69C
b) Y 5 = E k ( X 5 ) = Y_5=E_k(X_5)= Y5​=Ek​(X5​)= 25F88D7B A32C5A53 05E4F141 B21BBFC6
c) Z 5 = 8 ∼ Y 5 = Z_5=8 sim Y_5= Z5​=8∼Y5​= 25
d) P 5 = C 5 ⊕ Z 5 = P_5=C_5 oplus Z_5= P5​=C5​⊕Z5​= (0B) ⊕ oplus ⊕ (25) = = = 2E
e) F 5 = O n e ( 0 ) ∣ ∣ C 5 = F_5=One(0)||C_5= F5​=One(0)∣∣C5​= 0B
f) F B 6 = ( F B 5 ∣ ∣ F 5 ) ∼ 128 = FB_6=(FB_5||F_5) sim 128= FB6​=(FB5​∣∣F5​)∼128= (04050607 08090A0B 0C0D0E0F BC98B69C0B) ∼ sim ∼ 128 = = = 05060708 090A0B0C 0D0E0FBC 98B69C0B


i = 6 i=6 i=6时:
a) X 6 = 128 ∼ F B 6 = X_6=128 sim FB_6= X6​=128∼FB6​= 05060708 090A0B0C 0D0E0FBC 98B69C0B
b) Y 6 = E k ( X 6 ) = Y_6=E_k(X_6)= Y6​=Ek​(X6​)= 7A3705B7 023A0A3B 5B628CA0 DA6D6EE2
c) Z 6 = 8 ∼ Y 6 = Z_6=8 sim Y_6= Z6​=8∼Y6​= 7A
d) P 6 = C 6 ⊕ Z 6 = P_6=C_6 oplus Z_6= P6​=C6​⊕Z6​= (3A) ⊕ oplus ⊕ (7A) = = = 40
e) F 6 = O n e ( 0 ) ∣ ∣ C 6 = F_6=One(0)||C_6= F6​=One(0)∣∣C6​= 3A
f) F B 7 = ( F B 6 ∣ ∣ F 6 ) ∼ 128 = FB_7=(FB_6||F_6) sim 128= FB7​=(FB6​∣∣F6​)∼128= (05060708 090A0B0C 0D0E0FBC 98B69C0B3A) ∼ sim ∼ 128 = = = 06070809 0A0B0C0D 0E0FBC98 B69C0B3A


i = 7 i=7 i=7时:
a) X 7 = 128 ∼ F B 7 = X_7=128 sim FB_7= X7​=128∼FB7​= 06070809 0A0B0C0D 0E0FBC98 B69C0B3A
b) Y 7 = E k ( X 7 ) = Y_7=E_k(X_7)= Y7​=Ek​(X7​)= 572474E1 96F3C58B 6E8F8BE6 B1712EBE
c) Z 7 = 8 ∼ Y 7 = Z_7=8 sim Y_7= Z7​=8∼Y7​= 57
d) P 7 = C 7 ⊕ Z 7 = P_7=C_7 oplus Z_7= P7​=C7​⊕Z7​= (C8) ⊕ oplus ⊕ (57) = = = 9F
e) F 7 = O n e ( 0 ) ∣ ∣ C 7 = F_7=One(0)||C_7= F7​=One(0)∣∣C7​= C8
f) F B 8 = ( F B 7 ∣ ∣ F 7 ) ∼ 128 = FB_8=(FB_7||F_7) sim 128= FB8​=(FB7​∣∣F7​)∼128= (06070809 0A0B0C0D 0E0FBC98 B69C0B3AC8) ∼ sim ∼ 128 = = = 0708090A 0B0C0D0E 0FBC98B6 9C0B3AC8


i = 8 i=8 i=8时:
a) X 8 = 128 ∼ F B 8 = X_8=128 sim FB_8= X8​=128∼FB8​= 0708090A 0B0C0D0E 0FBC98B6 9C0B3AC8
b) Y 8 = E k ( X 8 ) = Y_8=E_k(X_8)= Y8​=Ek​(X8​)= EDDCA0DE 36FF1E63 55D0D67D A3B9C723
c) Z 8 = 8 ∼ Y 8 = Z_8=8 sim Y_8= Z8​=8∼Y8​= ED
d) P 8 = C 8 ⊕ Z 8 = P_8=C_8 oplus Z_8= P8​=C8​⊕Z8​= (7B) ⊕ oplus ⊕ (ED) = = = 96


7.6 密文反馈工作模式的性质 7.6.1 场景

只要使用同样的密钥和初始向量对相同的明文进行加密,CFB工作模式将生成相同的密文。介意这种特性的用户需要采用某种方法来改变起始明文分组、密钥或初始向量。一种可能的办法是将一个唯一的标识符(例如一个递增计数器)加到每个CFB消息的开始处。在对大小不能增加的记录进行加密时可采用另一种方法,它使用诸如初始向量的某个值,这个值能从记录中计算出来且不同知道其内容(例如它的按随机访问存储方式的地址)。

7.6.2 性质

CFB模式的性质有:
a)链接操作使得密文分组依赖于当前的和除确定数目以外的所有以前的明文分组,该数目取决于 r 、 k r、k r、k和 j j j的选择。因此对 j j j比特密文分组的重新排序不会导致对相应的 j j j比特明文分组的重新排序;
b)加解密操作方需要约定一致的参数 r 、 k r、k r、k和 j j j,参数的取值可公开;
c)使用不同的 I V IV IV值从而防止同一明文加密成同一密文;
d)CFB模式的加密和解密过程都使用分组密码的加密操作;
e)CFB模式的强度依赖于 k k k的大小( j = k j=k j=k时最大)以及 j 、 k 、 n j、k、n j、k、n和 r r r的相对大小;
      注: j < k j f)对于每个明文,选择一个较小的 j j j值将需要更多次的分组密码操作,从而引起更大的处理开销;
g)选择 r ≥ n + k r ge n+k r≥n+k使得能对分组密码进行流水线式连续操作。

7.6.3 填充明文

只有长度为 j j j比特倍数的明文才能被加密。其他长度的明文需要填充至 j j j比特的整数倍。但是,经常选择 j j j的大小使得明文无需进行填充,例如对于明文的最后部分可以修改 j j j。

7.6.4 差错扩散

CFB模式中,任一 j j j比特密文的差错都将影响随后密文的解密,直到出错的比特移出CFB反馈缓存为止。第 j j j个密文分组中的差错对生成的明文有下列影响:第 i i i个明文分组与第 i i i个密文分组有相同的差错模式。在所有未正确接收的比特被移除反馈缓存之前,随后的明文分组的每一比特出错的概率为50%。

7.6.5 同步

如果加密和解密之间的分组边界丢失了(例如由于一个比特的滑动),则在 j j j比特分组重新建立的 r r r比特之后,密码同步将被重新建立。如果丢失 j j j比特的倍数,则在 r r r比特之后将重新建立同步。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/993030.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号