发布日期:2023-03-21 19:03 浏览次数:
GB/T 15852的本部分规定了三种采用专用杂凑函数的消息鉴别码算法。这些消息鉴别码算法可用作数据完整性检验,检验数据是否被非授权地改变。同样这些消息鉴别码算法也可用作消息鉴别,保证消息源的合法性。数据完整性和消息鉴别的强度依赖于密钥的长度及其保密性、杂凑函数的算法强度及其输出长度、消息鉴别码的长度和具体的消息鉴别码算法。
本部分适用于任何安全体系结构、进程或应用的安全服务。
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
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.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位的比特串。
下列符号和记法适用于本部分。
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整数倍的输入比特串。
采用本部分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应当使用同样的密钥。
以上为标准部分内容,如需看标准全文,请到相关授权网站购买标准正版。