4 签名认证体系 (1) 报文鉴别(消息鉴别) ¨ 消息鉴别是一个证实收到的消息来自可信的源点且未被篡改的过程。 ¨ 鉴别的主要目的有二: – 第一,验证信息的发送者是真正的,而不是冒充的,此为信源识别; – 第二,验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。
相关概念对比 ¨ 首先应理解鉴别与认证的不同: – 鉴别英文为Authentication,主要是针对真伪性; – 认证英文为Certification,主要是针对资格审查,一般认证过程除了进行身份鉴别,还有相应的授权过程。 ¨ 然后还应理解报文鉴别和数字签名的不同: – 数字签名也是一种鉴别技术,但主要是防止源点或终点抵赖,一般需要可信任的第三方。 ¨ 一个单纯鉴别系统的模型如下图所示:
鉴别系统模型 ¨ 图中的鉴别编码器和鉴别译码器可抽象为鉴别函数,该函数产生一个鉴别标识,然后在此基础上,给出合理的鉴别协议(Authentication Protocol),使接收者完成消息的鉴别。
¨ 一个安全的鉴别系统需满足: – 1)接收者能够检验和证实消息的合法性、真实性和完整性。 – 2) 消息的发送者不能抵赖。除了合法的消息发送者,其它人不能伪造合法的消息 ¨ 可用来做鉴别的函数分为三类: – 1)消息加密函数(Message encryption):用完整信息的密文作为对信息的鉴别。 – 2)消息鉴别码MAC(Message Authentication Code):公开函数+密钥产生一个固定长度的值作为鉴别标识。 – 3)杂凑函数(Hash Function):是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。
常规加密提供鉴别 ¨报文加密能提供一种鉴别的措施,常规加密和公钥加密的机制有所不同。直接考虑常规加密方法如下图所示: ¨ 常规加密:保密和鉴别
¨使用密钥K对源点A传送到终点B的报文加密,密钥仅有A和B两方知道。¨如果没有其它方知道该密钥,那么就能提供保密性,因为没有其他方能解密得出报文的明文。 ¨另外,可以说B确信收到的报文是由A产生的,因为A是拥有密钥K并构建出B能解密的密文的唯一的另外一方。
¨B方要对报文进行鉴别,需要某些自动化的手段确定经解密得出的明文是否合法,由此确定报文来自A且没有被修改。 ¨要判断明文是否合法,可以强制明文有某种结构,此种结构是易于识别的。 ¨例如,可以在加密前对每个报文附加检验和FCS,如下图所示:
¨ 附加FCS识别明文
公钥加密提供鉴别 ¨公开密钥加密的直接用法提供保密,如下图所示: ¨ ¨ 公钥加密:保密性
¨源点A使用终点B的公开密钥KUb对报文M进行加密。 ¨因为只有B拥有对应的私有密钥KRb,因此只有B能对报文进行解密。 ¨然而,任何一个攻击者都可以使用B的公开密钥加密报文,假称它是发自A的,所以上图的机制不提供鉴别。
¨为了提供鉴别,A使用它的私有密钥对报文加密(也叫签名),而B使用A的公开密钥进行解密,如下图所示。 ¨ 公钥加密:鉴别和签名
¨这种方式提供的鉴别措施与常规加密在 原理上是一致的: – A是唯一的拥有该报文私有密钥KRa的一方,若B能用KUa解密出合法的明文,则该报文必定来自A。 ¨然而,只要拥有A的公开密钥,任何人都可以对报文解密,因此上图的机制只提供鉴别不提供保密。
¨为了既提供保密性又提供鉴别,A可以先使用它的私有密钥对报文M进行加密提供签名,然后使用B的公开密钥来提供保密性,如下图所示。 ¨ 公钥加密:保密、鉴别和签名
使用MAC提供鉴别 ¨另一种可供选择的鉴别技术是使用一个密钥产生一个短小的定长数据分组,即报文鉴别码MAC(Message Authentication Code),并将它附加在报文中。 ¨该技术假定通信双方A和B共享一个密钥K。
¨当A要给B发送报文时,先计算MAC,MAC=CK(M),然后把加上MAC的报文发给B。 ¨B将收到的MAC与自己计算出的MAC进行比较,若匹配,则: – 1) 接收者可以确信消息M未被改变。 – 2)接收者可以确信消息来自所声称的发送者。 ¨如下图所示:
¨在上图中只提供鉴别而不提供保密,因为报文作为一个整体在传输。
¨保密性由在对使用MAC算法之后或之前的报文加密来提供,如下图。
¨MAC函数类似于加密函数,但最大的区别是: – MAC函数无需是可逆的;而由于需要解密,加密函数则必须是可逆的。 ¨由于鉴别函数的这个数学性质使得它比加密函数更不易被破解。
(2)杂凑函数 ¨ 杂凑值用如下形式的函数H产生的: ¨ h = H(M) – 其中M是变长的报文,H(M)是定长的杂凑值。 – 发送方把杂凑值附加到报文上,接收方重算报文的杂凑值来鉴别该报文。 ¨ 杂凑函数与MAC函数的区别在于: – MAC需要密钥,速度慢; – 杂凑函数不需要共享的密钥,直接产生鉴别码,速度快。
对杂凑函数的需求 ¨ 杂凑函数的目的是为文件、报文或其他的分组数据产生“指纹”。要用于报文鉴别,杂凑函数H必须具有如下性质: – 1)H能用于任何大小的数据分组。 – 2)H产生定长输出。 – 3)对于任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为可能。 – 4)对于任何给定的码h,寻找x使得H(x)=h在计算上是不可行的。这个性质也称为单向性。 – 5)对任何给定的分组x,寻找不等于x的y,使得H (y)=H(x)在计算上是不可行的。这个性质也称为弱抗冲突性。 – 6)寻找分组对(x,y)且x、y使得H(x)=H(y) 在计算上是不可行的。这个性质也称为强抗冲突性。 |