首页 百科知识 基于消息认证码的信息认证技术

基于消息认证码的信息认证技术

时间:2022-10-01 百科知识 版权反馈
【摘要】:数字签名技术只能够签署一个较短的消息。如前文所述,如果使用相同的密钥签署几个消息,Oscar就可以选择、重组这些消息来欺骗Alice。另一个问题是签名的大小必须大于等于消息长度,这就给网络带来额外的传输开销。因此,需要某些技术对较长的消息进行认证,有两种基本的方法来认证消息,一种是使用哈希函数和签名机制,另一种认证技术是使用一种称为消息认证码的密钥。MAC的正式定义如下。

数字签名技术只能够签署一个较短的消息。如前文所述,如果使用相同的密钥签署几个消息,Oscar就可以选择、重组这些消息来欺骗Alice。另一个问题是签名的大小必须大于等于消息长度,这就给网络带来额外的传输开销。因此,需要某些技术对较长的消息进行认证(Authenticate),有两种基本的方法来认证消息,一种是使用哈希函数和签名机制,另一种认证技术是使用一种称为消息认证码(Message Authentication Code,MAC)的密钥。

假设Alice和Bob共享一个公共密钥K,这就需要一个函数CK(x)依赖于密钥K,该函数的输入值x可以非常大,而输出值很小。当Alice希望发送消息x给Bob时,将首先计算出CK(x)并将(x, CK(x))发送给Bob。通常CK(x)的大小比x小很多。由于Bob知道K,故当他收到x后就可以计算出y=CK(x),并检查y是否与他收到的CK(x)相同。MAC的正式定义如下。

定义8.2:MAC是一个四元组(P, A, K, H),满足下列条件:

(1)P是可能的消息的有限集;

(2)A是可能的鉴别标记的有限集;

(3)K是密钥空间,即一个可能的密钥的有限集;

(4)对任意K∈K和C∈H,CK: P |→

在上述定义中,集合P可能是无限的。MAC函数CK()与加密函数类似,但不需要可逆(因为不需要解密)。这一特性使得CK(x)远小于x成为可能。

一个MAC函数不是一个签名,因为Alice和Bob都知道密钥,他们就不能伪造互相的签名;另外,只有Bob可以验证消息的正确性,而在签名机制中任何人都可以验证消息。

MAC函数应该具有下列特性:即便Oscar知道了x和CK(x),也无法通过计算构造出一个消息x′满足CK(x′)=CK(x)。此特性称为无碰撞特性(Collision-Free Property)。

作为MAC的一个例子,下面将描述数据认证算法(Data Authentication Algorithm),该算法基于DES算法:假设消息为x,首先将消息分组,大小为64比特:x=x1x2…xN,其中xi为64比特,1≤i≤N。算法类似于DES的CBC模式。设eK为DES中密钥K的加密函数,设:

O1=eK (x1)

O2=eK (x2⊕O1)

O3=eK (x3⊕O2)

…ON=eK (xN⊕ON-1)

其中,ON为MAC的结果,例如:CK(x)= ON。此MAC函数的输入消息长度可以是大于64比特的任意数,而函数输出总是64比特。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