从大的方面说,通信领域需要解决的核心问题有两个,即所谓可靠性问题和有效性问题。任何一种技术的产生或者协议的制定都是紧紧围绕这两点的。以计算机通信为例,根据ISO(国际标准化组织)所定义的OSI(开放系统互连)模型,将其功能划分为相对独立的七个层次。而在每一层次,无论是链路层、网络层还是传输层,都根据具体需要采取了相应的技术和协议来解决可靠性和有效性的问题。安全性是可靠性问题的一个重要方面。在很多情况下不仅仅要求信息在信道上被准确无误地传输,而且还要求能够确认对方的身份,并且设法将通信内容的可知性限制在一定的范围内。认证技术和加密技术可以满足上述需要。
1 认证的理论和技术
认证主要包括用户身份认证和信息认证两个方面。前者用于证明或否认通信实体所宣称的身份,后者用于对通信信息进行完整性检查并提供发送方的不可抵赖性。在某些情况下,信息认证甚至比信息保密更为重要[1],因为有时主动攻击的威胁远大于被动攻击。下面分别对两种认证的理论和技术进行讨论,其默认前提条件是通信双方已经就加密算法和所用密钥达成了一致。
认证技术及其在移动通信系统中的应用
1.1 身份认证
身份认证的方法有口令匹配法、基于智能卡的身份认证和生物特征认证法。下面重点研究基于共享密钥的身份认证技术。这种认证技术的原理是验证通信双方是否拥有相同的密钥,常用的协议形式是询问/响应模式。认证过程如图1所示,过程描述如下:
(a)首先甲方选择一个随机数R1,并将它发送给乙方;
(b)乙方收到R1后使用既定的算法对它进行加密,同时也选择一个随机数R2,然后将加密结果E{K,R1}和R2发送给甲方;
(c)甲方使用密钥K对E{K,R1}进行解密得到R1’,将R1’与R1进行比较。如果相等,使用K对R2进行加密,并将加密结果E{K,R2}发送给乙方;否则,甲方对乙方的认证以失败结束;
(d)乙方使用K对E{K,R2}进行解密得到R2’,将R2与R2’进行比较,如果相等,则甲方就通过了乙方的认证;否则,乙方对甲方的认证失败。
显然,上述过程完成了双向认证,既包括甲方对乙方的认证,也包括乙方对甲方的认证。只有两次认证都成功时,整个认证结果才是成功的。
根据使用的加密算法的不同,基于密钥的身份认证又可分为秘密密钥加密认证和公开密钥加密认证[2]。也可以采用消息摘要进行身份认证,过程如图2所示,说明如下:
(a)甲方生成一个时间戳1,然后将它附在密钥之后,计算联合消息摘要MD{密钥 || 时间戳1},将时间戳1和MD{密钥 || 时间戳1}发送给乙方;