GB/T 17964-2021 信息安全技术 分组密码算法的工作模式.pdf
- 文档部分内容预览:
6.2CBC的加密方式描述
对第一个明文分组进行加密:C,=E(P,?IV)。
对第一个明文分组进行加密:C,=Ek(P螺纹标准,?IV) 随后:C=Ex(PC;)i=2,3,,q。 此过程如图3所示。初始向量IV用于生成第一个密文输出。之后的加密过程中,每个 与前一个密文分组进行异或运算后再加密。
对第一个明文分组进行加密:C1=Ek(P1④IV) 随后C;=E(P;?C;)i=2,3,",q。 此过程如图3所示。初始向量IV用于生成第一个密文输出。之后的加密过程中,每个明文分 一个密文分组进行异或运算后再加密。
6.3CBC的解密方式描述
注2:如果明文长度不满足分组长度的整数倍,则需要填充明文,见A.2.3,常见的填充方法见附录C
GB/T179642021
Z.2CFB的加密方式描困
设置反馈缓存FB的初始向量:FB,=IV。 加密运算按照如下六个步骤进行: a 生成密码输人变量:X:=n~FB;; b) 使用分组密码:Y=Ek(X,); 选择左侧的j比特:Z,=j~Y:; d 生成密文分组:C;=P④Z:; e) 生成反馈变量:F,=One(k一j)IIC;; f 更新反馈缓存:FB;+1=(FB,IIF,)~r。 对i=1,2,,q,重复上述步骤,最后一个循环结束于d)。此过程如图5所示。分组密码输出变量 Y的左侧i比特用来加密明文分组,Y的其他比特被舍弃
密文反馈工作模式加密算
生成新的反馈缓存FB,+1的方法是,把长度为k一j的全“1”比特串填充到密文分组C:的左侧,得
GB/T 179642021
到尺比特反馈变量F:;然后舍弃当前反馈缓存FB,左侧的尺比特,并将F:填充到其右侧。此后, FB;+1左侧的n比特将用于加密下一个输人X
7.3CFB的解密方式描述
设置反馈缓存FB的初始向量:FB,=IV 解密运算按照如下六个步骤进行: a)生成密码输人变量:X,=nFB:; b 使用分组密码:Y,=Ek(X,); C 选择左侧的j比特:Z:j~Y; d)生成明文分组:P:=C④Z:; e) 生成反馈变量:F=Ome(k一j)IIC; f)更新反馈缓存:FB,+1=(FB1IF)~r 对i=1,2,,9,重复上述步骤,最后一个循环结束于d)。此过程如图6所示
设置反馈缓存FB的初始向量:FB:=IV 解密运算按照如下六个步骤进行: a)生成密码输人变量:X,=n~FB:; 使用分组密码:Y=Ek(X); 选择左侧的j比特:Z:=j~Y; d)生成明文分组:P=C:?Z:; e)生成反馈变量:F:=Ome(k一j)lIC:; f)更新反馈缓存:FB;+1=(FB:IIF)~r 对i=1,2,…,重复上述步骤,最后一个循理
图6密文反馈工作模式解密算法
注1:建议使用j和k的值相等的CFB模式。按照这种建议(j=k),加密操作和解密操作的e)可以写成F: (j=k)。 注2:CFB模式的工作性质见A.3,CFB模式的示例见B.4, 注3:如果明文长度不满足分组长度的整数倍,则可能需要填充明文,见A.3.3,常见的填充方法见附录C。
OFB工作模式采用以下变量。 a)输入变量: 1)q个明文分组P1,P2,,P。所组成的序列,每个分组都为j比特; 2)密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定; 3)初始向量IV,需要加解密操作方约定一致,长度为n比特。 b中间变量: 1)q个密码输人变量X,,X?,*,X。所组成的序列,每个变量都为n比特 2)Q个密码输出变量Y1,Y2,,Y,所组成的序列,每个变量都为n比特; 3)9个临时变量21,22,,2。所组成的序列,每个变量都为j比特
输出变量: 9个密文分组Ci,C2,",C。所组成的序列,每个分组都为i比特
8.2OFB的加密方式描述
GB/T 179642021
设置密码输人变量X的初始向量:X,=IV。 加密运算按照如下四个步骤进行: a)使用分组密码:Y,=Ek(X,); b)选择左侧的i比特:Z,=j~Y:; c)生成密文分组:C,=P,Z; d)反馈操作:X+1=Y: 对i=1,2,,9,重复上述步骤,最后一个循环结束于c)。此过程如图7所示。每次使用分组密码 所生成的结果Y:被用来反馈并成为X的下一个值,即Xi+1。 Y:的左侧j比特用来加密明文分组
8.3OFB的解密方式描迷
图7输出反馈工作模式加密算法
设置密码输人变量X的初始向量:X,三IV 解密运算按照如下四个步骤进行: a)使用分组密码:Y:=Ek(X:); b)选择左侧的i比特:Z,=j~Y:; c)生成明文分组:P,=C,④Z; d)反馈操作:X;+1=Y。 对i=1,2,,q,重复上述步骤,最后一个循环结束于c)。此过程如图8所示。解密过程与加密过 程仅在步骤c)有不同,相应的变量值X,和Y,是相同的
GB/T 179642021
图8输出反馈工作模式解密算法
注2:如果明文长度不满足分组长度的整数倍,则可能需要填充明文,见A.4.3,常见的填充方法见附录(
.2CTR的加密方式描
GB/T179642021
9.3CTR的解密方式描述
CTR模式的工作性质见A.5,CTR模式的示例见B.6
图9计数器工作模式加密算法
图10计数器工作模式解密算法
GB/T 179642021
10.2XTS的加密方式描述
10.2.1明文长度满足整数倍分组长度
10.2.2明文长度不满足整数倍分组长虑
GB/T179642021
10.3XTS的解密方式描述
10.3.1密文长度满足整数倍分组长度
10.3.2密文长度不满足整数倍分组长度
GB/T 179642021
注:XTS模式的工作性质见A.6.XTS模式的示例见B.7
11带泛杂凑函数的计数器工作模式
11带泛杂凑函数的计数器工作模式
11. 1 变量定义
GB/T179642021
根据4.1中关于有限域乘法的定义,泛杂凑函数H使用的有限域乘法运算按照“左低右高”的 方式处理变量,即变量最左侧为其最低位;采用的CTR工作模式按照“左高右低”的方式处理变量,即 变量最左侧为其最高位
11.2HCTR的加密方式描述
1.3HCTR的解密方式
图13带泛杂凑函数的计数器工作模式加密算法
GB/T 179642021
图14带泛杂凑函数的计数器工作模式解密算
注1:HCTR模式的工作性质见A.7,HTCR模式的示例见B.8。 注2:泛杂凑函数是一类使用密钥的高效率压缩函数,见参考文献[1]。在有限域GF(212")上,③的优先级高于④
BC工作模式采用以下变量。 a)输人变量: 1)q个明文分组P1,P2,*,P。所组成的序列,每个分组都为n比特; 2)密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定 3)初始向量IV,需要加解密操作方约定一致,长度为n比特。 b 中间变量: q个反馈变量F1,F2,,F。所组成的序列,每个变量都为n比特 C 输出变量: g个密文分组 C,,C,,C。所组成的序列,每个分组都为n比特
12.2BC的加密方式描迷
设置反馈变量初始向量:F,=IV。 加密运算按照如下两个步骤进行: a)生成密文分组:C,=Ek(P,④F,); b)生成反馈变量:F+1=F,④Ci。 对i=1,2,,q,重复上述步骤,最后一个循环结束于a)。此过程如图15所示。初始向量IV用 于生成第一个密文输出。之后的加密过程中,每个密文与当时反馈变量进行异或运算,生成下一个反馈 变量。
2.3BC的解密方式描迷
GB/T 179642021
设置反馈变量初始向量:F,三IV 解密运算按照如下两个步骤进行: a)生成明文分组:P,=F,?Dk(C,); b)生成反馈变量:F+1=F?C:。 对i=1,2,,9,重复上述步骤,最后一个循环结束于a)。此过程如图16所示。
注1:BC模式的工作性质见A.8,BC模式的示例见B.9。 注2:如果明文长度不满足分组长度的整数倍,则需要填充明文,见A.8.3,常见的填充方法见附录C
13带非线性函数的输出反馈工作模式
OFBNLF工作模式采用以下变量。 a)输人变量: 1)Q个明文分组P1,P2,*,P。所组成的序列,每个分组都为n比特; 2)密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定 3)初始向量IV.需要加解密操作方约定一致.长度为n比特。
GB/T 179642021
b)中间变量: q十1个密钥变量K。K,,",K,所组成的序列,每个变量都为n比特 C) 输出变量: g个密文分组C,,C,…,C。所组成的序列,每个分组都为n比特
13.2OFBNLF的加密方式描述
13.3OFBNLF的解密方式描述
图17带非线性函数的输出反馈工作模式加密算法
图18带非线性函数的输出反馈工作模式解密算法
注1:OFBNLF模式的工作性质见A.9,OFBNLF模式的示例见B.10。 注2:如果明文长度不满足分组长度的整数倍,则需要填充明文,见A.9.3,常见的填充方法见附录C
注1:OFBNLF模式的工作性质见A.9,OFBNLF模式的示例见B.10。 注2:如果明文长度不满足分组长度的整数倍,则需要填充明文,见A.9.3,常见的填充方法见附录C
A.1电码本工作模式的性质
GB/T179642021
在各计算机终端之间,或者多人共用一个计算机终端所交换的二进制数据可能会有重复或者共同 使用的序列。在ECB工作模式中,相同的明文分组(使用相同的密钥)生成相同的密文分组,
ECB工作模式的性质有: a)对某一个分组的加密或解密可独立于其他分组进行; b) 对密文分组的重排将导致相应明文分组的重排; C 相同的明文分组(使用相同的密钥)总是生成相同的密文分组,这使得它容易遭受“字典攻击”, 这种字典是由对应的明文和密文分组构成的。 对于超过一个分组长度的明文一般建议不使用ECB工作模式。对于可接受重复性(例如,输人分 组绝不重复),必须单独访问或随机访问各个分组的特殊使用情况,ECB的用法可以在未来的标准中 规定。
只有长度为分组长度的整数倍的明文才能被加密或解密。其他长度的明文需要被填充至分组 整数倍。
在ECB工作模式中,如果一个密文分组中存在一个或多个比特的差错,则只会影响该密文分 密;该解密将导致得到的明文分组中每个明文比特以50%的概率出现差错
如果加感或: 正确的分 之前,加密与解密之间将先 作的结果都不正确,
只要使用相同的密钥和初始向量对相同的明文进行加密,CBC工作模式将生成相同的密文。介意 这种性质的用户需要采用相应方法来改变明文的起始分组、密钥或初始向量。一种可能的方法是将一 唯一的标识符(例如一个递增计数器)加到每个CBC消息的起始位置。在对长度不能增加的明文进 行加密时可使用某种方法从明文中计算出一个值,例如明文的随机访问存储方式的地址
CBC工作模式的性质有:
GB/T 179642021
此过程如图A.2所示
拉伸强度测试标准GB/T179642021
在CBC工作模式中,一个密文分组中的一个或多个比特差错会影响两个分组(即发生差错的分组 和随后的分组)的解密。第个密文分组中的差错对于所生成的明文有以下影响:第个明文分组每比 特以50%的概率出错,第i十1个明文分组的差错模式与第i个密文分组相同。如果在一个不到n比特 的分组中出现差错,差错扩散取决于所选择的处理方法。若使用A.2.3第一个方法,在被解密的较短的 分组中,与明文出错比特直接对应的那些比特也会出错
如果解密或解密之间的分组边界去失了 个比特的滑动),则在重新建立正确的分 之前,加密与解密之间将失去同步。如果分组边界丢失,所有解密操作的结果都是不正确的
A.3密文反馈工作模式的性质
只要使用同样的密钥和初始向量对相同的明文进行加密,CFB工作模式将生成相同的密文。介意 这种特性的用户需要采用某种办法来改变起始明文分组、密钥或初始向量。一种可能的办法是将一个 隹一的标识符(例如一个递增计数器)加到每个CFB消息的开始处。在对大小不能增加的记录进行加 密时可采用另一种办法,它便用诸如初始向量的某个值,这个值能从记录中计算出来且不用知道其内容 (例如它的按随机访问存储方式的地址)
GB/T 179642021
j、、n和r的相对天小; 注:j<将导致输入分组的值重复出现的概率增加。这种重复出现将会泄露明文比特之间的线性关系 巧 对于每个明文施工组织设计标准规范范本,选择一个较小的值将需要更多次的分组密码操作,从而引起更大的处理 开销; g 选择r≥n十k使得能对分组密码进行流水线式连续操作; h)CFB模式的安全性证明见参考文献[3]
只有长度为,比特倍数的明文才能被加密。其他长度的明文需要填充至比特的整数倍。但是, 经常选择i的大小使得明文无需进行填充,例如对于明文的最后部分可以修改i。
CFB模式中,任一i比特密文的差错都将影响随后密文的解密,直到出错的比特移出CFB反馈缓 存为止。第i个密文分组中的差错对生成的明文有下列影响:第i个明文分组与第讠个密文分组有相 同的差错模式。在所有未正确接收的比特被移出反馈缓存之前,随后的明文分组的每一比特出错的概 率为50%,
....- 相关专题: 信息安全