《密码学基础》课件第7章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《密码学基础》课件第7章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码学基础 密码学 基础 课件
- 资源描述:
-
1、7.1 密钥管理的生命周期 7.2 单钥体制的密钥管理 7.3 公钥体制的密钥管理 7.4 秘密共享 习题 7.1 密钥管理的生命周期密钥管理的生命周期在前面章节中,关注的主要是采用何种密码体制来实现数据的机密性、完整性、真实性等安全属性。密码技术的核心思想是利用加密手段把对大量数据的保护归结为对若干核心参数的保护,而最关键的核心参数是系统中的各种密钥。密钥管理的目的是确保系统中各种密钥的安全性不受威胁,密钥管理除了技术因素以外,还与人的因素密切相关,不可避免地要涉及诸如物理的、行政的、人事的等其他方面问题,但我们最关心的还是理论和技术上的一些问题。密钥管理覆盖了密钥的整个生命周期。对于一个具
2、体的实体,密钥管理的完整过程大致可分成12个阶段,阶段之间相互关联构成密钥管理的完整生命周期,如图7-1所示。图7-1 密钥的生命周期1.用户登记用户登记在用户登记阶段,一个实体成为一个安全域的授权成员。用户登记包括通过一个安全的、一次性技术实现的初始密钥材料(如共享的口令或PIN码)的获取、创建或交换。2.系统和用户初始化系统和用户初始化系统初始化包括搭建和配置一个用于安全操作的系统。用户初始化就是一个实体初始化它的加密应用,如软/硬件的安装和初始化,其中包括用户或用户登记期间所获得的初始密钥材料的安装。3.密钥材料的安装密钥材料的安装密钥材料是用于生成密钥的一些系统要素,密钥材料的安全安装
3、是保证整个系统安全的关键。密钥材料的安装是将密钥材料配置到一个实体的软件或硬件中以便于使用。用于密钥材料安装的技术包括手工输入口令或PIN码、磁盘交换、ROM设备、智能卡或其他硬件设备。初始密钥材料可用于创建一个安全的在线会话环境,以实现工作密钥的建立。当上述项目第一次建立时,新的密钥材料要加入到现有的密钥材料中;另一方面,当现有密钥材料需要被更新时,则要进行新密钥材料的安装。4.密钥的生成密钥的生成密钥的生成是指按照预定的规则,采用可行的措施和机制产生符合应用目标或算法属性要求的,并具有可预见概率的、伪随机的有效密钥。一个实体可以生成自己的密钥,也可以从可信的实体处获取密钥。5.密钥的登记密
4、钥的登记密钥的登记是将密钥材料记录下来,并与相关实体的信息和属性捆绑在一起。捆绑的信息一般是密钥材料相关实体的身份以及相应的认证信息或指定信任级别,如认证生成公钥、公钥证书等,再通过一个公开目录或其他方式使对其感兴趣的实体可以访问。6.密钥的正常使用密钥的正常使用密钥管理的目的是为了方便密钥的安全使用。通常情况下,密钥在其有效期之内都可以使用,但也存在一些需要注意的问题,比如当一个用户拥有多个密钥时,要注意把不同的密钥用于不同的场合;再者是在某些情况下密钥的有效期有可能被提前终止或者需要提前更新正在使用的密钥;另外对于公钥体制,在某种情况下可能公钥已经不再适合继续用于加密,但相应的私钥还需要用
5、于解密。这些都是在密钥使用过程需要注意的问题。7.密钥材料的备份密钥材料的备份将密钥材料的副本备份到独立的、有安全保障的存储媒体上,当需要恢复密钥时可为密钥恢复提供数据源。8.密钥的存档密钥的存档密钥的存档是指对过了有效期或者提前撤消的密钥进行较长时间的离线保存。密钥过了有效期或者因为意外情况不得不提前撤消,该密钥及相关的密钥材料就不能再正常使用了,但不能马上就将它们直接销毁,通常还需要将它们保存一定的时间,以便在某种特殊的情况下需要用到时能够对其进行检索。例如,对过去的数字签名的认证可能需要签名者已经不再使用的公钥,某些涉及过去行为的争议仲裁也可能需要当事人的旧密钥。9.密钥的更新密钥的更新
6、如果当前密钥的有效期即将结束,则需要一份新的密钥来取代当前正在使用的密钥,才能保证各种必要的安全保护不降级,这就是密钥的更新。密钥更新可以通过使用重新生成的密钥取代原有密钥的方式来实现,当然密钥更新以后还需要重新进行安装、登记、备份以及发布等处理过程,才能投入正常使用。10.密钥的恢复密钥的恢复从备份或者存档的密钥材料中检索出与某个密钥有关的内容并重新构造出该密钥的过程称为密钥恢复。如果密钥因为某种原因被丢失或损坏,但可以确信这种丢失或损坏不会带来任何的安全威胁(如设备损坏或口令被遗忘),则可以从原来备份的密钥材料中恢复出该密钥。11.密钥的撤消密钥的撤消有些时候,在一个密钥的正常生命周期结束
7、之前必须将其提前作废,不再使用,这就是密钥的撤消。这可能是因为该密钥的安全已经受到威胁(比如被泄密),或者是因为与该密钥相关的实体自身状况已发生变化(比如人事变动),致使必须提前终止对该密钥的使用。密钥撤消可以通过公告或者逐个通知所有可能使用该密钥材料的实体来实现,告知的内容应包括密钥材料的完整ID、撤销的日期时间、撤销的原因等。对于基于证书分发的公钥,密钥撤消就是撤消相应的证书并通过某种途径公告于众。密钥撤消以后,相关实体还必须采取有效的措施来处理那些曾受被撤消密钥保护的信息,确保不破坏它们的安全性。12.密钥的取消登记与销毁密钥的取消登记与销毁对于那些不再需要保留或者不再需要维护它与某个实
8、体联系的密钥材料,应该将其从密钥登记中取消,即所有的密钥材料及其相关的记录应从所有现有密钥的正式记录中清除,所有的密钥备份应被销毁,任何存储过该密钥材料的媒体应该被安全清除以消除与该密钥有关的所有信息,使得该密钥不能再以物理的或电子的方式恢复。从密钥使用的角度来观察生命周期不同阶段中的密钥,可以将它们归为不同的状态,密钥的状态决定了如何对它们进行操作。下面就是密钥状态的一种分法:(1)预运行状态:此状态的密钥还不能用于正常的密码操作,也就是说还不能正式使用。(2)运行中状态:此状态的密钥是可用的,且处于正常使用中。(3)后运行状态:此状态的密钥已经不再用于通常的用途,但在某些特定情况下还有可能
9、需要对其进行离线访问或查询。(4)过期状态:此状态的密钥在任何情况下都不会再用,所有与密钥相关的记录已被销毁或即将被销毁。7.2 单钥体制的密钥管理单钥体制的密钥管理密钥管理活动需要处理密钥从产生到销毁整个过程中的所有问题。在过去的点点通信系统中,通常都是采用手工方式处理密钥管理的问题。在当前的多用户网络通信背景下,网络环境复杂多变,系统用户数量巨大,密钥管理任务极其艰巨,因此要求密钥管理系统能够逐步实现自动化操作。虽然当前已经设计出了多种自动密钥分配机制,它们能够快速、透明、安全地交换密钥,且某些方案已被成功地使用,如Kerberos和ANSI X9.17方案采用了DES技术,而ISOCCI
10、TT X.509目录论证方案主要依赖于公钥技术,然而在某些场景下,仍然可能需要对密钥进行手工处理,以增加密钥管理的有效性。7.2.1 密钥的分类密钥的分类为了增强密钥的安全性,通常根据使用场合将密钥分成很多不同的种类,并对不同种类的密钥采取不同的管理策略。从密钥用途和功能的角度可将密钥分成用于机密性的加/解密密钥、完整性论证密钥、数字签名密钥和密钥协商密钥等种类,但从密钥管理的角度一般将密钥分为以下几种:(1)初始密钥(Original Key):由用户选定或者系统分配,可在较长时间内有效,通常用它来启动和控制系统的密钥生成器,产生一次通信过程使用的会话密钥。因此初始密钥使用的频率并不高,并且
11、不直接用于保密通信过程,有利于初始密钥本身和整个系统的安全。(2)会话密钥(Session Key):是两个通信终端用户在一次通信过程中真正使用的密钥,它主要是对传输中的数据进行加密,因此也称为数据加密密钥。会话密钥可以使用户不必频繁地更换主密钥等其他密钥,有利于密钥的安全和管理。会话密钥使用的时间较短,这样就限制了攻击者能够截获的同一密钥加密的密文量,增加了密码分析的难度,有利于数据的安全。另外,在不慎将会话密钥丢失的情况下,由于受影响的密文数量有限,因而能够减少损失。会话密钥一般在一次会话开始时根据需要通过协议自动建立并分发,因而降低了密钥管理的难度。(3)密钥加密密钥(Key-encry
12、ption Key):在密钥分配协议中用于对传输中的会话密钥等其他密钥进行加密的密钥,也称密钥传送密钥。通信网中的每个节点都要配备一个这样的密钥,并且各不相同,每台主机都应存储到其他有关主机的密钥加密密钥。(4)主密钥(Master Key):对密钥加密密钥进行保护的密钥,它的层次最高,通常不受密码学手段保护,采用手工分配,或者是在初始阶段通过过程控制在物理或电子隔离情况下安装。从密钥使用的有效期上看,上述四种密钥中,会话密钥一定是短期密钥,初始密钥和主密钥的使用期限一般较长,而密钥加密密钥可能是长期有效的,也可能是暂时的。这种分层的密钥结构使每一个密钥被使用的次数都不太多,同一密钥产生的密文
13、数量不太大,能被密码分析者利用的信息较少,有利于系统的安全。7.2.2 密钥分配的基本方法密钥分配的基本方法密钥分配(Key Distribution)是密钥管理工作中最为困难的环节之一。在单钥密码体制下,两个用户要进行保密通信,首先必须有一个共享的会话密钥。同时,为了避免攻击者获得密钥,还必须时常更新会话密钥,这都需要用到密钥分配的理论和技术。单钥体制密钥分配的基本方法主要有以下几种:(1)由通信双方中的一方选取并用手工方式发送给另一方;(2)由双方信任的第三方选取并用手工方式发送给通信的双方;(3)如果双方之间已经存在一个共享密钥,则其中一方选取新密钥后可用已共享的密钥加密新密钥,然后通过
14、网络发送给另一方;(4)如果双方与信任的第三方之间分别有一共享密钥,那么可由信任的第三方选取一个密钥并通过各自的共享密钥加密发送给双方。前两种方法是手工操作,虽然在网络通信的大多数场景下手工操作是不实际的,但在个别情况下还是可行的,比如对用户主密钥的配置,使用手工方式则更可靠。后两种方法是网络环境下经常使用的密钥分配方法,由于可以通过网络自动或者半自动地实现,因此能够满足网络用户数量巨大的需求。特别是第四种方法,由于存在一个双方都信任的第三方(称为可信第三方),因此只要双方分别与这个可信第三方建立共享密钥,就无须再两两建立共享密钥,从而大大减少了必需的共享密钥数量,降低了密钥分配的代价。这样的
15、可信第三方通常是一个专门负责为用户分配密钥的密钥分配中心(Key Distribution Center,KDC)。在这样的背景下,系统的每个用户(主机、应用程序或者进程)与KDC建立一个共享密钥,即主密钥,当某两个用户需要进行保密通信时,可以请求KDC利用各自的主密钥为他们分配一个共享密钥作为会话密钥加密密钥或者直接作为会话密钥(如果是前者,则再使用上述第三种方法建立会话密钥)。一次通信完成后,会话密钥立即作废,而主密钥的数量与用户数量相同,可以通过更安全的方式甚至手工方式配置。图7-2是借助密钥分配中心进行密钥分配的一个例子。图7-2 密钥分配的一个例子假定通信双方Alice和Bob,简称
16、为A和B,分别与KDC有一个共享主密钥KA和KB,现在A希望与B建立一个连接进行保密通信,那么可以通过如下步骤得到一个共享的会话密钥:(1)A向KDC发送一个建立会话密钥的请求消息。此消息除了包含A和B的身份标识以外,还应有一个识别这次呼叫的惟一性标识符N1。N1可以是时间戳、某个计数器的值或者一次性随机数,N1的值应难以猜测并且每次呼叫所用的N1必须互不相同,以抵抗假冒和重放攻击。(2)KDC向A回复一个用A的主密钥KA加密的应答消息。在这个消息中,KDC为A与B即将进行的通信生成一个密钥Ke,并用A的主密钥KA加密消息,同时还用B的主密钥产生一个加密包EKBKe,IDA。因此,只有A和B可
17、以通过解密此消息中的相应部分获得密钥Ke。另外,此消息还包含了第一步中的消息惟一性标识符N1,它可以使A将收到的消息与发出的消息进行比较,如果匹配,则可以断定此消息不是重放的。(3)A解密出密钥Ke,但A并没有直接将Ke当作会话密钥,而是重新选择一个会话密钥Ks,再选取一个一次性随机数N2作为本次呼叫的惟一性标识符,并用Ks加密N2,再用Ke加密Ks和EKsN2,然后将加密的结果连同从第二步中收到的加密包EKBKe,IDA一起发送给B。(4)B从第三步收到的消息中解密出Ke和IDA,由IDA可以识别消息来源的真实性,然后由Ke解密出Ks,再用Ks解密出N2。最后,B对N2做一个事先约定的简单变
18、换(比如加1),并将变换的结果用Ks加密发送回给A。A如果能用Ks解密出N2+1,则可断定B已经知道本次通信的会话密钥Ks,并且B在第三步收到的消息不是一个重放的消息,密钥分配过程结束,接下来A和B就可以在Ks的保护下进行保密通信了。在上面这个简单例子中,通信双方在KDC的帮助下安全地共享了一个会话密钥Ks,由于在需要保密的环节均使用相应的密钥进行保护,因此避免了机密信息的泄露和假冒,同时消息惟一性标识符的使用可以防止过期消息的重放。在这个过程中,还共享了一个密钥加密密钥Ke,一方面KDC不知道通信双方在通信中真正使用的会话密钥Ks,另一方面如果接下来的保密通信过程比较长,通信双方还可以自行更
19、新会话密钥,以减少同一个会话密钥产生的密文量,降低会话密钥被攻击的风险。7.2.3 层次式密钥控制层次式密钥控制尽管在协议设计中尽量减少KDC对密钥分配的参与,但如果网络的规模非常大、用户数量非常多、分布的地域也非常广,只有一个KDC可能无法承担为所有用户分配密钥的重任。这时,可以将整个网络划分成多个安全域,每个安全域设置一个KDC,所有不同安全域的KDC可以构成一个层次结构,如图7-3所示,并且可以让这个KDC的层次结构与相应部门之间的行政隶属关系联系起来,建立与其他管理制度互相协调的管理体系。图7-3 层次式密钥控制在这种分层结构中,共享密钥的分配采用分层控制。当同一个安全域的用户需要保密
20、通信时,由该安全域的本地KDC负责为他们分配会话密钥。如果两个不同安全域中的用户需要共享密钥,则需要通过他们所在域的两个本地KDC之间的沟通与协作来实现这一任务。由于所有KDC都在一个层次结构中,因此任何两个KDC一定可以找到一个共同的上级KDC实现关联,通过这个关联KDC为两个不同安全域中的用户分配共享密钥。例如在图7-3中,KDC6下面的一个用户需要与KDC7管辖的一个用户建立共享密钥,KDC6和KDC7都能够识别出请求共享密钥的两个用户之一不在自己的安全域之内,这时候他们可以通过相互之间的层次关系发现KDC3是距离最近的一个共同上级KDC,然后将分配共享密钥的任务交给KDC3,由后者负责
21、为两个不同安全域中的用户分配共享密钥。分层结构中的下级KDC也是其相邻上级KDC的一个用户,与普通用户一样,下级KDC有一个主密钥与其相邻的上级KDC共享。这样,每个用户只需与其本地KDC共享一个主密钥就可以满足与其他用户进行保密通信的需要。因此,在分层结构中每个用户需要的主密钥数量将大大减少,密钥管理的工作量也相应减少。7.2.4 分布式密钥控制分布式密钥控制使用密钥分配中心为用户分配密钥,虽然有很多优势,但也存在一些问题。例如,KDC必须是中立可信的,每一个用户都绝对信任KDC的工作;同时KDC必须受到严密的保护,一旦KDC遭到入侵,可能造成用户主密钥的泄密,其后果是不堪设想的;另外,KD
22、C可能会成为系统的瓶颈。如果两个用户之间已存在共享的主密钥,则不需要KDC的参与也能实现会话密钥的共享,并避免了上面论及的问题。如图7-4所示,没有KDC的密钥分配需要三个步骤来建立会话密钥:第一步,用户A向用户B发出建立会话密钥的请求,消息中嵌入一个一次性随机数N1作为本次呼叫的惟一性标识。图7-4 无KDC的密钥分配第二步,用户B选择一个会话密钥Ks构造应答消息,并用与A共享的主密钥MK加密这个应答消息回送给A。应答消息中除了会话密钥Ks之外,还包含B的身份标识IDB、来自请求消息的一次性随机数N1以及B选取的另一个新的一次性随机数N2。这些信息使A能够确认收到的消息不是假冒或重放的,且N
23、2还作为本消息的惟一性标识。第三步,A使用与B共享的主密钥MK解密收到的消息,并进行真实性和新鲜性验证,然后对N2做一个事先约定的简单变换(比如加1),再将变换的结果用收到的会话密钥Ks加密并发送回用户B。B用会话密钥解密收到的消息,如果能正确地恢复出N21,则说明A已经掌握会话密钥Ks,密钥分配工作完成。这种不需要密钥分配中心的分布式密钥分配方案要求两个用户必须事先共享一个主密钥,才能完成会话密钥的分配。在一个用户众多的大型网络中,要在任何两个用户之间建立共享主密钥是不现实的,但这并不意味此方案没有任何意义。事实上,与一个用户有联系的用户数量一般是有限的,只需在每一用户同与其有联系的其他用户
24、之间建立共享主密钥,即可满足一般工作的需要,因此这个方案对完成网络局部通信还是很有价值的。7.3 公钥体制的密钥管理公钥体制的密钥管理在公钥密码的相关协议中,总是假设已经掌握了对方的公开密钥。事实上,虽然公钥密码体制的优势之一就在于密钥管理相对简单,但要保证公钥或公共参数的真实性或者其真实性是可以验证的,还需要有一套科学的策略和方法才能够实现。7.3.1 公开密钥的分发公开密钥的分发1.公开分发公开分发由于公钥体制的公开密钥不需要保密,因此任何用户都可以将自己的公开密钥发送给其他用户或者直接在某个范围内广播。例如,一些基于公钥体制的系统允许用户将自己的公开密钥附加在发送的消息上传递,使通信对方
25、或者对自己公钥感兴趣的其他用户很容易获取。公开分发的突出优点是非常简便,密钥分发不需要特别的安全渠道,降低了密钥管理的成本。然而,该方法也存在一个致命的缺点,那就是公钥发布的真实性和完整性难以保证,容易造成假冒的公钥发布。任何用户都可以伪造一个公钥并假冒他人的名义发布,然后解读所有使用该假冒公钥加密的所有信息,并且可以利用伪造的密钥通过论证。2.使用公钥目录分发使用公钥目录分发使用公钥目录分发是指建立一个公开、动态、在线可访问的用户公钥数据库(称为公钥目录),让每个用户将自己的公开密钥安全地注册到这个公钥目录中,并由可信的机构(称为公钥目录管理员)对公钥目录进行维护和管理,确保整个公钥目录的真
展开阅读全文