您好,欢迎访问三七文档
2020/2/10应用密码学12010-2011年度济南大学网络工程专业本科班课程应用密码学第九讲密钥分配与密钥管理贾忠田济南大学信息科学与工程学院电子信箱:jiazht@163.com2020/2/10应用密码学2第5章密钥分配与密钥管理本次课的安排:单钥加密体制的密钥分配公钥加密体制的密钥管理2020/2/10应用密码学3一、单钥加密体制的密钥分配1、密钥分配的基本方法两个用户(主机、进程、应用程序)在用单钥密码体制进行保密通信时,首先必须有一个共享的秘密密钥,而且为防止攻击者得到密钥,还必须时常更新密钥。因此,密码系统的强度也依赖于密钥分配技术。ABEk[m]图1保密通信2020/2/10应用密码学4两个用户A和B获得共享密钥的方法有以下几种:①密钥由A选取并通过物理手段发送给B。②密钥由第三方选取并通过物理手段发送给A和B。③如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方。④如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。人工如果有n个用户,则密钥数目为n(n-1)/2。因此当n很大时,密钥分配的代价非常大。攻击者一旦获得一个密钥就可获取以后所有的密钥;而且用这种方法对所有用户分配初始密钥时,代价仍然很大。每一用户必须和第三方(密钥分配中心)有一个共享密钥,称为主密钥。通过主密钥分配给一对用户的密钥称为会话密钥,会话密钥数为n(n-1)/2,主密钥数却只需n个,所以主密钥可通过物理手段发送。2020/2/10应用密码学52、一个实例假定两个用户A、B分别与密钥分配中心KDC(keydistributioncenter)有一个共享的主密钥KA和KB,A希望与B建立一个共享的一次性会话密钥Ks,可通过以下几步来完成:2020/2/10应用密码学6ABKDC①Request||N1②EKA[Ks||Request||N1||EKB(Ks,IDA)]③EKB[Ks||IDA]④EKS[N2]⑤EKS[f(N2)]其中:Request=IDA||IDBN1、N2是时间戳、计数器或者随机数f是对N2进行某种变换图2密钥分配实例2020/2/10应用密码学73、密钥的分层控制网络中如果用户数目非常多而且分布的地域非常广,一个KDC就无法承担为用户分配密钥的重任。问题的解决方法是使用多个KDC的分层结构。例如,在每个小范围(如一个LAN或一个建筑物)内,都建立一个本地KDC。同一范围的用户在进行保密通信时,由本地KDC为他们分配密钥。如果两个不同范围的用户想获得共享密钥,则可通过各自的本地KDC,而两个本地KDC的沟通又需经过一个全局KDC。这样就建立了两层KDC。类似地,根据网络中用户的数目及分布的地域,可建立3层或多层KDC。2020/2/10应用密码学8图3密钥的分层控制KDC11KDC21KDC2NKDC3NKDC31BAC2020/2/10应用密码学94、会话密钥的有效期0密钥更新频率系统安全性密钥更新频率0系统效率图4密钥更新频率与系统的关系所以密钥的更新周期既不能太短也不能太长---具体情况具体分析2020/2/10应用密码学10对面向连接的协议,在连接未建立前或断开时,会话密钥的有效期可以很长。而每次建立连接时,都应使用新的会话密钥。如果逻辑连接的时间很长,则应定期更换会话密钥。无连接协议(如面向业务的协议),无法明确地决定更换密钥的频率。为安全起见,用户每进行一次交换,都用新的会话密钥。然而这又失去了无连接协议主要的优势,即对每个业务都有最少的费用和最短的延迟。比较好的方案是在某一固定周期内或对一定数目的业务使用同一会话密钥。2020/2/10应用密码学115、无中心的密钥控制用密钥分配中心为用户分配密钥时,要求所有用户都信任KDC,同时还要求对KDC加以保护。如果密钥的分配是无中心的,则不必有以上两个要求。然而如果每个用户都能和自己想与之建立联系的另一用户安全地通信,则对有n个用户的网络来说,主密钥应多达n(n-1)/2个。当n很大时,这种方案无实用价值,但在整个网络的局部范围却非常有用。无中心的密钥分配时,两个用户A和B建立会话密钥需经过以下3步:2020/2/10应用密码学12图5无中心的密钥分配①A向B发出建立会话密钥的请求和一个一次性随机数N1。②B用与A共享的主密钥MKm对应答的消息加密,并发送给A。应答的消息中有B选取的会话密钥、B的身份、f(N1)和另一个一次性随机数N2。③A使用新建立的会话密钥KS对f(N2)加密后返回给B。2020/2/10应用密码学136、密钥的控制使用密钥可根据其不同用途分为会话密钥和主密钥两种类型,会话密钥又称为数据加密密钥,主密钥又称为密钥加密密钥。由于密钥的用途不同,因此对密钥的使用方式也希望加以某种控制。如果主密钥泄露了,则相应的会话密钥也将泄露,因此主密钥的安全性应高于会话密钥的安全性。一般在密钥分配中心以及终端系统中主密钥都是物理上安全的,如果把主密钥当作会话密钥注入加密设备,那么其安全性则降低。2020/2/10应用密码学14单钥体制中的密钥控制技术有以下两种。(1)密钥标签用于DES的密钥控制,将DES的64比特密钥中的8个校验位作为控制使用这一密钥的标签。标签中各比特的含义为:•一个比特表示这个密钥是会话密钥还是主密钥;•一个比特表示这个密钥是否能用于加密;•一个比特表示这个密钥是否能用于解密;•其他比特无特定含义,留待以后使用。2020/2/10应用密码学15本方案的缺点:第一,标签的长度被限制为8比特,限制了它的灵活性和功能;第二,由于标签是以密文形式传送,只有解密后才能使用,因而限制了对密钥使用的控制方式。由于标签是在密钥之中,在分配密钥时,标签与密钥一起被加密,因此可对标签起到保护作用。(2)控制矢量方案中对每一会话密钥都指定了一个相应的控制矢量,控制矢量分为若干字段,分别用于说明在不同情况下密钥是被允许使用还是不被允许使用,且控制矢量的长度可变。2020/2/10应用密码学16KDC端计算H=h(CV)Kin=KmHKout=EKin[Ks]KDC同时把CV以明文的形式发送给用户。用户端计算H=h(CV)Kin=KmHKs=DKin[Kout]2020/2/10应用密码学17一、公钥加密体制的密钥管理本节介绍两方面内容:一是公钥密码体制所用的公开密钥的分配,二是如何用公钥体制来分配单钥密码体制所需的密钥。2020/2/10应用密码学18(一)公钥的分配公开发布公用目录表公钥管理机构公钥证书有4中常见的方法:2020/2/10应用密码学191.公开发布公开发布指用户将自己的公钥发给每一其他用户,或向某一团体广播。例如PGP(prettygoodprivacy)中采用了RSA算法,它的很多用户都是将自己的公钥附加到消息上,然后发送到公开(公共)区域,如因特网邮件列表。这种方法虽然简单,但有一个非常大的缺点,即任何人都可伪造这种公开发布。如果某个用户假装是用户A并以A的名义向另一用户发送或广播自己的公开钥,则在A发现假冒者以前,这一假冒者可解读所有意欲发向A的加密消息,而且假冒者还能用伪造的密钥获得认证。2020/2/10应用密码学202.公用目录表公用目录表指一个公用的公钥动态目录表,公用目录表的建立、维护以及公钥的分布由某个可信的实体或组织承担,称这个实体或组织为公用目录的管理员。与第1种分配方法相比,这种方法的安全性更高。该方案有以下一些组成部分:2020/2/10应用密码学21④管理员定期公布或定期更新目录表。例如,像电话号码本一样公布目录表或在发行量很大的报纸上公布目录表的更新。⑤用户可通过电子手段访问目录表,这时从管理员到用户必须有安全的认证通信。①管理员为每个用户都在目录表中建立一个目录,目录中有两个数据项:一是用户名,二是用户的公开钥。②每一用户都亲自或以某种安全的认证通信在管理者那里为自己的公开钥注册。③用户如果由于自己的公开钥用过的次数太多或由于与公开钥相关的秘密钥已被泄露,则可随时用新密钥替换现有的密钥。本方案的安全性虽然高于公开发布的安全性,但仍易受攻击。如果敌手成功地获取管理员的秘密钥,就可伪造一个公钥目录表,以后既可假冒任一用户又能监听发往任一用户的消息。而且公用目录表还易受到敌手的窜扰。2020/2/10应用密码学223.公钥管理机构如果在公钥目录表中对公钥的分配施加更严密的控制,安全性将会更强。与公用目录表类似,这里假定有一个公钥管理机构来为各用户建立、维护动态的公钥目录,但同时对系统提出以下要求,即:每个用户都可靠地知道管理机构的公开钥,而只有管理机构自己知道相应的秘密钥。公开钥的分配步骤如下,如图62020/2/10应用密码学23图6公钥管理机构分配公钥2020/2/10应用密码学244.公钥证书上述公钥管理机构分配公开钥时也有缺点,由于每一用户要想和他人联系都需求助于管理机构,所以管理机构有可能成为系统的瓶颈,而且由管理机构维护的公钥目录表也易被敌手窜扰。分配公钥的另一方法是公钥证书,用户通过公钥证书来互相交换自己的公钥而无须与公钥管理机构联系。公钥证书由证书管理机构CA(certificateauthority)为用户建立,其中的数据项有与该用户的秘密钥相匹配的公开钥及用户的身份和时戳等,所有的数据项经CA用自己的秘密钥签字后就形成证书。2020/2/10应用密码学25证书的形式为CA=ESKCA[T,IDA,PKA]接收方可用CA的公钥PKCA对证书加以验证,即DPKCA[CA]=DPKCA[ESKCA[T,IDA,PKA]]=(T,IDA,PKA)图7证书的产生过程2020/2/10应用密码学26(二)用公钥加密分配单钥密码体制的密钥公开钥分配完成后,用户就可用公钥加密体制进行保密通信。然而由于公钥加密的速度过慢,以此进行保密通信不太合适,但用于分配单钥密码体制的密钥却非常合适。图7简单使用公钥加密算法建立会话密钥2020/2/10应用密码学27①A产生自己的一对密钥{PKA,SKA},并向B发送PKA||IDA,其中IDA表示A的身份。②B产生会话密钥KS,并用A的公开钥PKA对KS加密后发往A。③A由DSKA[EPKA[KS]]恢复会话密钥。因为只有A能解读KS,所以仅A、B知道这一共享密钥。④A销毁{PKA,SKA},B销毁PKA。2020/2/10应用密码学28这一协议易受到主动攻击,如果敌手E已接入A、B双方的通信信道,就可通过以下不被察觉的方式截获双方的通信:①与上面的步骤①相同。②E截获A的发送后,建立自己的一对密钥{PKE,SKE},并将PKE‖IDA发送给B。③B产生会话密钥KS后,将EPKE[KS]发送出去。④E截获B发送的消息后,由DSKE[EPKE[KS]]解读KS。⑤E再将EPKA[KS]发往A。2020/2/10应用密码学292.具有保密性和认证性的密钥分配图8所示的密钥分配过程具有保密性和认证性,因此既可防止被动攻击,又可防止主动攻击。图8具有保密性和认证性的密钥分配2020/2/10应用密码学30假定A、B双方已完成公钥交换,可按以下步骤建立共享会话密钥:①A用B的公开钥加密A的身份IDA和一个一次性随机数N1后发往B,其中N1用于惟一地标识这一业务。②B用A的公开钥PKA加密A的一次性随机数N1和B新产生的一次性随机数N2后发往A。因为只有B能解读①中的加密,所以B发来的消息中N1的存在可使A相信对方的确是B。③A用B的公钥PKB对N2加密后返回给B,以使B相信对方的确是A。④A选一会话密钥KS,然后将M=EPKB[ESKA[KS]]发给B,其中用B的公开钥加密是为保证只有B能解读加密结果,用A的秘密钥加密是保证该加密结果只有A能发送。⑤B以DPKA[DSKB[M]]恢复会话密钥。2020/2/10应用密码学31小结:一、单钥加密体制的密钥分配1、密钥分配基本方法2、有KDC的密钥分配实例3、密钥的分层控制4、会话密钥的有效期5、无中心的密钥
本文标题:应用密码学第9讲
链接地址:https://www.777doc.com/doc-3634707 .html