安全标准

行业新闻 消防知识 消防标准 安全标准 应急标准 常见问题

GB/T 15852.2-2012 信息技术 安全技术 消息鉴别码 第2部分:采用专用杂凑函数的机制

发布日期:2023-03-21 19:03 浏览次数:

1 范围

      GB/T 15852的本部分规定了三种采用专用杂凑函数的消息鉴别码算法。这些消息鉴别码算法可用作数据完整性检验,检验数据是否被非授权地改变。同样这些消息鉴别码算法也可用作消息鉴别,保证消息源的合法性。数据完整性和消息鉴别的强度依赖于密钥的长度及其保密性、杂凑函数的算法强度及其输出长度、消息鉴别码的长度和具体的消息鉴别码算法。

      本部分适用于任何安全体系结构、进程或应用的安全服务。

2 规范性引用文件

      下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

      GB/T 1988-1998 信息技术 信息交换用七位编码字符集(eqv ISO/IEC 646:1991)

      ISO/IEC 10118-3:2004 信息技术 安全技术 杂凑函数 第3部分:专用杂凑函数(Information technology-Security techniques-Hash-functions-Part 3:Dedicated hash-functions)

3 术语和定义

      下列术语和定义适用于本文件。

3.1

      消息鉴别码 message authentication code;MAC

      利用对称密码技术,以密钥为参数,由消息导出的数据项。任何持有这一密钥的实体,都可利用消息鉴别码检查消息的完整性和始发者。

3.2

      消息鉴别码(MAC)算法密钥 MAC algorithm key

      一种用于控制消息鉴别码算法运算的密钥。

3.3

      消息鉴别码算法 message authentication code algorithm

      消息鉴别码算法简称MAC算法,其输入为密钥和消息,输出为一个固定长度的比特串,满足下面两个性质:

      ——对于任何密钥和消息,MAC算法都能够快速地计算。

      ——对于任何固定的密钥,攻击者在没有获得密钥信息的情况下,即使获得了一些(消息,MAC)对,对任何新的消息预测其MAC在计算上是不可行的。

      注:一个MAC算法有时被称作一个密码校验函数。计算不可行性依赖于使用者具体的安全要求及其环境。

3.4

      输出变换 output transformation

      应用在算法中,对迭代操作的输出所进行的变换。

3.5

      抗碰撞杂凑函数 collision-resistant hash-function

      满足如下性质的杂凑函数:

      ——寻找两个不同的输入,使得它们的输出相同,在计算上是不可行的。

3.6

      消息比特串(数据)data string(data)

      杂凑函数的输入比特串。

3.7

      杂凑值 hash-code

      杂凑函数的输出比特串。

3.8

      杂凑函数 hash-function

      将任意长消息比特串映射到定长比特串的函数,并且满足如下两个性质:

      ——对于任何输出,找到它所对应的输入在计算上是不可行的。

      ——对于任何输入,找到区别于它且和它具有相同输出的输入在计算上是不可行的。

3.9

      初始值 initializing value

      杂凑函数开始工作时用到的值。

3.10

      填充 padding

      在消息比特串后面附加额外比特串的操作。

3.11

      分组 block

      一种定义了长度的比特串。

3.12

      轮函数 round-function

      将两个长度为L1和L2的比特串映射到一个长度为L2的比特串的函数 Φ(· ,·)。

      注:它被反复地用在杂凑函数中,将长度为L1的比特串和前面长度为L2的输出值相合并。

3.13

      字 word

      长度为32位的比特串。

4 符号和记法

      下列符号和记法适用于本部分。

      D、D'  将要被输入到MAC算法的消息比特串

      m MAC值的比特长度

      q 经过填充和分割操作后,消息比特串D的分组个数

      MSBj(X) 比特串X最左边的j比特

      X⊕Y 比特串X和Y的异或值

      X||Y  按顺序将比特串X和Y连接所构成的比特串

      :=  MAC算法定义中使用的赋值符号

      D 经过填充的消息比特串

      h 杂凑函数

      h'被修改了常数和初始值的杂凑函数h

      简化的杂凑函数h,没有数据填充和长度附加

      H'、H” 长度为L2比特串,在MAC算法计算中被用来存储临时结果

      IV、IV'、IV1、IV2 初始值

      k MAC算法密钥的比特长度

      K MAC算法的密钥

      K'、K0、K1、K2 MAC算法1和3中的导出密钥

      K、K1、K2  MAC算法2中的导出密钥 

      L MAC算法3中表示消息长度的比特串

      OPAD、IPAD  MAC算法2中使用的常数比特串

      R、S0、S1、S2  MAC算法1和3中,用来导出一系列常数的常数比特串

      T0、T1、T2  MAC算法1和3中,用来导出子密钥的128比特常数

      U0、U1、U2   MAC算法1和3中,用来导出子密钥的768比特常数

      Φ'使用修改后常数的轮函数

      K1[i] 128比特串K1的第i个字,即:K1=K1[0]||K1K1[1]||K1[2]||K1[3]

      H 杂凑值

      Lx 比特串X的比特长度

      C1、C 轮函数中用到的常数字

      CCi 专用杂凑函数4中用到的常数矩阵

      L1 输入到轮函数φ的两个比特串中,第一个比特串的比特长度

      L2 输入到轮函数φ的两个比特串中,第二个比特串的比特长度;轮函数φ输出值的比特长度;初始值IV的比特长度

      φ 轮函数,即:若X和Y分别表示长度为L1和 L2的比特串,则 φ(X,Y)表示将ø作用到X和Y所得到的比特串

      +32 模 232加法操作,即:若A和B是字,那么把A和B看作是整数的2进制表示,计算它们的和再模 232,所得到的结果在0和 232-1之间,把它看作为字,记作 A+32B

      注:h只能被用来处理长度为L1整数倍的输入比特串。

5 要求

      采用本部分MAC算法的使用者应当选择:

      1)从第6、7、8章中选取一种MAC算法;

      2)从ISO/IEC 10118-3:2004中的专用杂凑函数1、2、3和7中选取一个杂凑函数;

      3)MAC的长度m。

      对于MAC算法1和2,MAC的长度m应该是一个正整数并且不大于杂凑值长度 H。对于 MAC算法3,MAC的长度m应该是一个正整数并且不大于杂凑值长度的二分之一,即 m≤LH/2。

      对于MAC算法1和2,消息比特串D的比特长度不大于 264-1;对于MAC 算法3,消息比特串D的比特长度不大于256。

      对一个具体MAC算法、专用杂凑函数、m值的选择超出了本部分所规定的范围。

      注:上述选择将影响MAC算法的安全强度,具体请参考附录B。

      生成MAC和验证MAC应当使用同样的密钥。


以上为标准部分内容,如需看标准全文,请到相关授权网站购买标准正版。

X

截屏,微信识别二维码

微信号:gongliff001

(点击微信号复制,添加好友)

  打开微信

微信号已复制,请打开微信添加咨询详情!