GB/T17964-2021

信息安全技术分组密码算法的工作模式

Informationsecuritytechnology—Modesofoperationforablockcipher

本文分享国家标准信息安全技术分组密码算法的工作模式的全文阅读和高清PDF的下载,信息安全技术分组密码算法的工作模式的编号:GB/T17964-2021。信息安全技术分组密码算法的工作模式共有40页,发布于2022-05-01
  • 中国标准分类号(CCS)L80
  • 国际标准分类号(ICS)35.030
  • 实施日期2022-05-01
  • 文件格式PDF
  • 文本页数40页
  • 文件大小2.43M

以图片形式预览信息安全技术分组密码算法的工作模式

信息安全技术分组密码算法的工作模式


国家标准 GB/T17964一2021 代替GB/T17964一2008 信息安全技术 分组密码算法的工作模式 Informationseeuritytechnology一Modesofoperationforabhloekeipher 2021-10-11发布 2022-05-01实施 国家市场监督管理总局 发布 国家标涯花警理委员会国家标准
GB/17964一2021 目 次 前言 范围 规范性引用文件 3 术语和定义 符号和缩略语 4.1符号 4.2缩略语 电码本工作模式 5.1变量定义 5.2ECB的加密方式描述 5.3ECB的解密方式描述 密文分组链接工作模式 6.1变量定义 6.2CBC的加密方式描述 6.3CBC的解密方式描述 密文反馈工作模式 7.1变量定义 7.2CFB的加密方式描述 7.3CFB的解密方式描述 输出反馈工作模式 8 8.1变量定义 8.2O)FB的加密方式描述 8.3oFB的解密方式描述 计数器工作模式 l0 9.1变量定义 10 9.2CTR的加密方式描述 1l 9.3CTR的解密方式描述 11 10带密文挪用的XEX可调分组密码工作模式 0.1变量定义 I 10.2XTS的加密方式描述 11 0.2.1明文长度满足整数倍分组长度 12 I2 0.2.2明文长度不满足整数倍分组长度 10.3XTs的解密方式描述 18 0.3.1密文长度满足整数倍分组长度 18 13 0.3.2密文长度不满足整数倍分组长度
GB/T17964一2021 1 14 带泛杂凑函数的计数器工作模式 1.1变量定义 14 1.2HCTR的加密方式描述 15 1.3HCTR的解密方式描述 15 16 12分组链接工作模式 12.1变量定义 16 12.2BC的加密方式描述 16 17 2.3BBC的解密方式描述 17 13带非线性函数的输出反馈工作模式 17 3.1变量定义 18 3.2OFBNLF的加密方式描述 18 3.3OFBNLF的解密方式描述 附录A(资料性) 工作模式的性质. 19 27 附录B资料性工作模式示例 附录c(资料性填充方法示例 35 参考文献 36
GB/17964一2021 前 言 本文件按照GB/T1.1一2020(标准化工作导则第1部分;标准化文件的结构和起草规则》的规定 起草 本文件代替GB/T17964一2008《信息安全技术分组密码算法的工作模式》,与GB/T17964 2008相比,除了结构调整和编辑性改动外,主要技术变化如下 删除了“分组密码”等常见术语,增加了“XEX结构”等多个术语(见第3章,2008年版的3.1) b 删除了“位阵列表达式”等多个定义(见2008年版的3.2); c 增加了bit(S,i)等多个符号(见4.1); d)增加了“HCTR”“XTs”等缩略语(见4.2); 增加了ECB工作模式加密算法和解密算法的示意图(见第5章) e f 删除了7.1和8.1,将相关参数定义增加到4.1符号中(见2008年版的第7章、第8章); 将第10章“分组链接(EBc)模式"调整到新增加的第12章,增加了“带密文挪用的xEX可调分 g 组密码工作模式”为第10章(见第10章,第12章,2008年版的第10章); h》将第11章“带非线性函数的输出反饿(oFBNLF)工作模式"调整到新增加的第13章,增加了 “带泛杂凑函数的计数器工作模式”为第11章(见第11章、第13章,2008年版的第11章) 更改了规范性附录A为资料性附录A(见附录A.2008年版的附录A); 更改了密文窃取的具体方法,增加了示意图,并将“密文窃取”更名为“密文挪用”(见附录A j 2008年版的附录A) k3 增加了xTs工作模式的性质和HcTR工作模式的性质(见附录A); I 更改了产生工作模式示例的分组密码为sM4算法(见附录B,2008年版的附录B) m增加了XTs工作模式的示例和HcTR工作模式的示例见附录B); n)增加了资料性附录c,列举了三种常见的填充方法,并给出了举例见附录c). 请注意本文件的某些内容可能涉及专利 本文件的发布机构不承担识别专利的责任 本文件由全国信息安全标准化技术委员会(SAc/Tc26o)提出并归口 本文件起草单位;成都卫士通信息产业股份有限公司科学院软件研究所、科学院数据与 通信保护研究教育中心,国家密码管理局商用密码检测中心、格尔软件股份有限公司、西安西电捷通无 线网络通信股份有限公司、上海信息安全工程技术研究中心 本文件主要起草人;张立廷、哇晗涂彬彬、李世敏、罗俊、王鹏、毛颖颖,郑强、张国强、徐明翼 本文件及其所代替文件的历次版本发布情况为: 2000年首次发布为GB/T17964一2000;2008年第一次修订 本次为第二次修订
GB/17964一2021 信息安全技术 分组密码算法的工作模式 范围 本文件描述了九种分组密码算法的工作模式,给出了参数和方法 本文件适用于指导分组密码算法在加解密数据时的使用 本文件描述的工作模式仅适用于保护数据的机密性,不适用于保护数据的完整性 规范性引用文件 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款 其中,注日期的引用文 件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于 本文件 GB/T250692010信息安全技术术语 GM/Z4001一2013密码术语 术语和定义 GB/T250692010和GMZ4001一2013界定的以及下列术语和定义适用于本文件 分组密码算法工作模式bhloekcipheroperationmode 分组密码算法的使用方式,主要包括电码本工作模式,密文分组链接工作模式,密文反馈工作模式、 输出反馈工作模式,计数器工作模式,带密文挪用的XEx可调分组密码工作模式,带泛杂凑函数的计 数器工作模式、分组链接工作模式、带非线性函数的输出反馈工作模式等 [来源:GM/Z4001一2013,2.26,有修改] 3.2 eectroniccodebook(CB)e 电码本工作模式 )operationmode 分组密码算法的一种工作模式,其特征是将明文分组直接作为算法的输人,对应的输出作为密文 分组 来源.GM/Z4001-2013,2.10] 3.3 密文分组链接工作模式cipherbhlekchatning(Cc)peratiom" m0de 分组密码算法的一种工作模式,其特征是将当前的明文分组与前一密文分组进行异或运算后再进 行加密得到当前的密文分组 [[来源GM/Z4001一2013,2.62] 3.4 )operationmode 密文反馈工作模式cipherfeedback(CFB) 用分组密码算法构造序列密码的一种工作模式 其特征是,使用分组算法当前输出的若干比特,与
GB/T17964一2021 明文逐比特异或得到密文,该密文同时更新算法下一时刻的输人序列 [来源(GM/Z4001一2013,2.61 3.5 输出反馈工作模式outputfeedback(oFB)operationmode 用分组密码算法构造序列密码的一种工作模式,其特征是,将算法当前时刻输出的若干比特与明文 逐比特异或得到密文,同时算法当前时刻的输出作为算法下一时刻的输人 [来源;GM/Z40012013,2.1087 3.6 计数器工作模式eounter(CIR)operationmode 用分组密码算法构造序列密码的一种工作模式 其特征是,使用计数器的值作为算法的输人序列 进行分组运算,将运算输出的若干比特与明文逐比特异或得到密文,然后对计数器作增量或者减量运算 作为算法下一时刻的输人序列 [来源:GM/Z4001一2013,2.37 3.7 XEX结构Xor-Encryption-Xor(XEX)eonstruetion 构造可调分组密码的一种结构,明文分组与掩码相异或后,使用分组密码算法加密,再将密文分组 与掩码相异或 3.8 带密文挪用的XEx可调分组密码工作模式XExtweakabhlebckcipherwitheiphert textstealing xTs)operationmode 分组密码算法的一种工作模式,利用xEX结构完成数据的加密和解密 3.9 带泛杂凑函数的计数器工作模式universalhashfunetionbasedCIR(HCIR)0 operationmode 分组密码算法的一种工作模式,是计数器模式的变体,它使用一个泛杂凑函数生成一个秘密掩码 作为计数器模式的初始向量 3.10 g(BcC)4 分组链接工作模式bloekchaining operatiomode 分组密码算法的一种工作模式,当前的明文分组与所有前面密文分组异或,再加密得到当前的密文 分组 3.11 带非线性函数的输出反馈工作模式outputfeelbackwithanomlineurfunetion(OFBNLF)operationm mode 分组密码算法的一种工作模式,是OFB和ECB的变体,它的密钥随着每一个分组而改变 3.12 密钥key 控制密码算法运算的关键信息或参数 [来源:GM/Z40012013,2.63] 3.13 初始向量initializationveetor IV 在密码变换中,为增加安全性或使密码设备同步而引人的用于数据变换的起始数据
GB/T17964一2021 3.14 计数器 c0unter 长度为n比特的比特序列,用于计数器模式 注:n是分组密码的分组长度 3.15 调柄tweak Tw 某些模式中使用的一个参数,以增加加密过程的变化量;当使用同一个密钥时,不同加密过程应采 用各不相同的调柄 3.16 填充padding 给一个数据串附加额外比特的操作 [来源:GB/T250692010,2.2.2.187] 3.17 反馈缓存feedbackbufrer;FB 用于为加密过程存储输人数据的变量 注:在启动点,FB的值为IV 符号和缩略语 4.1符号 下列符号适用于本文件 bit(S,i):比特串S左起第i个比特,以1为起始值 C:密文(比特串 DK;使用密钥K的分组密码E的解密运算 E;一个分组密码算法 使用密钥K的分组密码E的加密运算 EK F;第i个反馈变量 FB;第i个反馈缓存 H;一个泛杂凑丽函数 i;迭代值 j明文/密文分组的大小,l<<人 反馈变量的比特长度.1GB/T17964一2021 X;:分组密码的第,个输人变量 YY;分组密码的第i个输出变量 Zero(m:连续m个比特“0”构成的比特串 l:比特串的连接 Z>l:比特串Z向右移动一位,左侧补0 (i);数字i的二进制表示 A;比特串A的左截取,要求A的比特长度大于或等于,则jA是由A最左侧的个比特组 成的长度为比特的比特串 A~j;比特串A的右截取,要求A的比特长度大于或等于,则A是由A最右侧的个比特组 成的长度为比特的比特串 田:比特串的比特级逻辑异或运算,要求A、B是长度相等的比特申,则A田B表示A和B的比特 级逻辑异或所形成的比特串 ;有限域GF(2")上的乘法 当n=128时,本文件使用本原多项式1十a十a*十a'十al“定义GF 21a)上的乘法运算,其中a是GF(21s)上的本原元 a':GF(2la)上的本原元a的i次幕 注令U和V是两个128位的比特串,则128位的比特串w=UV可以如下计算,其中比特串U和V看作有限城 GF(21a)上的元素,选取的本原多项式为l+a+a 十a十al28 令W=Zero(128),Z=U a b)对于i=1,2,,128,执行以下两个步骤 1若bit(V,i)=1,则令w=WZ 若bhit(z,128)=0,则令Z=Z>l;否则令Z=(Z>>1)田(I1100001lZerm(120)). 2 4.2缩略语 下列缩略语适用于本文件 BC;分组链接(BlockChaining CBC密文分组链接(CipherBlockChaining) CFB;密文反馈(CipherFeedback CTR;计数器(Co ounter ECB;电码本(Ele ectronicCodebook FB:反馈缓存(FeedbackBufer HcTR;带泛杂凑函数的计数器(wiversalHashfuefionbasedlcTR) tFeedback OFB输出反馈(Output oFBNIF,带非线性函数的输出反做(outputFedlbackwithaNonlinearFunetion) XEX;先异或再加密再异或的结构(Xor-Eneryption-Xor) textSte XTS;带密文挪用的XEX可调分组密码(XEXTweakableblockeipherwithcipher healhn) 5 电码本工作模式 5.1变量定义 ECB工作模式采用以下变量 输人变量 a 1) q个明文分组P,P!,,尸,所组成的序列,每个分组都为"比特; 22 密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定
GB/T17964一2021 b)输出变量: 个密文分组C,Ca,,C,所组成的序列,每个分组都为n比特 g 5.2CB的加密方式描述 逐个加密明文分组:C,=E(P i=l,2,g 此过程如图1所示 图1电码本工作模式加密算法 5.3CB的解密方式描述 逐个解密密文分组;尸=DK(C,i=1,2,q 此过程如图2所示 图2电码本工作模式解密算法 注1ECB模式的工作性质见附录A的A.1,BCB模式的示例见附录B的B.2. 注2如果明文长度不满足分组长度的整数倍,则需要填充明文,见A.1.3,常见的填充方法见附录c 密文分组链接工作模式 6. 变量定义 CBC工作模式采用以下变量 输人变量 1 9个明文分组P,P!,,尸,所组成的序列,分组长度由分组算法E决定; 22 密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定; 33 初始向量V,需要加解密操作方约定一致,长度为n比特
GB/T17964一2021 b 输出变量: q个密文分组C,Ca,,C,所组成的序列,每个分组都为n比特 6.2CC的加密方式描述 对第一个明文分组进行加密:C=EkP田V) 随后;C,=EK(P田C-i=2,3,,q 此过程如图3所示 初始向量IV用于生成第一个密文输出 之后的加密过程中,每个明文分组 与前一个密文分组进行异或运算后再加密 P2 图3密文分组链接工作模式加密算法 6.3CC的解密方式描述 对第一个密文分组进行解密:P=Dx(C)V 随后;P=Dx(C)C- i=2,3,,q 此过程如图4所示 图4密文分组链接工作模式解密算法 注1;CC模式的工作性质见A.2,CIC模式的示例见B3 注2:如果明文长度不满足分组长度的整数倍,则需要填充明文,见A.2.3,常见的填充方法见附录c
GB/17964一2021 密文反馈工作模式 7.1变量定义 CFB工作模式采用以下变量 输人变量 个明文分组P,P,,P 所组成的序列.每个分组都为j比特 1) g 2)密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定 初始向量IV,需要加解密操作方约定一致,长度为r比特 3 b)中间变量: 1 q个密码输人变量X,Xa,,X,所组成的序列,每个变量都为n比特; 2) 9个密码输出变量Y,Ye,,Y 所组成的序列,每个变量都为n比特 9个临时变量Z 3 ,Z,Z,所组成的序列,每个变量都为比特; 4g-1个反馈变量Fi,F,,F,,所组成的序列,每个变量都为k比特 55) g个反馈缓存FB,FBg,FB所组成的序列,每个分组都为r比特 输出变量 个密文分组C,C,,C,所组成的序列,每个分组都为比特 7.2CFB的加密方式描述 设置反馈缓存FB的初始向量;FB=IV 加密运算按照如下六个步骤进行 生成密码输人变量;X=FB,; aa b 使用分组密码:Y,=EKX,); 选择左侧的比特;Z,=Y, c d 生成密文分组:C=P,Z; 生成反馈变量;F,=One(k一llc e D 更新反馈缓存:FB1=(FB,llF,)~r 对i=1,2,,q,重复上述步骤,最后一个循环结束于d) 此过程如图5所示 分组密码输出变量 的左侧比特用来加密明文分组,Y的其他比特被舍弃 B B一 B FB FB CP" 图5密文反债工作模式加密算法 生成新的反馈缓存FB+的方法是,把长度为k一的全“1”比特串填充到密文分组C,的左侧,得
GB/T17964一202 到人比特反馈变量F;然后舍弃当前反馈缓存FB,左侧的人比特,并将F,填充到其右侧 此后, FB左侧的n比特将用于加密下一个输人X 7.3CFB的解密方式描述 设置反馈缓存FB的初始向量:FB=IV 解密运算按照如下六个步骤进行 生成密码输人变量:X=n~FB.; 使用分组密码.Y,=Ek(x,)); b 选择左侧的比特;Z,=j~Y; c 生成明文分组:P,=C,田Z; d 生成反馈变量:F,=Oe(k一lC; e 更新反馈缓存:FB+1=(FBllF,)r 对i=1,2, ,,重复上述步骤,最后一个循环结束于d) 此过程如图6所示 FB FB,-1 F9 FB FB CG乃 图6密文反馈工作模式解密算法 注1,建议使用和人的值相等的CFB模式 按照这种建议(=),加密操作和解密操作的e)可以写成F=c; =k) 注2;CFB模式的工作性质见A.3,CFB模式的示例见B4 注3如果明文长度不满足分组长度的整数倍,则可能需要填充明文,见A.3.3,常见的填充方法见附录c. 输出反馈工作模式 8 8.1变量定义 OFB工作模式采用以下变量 输人变量 a 1) q个明文分组P,Pg,,P,所组成的序列,每个分组都为比特 2) 密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定; 3) 初始向量V,需要加解密操作方约定一致,长度为"比特 中间变量: b) 1 9个密码输人变量X1,Xg,,X,所组成的序列,每个变量都为"比特 2) 个密码输出变量Y1,Y,,Y所组成的序列,每个变量都为"比特; d 3 9个临时变量Z,Z,,Z,所组成的序列,每个变量都为比特
GB/T17964一2021 输出变量 9个密文分组C,C;,,C,所组成的序列,每个分组都为比特 8.2oFB的加密方式描述 设置密码输人变量X的初始向量:X1=IV 加密运算按照如下四个步骤进行 使用分组密码:Y,=EKX,); aa b 选择左侧的比特:Z=jY; c 生成密文分组:C=P田Z; d 反馈操作:X十1=Y 对i=1,2,,g,重复上述步骤,最后一个循环结束于e) 此过程如图7所示 每次使用分组密码 所生成的结果Y,被用来反馈并成为X的下一个值,即X+1 Y,的左侧比特用来加密明文分组 图7输出反馈工作模式加密算法 8.3oFB的解密方式描述 设置密码输人变量X的初始向量:X1=IV 解密运算按照如下四个步骤进行 使用分组密码:Y=EK(X,); a b 选择左侧的j比特;Z=jY c 生成明文分组:P=C,田Z; d)反馈操作;X+1=Y 对i=1,2,, ,q,重复上述步骤,最后一个循环结束于c) 此过程如图8所示 解密过程与加密过 程仅在步骤c)有不同,相应的变量值X,和Y,是相同的
GB/T17964一202 图8输出反馈工作模式解密算法 注1:oF模式的工作性质见A.4.OFB模式的示例见B5. 注2,如果明文长度不满足分组长度的整数倍,则可能需要填充明文,见A.A.3,常见的填充方法见附录c 计数器工作模式 9.1变量定义 CTR工作模式采用以下变量 输人变量 a 9个明文分组PPP,所组成的序列(其中PP.尸都为"比特.尸,为d 比特且0GB/T17964一2021 图9计数器工作模式加密算法 9.3CTR的解密方式描述 解密运算按照以下四个步骤进行: 加密计数序列:Y,=Ea(Ti=1,2,q a b i=1,2, -l; 解密前q-1个密文分组;P=C,Y q 选择Y,左侧的d比特;Z=d~Y,; c d)解密最后一个密文分组:P,=C,田Z 此过程如图10所示 图10计数器工作模式解密算法 注cTR模式的工作性质见A.5,cTR模式的示例见B.6. 10带密文挪用的XEX可调分组密码工作模式 10.1变量定义 XTs工作模式采用以下变量: 输人变量 1 9个明文分组尸,尸g,,P,所组成的序列[其中P,P!,,P,-都为"比特,尸为d 11
GB/T17964一202 比特,满足0n] 22 密钥K,和K ,需要加解密操作方约定一致,长度均由分组密码算法E决定; 3)调柄Tw,需要加解密操作方约定一致,长度为n比特 b)中间变量: 1 9个密码输人变量X1,Xe,,X,所组成的序列,每个变量均为n比特; 2)临时变量Z,长度为n比特 输出变量 9个密文分组C,C,,C,所组成的序列[其中C,C,,C都为n比特,C为d比特,满 足0n] 根据4.1中关于有限域乘法的定义,本章中所有有限域乘法运算按照“左低右高”的方式处理 变量,即变量最左侧为其最低位 10.2XIs的加密方式描述 10.2.1明文长度满足整数倍分组长度 此种情况下,d=n且q>1 对q个明文分组P,P,,P,进行加密运算按照如下四个步骤进行 计算掩码.T a =E.TW)a'一" b 计算密码输人变量:X,=P,T,; 使用分组密码.Y一EX); c d 生成密文分组:C=Y田T 0.2.2明文长度不满足整数倍分组长度 此种情况下,02. ,P,进行加密运算按照如下四个步骤进行 对前g一1个明文分组P,P,.厂 计算掩码;丁,一Ee.(Tw)@a一" a b 计算密码输人变量;x =P田T; 使用分组密码:Y=EkX) c d 生成密文分组:C,=YT 对最后一个明文分组P,进行加密运算按照如下五个步骤进行 a) 通过密文挪用设置临时变量:Z=PlC1(n一dl)); b 计算掩码:T =EK.TW)a" c 计算密码输人变量:X,=Z田T,; 使用分组密码.Y,=EkX,); d 生成密文分组:Cc,=Y,田T, 密文重排按照如下三个步骤进行 设置临时变量;Z=C,; a b 生成第g-1个喘文分组.c, =C.; 生成第q个密文分组.C,=d~Z c 此过程如图11所示 12
GB/T17964一2021 7w 图11带密文挪用的xEx可调分组密码工作模式加密算法 10.3XIS的解密方式描述 密文长度满足整数倍分组长度 10.3.1 此种情况下,d=n且q>1 对q个密文分组C,Ca,,C,进行解密运算按照如下四个步骤进行 计算掩码:T,=EKTw)a a b 计算密码输人变量:X,=C田T; 使用分组密码:Y=DK(X,): c 生成明文分组:P=Y田T, d 0.3.2密文长度不满足整数倍分组长度 此种情况下,d<且g>2 对前q一2个密文分组C,C,,C,-;进行解密运算按照如下四个步骤进行 计算掩码;T;=Ek,(Tw))a" aa b)计算密码输人变量X,=CT; 使用分组密码:Y,=DKX,); c d 生成明文分组:P;=Y,田T 对最后两个密文分组C 进行解密运算按照如下九个步骤进行 计算掩码;T,=Ek.(Tw)@a a 5 计算密码输人变量:X, 田T,; 使用分组密码;Y,=Dk,X,); c 生成临时变量:Z=Y,田T, d 生戚明文分组:P,- =dZ; e 计算掩码.T,=Ee(Tw)@a" f 13
GB/T17964一202 计算密码输人变量:X1=(C,llZ~(n一d)))田T; 8 h)使用分组密码Y,=DkX1); 生成明文分组:P,一 -1=Y-1田T1 此过程如图12所示 7W 图12带密文挪用的XEX可调分组密码工作模式解密算法 注:xTs模式的工作性质见A.6,xTs模式的示例见B.7 带泛杂凑函数的计数器工作模式 1 11.1变量定义 HCTR工作模式采用以下变量 输人变量 a 1q个明文分组P,P,,P,所组成的序列[其中P,P,,P,都为n比特,P,为d 比特,满足0n] HCTR工作模式使用一个泛杂凑函数H H使用密钥K压缩一个比特串M,记作 Hk(M)=MK"+1田(.Zero(n一 -d)@K'田(IM)@K 其中M=MlllM..,M,,M 和K长度都是n比特,M 长度是d比特,1GB/17964一2021 根据4.1中关于有限域乘法的定义,泛杂凑函数H使用的有限域乘法运算按照“左低右高”的 方式处理变量,即变量最左侧为其最低位;采用的CTR工作模式按照“左高右低”的方式处理变量,即 变量最左侧为其最高位 1.2IHCTR的加密方式描述 对q个明文分组P,P:,,P,进行加密运算按照如下四个步骤进行 生成临时变量;Z:Z=尸田)HK.Pll尸,lTW); aa b 生成临时变量;Z;Z=EK(Z); 生成第一个分组之外的密文分组.c..C,)-cTR,(P.P,) 其中CTR模式用到的计数器序列是T;=Z田Z(i)" ,i=l,g-1; d)生成第一个密文分组C:C=Z.田HK.(CllllC,IlTw. 此过程如图13所示 P 7 C'TRs ) 图13带泛杂凑函数的计数器工作模式加密算法 113HCTR的解密方式描述 对q个密文分组C1,Cg,,C,进行解密运算按照如下四个步骤进行 生成临时变量Zg;Z;=C田Hk.(C;llC,IlTw); a b)生成临时变量Z:Z=DKZ); 生成第一个分组之外的明文分组:(P,,P,)=CTRx.(Cg,,C,); c 其中CTR模式用到的计数器序列是T=Z田Z田(i).,i=1,,g d 生成第一个明文分组P:P=Z田HR.PllIP,lTw). 此过程如图14所示 15
GB/T17964一2021 T0 C7R 图14带泛杂凑函数的计数器工作模式解密算法 注1:HCTR模式的工作性质见A.7,HTCR模式的示例见B.8 注2;泛杂凑函数是一类使用密钥的高效率压缩函数,见参考文献[1] 在有限域GF(21)上.的优先级高于田 12分组链接工作模式 12.1变量定义 BC工作模式采用以下变量 输人变量 a q个明文分组P,Pg,,P,所组成的序列,每个分组都为n比特; 1) 22) 密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定; 3)初始向量IV,需要加解密操作方约定一致,长度为"比特 b 中间变量: q个反馈变量F1,F,,F,所组成的序列,每个变量都为n比特 输出变量 9个密文分组C.C,,C,所组成的序列,每个分组都为n比特 12.2BC的加密方式描述 设置反馈变量初始向量F=V 加密运算按照如下两个步骤进行 a 生成密文分组:C;,=E(P,田F,); b)生成反锁变量F=F,c 对i=1,2, ,q,重复上述步骤,最后一个循环结束于a) 此过程如图15所示 初始向量IV用 于生成第一个密文输出 之后的加密过程中,每个密文与当时反锁变量进行异或运算,生成下- 一个反馈 变量 16
GB/T17964一2021 n 图15分组链接工作模式加密算法 2.3BC的解密方式描述 设置反馈变量初始向量;F,=IV 解密运算按照如下两个步骤进行 生成明文分组;P=F,田D.(c); a b)生成反馈变量;F4=FC 对i=1,2,,g,重复上述步骤,最后一个循环结束于a) 此过程如图16所示 M 图16分组链接工作模式解密算法 注1:lC模式的工作性质见A.8,BC模式的示例见B.9. 注2如果明文长度不满足分组长度的整数倍,则需要填充明文,见A.8.3,常见的填充方法见附录c. 13带非线性函数的输出反馈工作模式 3.1变量定义 OFBNLF工作模式采用以下变量 输人变量 a 1q个明文分组P,P,,P,所组成的序列,每个分组都为n比特 22) 密钥K,需要加解密操作方约定一致,长度由分组密码算法E决定 33 初始向量V,需要加解密操作方约定一致,长度为n比特 17
GB/T17964一202 b 中间变量: q+1个密钥变量K,K1,,K,所组成的序列,每个变量都为n比特 输出变量, q个密文分组C.,Ca,,C,所组成的序列,每个分组都为n比特 13.2oFBNLr的加密方式描述 设置密钥变量初始向量:K =IV 加密运算按照如下两个步骤进行 生成密钥变量K,一E(K_); a b) 生成密文分组:C=Ek.,(P,) 对i=1,2, ,q,重复上述步骤,最后一个循环结束于b) 此过程如图17所示 每次使用的密钥 变量K,被密钥K加密并成为下一个分组的密钥变量K i+1 图17带非线性函数的输出反馈工作模式加密算法 3.3oFBNLr的解密方式描述 设置密钥变量初始向量;K,=Iv 解密运算按照如下两个步骤进行 生成密钥变量:K;=EK-); a b)生成明文分组:;P,=DR,(C,) 明重复上述步骤,最后一个循环结束于b) 此过程如图18所示 K,与加密过程中 对i=l,2,, 相应的值是相同的 图18带非线性函数的输出反馈工作模式解密算法 注1OFBNLF模式的工作性质见A.9,OFBNLF模式的示例见B.1o 注2;如果明文长度不满足分组长度的整数倍,则需要填充明文,见A.9.3,常见的填充方法见附录c. 18
GB/17964一2021 附 录 A 资料性 工作模式的性质 A.1电码本工作模式的性质 A.1.1场景 在各计算机终端之间,或者多人共用一个计算机终端所交换的二进制数据可能会有重复或者共同 使用的序列 在ECB工作模式中,相同的明文分组(使用相同的密钥)生成相同的密文分组 A.1.2性质 ECB工作模式的性质有: 对某一个分组的加密或解密可独立于其他分组进行 a b)对密文分组的重排将导致相应明文分组的重排 相同的明文分组使用相同的密钥)总是生成相同的密文分组,这使得它容易遭受“字典攻击”, 这种字典是由对应的明文和密文分组构成的 对于超过一个分组长度的明文一般建议不使用ECB工作模式 对于可接受重复性例如,输人分 组绝不重复),必须单独访间或随机访问各个分组的特殊使用情况,ECB的用法可以在未来的标准中 规定 A.1.3填充明文 只有长度为分组长度的整数俏的明文才能被加密或解密 其他长度的明文需要被填充至分组长度 的整数倍 A.1.4差错扩散 在ECB工作模式中,如果一个密文分组中存在一个或多个比特的差错,则只会影响该密文分组的 解密;该解密将导致得到的明文分组中每个明文比特以50%的概率出现差错 A.1.5同步 如果加密或解密之间的分组边界丢失了(例如由于一个比特的滑动),则在重新建立正确的分组边 界之前,加密与解密之间将失去同步 如果分组边界丢失,则所有解密操作的结果都不正确 A.2密文分组链接工作模式的性质 A.2.1场景 只要使用相同的密钥和初始向量对相同的明文进行加密,CBC工作模式将生成相同的密文 介意 这种性质的用户需要采用相应方法来改变明文的起始分组,密钥或初始向量 一种可能的方法是将一 个唯一的标识符(例如一个递增计数器)加到每个CBC消息的起始位置 在对长度不能增加的明文进 行加密时可使用某种方法从明文中计算出一个值,例如明文的随机访问存储方式的地址 A.2.2性质 CBC工作模式的性质有: 19
GB/T17964一202 链接操作使得密文分组依赖于当前的和以前的明文分组,因此调换密文分组的顺序不可能使 a 得明文分组的顺序对应调换; b 使用不同的IV以防止同一明文加密成同一密文; CBC模式的安全性证明见参考文献[2] c A.2.3填充明文 只有长度为分组长度的整数倍的明文才能被加密或解密,其他长度的明文需要被填充 如果不能 填充,则可以使用特殊方法处理最后一个分组,下面给出两个方法 第一种方法处理一个不完整的明文分组[即;一个j(jGB/17964一2021 图A.2密文分组链接工作模式采用密文挪用的解密算法 A.2.4差错扩散 在CIBc工作模式中,一个密文分组中的一个或多个比特差错会影响两个分组(即发生差错的分组 和随后的分组)的解密 第,个密文分组中的差错对于所生成的明文有以下影响,第,个明文分组每比 特以50%的概率出错,第i十1个明文分组的差错模式与第i个密文分组相同 如果在一个不到比特 的分组中出现差错,差错扩散取决于所选择的处理方法 若使用A2.3第一个方法.在被解密的较短的 分组中,与明文出错比特直接对应的那些比特也会出错 A.2.5同步 如果解密或解密之间的分组边界丢失了(例如由于一个比特的滑动),则在重新建立正确的分组边 界之前,加密与解密之间将失去同步 如果分组边界丢失,所有解密操作的结果都是不正确的 A.3密文反馈工作模式的性质 A.3.1场景 只要使用同样的密钥和初始向量对相同的明文进行加密,CFB工作模式将生成相同的密文 介意 这种特性的用户需要采用某种办法来改变起始明文分组、密钥或初始向量 一种可能的办法是将 唯一的标识符例如一个递增计数器)加到每个CFB消息的开始处 在对大小不能增加的记录进行加 密时可采用另一种办法,它使用诸如初始向量的某个值,这个值能从记录中计算出来且不用知道其内容 例如它的按随机访问存储方式的地址). A.3.2性质 CFB模式的性质有 链接操作使得密文分组依赖于当前的和除确定数目以外的所有以前的明文分组,该数目取决 a 于r、k和的选择(见图5,图6) 因此对比特密文分组的重新排序不会导致对相应的比 特明文分组的重新排序; b 加解密操作方需要约定一致的参数r、人和,参数的取值可公开; c 使用不同的IV值从而防止同一明文加密成同一密文; d CFB模式的加密和解密过程都使用分组密码的加密操作; 21
GB/T17964一202 CFB模式的强度依赖于更的大小(=人时最大)以及、k、n和r的相对大小; e 注:jn十人使得能对分组密码逃行诫水线式连续操作 日 h)cFB模式的安全性证明见参考文献[3] A.3.3填充朋文 只有长度为比特倍数的明文才能被加密 其他长度的明文需要填充至比特的整数倍 但是 经常选择的大小使得明文无需进行填充,例如对于明文的最后部分可以修改 A.3.4差错扩散 CFB模式中任一j比特密文的差错都将影响随后密文的解密,直到出错的比特移出CFB反馈缓 存为止 第个密文分组中的差错对生成的明文有下列影响;第i个明文分组与第i个密文分组有相 同的差错模式 在所有未正确接收的比特被移出反馈缓存之前,随后的明文分组的每一比特出错的概 率为50% A.3.5同步 如果加密和解密之间的分组边界丢失了例如由于一个比特的滑动),则在比特分组重新建立的 厂比特之后,密码同步将被重新建立 如果丢失比特的倍数,则在厂比特之后将重新建立同步 A.4输出反馈工作模式的性质 A.4.1场景 只要使用同样的密钥和初始向量对相同的明文进行加密,OFB模式将生成相同的密文 此外,当 使用相同的密钥和IV时,OFB模式中将会生成相同的密钥流,因此,为了保密起见,对于一个给定的密 钥,一个特定的V只能使用一次 A.4.2性质 OFB模式的性质有 没有链接操作会使得OFB模式容易受到主动的攻击 a b 使用不同的值生成不同的密钥流,可防止同一明文加密成同 密文; OFB模式的加密和解密过程都使用分组密码的加密运算, c d) OFB模式不依赖明文来生成用于对明文进行异或运算的密钥流; 加解密操作方需要约定一致的参数j,参数的取值可公开; e fD 对于每个明文,选择一个较小的值将需要更多次的分组密码操作,从而引起更大的处理 开销 A.43填充明文 只有长度为j比特倍数的明文才能被加密 其他长度的明文需要填充至比特的整数倍 但是 经常选择的大小使得明文无需进行填充例如对于明文的最后部分可以修改j A.4.4差错控制 OFB模式中,密文中每一差错比特只会引起明文中同一位置出现一个差错比特,不影响明文其他 22
GB/T17964一2021 位置 A.4.5同步 OFB模式不是自动同步的 如果加密和解密两个操作不同步,系统需要重新初始化 这种同步丢 失可能由于插人或丢失任意数目的密文所引起 每次重新初始化应使用一个新的值,它不同于与同一个密钥一起使用的以前的V值 其原因 是对于相同的参数,每次会生成相同的比特流,这将易于受到“已知明文攻击” A.5计数器工作模式的性质 A.5.1场景 计数器模式下的分组密码算法使用序列号作为算法的输人 不是用加密算法的输出填充寄存器 而是将一个计数器输人到寄存器中 每一个分组完成加密后,计数器都要增加某个常数,典型值是1 没有什么是专供计数器用的,它不必根据可能的输人计数 可以将随机序列发生器作为分组算法的输 人,而不必考虑其密码上是否安全 A.5.2性质 CTR的性质有: 加密运算可并行处理,吞吐量仅受可使用并行数量的限制 a 使用不同的计数器生成不同的密钥流,可防止同一明文加密成同一密文; b CTR工作模式的加密和解密过程都使用分组密码的加密运算; c CTR工作模式不依赖明文生成用于对明文进行异或运算的密钥流 d A.5.3填充明文 计数器模式不需要填充明文,可以处理任意长度的明文 A.5.4差错扩散 CTR模式不在生成的明文输出中扩散密文差错 密文中每一差错比特只会引起解密后的明文中 出现一个差错比特 A.5.5同步 cTR工作模式不是自动同步的 如果加密和解密两个操作不同步,系统需要重新初始化 这种同 步丢失可能由于插人或丢失任意数目的密文所引起, 每次重新初始化应使用一个新的计数器值,它不同于与同一个密钥一起使用的以前的计数器值 其原因是对于相同的参数,每次都要生成相同的密钥流 这将易于受到“已知明文攻击” A.6带密文挪用的XEx可调分组密码工作模式的性质 A.6.1场景 XTs模式可以用于磁盘扇区加密等特殊的加密环境,其中调柄值用于表示扇区地址;只要使用同 样的密钥和调柄对相同的明文进行加密,xXTs模式将产生相同的密文 每个明文都应指定一个数值为 非负整数的调柄 调柄数值应指定由一个任意的非负整数起始,并连续增长 该工作模式不适用于明 文长度小于分组密码分组长度的情形 23
GB/T17964一2021 A.6.2性质 XTS模式的性质有: 加密运算可并行处理,吞吐量仅受可使用并行数量的限制 a b 使用不同的调柄产生不同的掩码序列,可防止同一明文加密成同一密文; c 明文和对应的密文具有相同的长度; d XTS模式不依赖明文产生用于对明文进行异或运算的密钥流; XTS模式具备可证明安全的理论保障 在底层分组密码算法具备超伪随机性质的的情况下 e XTS模式被证明是超伪随机的,安全界是生日界 具体安全分析见参考文献[4]和参考文 献[5] A.6.3填充明文 消息无须填充 消息长度应不少于一个分组 当消息长度不是分组长度的整数倍时,将在加密阶 段的末尾进行密文挪用 A.6.4差错控制 在XTs模式中,在一个密文分组中的一个或多个比特差错只会影响发生差错的那一个分组的 解密 A.6.5同步 xTs模式不是自动同步的 如果加密和解密两个操作不同步,系统需要重新初始化 这种同步丢 失可能由于插人或丢失任意数目的密文所引起 每次重新初始化应使用一个新的调柄值,它不同于与同一个密钥一起使用的以前的调柄值 其原 因是,相同的参数将产生相同的掩码序列,这将易于受到“已知明文攻击” 如果在密码实现中允许并行 和流水线,xTs模式将易于受到“剪贴攻击” 带泛杂凑函数的计数器工作模式的性质 A. A.7.1场景 HCTR模式可以用于磁盘扇区加密等特殊的加密环境,其中调柄值用于表示扇区地址;只要使用 同样的密钥和调柄对相同的明文进行加密,HCTR模式将产生相同的密文 HCTR模式也可用于一般 的加密 该工作模式不适用于明文长度小于分组密码分组长度的情形 A.7.2性质 HCTR的性质有 除去第一个分组,HCTR支持并行加密和解密; a b) HcTR模式对于不同的调柄值,得到在密钥控制下的不同置换 HCTR模式明文和密文长度相同,无论是加密和解密,任意输人数据的变化都会带来所有输 c 出比特的变化 d HCTR模式具备可证明安全的理论保障 在底层分组密码算法具备超伪随机性质的的情况 下,HcTR模式被证明是超伪随机的,安全界是生日界 具体安全分析见参考文献[6]和参考 文献[7] 24
GB/T17964一2021 A.7.3填充明文 明文长度应不少于一个分组 数据经过泛杂凑函数处理时,需要填充 A.7.4差错扩散 密文的任意比特的错误会导致明文每一个比特以50%概率出现错误 A.7.5同步 HCTR模式不是自动同步的 无论是进行加密还是解密,都是在输人完所有数据后,才能计算出 输出结果 A.8分组链接工作模式的性质 A.8.1场景 为了在分组链接模式中使用分组算法,可以简单地将分组密码算法的输人跟所有前面密文分组的 异或值相异或 如CC算法,过程要从一个初始向量V开始 只要使用同样的密钥和初始向量对相同的明文进行加密,Bc工作模式将生成相同的密文 介意 这种性质的用户需要采用某种方法来改变初始明文分组、密钥或初始向量 A.8.2性质 BC工作模式的性质有 链接操作使得密文分组依赖于当前的和以前的明文分组,因此对密文分组的重新排序不会导 a 致对相应明文分组的重新排序 使用不同的V从而防止同一明文加密成同一密文 b BC模式的安全性证明见参考文献[8] c A.8.3填充明文 只有长度为分组长度整数倍的明文才能被加密,其他长度的明文需要被填充至分组长度的整数倍 A.8.4差错扩散 BC模式的反馈过程具有扩散明文错误的性质,这个问题是由于密文分组的解密依赖于所有前面 的密文分组,密文中任一错误都将导致所有后续密文分组的解密出错 A.8.5同步 如果解密或解密之间的分组边界丢失了例如由于一个比特的滑动),则在重新建立正确的分组边 界之前加密与解密之间将失去同步 如果分组边界丢失,所有解密操作的结果都是不正确的 A9带非线性函数的输出反馈工作模式的性质 A.9.1场景 带非线性函数的输出反馈是OFB和ECB的一个变体,它的密钥随每一个分组而改变 只要使用 同样的密钥和初始向量对相同的明文进行加密,OFBNLF工作模式应将生成相同的密文 此外,当使 用相同的密钥和V时,OFBNLF工作模式将会生成相同的密钥流,因此,为了保密起见,对于一个给 定的密钥,一个特定的V只能使用一次 25
GB/T17964一2021 A.9.2性质 OFBNLF的性质有 使用不同的V值生成不同的密钥流,可防止同一明文加密成同一密文; a b OFBNLF模式的加密和解密过程都使用分组密码的加密运算; c OFBNLF模式不依赖明文来生成用于对明文进行加密的密钥流 d OFBNLF模式的安全性证明见参考文献[9] A.9.3填充明文 只有长度为分组长度整数倍的明文才能被加密,其他长度的明文需要被填充至分组长度的整数倍 A.9.4差错扩散 密文的一个比特错误将扩散到一个明文分组 如果一比特丢失或增加,那就有无限的错误扩散 A.9.5同步 FNu下模式不是自动同步的 如果加密和解密两个操作不同步,系统需要重新初始化 这种间 步丢失可能由于插人或丢失任意数目的密文所引起 每次重新初始化应使用一个新的V值,它不同于与同一个密钥一起使用的以前的V值 其原因 是对于相同的参数,每次都会生成相同的比特流,这将易于受到“已知明文攻击” 26

