1、7 公钥密码算法公钥密码算法n7.0概述n7.1国际标准RSA算法(基于大数分解)n7.2ElGamal算法(基于离散对数)n7.3美国标准DSS/DSA算法n7.4椭圆曲线密码(ECC)算法n7.5其它公钥密码算法 7.0 公钥密码算法概述公钥密码算法概述n公钥密码算法(非对称算法)用公开密钥(简称公钥)加密,用私人密钥(简称私钥)解密。当消息用私人密钥加密(签名)而用公开密钥解密(验证)时,称为数字签名。n在公钥密码与数字签名算法领域,DSA(数字签名算法)是NIST专门制定的数字签名标准(DSS)算法,只能用于签名验证,不能用于保密或密钥分配,安全强度较低,速度很慢。RSA算法即可用于保
2、密,又可用于签名验证,安全性比DSA算法高,速度也比DSA算法快多了,是第一个较完善的、最容易理解和实现的公钥算法,被很多国家和组织作为标准,包括国际数字签名标准ISO 9796。不过,RSA算法速度也较慢。我国密码学家陶仁骥等在20世纪80年代就提出了一种基于有限自动机的公钥算法(FAPKC),性能不错,既可用于签名验证,又可用于保密或密钥交换。虽然有些科研人员指出该算法存在缺陷,但只要其思想可取,就是有价值的。密码算法本来就是随着时间和实践逐步完善的。陶仁骥等已提出了新的改进算法。FAPKC算法可能是我国20世纪所公布的唯一有完全自主知识产权的密码算法。7.0 公钥密码算法概述公钥密码算法
3、概述(续)(续)n现在,有一种称为ECC(椭圆曲线密码)的公钥算法,性能优越,安全性比RSA算法高多了,速度也比RSA算法快多了,带宽要求低,曲线资源丰富,易于软硬件和智能卡实现,已成为新的公钥密码和数字签名国际标准,并被我国采纳。加拿大和日本向NESSIE提交的几个公钥密码和数字签名算法就是基于ECC的。我国科研人员陈建华教授在ECC领域做出了较大贡献。n非对称算法(公钥密码算法)的基本设计思想是计算复杂性和陷门单向函数。7.0 公钥密码算法概述公钥密码算法概述与对称算法结合与对称算法结合n在实际应用中,公钥密码算法不会取代对称算法。公钥密码算法一般不用来加密消息,而用作身份认证和加密会话密
4、钥。因为:(算法是公开且好的算法有限,所以需要加密密钥和解密密钥)n1.对称算法一般比公钥算法快一千倍。n2.公钥密码系统对选择明文攻击是脆弱的。如果C=E(P),当P是N个可能明文集中的一个明文,那么密码分析者只需要加密所有N个可能的明文,并能与C比较结果(加密密钥是公开的)。用这种方法,他不可能恢复解密密钥,但他能够确定P。n在大多数实际应用中,公钥密码用作身份认证和加密会话密钥。这些会话密钥用在对称算法中,对通信消息进行保密。有时称这种系统为混合密码系统混合密码系统。n把公钥密码用于密钥分配解决了很重要的密钥管理问题。7.0 公钥密码算法概述公钥密码算法概述与与Hash函数结合函数结合n
5、在实际的实现过程中,采用公钥密码算法对长文件签名效率太低。为了节约时间,数字签名协议经常和单向Hash函数一起使用。并不对整个文件签名,只对文件的Hash值签名。n由于公钥密码算法用于保密和用于签名的原理是一样的,此处只介绍数字签名算法。7.1 RSA算法算法(基于大数分解基于大数分解)nRSA是第一个既能用于数据加密也能用于数字签名的算法。算法的名字以发明者的名字命名:Ron Rivest,Adi Shamir 和Leonard Adleman。RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。nRSA算法过程:算法过程:n首先,选取三个数,p,q,e,其中 p,q
6、是两个相异的大质数,e是与(p-1)(q-1)互质的数,计算 n=p*q,e,n便是公钥;接著,用欧几里德扩展法计算d,使得de1 mod(p-1)(q-1),p,q,d便是私钥。假设被签消息为M,则n签名过程为S=M d mod n n验证过程为M=S e mod n 7.1 RSA算法算法性能性能n由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密和签名。n总之,RSA是被研究最广泛的公钥算法,从提出到现在已经二十年,经历了各种攻击的考验,普遍认为是当时最优秀的公钥方案之一。RSA的安全性依赖于大数
7、的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,即RSA的重大缺陷是无法从理论上把握它的保密性能如何。RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n至少也要600 b以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(安全电子商务)协议中要求CA采用2048 b长的密钥,其他实体使用1024 b的密钥。IEEE已批准RSA成为802.11标准的补充标准。7.2 ElGamal算法算法(基于离散对数基于离散对
8、数)nElGamal算法既能用于数据加密也能用于数字签名。n密钥对产生办法为:首先选择一个素数p,两个随机数g和x,g,x p,计算 y=g x mod p,则其公钥为y,g和p。私钥是x。g和p可由一组用户共享。ElGamal数字签名过程为:n假设被签消息为M,首先选择一个随机数k,k与 p-1互质,计算a=g k mod p。再用扩展 Euclide算法对下面方程求解b:nM=x a+kb mod(p-1)。签名就是(a,b)。随机数k须丢弃。n验证时要验证下式:(y a a b)mod p=g M mod p。同时一定要检验是否满足1a p。否则签名容易伪造。ElGamal签名的安全性依
9、赖于乘法群上的离散对数计算难题。n素数p必须足够大,且p-1至少包含一个大素数因子以抵抗Pohlig&Hellman算法的攻击。M一般都应采用消息的散列值(如SHA算法序列)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。ElGamal的一个不足之处是它的密文成倍扩张。7.3 美国标准美国标准DSS/DSA算法算法nDSA(数字签名算法)是Schnorr和ElGamal签名算法的变种,是美国NIST专门制定的数字签名标准(DSS)算法,只能用于签名验证,不能用于保密或密钥分配。nDSA算法的安全性依赖于整数有限域上的离散对数问题,安全强
10、度和速度均低于RSA算法。7.4 椭圆曲线密码椭圆曲线密码(ECC)算法算法n(基于基于椭圆曲线上的离散对数离散对数)nECC(椭圆曲线密码)算法性能优越,安全性比RSA算法高多了,速度也比RSA算法快多了,带宽要求低,曲线资源丰富,易于软硬件和智能卡实现,已成为新的公钥密码和数字签名国际标准,并被我国采纳。加拿大和日本向NESSIE提交的几个公钥密码和数字签名算法就是基于ECC的。我国科研人员陈建华教授在ECC领域做出了较大贡献。ECC已被IEEE公钥密码标准P1363采用。7.5 其它其它公钥密码公钥密码算法算法n公钥密码算法还有Rabin算法、Schnorr算法、俄罗斯数字签名标准GOS
11、T算法和日本的ESIGN算法等。nRabin算法的安全性低于RSA算法;Schnorr算法的安全性低于ElGamal算法。nGOST算法安全性很高,但速度比DSA算法慢,公钥参数的生成和存储也比DSA算法复杂。nESIGN算法的安全性不低于RSA和DSA,但速度快多了。8 常用认证与密钥交换算法常用认证与密钥交换算法n认证与密钥交换协议比较多,可分为两类:1)对称认证(与密钥交换),即常用的口令认证,例如EAP-MD5和移动通信系统中的AKG(认证与密钥产生)等。2)非对称认证(与密钥交换),基于公钥密码算法。著名的非对称认证协议是ITU-T X.509协议;著名的密钥交换协议是IKE(互联网
12、密钥交换)中采用的Diffie-Hellman协议。欧洲的非对称认证新标准是法国人Ecole Normale Suprieure设计的GPS算法。8 常用认证与密钥交换算法常用认证与密钥交换算法8.1 Diffie-Hellman算法算法nIKE(互联网密钥交换)中采用的Diffie-Hellman密钥交换协议是第一个公钥密码算法,早在1976年就提出了,其安全性源于有限域上计算离散对数比计算指数更为困难。首先,A和B协商一个大素数n和g,g是模n的本原元;这两个整数不必保密;要求(n-1)/2也是素数。则Diffie-Hellman算法过程如下:n(1)A选取一个大随机整数x并把X=g x
13、mod n发送给B;n(2)B选取一个大随机整数y并把Y=g y mod n发送给A;n(3)A计算K=Y x mod n;n(4)B计算K*=X y mod n。nK=K*=g y x mod n,密钥交换成功。8 常用认证与密钥交换算法常用认证与密钥交换算法8.2 GPS算法算法nGPS算法是NESSIE收到的唯一的非对称认证方案,被采纳为欧洲标准。这是一个交互式零知识证明协议,其特点为:基于一般任意模数离散对数问题(这等价于整数分解问题和计算素数模的离散对数问题)的可证明安全性,身份密钥短,信息传输量非常小,在线计算量最小化。nGPS算法是Schnorr的改进方案。8.3 对称密码体制中
14、的密钥管理对称密码体制中的密钥管理(1)对称密码体制中密钥分配的基本方法对称密码体制中密钥分配的基本方法两个用户A和B获得共享密钥的方法有以下几种:密钥由A选取并通过物理手段发送给B。密钥由第三方KDC选取并通过物理手段发送给A和B。如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方。如果A和B与第三方KDC分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。第4种方法比较常用,其中的第三方通常是一个负责为用户分配密钥的密钥分配中心。这时每一用户必须和密钥分配中心有一个共享密钥,称为主密钥。通过主密钥分配给一对用户的密钥称为会话密钥,
15、用于这一对用户之间的保密通信。通信完成后,会话密钥即被销毁。如上所述,如果用户数为n,则会话密钥数为n(n-1)/2。但主密钥数却只需n个,所以主密钥可通过物理手段发送。8.3 对称密码体制中的密钥管理对称密码体制中的密钥管理(2)密钥的分层管理密钥的分层管理n网络中如果用户数目非常多而且分布的地域非常广,一个KDC就无法承担为用户分配密钥的重任。问题的解决方法是使用多个KDC的分层结构。例如,在每个小范围(如一个LAN或一个建筑物)内,都建立一个本地KDC。同一范围的用户在进行保密通信时,由本地KDC为他们分配密钥。如果两个不同范围的用户想获得共享密钥,则可通过各自的本地KDC,而两个本地K
16、DC的沟通又需经过一个全局KDC。这样就建立了两层KDC。类似地,根据网络中用户的数目及分布的地域,可建立3层或多层KDC。分层结构可减少主密钥的分布,因为大多数主密钥是在本地KDC和本地用户之间共享。再者,分层结构还可将虚假KDC的危害限制到一个局部区域。8.3 对称密码体制中的密钥管理对称密码体制中的密钥管理(3)会话密钥的有效期会话密钥的有效期n会话密钥更换得越频繁,系统的安全性就越高。因为敌手即使获得一个会话密钥,也只能获得很少的密文。但另一方面,会话密钥更换得太频繁,又将延迟用户之间的交换,同时还造成网络负担。所以在决定会话密钥的有效期时,应权衡矛盾的两个方面。n对面向连接的协议,在
17、连接未建立前或断开时,会话密钥的有效期可以很长。而每次建立连接时,都应使用新的会话密钥。如果逻辑连接的时间很长,则应定期更换会话密钥。n无连接协议(如面向业务的协议),无法明确地决定更换密钥的频率。为安全起见,用户每进行一次交换,都用新的会话密钥。然而这又失去了无连接协议主要的优势,即对每个业务都有最少的费用和最短的延迟。比较好的方案是在某一固定周期内或对一定数目的业务使用同一会话密钥。8.3 对称密码体制中的密钥管理对称密码体制中的密钥管理(4)无中心的密钥协商无中心的密钥协商 A向B发出建立会话密钥的请求和一个一次性随机数N1。B用与A共享的主密钥MKm对应答的消息加密,并发送给A。应答的
18、消息中有B选取的会话密钥、B的身份、f(N1)和另一个一次性随机数N2。A使用新建立的会话密钥KS对f(N2)加密后返回给B。8.3 对称密码体制中的密钥管理对称密码体制中的密钥管理(5)密钥的控制使用密钥的控制使用密钥可根据其不同用途分为会话密钥和主密钥两种类型,会话密钥又称为数据加密密钥,主密钥又称为密钥加密密钥。由于密钥的用途不同,因此对密钥的使用方式也希望加以某种控制。如果主密钥泄露了,则相应的会话密钥也将泄露,因此主密钥的安全性应高于会话密钥的安全性。一般在密钥分配中心以及终端系统中主密钥都是物理上安全的。8.4 公钥密码体制中的密钥管理公钥密码体制中的密钥管理(一一)公钥的分配方法
19、公钥的分配方法1.公开发布公开发布指用户将自己的公钥发给每一其他用户,或向某一团体广播。例如PGP(pretty good privacy)中采用了RSA算法,它的很多用户都是将自己的公钥附加到消息上,然后发送到公开(公共)区域,如因特网邮件列表。这种方法虽然简单,但有一个非常大的缺点,即任何人都可伪造这种公开发布。如果某个用户假装是用户A并以A的名义向另一用户发送或广播自己的公开钥,则在A发现假冒者以前,这一假冒者可解读所有意欲发向A的加密消息,而且假冒者还能用伪造的密钥获得认证。8.4 公钥密码体制中的密钥管理公钥密码体制中的密钥管理(一一)公钥的分配方法公钥的分配方法(续)(续)2.公用
20、目录表公用目录表指一个公用的公钥动态目录表,公用目录表的建立、维护以及公钥的分布由某个可信的实体或组织承担,称这个实体或组织为公用目录的管理员。与第1种分配方法相比,这种方法的安全性更高。该方案有以下一些组成部分:管理员为每个用户都在目录表中建立一个目录,目录中有两个数据项:一是用户名,二是用户的公开钥。每一用户都亲自或以某种安全的认证通信在管理者那里为自己的公开钥注册。(一一)公钥的分配方法公钥的分配方法 2.公用目录表公用目录表(续)(续)用户如果由于自己的公开钥用过的次数太多或由于与公开钥相关的秘密钥已被泄露,则可随时用新密钥替换现有的密钥。管理员定期公布或定期更新目录表。例如,像电话号
21、码本一样公布目录表或在发行量很大的报纸上公布目录表的更新。用户可通过电子手段访问目录表,这时从管理员到用户必须有安全的认证通信。本方案的安全性虽然高于公开发布的安全性,但仍易受攻击。如果敌手成功地获取管理员的秘密钥,就可伪造一个公钥目录表,以后既可假冒任一用户又能监听发往任一用户的消息。而且公用目录表还易受到敌手的窜扰。8.4 公钥密码体制中的密钥管理公钥密码体制中的密钥管理(一一)公钥的分配方法公钥的分配方法(续)(续)3.公钥管理机构如果在公钥目录表中对公钥的分配施加更严密的控制,安全性将会更强。与公用目录表类似,这里假定有一个公钥管理机构来为各用户建立、维护动态的公钥目录,但同时对系统提
22、出以下要求,即:每个用户都可靠地知道管理机构的公开钥,而只有管理机构自己知道相应的秘密钥。公开钥的分配步骤如下(如图):用户A向公钥管理机构发送一个带时戳的消息,消息中有获取用户B的当前公钥的请求。管理机构对A的请求作出应答,应答由一个消息表示,该消息由管理机构用自己的秘密钥SKAU加密,因此A能用管理机构的公开钥解密,并使A相信这个消息的确是来源于管理机构。(一一)公钥的分配方法公钥的分配方法 3.公钥管理机构公钥管理机构(续)(续)应答的消息中有以下几项:n B的公钥PKB,A可用之对将发往B的消息加密;n A的请求,用于A验证收到的应答的确是对相应请求的应答,且还能验证自己最初发出的请求
23、在被管理机构收到以前是否被篡改;n 最初的时戳,以使A相信管理机构发来的消息不是一个旧消息,因此消息中的公开钥的确是B当前的公钥。A用B的公开钥对一个消息加密后发往B,这个消息有两个数据项:一是A的身份IDA,二是一个一次性随机数N1,用于惟一地标识这次业务。(一一)公钥的分配方法公钥的分配方法 3.公钥管理机构公钥管理机构(续)(续)B以相同方式从管理机构获取A的公开钥(与步骤、类似)。这时,A和B都已安全地得到了对方的公钥,所以可进行保密通信。然而,他们也许还希望有以下两步,以认证对方。(一一)公钥的分配方法公钥的分配方法 3.公钥管理机构公钥管理机构(续)(续)B用PKA对一个消息加密后
24、发往A,该消息的数据项有A的一次性随机数N1和B产生的一个一次性随机数N2。因为只有B能解密的消息,所以A收到的消息中的N1可使其相信通信的另一方的确是B。A用B的公开钥对N2加密后返回给B,可使B相信通信的另一方的确是A。以上过程共发送了7个消息,其中前4个消息用于获取对方的公开钥。用户得到对方的公开钥后保存起来可供以后使用,这样就不必再发送前4个消息了,然而还必须定期地通过密钥管理中心获取通信对方的公开钥,以免对方的公开钥更新后无法保证当前的通信。8.4 公钥密码体制中的密钥管理公钥密码体制中的密钥管理(一一)公钥的分配方法公钥的分配方法(续)(续)4.公钥证书上述公钥管理机构分配公开钥时
25、也有缺点,由于每一用户要想和他人联系都需求助于管理机构,所以管理机构有可能成为系统的瓶颈,而且由管理机构维护的公钥目录表也易被敌手窜扰。(一一)公钥的分配方法公钥的分配方法 4.公钥证书公钥证书(续)(续)n分配公钥的另一方法是公钥证书,用户通过公钥证书来互相交换自己的公钥而无须与公钥管理机构联系。公钥证书由证书管理机构CA(certificate authority)为用户建立,其中的数据项有与该用户的秘密钥相匹配的公开钥及用户的身份和时戳等,所有的数据项经CA用自己的秘密钥签字后就形成证书,即证书的形式为CA=ESKCAT,IDA,PKA,其中IDA是用户A的身份,PKA是A的公钥,T是当
26、前时戳,SKCA是CA的秘密钥,CA即是为用户A产生的证书。产生过程如图5.5所示。用户可将自己的公开钥通过公钥证书发给另一用户,接收方可用CA的公钥PKCA对证书加以验证,即DPKCACA=DPKCAESKCAT,IDA,PKA=(T,IDA,PKA)n因为只有用CA的公钥才能解读证书,接收方从而验证了证书的确是由CA发放的,且也获得了发送方的身份IDA和公开钥PKA。时戳T为接收方保证了收到的证书的新鲜性,用以防止发送方或敌方重放一旧证书。因此时戳可被当作截止日期,证书如果过旧,则被吊销。8.4 公钥密码体制中的密钥管理公钥密码体制中的密钥管理(二二)用公钥加密来分配对称密钥用公钥加密来分
27、配对称密钥1.简单分配如果A希望与B通信,可通过以下几步建立会话密钥:A产生自己的一对密钥PKA,SKA,并向B发送PKA|IDA,其中IDA表示A的身份。B产生会话密钥KS,并用A的公开钥PKA对KS加密后发往A。A由DSKAEPKAKS恢复会话密钥。因为只有A能解读KS,所以仅A、B知道这一共享密钥。A销毁PKA,SKA,B销毁PKA。8.4 公钥密码体制中的密钥管理公钥密码体制中的密钥管理(二二)用公钥加密来分配对称密钥用公钥加密来分配对称密钥(续续)n2.具有保密性和真实性的密钥分配假定A、B双方已完成公钥交换,可按以下步骤建立共享会话密钥:A用B的公开钥加密A的身份IDA和一个一次性
28、随机数N1后发往B,其中N1用于惟一地标识这一业务。(二二)用公钥加密来分配对称密钥用公钥加密来分配对称密钥2.具有保密性和真实性的密钥分配具有保密性和真实性的密钥分配(续续)B用A的公开钥PKA加密A的一次性随机数N1和B新产生的一次性随机数N2后发往A。因为只有B能解读中的加密,所以B发来的消息中N1的存在可使A相信对方的确是B。A用B的公钥PKB对N2加密后返回给B,以使B相信对方的确是A。A选一会话密钥KS,然后将M=EPKBESKAKS发给B,其中用B的公开钥加密是为保证只有B能解读加密结果,用A的秘密钥加密是保证该加密结果只有A能发送。B以DPKADSKBM恢复会话密钥。8.4 公
29、钥密码体制中的密钥管理公钥密码体制中的密钥管理(三三)Diffie-Hellman密钥交换密钥交换nDiffie-Hellman密钥交换协议易受中间人攻击。8.5 密钥管理系统密钥管理系统8.5 密钥管理系统密钥管理系统(续)(续)密钥管理覆盖了密钥的整个生命周期,包括:(1)用户注册用户注册。在此阶段,一个实体成为一个安全域中的授权成员。这包括通过一个安全的、一次性技术实现初始密钥材料(如共享的口令或PIN)的获取、创建或交换。(2)系统和用户初始化系统和用户初始化。系统初始化包括建立、配置一个用于安全操作的系统。用户初始化由一个实体初始化他的加密应用(如软件,硬件的安装和初始化),它包括用
30、户或用户登记期间所获得的初始密钥材料的安装。(3)密钥装入密钥装入。密钥材料(指用于生产密钥的一些系统要素)安装的安全性是整个系统的关键。在本阶段,密钥材料在一个实体的软件、硬件中安装以便使用。安装时可使用的技术包括:手工输入口令或PIN,磁盘交换,ROM设备,芯片卡或别的硬件设备。初始密钥材料可用于建立安全的在线会话实现工作密钥的建立。当上述项目第一次建立时,新的密钥材料要加入到现有的密钥材料中或现有密钥材料需要被取代时,需要进行密钥材料的安装。8.5 密钥管理系统密钥管理系统(续)(续)(4)密钥生成密钥生成。密钥的生成应包括一定的措施以确保用于目标应用或算法的必要属性,也包括可预见概率的
31、随机性。一个实体可以生成自己的密钥,也可以从可信的系统处获取。(5)密钥注册密钥注册。在密钥登记期间,密钥材料被登记下来,并与一定实体的信息和属性绑定在一起。信息典型的包括与密钥材料相关的实体的身份,但也可以包括认证信息或指定信任级别。如认证生成公钥证书,并通过一个公开目录或其他方式使之对别人可用。(6)密钥使用密钥使用。密钥管理生命周期的目的就是要方便密钥材料的使用。通常情况下,密钥在有效期之内都可以使用。这里还可以细分,如一个公钥对中,某种情况下公钥可能不再能用于加密,但对应的私钥可以保留用于解密。(7)密钥备份密钥备份。在独立的安全存储媒体中的密钥材料的副本为密钥的恢复提供了数据源。备份
32、是指在操作使用期间的短期存储。8.5 密钥管理系统密钥管理系统(续)(续)(8)密钥存档密钥存档。当密钥材料不再正常使用时,需要对其进行存档,以便在某种情况下特别需要时能够对其进行检索。存档指的是对过了有效期的密钥进行长期的离线保存。(9)密钥更新密钥更新。在密钥有效期快要结束时,如果有继续对该密钥加密的内容进行保护的需要,该密钥需要由一个新的密钥来取代,这就是密钥的更新。密钥更新可以通过再生密钥取代原有密钥的方式来实现。(10)密钥恢复密钥恢复。从备份或档案中检索密钥材料的过程称为密钥恢复。如果密钥材料因为某种原因丢失,同时又没有安全威胁的风险,则可以从原有的安全备份中恢复密钥。(11)密钥
33、注销与销毁密钥注销与销毁。当不再需要保留密钥材料或不再需要维护它与某个实体的联系时,该密钥应该被取消登记,即所有的密钥材料及其相关的记录应从所有现有密钥的正式记录中清除,所有的密钥备份应被销毁。任何存储过密钥材料的媒体应该被安全删除以消除密钥材料的所有信息,使得它不可以被物理的或电子的方式恢复。8.5 密钥管理系统密钥管理系统(续)(续)(12)密钥撤销密钥撤销。在密钥的正常的生命周期结束之前,将密钥撤销有时是必要的,如密钥的安全受到威胁,实体发生组织关系的变动等。这通过通知所有可能使用该密钥材料的实体来实现,通知应包括密钥材料的完整ID、撤销的日期时间、撤销的原因等。对于基于证书分发的公钥,
34、密钥的撤销则包括撤销相应的证书。基于所提供的撤销信息,别的实体能够决定该如何处理受到撤销密钥保护的信息。密钥管理阶段可分为不同的状态,这与可用性密切相关。(1)使用前(预运行)状态:密钥还不能用于正常的密码操作。(2)使用(运行)状态:密钥是可用的,并处于正常使用中。(3)使用后(后运行)状态:此状态的密钥不再正常使用,但为了某种目的对其进行离线访问是可行的。(4)过期(报废)状态:此状态的密钥不再可用,所有的密钥记录已被删除。8.6 认证与授权认证与授权8.6.1对称认证对称认证n2G/2.5G移动通信系统:Res=A3(Ki,Rand)nEAP-MD5认证:Res=MD5(ID|Ki|Ra
35、nd)用户密码Ki 响应值Res ID 随机数Rand 身份 认证 算法 8.6.2非非对称认证对称认证(一一)数字签名数字签名8.6.2非非对称认证对称认证(二二)ITU-T X.509协议协议n其中,Ta和Tb为时戳,Na和Nb是一次性的随机数,Xa、Ya、Xb和Yb为用户数据,Ka和Kb为加密用的公钥,Ka-1和Kb-1为签名用的私钥。协议的目的是保证Xa、Xb的完整性和Ya、Yb的保密性。n已有很多文献指出该协议存在缺陷。密码协议的成熟模型一般为先认证(签名)再加密,而原X.509协议为先加密再签名认证。一般建议在对Ya和Yb加密前进行签名;不过,除Ya和Yb之外,其他信息都是明文传输
36、的,这样可能还是不够安全。建议对除发送者外的全部信息进行先签名再加密,这样符合密码协议的成熟模型。ITU-T X.509协议是一个应用广泛的身份认证协议,该协议采用公钥算法通信,目的是在两个实体间建立安全通信。过程:1,:)1(abKKaaaaYXBNTABA1,:)2(baKKbbabbYXNANTBAB1,:)3(aKbNABA习题习题n1、网络系统安全机制的简单模型一般可分为两步:n(1)(身份身份)认证与密钥交换认证与密钥交换和(2)保密通信保密通信。n2、身份认证可分为两类:(1)对称对称认证(即常用的口令口令认证);(2)非对称非对称认证(基于数字签名数字签名算法)。n、(1)流密
37、码算法、分组密码算法和公钥密码算法用于加加解密解密(保密保密);(2)分组密码算法的认证模式、单向Hash函数和数字签名算法用于消息消息认证认证(数据校验、窜改检测数据校验、窜改检测);Hash函数和公钥密码算法还可用于(身份身份)认证与密钥交换认证与密钥交换。n、(1)身份认证算法为信息安全提供不可否认不可否认(抗抵赖,抗抵赖,身份真实身份真实)性;(2)加密算法为信息安全提供保密保密性;(3)数据认证算法为信息安全提供完整完整(数据真实数据真实)性。n5、对称算法(含Hash函数和PRNG)的基本设计思想是扩散扩散和混乱混乱。习题习题(续)(续)n6、非对称算法(公钥密码算法)的基本设计思
38、想是计算复杂计算复杂性性和陷门单向函数陷门单向函数。n7、对称加密算法的处理过程一般分为两步:密钥编排密钥编排和数据加密数据加密。n8、产生流密码中的密钥流的一种主要工具是移位寄存器移位寄存器。n9、分组密码设计一般采用SP思想(S盒盒和置换运算置换运算P两种变换)(S盒盒实现混乱;置换运算置换运算P实现扩散)和Feistel结构。n10、AES和Whirlpool算法是根据宽轨迹宽轨迹策略设计的。n11、在实际应用的混合密码系统中,公钥密码公钥密码(非对称非对称)算法用作身份认证和加密会话密钥,对称对称算法用于加密消息。n12、把公钥密码用于密钥分配解决了重要的密钥管理密钥管理问题。习题习题(续)(续)n13、为了节约时间,数字签名协议经常和单向单向Hash函数函数一起使用。并不对整个文件签名,只对文件的Hash值值签名。n14、密码统计测试方法的原理一般是假设检验假设检验。n15、对密码算法f,如果每一位输出依赖于每一位输入,则称f具有完备性完备性。n16、当密码算法f 的任意一位输入改变时,如果平均有一半的输出位改变,则称f具有雪崩效应雪崩效应。n17、当密码算法f 的任意一位输入改变时,如果每一位输出改变的概率为0.5,则称f 满足严格雪崩准则严格雪崩准则。n18、频率测试的目的是检验算法f 的输出是否服从均匀均匀分布。谢谢!