GB/T 15852.1-2020 信息技术 安全技术 消息鉴别码 第1部分:采用分组密码的机制.pdf

GB/T 15852.1-2020 信息技术 安全技术 消息鉴别码 第1部分:采用分组密码的机制.pdf
积分0.00
特惠
积分0
VIP全站资料免积分下载
立即下载
同类资料根据编号标题搜索
文档
仅供个人学习
反馈
标准编号:
文件类型:.pdf
资源大小:23.1 M
标准类别:电力标准
资源ID:265683
VIP资源

标准规范下载简介:

内容预览由机器从pdf转换为word,准确率92%以上,供参考

GB/T 15852.1-2020 信息技术 安全技术 消息鉴别码 第1部分:采用分组密码的机制.pdf

GB/T15852.12020

GB/T15852.12020

使用本部分中给出的MAC算法的用户需要选择: 符合国家管理要求的分组密码算法e; 从6.3中选取一种填充方法; 从第7章中选取一个MAC算法; MAC的比特长度m; 一一个通用的密钥诱导方法;MAC算法5需要此方法DBS22 006-2013 食品安全地方标准 乳制品及含乳饮料中环己基氨基磺酸钠的测定 液相色谱-质谱质谱法,MAC算法2、MAC算法4和MAC算法 6也可能需要。 用户之间就这些选择达成协议对数据完整机制的运作至关重要。 MAC的比特长度m应是一个正整数并且不大于分组长度n。 如果使用填充方法3,那么数据串D的比特长度应小于2。 如果使用MAC算法4,那么数据串填充中的分组数应不小于2,即:q≥2。 如果使用MAC算法7,那么MAC的比特长度m应小于n/2。 对于具体分组密码e、填充方法、MAC算法、m的值以及密钥诱导方法(如果需要)的选择超出了本 部分所规定的范围。 注1:上述选择影响MAC算法的安全强度。具体参见附录C。 生成MAC和验证MAC应使用相同的密钥。当数据比特串也被加密,则MAC算法使用的密钥应 同于用作加密的密钥。 注2:为机密性和数据完整性使用相互独立的密钥被认为是好的密码实践 本部分中给出的MAC算法的安全性严重依赖于管理密钥所遵循的程序和方法。 注3:关于密钥管理的信息参见GB/T17901.1一2020。 MAC算法计算过程中泄露中间值可能造成伪造和(或)密钥恢复攻击(参见附录C)

GB/T15852.12020

MAC算法的应用需要如下八步操作: 第1步:密钥诱导(可选); 第2步:消息填充; 第3步:数据分割; 第4步:初始变换I; 第5步:送代应用分组密码; 第6步:最终送代F; 第7步:输出变换g; 第8步:截断操作。 其中,第4步~第8步如图1所示

MAC算法的应用需要如下八步操作 第1步:密钥诱导(可选); 第2步:消息填充; 第3步:数据分割; 第4步:初始变换I; 第5步:送代应用分组密码; 第6步:最终迭代F; 第7步:输出变换g; 一第8步:截断操作。 其中,第4步~第8步如图1所示

6.2密钥诱导(第1步)

图1MAC算法的第4步~第8步操作

MAC算法5使用密钥诱导算法,由一个分组密码密钥诱导得到两个掩码密钥。MAC算法2 MAC算法4和MAC算法6可能需要使用密钥诱导算法,由一个分组密码密钥诱导得到两个分组密码 钥。 本部分规定了两种密钥诱导方法。密钥诱导方法1可被用在本部分所规定的MAC算法2、MAC 算法4和MAC算法6中。密钥诱导方法2被用在本部分所规定的MAC算法5中。