信息安全技术分组密码算法的工作模式GB/T17964-2021

什么是分组密码算法?

分组密码算法是一种常见的加密算法,在信息安全领域应用广泛。其特点是将明文分成固定长度的块(称为“分组”),对每个分组进行加密,最后再将加密后的分组拼接起来得到密文。分组密码算法有很多种不同的工作模式,如ECB、CBC、CTR等。

GB/T17964-2021中规定的分组密码算法工作模式

GB/T17964-2021是我国国家标准化委员会发布的有关分组密码算法的标准,其中规定了多种分组密码算法的工作模式。下面我们就来逐一介绍这些工作模式:

  • ECB(Electronic Codebook)模式
  • ECB模式是最简单的分组密码算法工作模式之一,将明文按固定长度划分为若干个分组,然后对每个分组进行加密。由于相同的明文分组将被加密成相同的密文分组,因此ECB模式存在安全隐患,不适用于加密大量重复出现的数据。

  • CBC(Cipher Block Chaining)模式
  • CBC模式在ECB模式的基础上增加了一个初始化向量(IV),将前一个分组的密文与当前分组的明文异或后再进行加密。这样可以避免相同的明文分组被加密成相同的密文分组,提高了加密的安全性。但是由于需要依赖前一个分组的密文,因此CBC模式无法并行处理分组,效率较低。

  • CTR(Counter)模式
  • CTR模式将明文分组与一个计数器进行异或操作,然后将结果作为加密密钥使用的输入,生成密文分组。由于加密过程中只需要计算分组数量次的加密操作,并且每个分组之间没有依赖关系,因此CTR模式的加密效率非常高。

  • OFB(Output Feedback)模式
  • OFB模式与CTR模式类似,也是将明文分组与一个计数器进行异或操作,然后将结果作为加密密钥使用的输入,生成密文分组。不同之处在于OFB模式中,加密过程中使用的密钥不是实际的密钥,而是由前一个分组的加密输出得到的一段“伪随机数序列”,这样可以避免出现密钥被暴力破解的情况。

总结

分组密码算法是信息安全领域中重要的加密算法,其中不同的工作模式各有优缺点。GB/T17964-2021标准中规定的分组密码算法工作模式,既考虑了加密效率,又考虑了安全性,是信息安全领域的重要参考依据。专业人士应该根据实际需求选择适合的分组密码算法工作模式,从而保障数据的安全性。

和信息安全技术分组密码算法的工作模式类似的标准

信息安全技术术语

信息安全技术互联网信息服务安全通用要求
上一篇 本文分享国家标准信息安全技术互联网信息服务安全通用要求的全文阅读和高清PDF的下载,信息安全技术互联网信息服务安全通用要求的编号:GB/T40645-2021。信息安全技术互联网信息服务安全通用要求共有22页,发布于2022-05-01
信息安全技术公钥基础设施标准符合性测评
本文分享国家标准信息安全技术公钥基础设施标准符合性测评的全文阅读和高清PDF的下载,信息安全技术公钥基础设施标准符合性测评的编号:GB/T30272-2021。信息安全技术公钥基础设施标准符合性测评共有44页,发布于2022-05-01 下一篇
相关推荐