资讯详情

【密码学】分组密码算法的工作模式(6)——计数器工作模式

9 计数器工作模式

9.1 变量定义

CTR工作模式采用以下变量。 a)输入变量: 1) q q q个明文分组 P 1 , P 2 , . . . , P q P_1,P_2,...,P_q P1,P2,...,Pq组成的序列(包括) P 1 , P 2 , . . . , P q ? 1 P_1,P_2,...,P_{q-1} P1,P2,...,Pq−1​都为 n n n比特, P q P_q Pq​为 d d d比特且 0 < d ≤ n 0 < d \le n 0<d≤n);       2)密钥 K K K,需要加解密操作方约定一致,长度由分组密码算法 E E E决定;       3) q q q个计数序列 T 1 , T 2 , . . . , T q T_1,T_2,...,T_q T1​,T2​,...,Tq​,需要加解密操作方约定一致,每个都为 n n n比特。 b)中间变量:       1) q q q个密码输出变量 Y 1 , Y 2 , . . . , Y q Y_1,Y_2,...,Y_q Y1​,Y2​,...,Yq​所组成的序列,每个变量都为 n n n比特;       2)临时变量 Z Z Z,长度为 d d d比特。 c)输出变量:        q q q个密文分组 C 1 , C 2 , . . . , C q C_1,C_2,...,C_q C1​,C2​,...,Cq​所组成的序列(其中 C 1 , C 2 , . . . , C q − 1 C_1,C_2,...,C_{q-1} C1​,C2​,...,Cq−1​都为 n n n比特, C q C_q Cq​为 d d d比特且 0 < d ≤ n 0 < d \le n 0<d≤n)。

9.2 CTR的加密方式描述

加密运算按照四个步骤进行: a)加密计数序列: Y i = E k ( T i ) i = 1 , 2 , . . . , q Y_i=E_k(T_i) \quad i=1,2,...,q Yi​=Ek​(Ti​)i=1,2,...,q; b)加密前 q − 1 q-1 q−1个明文分组: C i = P i ⊕ Y i i = 1 , 2 , . . . , q − 1 C_i=P_i \oplus Y_i \quad i=1,2,...,q-1 Ci​=Pi​⊕Yi​i=1,2,...,q−1; c)选择 Y q Y_q Yq​左侧的 d d d比特: Z = d ∼ Y q Z=d \sim Y_q Z=d∼Yq​; d)加密最后一个明文分组: C q = P q ⊕ Z C_q=P_q \oplus Z Cq​=Pq​⊕Z。 此过程如下图所示。 在这里插入图片描述

9.3 CTR的加密方式示例

本示例使用的分组密码是GB/T 32907——2016中规定的SM4算法。所有变量采用“左高右低”的方式标记,即变量最左侧为其最高位。 此例所选的初始计数器为(十六进制)F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFEFF。 密钥密钥为(十六进制):2B7E1516 28AED2A6 ABF71588 09CF4F3C。 明文是(十六进制):6BC1BEE2 2E409F96 E93D7E11 7393172A                                     AE2D8A57 1E03AC9C 9EB76FAC 45AF8E51                                     30C81C46 A35CE411 E5FBC119 1A0A52EF                                     F69F2445 DF4F9B17 AD2B417B E66C3710。 i = 1 i=1 i=1时: T 1 = T_1= T1​= F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFEFF Y 1 = E k ( T 1 ) = Y_1=E_k(T_1)= Y1​=Ek​(T1​)= 7F6FF490 973A0C58 FB2BB2C8 EB7066EB C 1 = P 1 ⊕ Y 1 = C_1=P_1 \oplus Y_1= C1​=P1​⊕Y1​= (6BC1BEE2 2E409F96 E93D7E11 7393172A) ⊕ \oplus ⊕ (7F6FF490 973A0C58 FB2BB2C8 EB7066EB) = = = 14AE4A72 B97A93CE 1216CCD9 98E371C1 i = 2 i=2 i=2时: T 2 = T 1 + 1 = T_2=T_1+1= T2​=T1​+1= F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFF00 Y 2 = E k ( T 2 ) = Y_2=E_k(T_2)= Y2​=Ek​(T2​)= CEDA65DC 7D4711F1 3F2E4AA9 A053AFCA C 2 = P 2 ⊕ Y 2 = C_2=P_2 \oplus Y_2= C2​=P2​⊕Y2​= (AE2D8A57 1E03AC9C 9EB76FAC 45AF8E51) ⊕ \oplus ⊕ (CEDA65DC 7D4711F1 3F2E4AA9 A053AFCA) = = = 60F7EF8B 6344BD6D A1992505 E5FC219B i = 3 i=3 i=3时: T 3 = T 2 + 1 = T_3=T_2+1= T3​=T2​+1= F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFF01 Y 3 = E k ( T 3 ) = Y_3=E_k(T_3)= Y3​=Ek​(T3​)= 3B384BBE CF019101 D9F48748 8675E008 C 3 = P 3 ⊕ Y 3 = C_3=P_3 \oplus Y_3= C3​=P3​⊕Y3​= (30C81C46 A35CE411 E5FBC119 1A0A52EF) ⊕ \oplus ⊕ (3B384BBE CF019101 D9F48748 8675E008) = = = 0BF057F8 6C5D7510 3C0F4651 9C7FB2E7 i = 4 i=4 i=4时: T 4 = T 3 + 1 = T_4=T_3+1= T4​= 标签: a93z73m9bm9n传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台