(第十四讲) 认证 张焕国 武汉大学计算机学院 密 码 学 (第十四讲) 认证 张焕国 武汉大学计算机学院
目 录 1、密码学的基本概念 2、古典密码 3、数据加密标准(DES) 4、高级数据加密标准(AES) 5、中国商用密码(SMS4) 目 录 1、密码学的基本概念 2、古典密码 3、数据加密标准(DES) 4、高级数据加密标准(AES) 5、中国商用密码(SMS4) 6、分组密码的应用技术 7、序列密码 8、习题课:复习对称密码 9、公开密钥密码(1)
目 录 10、公开密钥密码(2) 11、数字签名(1) 12、数字签名(2) 13、HASH函数 14、认证 15、密钥管理 目 录 10、公开密钥密码(2) 11、数字签名(1) 12、数字签名(2) 13、HASH函数 14、认证 15、密钥管理 16、PKI技术 17、习题课:复习公钥密码 18、总复习/检查:综合实验
一、认证的概念 认证(Authentication)又称鉴别,确认,它是证实某人某事是否名符其实或是否有效的一个过程。 认证往往是许多应用系统中安全保护的第一道设防,因而极为重要。
一、认证的概念 认证模型 No 为真吗? 要认证的人或事 参数 人或事为假 Yes 人或事为真
一、认证的概念 认证参数有口令、标识符、密钥、信物、智能卡、指纹、视网纹等。 一般说来,利用人的生理特征参数进行认证的安全性高,但技术要求也高,至今尚未普及。 目前广泛应用的还是基于密码的认证技术。 目前主要有:身份认证,站点认证,报文认证
一、认证的概念 认证和加密的区别: 加密用以确保数据的保密性,而认证用以确保报文发送者和接收者的真实性以及报文的完整性。
一、认证的概念 认证和数字签名的区别: ①认证总是基于某种收发双方共享的保密数据来认证被鉴别对象的真实性,而数字签名中用于验证签名的数据是公开的。 ②认证允许收发双方互相验证其真实性,不准许第三者验证,而数字签名允许收发双方和第三者都能验证。 ③数字签名具有发送方不能抵赖、接收方不能伪造和能够公开验证解决纠纷,而认证则不一定具备。
二、站点认证 为了确保通信安全,在正式传送报文之前,应首先认证通信是否在意定的站点之间进行,这一过程称为站点认证。 站点认证是通过验证加密的数据能否正确地在两个站点间进行传送来实现的。
二、站点认证 设A、B是意定的两个站点,A是发送方,B是接收方。利用传统密码体制,则A和B相互认证的过程如下(假定A、B共享保密的会话密钥KS ): 1. A产生随机数RA 1. B产生随机数RB 2. A→B:E(RA ,KS) 2. B接受E(RA ,KS) 3. A接受E(RA||RB ,KS) 3. B→A:E(RA||RB ,KS) 并解密判断 RA = RA? 4. B接受E(RB ,KS) 4. A→B:E(RB ,KS) 5. B判断 RB = RB?
二、站点认证 利用公钥密码,则A和B相互认证的过程如下: 1. A产生随机数RA 1. B产生随机数RB 2. A→B:RA 2. B接受RA 3. B→A:D(RA||RB ,KdB) 3. A接受D(RA||RB ,KdB) 并验证B的签名 4. A→B:D(RB ,KdA) 4. B接受D(RB ,KdA) 并验证A的签名 注意:基于公钥密码的站点认证本质上是利用数字签名来确保A,B的真实性。
三、报文认证 报文认证必须使通信方能够验证每份报文的发送方、接收方、内容和时间性的真实性和完整性。能够确定: (1)报文是由意定的发送方发出的; (2)报文传送给意定的接收方; (3)报文内容有无篡改或发生错误; (4)报文按确定的次序接收。
三、报文认证 1、报文源的认证 采用传统密码 设A为发送方,B为接收方。A和B共享保密的密钥KS。A的标识为IDA,报文为M,在报文中增加标识IDA ,那么B认证A的过程如下: A→B:E(IDA||M ,KS) B收到报文后用KS解密,若解密所得的发送方标识与IDA相同,则B认为报文是A发来的。
三、报文认证 1、报文源的认证 采用公开密钥密码 报文源的认证十分简单。只要发送方对每一报文进行数字签名,接收方验证签名即可: A→B:<M,SIG(IDA||M ,KdA)> B:VER( SIG(IDA||M ,KdA) ,KeA ) 若收方验证签名正确,则认为发方为真。
三、报文认证 2、报文宿的认证 只要将报文源的认证方法稍加修改便可实现报文宿的认证。 采用传统密码 在每份报文中加入接收方标识符IDB: A→B:E(IDB||M ,KS) 若采用公开密钥密码 对每份报文用B的公开加密钥进行加密即可。 A→B:E(IDB||M ,KeB)
三、报文认证 3、报文内容的认证 报文内容认证使接收方能够确认报文内容的真实性,这可通过验证认证码 的正确性来实现。 消息认证码MAC(Message Authentication Code)是消息内容和密钥的公开函数,其输出是固定长度的短数据块: MAC=C(M,K) 。
三、报文认证 3、报文内容的认证 通信双方共享秘密钥K。A计算MAC并将报文M和MAC发送给接收方: AB:M ||MAC 接收方收到报文M后用相同的秘密钥K重新计算得出新的MAC,并将其与接收到的MAC进行比较,若二者相等,则认为报文正确真实。
三、报文认证 3、报文内容的认证 网络信道 M MAC M MAC N =? MAC=C(M ,K) 不真实不正确 Y M真实正确
三、报文认证 3、报文内容的认证 在上述方法中,报文是以明文形式传送的,所以该方法可以提供认证,但不能提供保密性。若要获得保密可在MAC算法之后对报文加密: AB:E(M||MAC,K2) 其中 MAC=C(M,K1) 因为只有A和B共享K1,所以可提供认证; 因为只有A和B共享K2,所以可提供保密。
三、报文认证 3、报文内容的认证 注意: MAC算法不要求可逆性而加密算法必须是可逆的;
三、报文认证 3、报文内容的认证 注意:理论上,对不同的M,应不同产生MAC。因为若M1M2,而MAC1=MAC2,则攻击者可将M1篡改为M2,而接收方不能发现。 但是要使函数C具备上述性质,将要求报文认证码MAC至少和报文M一样长,这是不方便的。
三、报文认证 实际应用时要求函数C具有以下性质: 对已知M1和MAC1构造满足MAC2=MAC1的M2在计算上是不可行的; MAC函数应是均匀分布的,即对任何随机的报文M1和M2 ,MAC1=MAC2 的概率是2-n,其中n是MAC的位数; 设M2是M1的某个已知的变换,即M2=f(M1),如f改变M1的一位或多位,那么MAC1=MAC2 的概率2-n。
四、利用分组密码产生MAC 利用强的分组密码可以产生MAC: 需认证的数据被分成128位的分组D1||D2||…||DN,若最后分组不足128位,则在其后填0直至成为128位的分组。 用AES按CBC方式加密,产生MAC。 D1 D2 Dn-1 Dn IV AES AES AES AES K K K K O1 O2 On-1 MAC
四、利用分组密码产生MAC 其中,O1 = AES(D1IV ,K) Oi = AES(DiOi-1 ,K) (2iN) MAC=On IV为初始向量,此处取0;K为密钥。 很容易用其它强的分组密码来计算产生MAC。
五、利用HASH函数产生MAC 1、HASH函数的应用 Hash函数将任意长的报文M变换为定长的码,记为:h=HASH(M)或 h=H(M)。 Hash码也称报文摘要。 它具有错误检测能力。 用Hash码作MAC,可认证报文; 用Hash码辅助数字签名; Hash函数可用于保密。
五、利用HASH函数产生MAC 2、安全Hash函数的应用: 报文认证 AB:< M || E(Hash(M),K)> 发方生成报文M的Hash码Hash(M)并使用传统密码对其加密,将加密后的结果附于消M之后发送给接收方。 B由M重新计算Hash(M),并与接受到的比较。由于Hash(M)受密码保护,所以B通过比较Hash(M)可认证报文的真实性和完整性。
五、利用HASH函数产生MAC 2、安全Hash函数的应用: 保密与认证 AB:< E(M || Hash(M),K)> 由于只有A和B共享秘密钥,所以B通过比较Hash(M)可认证报文源和报文的真实性。由于该方法是对整个报文M和Hash码加密,所以也提供了保密性。
五、利用HASH函数产生MAC 2、安全Hash函数的应用: 数字签名与认证 AB:< M || D(H(M),KdA)> 发方使用公钥密码用其私钥KdA对消息M的hash码签名,并将其附于报文M之后发送给收方。B可以验证Hash值来认证报文的真实性,因此该方法可提供认证;由于只有发方可以进行签名,所以该方法也提供了数字签名。
习题 ①设计一个综合报文认证方案,包括报文源、报文宿、报文顺序、报文内容的认证。 ②论述安全HASH函数 在认证中的作用。
谢 谢!