中国标准出版社授权北京万方数据股份有限公司在中国境内(不含港澳台地区

6.2.2密钥诱导方法1

密钥诱导方法1由一个分组密码密钥K计算得到两个k比特的分组密码密钥K'和K”。 密钥诱导方法使用GB/T17964一2008中定义的计数器(CTR)模式。操作如下: 定义整数t为不小于k/n的最小正整数; 定义计数器CT;(1≤i≤2t)为在整数i的二进制表示左侧填充“o”得到的n比特分组,尽可能 少填充(甚至不填充); 计算长度为t·n的比特串S1,使其等于ek(CT)llek(CT.)lek(CT,),并定义K": MSB(S,); 计算长度为t·n的比特串S2,使其等于ek(CT+1)llek(CT,+2)llllek(CT2),并定义 K":=MSB,(S,)

密钥诱导方法1由一个分组密码密钥K计算得到两个k比特的分组密码密钥K"和K”。 密钥诱导方法使用GB/T17964一2008中定义的计数器(CTR)模式。操作如下: 定义整数t为不小于k/n的最小正整数; 定义计数器CT;(1≤i≤2t)为在整数i的二进制表示左侧填充“o”得到的n比特分组,尽可能 少填充(甚至不填充); 计算长度为t·n的比特串S1,使其等于ek(CT)llek(CT.)lek(CT,),并定义K": MSB(S,); 计算长度为t·n的比特串S2,使其等于ek(CT+1)llek(CT,+2)llllek(CT2),并定义 K":=MSB,(S,)

6.2.3密钥诱导方法2

密钥诱导方法2由一个分组密码密钥K计算得到两个n比特的掩码密钥K,和K。。操作如下, 计算n比特的秘密比特串S:S:=ek(O"); 由S计算得到掩码密钥K:K,=multx(S); 由K,计算得到掩码密钥K,:K,=multx(K,)

6.3消息填充(第2步)

本步骤用额外的比特串作为前缀或后缀对数据比特串D进行填充,使得填充后的数据比特串的长 度是n的整数倍。根据选择的填充方法,填充比特串只用来计算MAC。所以,(如存在填充)这些填充 化特串无需随原消息存储或发送。MAC的验证者应知道填充比特串是否已经被存储或发送,以及使 用的是何种填充方法, 本部分规定了四种填充方法。填充方法1、填充方法2和填充方法3可被用在本部分所规定的 MAC算法1、MAC算法2、MAC算法3、MAC算法4和MAC算法6中。填充方法4被用在本部分所 规定的MAC算法5、MAC算法7和MAC算法8中

在数据比特串D的右侧填充“0”,尽可能少填充(甚至不填充),使填充后比特串的长度是n的正整 数倍。 注1:面对简单伪造攻击,使用填充方法1的MAC算法可能是不安全的。具体参见附录C。 注2:如果数据比特串是空串,那么填充方法1规定对其填充"个“0”。

6.3.3填充方法 2

在数据比特串D的右侧填充一个比特“1”,然后在所得到的比特串右侧填充“0”,尽可能 至不填充),使填充后的比特串的长度是n的正整数倍。

在数据比特串D的右侧填充一个比特“1”,然后在所得到的比特串右侧填充“0”,尽可能少填充 不填充),使填充后的比特串的长度是n的正整数倍。 注:如果数据比特串是空串.那么填充方法2规定对其填充一个“1”.然后在其右侧填充n一1个"0”

GB/T15852.12020

制表示经左侧填充“0”组成,尽可能少填充(甚至不填充),使L的长度为n比特。L最右端的比特和 LD的二进制表示中的最低位相对应。 注1:如果在计算MAC之前不知数据比特串的长度,则填充方法3不适用。 注2:如果数据比特串是空串,那么填充方法3规定对其填充n个“0”,然后在其左侧填充一个由n个“0”组成的分 组L。

如果输入MAC算法的数据比特串D的比特长度是n的正整数倍,则不需要填充。否则,在数据 比特串D的右侧填充一个“1”比特,然后在所得到的比特串右侧填充“0”,尽可能少填充(甚至不填充), 使填充后的比特串的长度是n的正整数倍。 注:如果数据比特串是空串,那么填充方法4规定对其填充一个“1”.然后在其左侧填充7一1个"0”

6.4数据分割(第3步)

把填充后的数据比特串分割成q个n比特的分组D,D2,,D。。这里D,表示填充后比特串的

6.5初始变换(第4步)

初始变换I用来处理填充后比特串的第一个n比特分组D,以得到H,。 本部分规定了三种初始变换。初始变换1被用在本部分所规定的MAC算法1、MAC算法2、 MAC算法3、MAC算法5、MAC算法6和MAC算法7中。初始变换2被用在本部分所规定的MAC 算法4中。初始变换3被用在本部分所规定的MAC算法8中

初始变换1需要一个分组密码密钥K。 接照如下的方法使用密钥K和分组密码e计算H,: Hi=ek (D.

初始变换2需要两个分组密码密钥K和K”。按照如下的方法使用密钥K和K”,以及分 计算H1:

初始变换3需要一个分组密码密钥K。按照如下的方法使用密钥K,以及分组密码e计算H1: Hi :=e k (D, H.)

6.6迭代应用分组密码(第5步)

6.7最终迭代(第6步)

最终迭代F用来处理填充后比特串的最后一个分组D。以得到分组H。。 本部分规定了四种最终迭代。最终迭代1被用在本部分所规定的MAC算法1、MAC算法2、 MAC算法3、MAC算法4和MAC算法7中。最终迭代2被用在本部分所规定的MAC算法6中。最 终迭代3被用在本部分所规定的MAC算法5中。最终迭代4被用在本部分所规定的MAC算法8中。

最终迭代2使用分组密码密钥K(不同于第5步使用的分组密码密钥K),以及分组密码e计 意H

H, :=ek(D, O H.)

6.8输出变换(第7步)

输出变换g用来处理第6步得到的结果H。。 本部分规定了三种输出变换。输出变换1被用在本部分所规定的MAC算法1、MAC算法5、 MAC算法6、MAC算法7和MAC算法8中。输出变换2被用在本部分所规定的MAC算法2和 MAC算法4中。输出变换3被用在本部分所规定的MAC算法3中

输出变换1是恒等变换:

输出变换2对H。应用密钥为K'的分组密码e,

6.9截断操作(第8步)

GB/T15852.12020

G:=ek[dk(H,)

截断操作用来处理第7步得到的结果G以得到MAC值。 本部分规定了两种截断操作。截断操作1被用在本部分所规定的MAC算法1、MAC算法2、 MAC算法3、MAC算法4、MAC算法5、MAC算法6和MAC算法8中。截断操作2被用在本部分所 规定的MAC算法7中。

截断操作1截取G最左侧的m比特作为MAC值,即: MAC=MSB.(G)

截断操作2根据填充操作截取G最左侧或最右侧的m比特作为MAC值。 依照填充方法4,如果输入MAC算法的消息的比特长度是n的正整数倍,则: MAC:=MSBm(G) 否则 MAC:=LSB.(G)

MAC算法1使用初始变换1、最终迭代1、输出变换1和截断操作1。MAC算法密钥就是分组密 码密钥K。 MAC算法1如图2所示。 MAC算法1可使用6.3中的填充方法1、填充方法2或填充方法3。 注1:填充方法的选择影响MAC算法的安全性。具体参见附录C。 注2:MAC算法1可能遭受异或伪造攻击(参见附录C)。因此MAC算法1仅适用于异或伪造攻击不可行的环 境,例如,消息长度固定。

7.3MAC算法2(EMA

MAC算法2使用初始变换1、最终迭代1、输出变换2和截断操作1。MAC算法密钥由两个分组 密码密钥K和K组成。K和K"的值可从一个共同的主密钥(一个分组密码密钥)通过密钥诱导方法 生成,应满足K和K'以高概率不相同。 注1:MAC算法2通常被称作EMAC见参考文献[27J)。 注2:密钥诱导方法1是由一个共同的主密钥诱导出K和K'的一个例子。 注3:若K=K",一个简单的异或伪造攻击就能攻击EMAC,具体参见附录C。 注4:若K和K'相互独立,MAC算法2针对密钥恢复攻击的安全强度低于MAC算法2采用的密钥长度所应提供 的安全强度,具体参见附录C。 MAC算法2如图3所示。 MAC算法2可使用6.3中的填充方法1、填充方法2或填充方法3。 注5:填充方法的选择影响MAC算法的安全性。具体参见附录C。 注6:如果MAC算法2与计算(公开)密钥标识Sek(0")的算法结合使用,例如X9.24(见参考文献[16]),则 MAC算法2将遭受异或伪造攻击(参见附录C)。在这种情况下,算法宜仅用于异或伪造攻击不可行的环 境,例如,消息长度固定

图3MAC算法2(EMAC)

Z.4MAC算法3ANSIretailMAC

GB/T15852.12020

MAC算法3使用初始变换1、最终迭代1、输出变换3和截断操作1。MAC算法密钥由两个分组 密码密钥K和K'组成。K和K'应独立选取。若K=K',MAC算法3和MAC算法1一致。 MAC算法3如图4所示。 注1:MAC算法3通常被称作ANSIretailMAC(见参考文献[15])。 MAC算法3可使用6.3中的填充方法1、填充方法2或填充方法3。 注2:填充方法的选择影响MAC算法的安全性。具体参见附录C。 注3:如果MAC算法3与计算(公开)密钥标识S=ek(0")的算法结合使用,例如X9.24(见参考文献[16]),则 MAC算法3将遭受异或伪造攻击(参见附录C)。在这种情况下,算法宜仅用于异或伪造攻击不可行的环 境,例如,消息长度固定。

7.5MAC算法4(MacDES)

图4MAC算法3(ANSIretailMAC)

7.6MAC算法5(CMAC)

图5MAC算法4(MacDES)

MAC算法5使用密钥诱导方法2、初始变换1、最终送代3、输出变换1和截断操作1。MAC算法 密钥由一个分组密码密钥K组成。最终迭代3中使用的掩码密钥K,和K。是使用密钥诱导方法2由 MAC算法密钥K得到的。 注1:MAC算法5通常被称作OMAC1(见参考文献[22])或CMAC(见参考文献[17])。 MAC算法5如图6所示,其中K,=K,或K2。 MAC算法5使用填充方法4。 注2:如果MAC算法5与计算(公开)密钥标识S=ek(0")的算法结合使用,例如X9.24(见参考文献[16]),则 MAC算法5将遭受异或伪造攻击(参见附录C)。在这种情况下,算法宜仅用于异或伪造攻击不可行的环 境,例如,消息长度固定

Z.7MAC算法6(LMAC)

图6MAC算法5(CMAC)

GB/T15852.12020

注1:MAC算法6通常被称作LMAC。 注2:密钥诱导方法1是由一个共同的主密钥诱导出K和K的一个示例。 注3:若K=K',一个简单的异或伪造攻击就能够攻击MAC算法6,具体参见附录C。 注4:若K和K'相互独立,MAC算法6针对密钥恢复攻击的安全强度低于MAC算法6采用的密钥长度所应提供 的安全强度,具体参见附录C。 MAC算法6如图7所示。 MAC算法6可使用6.3中的填充方法1、填充方法2和填充方法3。 注5:填充方法的选择影响MAC算法的安全性。具体参见附录C。 注6:如果MAC算法6与计算(公开)密钥标识S=ek(0")的算法结合使用,例如X9.24(见参考文献[16]),则 MAC算法6将遭受异或伪造攻击(参见附录C)。在这种情况下,算法宜仅用于异或伪造攻击不可行的环 境,例如,消息长度固定。

注1:MAC算法6通常被称作LMAC。 注2:密钥诱导方法1是由一个共同的主密钥诱导出K和K的一个示例。 注3:若K=K',一个简单的异或伪造攻击就能够攻击MAC算法6,具体参见附录C。 注4:若K和K'相互独立,MAC算法6针对密钥恢复攻击的安全强度低于MAC算法6采用的密钥长度所应提供 的安全强度,具体参见附录C。 MAC算法6如图7所示。 MAC算法6可使用6.3中的填充方法1、填充方法2和填充方法3。 注5:填充方法的选择影响MAC算法的安全性。具体参见附录C。 注6:如果MAC算法6与计算(公开)密钥标识S=ek(0")的算法结合使用,例如X9.24(见参考文献[16]),则 MAC算法6将遭受异或伪造攻击(参见附录C)。在这种情况下,算法宜仅用于异或伪造攻击不可行的环 境,例如,消息长度固定

7.8MAC算法7(TrCB

图7MAC算法6(LMAC)

MAC算法7使用初始变换1、最终迭代1、输出变换1 码密钥K。MAC算法7使用填充方法4。 注:MAC算法7通常被称作TrCBC(见参考文献[31])。 MAC算法7如图8所示

图8MAC算法7(TrCBC)

Z.9MAC算法8(CBCR

MAC算法8使用初始变换3、最终迭代4、输出变换1和截断操作1。MAC算法密钥就是分组密 码密钥K。MAC算法8使用填充方法4。 注:MAC算法8通常被称作CBCR(见参考文献[32])。 MAC算法8如图9所示

LY/T 3005.9-2018 杜仲综合体 第9部分:种仁质量等级MAC算法8使用初始变换3、最终迭代4、输出变换1和截断操作1。MAC算法密钥就是分组 密钥K。MAC算法8使用填充方法4。 注:MAC算法8通常被称作CBCR(见参考文献[32]) MAC算法8如图9所示

图9MAC算法8CBCR)

GB/T15852.12020

GB/T15852.12020

这里使用的密钥是K=0123456789ABCDEFFEDCBA9876543210(16进制)。MAC 寺长度m等于64。 测试向最加下

使用数据比特单1和填充方法

DB13T 1426-2011 白竹炭粘胶短纤维MAC=16E02904EFB765B7 使用数据比特串1和填充方法

MAC=4B6553AF3C4E2744 使用数据比特串1和填充方法3

GB/T15852.12020

©版权声明
相关文章