《计算机网络安全技术第6章》由会员分享,可在线阅读,更多相关《计算机网络安全技术第6章(79页珍藏版)》请在金锄头文库上搜索。
1、第六章密钥管理加密技术一般地采用加密算法来实现,而加密算加密技术一般地采用加密算法来实现,而加密算法必须有密钥来控制。法必须有密钥来控制。过去的加密设计人员总是对算法的保密来增加密码过去的加密设计人员总是对算法的保密来增加密码的强度,现在的加密系统算法是公开的,明文的保密的强度,现在的加密系统算法是公开的,明文的保密主要依赖于密钥的保密。主要依赖于密钥的保密。在计算机网络环境中,由于用户和节点很多,需在计算机网络环境中,由于用户和节点很多,需要大量的密钥。信息系统的安全性取决于密钥的保护。要大量的密钥。信息系统的安全性取决于密钥的保护。密钥技术的核心是利用加密手段对大量数据加以保护,密钥技术的
2、核心是利用加密手段对大量数据加以保护,因而可归结为对若干核心参量密钥的保护。因而可归结为对若干核心参量密钥的保护。因此密钥的管理成为加密系统的核心的首要问题。因此密钥的管理成为加密系统的核心的首要问题。6.1 密钥管理的问题密密钥钥的的管管理理是是一一项项复复杂杂细细致致的的长长期期工工作作,既既包包含含了了一一系系列列的的技技术术问问题题,又又包包含含了了行行政政管管理理人人员员的的素素质质问题。问题。在在密密钥钥的的产产生生、分分配配、注注入入、存存储储、更更换换、使使用用和和管管理理等等一一系系列列环环节节中中,必必须须注注意意到到每每一一个个细细小小的的环环节,否则就会造成意想不到的损
3、失。节,否则就会造成意想不到的损失。每每个个具具体体系系统统的的密密钥钥管管理理必必须须与与具具体体的的使使用用环环境境和和保密要求相结合,万能的密钥管理体制是不存在的。保密要求相结合,万能的密钥管理体制是不存在的。实实践践表表明明,从从密密钥钥管管理理渠渠道道窃窃取取密密钥钥比比单单纯纯从从破破译译途径窃取密钥要容易得多,代价要小得多。途径窃取密钥要容易得多,代价要小得多。评价密钥管理系统性能好坏的标准一一个个好好的的密密钥钥管管理理系系统统应应该该尽尽量量不不依依赖赖于于人人的的因因素素,这这不不仅仅是是为为了了提提高高密密钥钥管管理理的的自自动动化化水水平平,根根本本的的目目的的还还是是
4、为为了了提提高高系系统统的的安安全全程程度度。为为此此,有以下具体要求:有以下具体要求: 1 1) 密钥难以被非法窃取;密钥难以被非法窃取; 2)2) 在一定条件下,窃取了密钥也没有用;在一定条件下,窃取了密钥也没有用; 3)3) 密密钥钥的的分分配配和和更更换换过过程程在在用用户户看看来来是是透透明明的的,用户不一定亲自掌握密钥。用户不一定亲自掌握密钥。因因此此,常常常常用用以以上上几几点点要要求求来来评评价价一一个个密密钥钥管管理理系统性能好坏的标准。系统性能好坏的标准。一一个个系系统统设设计计时时,首首先先要要明明确确解解决决什什么么问问题题,有有哪哪些些因因素素要要考考虑虑,这这是是设
5、设计计好好一一个个系系统统的的前前提。一般来说,以下几个方面的因素必须考虑:提。一般来说,以下几个方面的因素必须考虑: 系统对保密强度的要求;系统对保密强度的要求; 系系统统中中哪哪些些地地方方需需要要密密钥钥,这这些些密密钥钥采采用用什什么么方式预置或装入保密组件;方式预置或装入保密组件; 多多长长时时间间要要更更换换一一次次密密钥钥,即即一一个个密密钥钥规规定定使使用的限期是多少;用的限期是多少; 密钥在什么地方产生;密钥在什么地方产生; 系统的安全性与用户的承受能力。系统的安全性与用户的承受能力。密钥的种类和作用n n数据加密密钥n n基本密钥n n主密钥n n其他密钥uu(1)终端密钥
6、:)终端密钥:uu(2)主机密钥)主机密钥数据加密密钥n n在一个数据通信网中,假定一个主体(可以是应用程序在一个数据通信网中,假定一个主体(可以是应用程序或终端用户等)要通过网络与一个客体(也是一个应用或终端用户等)要通过网络与一个客体(也是一个应用程序或终端用户)通信,为了保证数据的安全性,主体程序或终端用户)通信,为了保证数据的安全性,主体就需要用一个特定的加密算法和密钥来对数据进行加密,就需要用一个特定的加密算法和密钥来对数据进行加密,而客体也必须采用相同的算法和密钥对已加密的数据进而客体也必须采用相同的算法和密钥对已加密的数据进行解密。对数据加密的这种密钥一般定义为数据加密密行解密。
7、对数据加密的这种密钥一般定义为数据加密密钥,也称为初级密钥。当初级密钥直接用于通信保密时,钥,也称为初级密钥。当初级密钥直接用于通信保密时,称为初级通信密钥。当初级密钥直接用于文件保密时,称为初级通信密钥。当初级密钥直接用于文件保密时,称为初级文件密钥。当初级通信密钥直接用于通信过程称为初级文件密钥。当初级通信密钥直接用于通信过程的会话数据保密时,称为会话密钥。数据加密密钥可以的会话数据保密时,称为会话密钥。数据加密密钥可以由系统实体请求通过硬件或软件自动生成,也可以由用由系统实体请求通过硬件或软件自动生成,也可以由用户自己提供。户自己提供。 基本密钥n n为为了了提提高高系系统统的的保保密密
8、性性,通通常常要要求求对对数数据据加加密密的的密密钥钥只只能能在在一一次次会会话话中中有有效效,通通话话结结束束,数数据据加加密密密密钥钥消消失失,这这种种密密钥钥可可以以由由主主体体通通过过乱乱码码随随机机产产生生器器产产生生。这这就就大大大大提提高高了了保保密密性性,但但也也存存在在一一个个问问题题,那那就就是是主主体体随随机机产产生生的的这这个个密密钥钥(数数据据加加密密密密钥钥)必必须须让让客客体体知知道道,否否则则客客体体就就无无法法得得到到明明文文。让让客客体体知知道道这这个个密密钥钥的的方方法法有有两两种种:一一种种是是通通过过秘秘密密信信道道或或信信使使送送到到客客体体手手中中
9、,这这种种方方法法显显然然不不适适合合现现代代电电子子通通信信;另另一一种种方方法法(也也是是目目前前比比较较通通用用的的方方法法)是是通通过过通通信信网网发发到到客客体体。由由于于通通信信网网不不能能用用明明文文的的形形式式发发送送,因因此此就就需需要要使使用用另另一一种种密密钥钥对对其其加加密密。这这种种密密钥钥就就叫叫做做基基本本密密钥钥,也也叫叫二二级级密密钥钥,它它用用于于加加密密保保护护数数据据的的密密钥钥。当当基基本本密密钥钥直直接接用用于于保保护护初初级级通通信信密密钥钥时时,称称为为二二级级通通信信密密钥钥;当当二二级级密密钥钥直直接接用用于于保保护护初初级级文文件件密密钥钥
10、时时,称称为为二二级级文文件件密密钥钥。基基本本密密钥钥应应由由安安装装人人员员请请求求系系统统自自动动产产生生,也可由密钥安装人员提供。也可由密钥安装人员提供。主密钥n n在一个大的网络系统中可能有上千个节点或端用户。在一个大的网络系统中可能有上千个节点或端用户。若要实现全网开通,每个节点就需要与其他节点或端若要实现全网开通,每个节点就需要与其他节点或端用户通信的基本密钥。这些基本密钥要形成一张表,用户通信的基本密钥。这些基本密钥要形成一张表,保存在节点(或端节点的保密装置)内。若以明文的保存在节点(或端节点的保密装置)内。若以明文的形式保存,有可能被窃取。为了保证它的安全,通常形式保存,有
11、可能被窃取。为了保证它的安全,通常还需要一个密钥对基本密钥表进行加密保护。这个密还需要一个密钥对基本密钥表进行加密保护。这个密钥就被称为主密钥,它是密钥管理方案中级别最高的钥就被称为主密钥,它是密钥管理方案中级别最高的密钥,用于对存储在主机系统中的数据加密密钥和基密钥,用于对存储在主机系统中的数据加密密钥和基本密钥提供保护。本密钥提供保护。 其他密钥n n(1)终端密钥:)终端密钥:n n每一终端配置唯一的一个二级通信密钥,并且由密钥安装人员装入终端的密码装置。n n(2)主机密钥)主机密钥n n主机要进行各种不同的密码操作,因此在主机中同时配置主密钥和基本密钥。主机还要产生和存储数据加密密钥
12、和基本密钥。密钥的生成n n 密密钥钥的的产产生生目目前前主主要要是是利利用用噪噪声声源源技技术术。噪噪声声源源的的功功能能是是产产生生二二进进制制的的随随机机序序列列或或与与之之相相对对应应的的随随机机数数,它它是是密密钥钥产产生生设设备备的的核核心心部部件件。噪噪声声源源的的另另一一个个用用途途是是物物理理层层加加密密环环境境下下进进行行信信息息扩扩充充,使使网网络络具具有有防防止止流流量量分分析析的的功功能能。当当采采用用序序列列编编码码时时,也也有有防防止止乱乱数数空空发发的的功功能能。噪噪声声源源还还被被用用于于某某些些身身份份验验证证技技术术中中,如如对对等等实实体体鉴鉴别别中中。
13、为为了了防防止止口口令令被被窃窃取取,常常常常使使用用随机应答技术,这时的提问和应答是由噪声源控制的。随机应答技术,这时的提问和应答是由噪声源控制的。n n噪声源产生随机序列,按照产生的方法可分为:噪声源产生随机序列,按照产生的方法可分为:(1)伪伪随随机机序序列列:用数学方法和少量的种子密钥产生的周期很长的随机序列。伪随机序列一般都有良好的,能受理论检验的随机统计特性,但当序列的长度超过了唯一解距离时,就成了一个可预测的序列。(2)物物理理随随机机序序列列:用热噪声等客观方法产生的随机序列。实际的物理噪声往往要受到温度、电源、电路特性等因素的限制,其统计特性常常带有一定的偏向性。(3) (3
14、) 准准随随机机序序列列:用数学的方法和物理的方法相结合产生的随机序列。准随机序列可以克服前两者的缺点。物理噪声源基本上有三类:基于力学的噪声源技术、基于电子学的噪声源技术、基于混沌理论的噪声源技术。(1)基于力学噪声源的密钥产生技术通常利用硬币或骰子抛撒落地的随机性产生密钥。(2)基于电子学噪声源的密钥产生技术这种方法利用电子学方法对噪声器件(如真空管、稳压二极管等)的噪声进行放大、整形后产生出密钥随机序列。(3)基于混沌理论的密钥产生技术混沌理论是一门新学科。利用混沌理论的方法,不仅可以产生噪声,而且噪声序列的随机性好,产生效率高。密钥的保护n n1密钥的分配n n2密钥的注入n n3密钥
15、的存储n n4密钥的更换n n5保密装置1密钥的分配n n密钥的分配一般要解决两个问题:一是引进自动分配密钥机制,以提高系统的效率;二是尽可能减少系统中驻留的密钥量。n n密钥分配是密钥管理系统最为复杂的问题,根据不同的用户要求和网络系统的大小,有不同的解决方法。过去密钥的分配主要是采用人工分配,今后人工分配方法也不会完全废除,特别是保密要求很高的部门。分配高级密钥采用人工分配是可取的,只要密钥分配人员是忠诚的,而且实施计划是周密的,则人工分配密钥时安全的。随着计算机等高技术措施引入人工分配密钥,人工分配密钥的安全将得到加强。然而,人工分配密钥却不适应现代计算机网络。利用计算机网络的数据处理和
16、数据传输能力实现密钥分配自动化,无疑有利于密钥的安全,反过来又提高了计算机网络的安全。计算机网络的密钥分配方法有:n n(1 1)只用会话密钥只用会话密钥n n在在一一个个较较小小的的网网络络中中,一一种种最最简简单单的的方方法法是是只只是是用用一一个个密密钥钥(即即会会话话密密钥钥)。有有一一专专门门机机构构生生成成密密钥钥后后,将将其其发发到到各各端端用用户户,保保存存在在保保密密装装置置内内。在在通通信信双双方方通信时,就直接使用这个会话密钥对信息加密。通信时,就直接使用这个会话密钥对信息加密。n n如如果果在在一一个个网网中中只只使使用用这这一一种种密密钥钥,在在密密钥钥更更换换时时就
17、就必必须须在在同同一一时时间间,在在网网内内的的所所有有节节点点(或或终终端端)上上进进行行。密密钥钥的的这这种种设设备备管管理理起起来来比比较较简简单单,但但因因为为在在某某一一段段时时间间内内对对网网上上传传输输的的所所有有数数据据都都采采用用同同一一密密钥钥加加密,故保密性不好。密,故保密性不好。(2 2)采用会话和基本密钥采用会话和基本密钥为为了了提提高高保保密密性性,可可使使用用两两种种密密钥钥会会话话密密钥钥和和基基本本密密钥钥。对对于于这这种种方方法法,进进行行数数据据传传输输的的过过程程是是:主主体体在在发发送送数数据据之之前前首首先先产产生生会会话话密密钥钥,用用基基本本密密
18、钥钥对对其其加加密密后后,通通过过网网络络发发送送到到客客体体;客客体体收收到到后后用用基基本本密密钥钥对对其其解解密密,双双方就可以进行通信了;会话结束,会话密钥消失。方就可以进行通信了;会话结束,会话密钥消失。由由于于数数据据加加密密的的密密钥钥只只在在一一次次会会话话内内有有效效,会会话话结结束束,会会话话密密钥钥就就消消失失。下下次次会会话话时时,在在产产生生新新的的会会话话密密钥钥,因因此此大大提高了系统的安全性。大大提高了系统的安全性。为为了了防防止止会会话话密密钥钥和和中中间间一一连连串串加加密密结结果果被被非非法法破破译译,加加密密方方法法和和密密钥钥必必须须保保存存在在一一个
19、个定定义义为为保保密密装装置置的的保保护护区区中中。基基本本密密钥钥必必须须以以秘秘密密信信道道的的方方式式传传送送,由由专专人人注注入入保保密密装装置,不能以明文形式存在于保密装置之外。置,不能以明文形式存在于保密装置之外。(3 3)采用非对称密钥密码体制的密钥分配采用非对称密钥密码体制的密钥分配非非对对称称密密钥钥密密码码体体制制不不仅仅可可以以对对数数据据加加密密,实实现现数数字字签签名名,也也可可用用于于对对密密钥钥的的分分配配。采采用用非非对对称称密密钥钥密密码码体体制制,每每个个用用户户都都需需要要有有一一对对密密钥钥,这这一一对对密密钥钥分分别别表表示示为为DKDK和和EKEK。
20、DKDK用用于于解解密密(也也称称为为秘秘密密密密钥钥),这这个个密密钥钥只只有有该该用用户户自自己己知知道道;EKEK用用于于加加密密(也也称称为为公公开开密密钥钥),全全网网络络互互通通,用用户户都都知知道道。如如果果用用户户A A想想与与用用户户D D通通信信,则则用用户户A A可可用用用用户户D D的的公公开开密密钥钥对对会会话话密密钥钥进进行行加加密密,发发送送到到用用户户D D;用用户户D D用用自自己己保保存存的的密密钥钥解解密密,就就可可得得到到需需要要的的会会话话密密钥钥。其其他他用用户户虽虽然然也也知知道道用用户户D D的的公公开开密密钥钥,但但不不知知道道相相应的秘密密钥
21、,它就得不到相应的会话密钥。应的秘密密钥,它就得不到相应的会话密钥。2密钥的注入密密钥钥的的注注入入通通常常是是采采用用人人工工方方式式。在在可可能能的的情情况况下下,重重要要密密钥钥可可由由多多人人、分分彼彼此此分分开开完完成成注注入入,并并且且注注入入的的内内容容应应不不能能被被显显示示出出来来。为为了了掌掌握握密密钥钥的的注注入入过过程程,所所有有密密钥钥应应按按编编号号进进行行管管理理。密密钥钥常常用用的的注注入入方方法法有有:键键盘盘输入、软盘输入、专用密钥注入设备(即密钥枪)输入。输入、软盘输入、专用密钥注入设备(即密钥枪)输入。除除了了正正在在进进行行加加密密操操作作的的情情况况
22、之之外外,密密钥钥应应当当以以加加密密保保护护的的形形式式存存储储。密密钥钥的的注注入入过过程程应应当当有有一一个个封封闭闭的的环环境境,不不存存在在可可能能被被窃窃听听装装置置接接受受的的电电磁磁泄泄漏漏或或其其他他辐辐射射,所所有接近注入的人员应该是绝对可靠的。有接近注入的人员应该是绝对可靠的。采用密钥枪或密钥软盘与键盘输入的口令相结合,只有在输入了合法的加密操作口令后,才能激活密钥枪或软盘里的密钥信息。因此,应建立一定的接口规约。在密钥注入完成后,不允许存在任何可能导出密钥的残留信息,比如应将内存中使用过的存储区清零。当将密钥注入设备用于远程传递密钥时,注入设备本身应设计成像加密设备那样
23、的封闭式里逻辑单元。密钥注入后,还要检验其正确性。3密钥的存储在在密密钥钥注注入入后后,所所有有存存储储在在加加密密设设备备里里的的密密钥钥平平时时都都应应以以加加密密的的形形式式存存放放,而而对对这这些些密密钥钥的的操操作作口口令令应应该该由由操操作作人人员员掌掌握握。这这样样,即即使使装装有有密密钥钥的的加加密密设设备备被被破破译译者者拿拿到到,也可以保证密钥系统的安全。也可以保证密钥系统的安全。加加密密设设备备应应有有一一定定的的物物理理保保护护措措施施。一一部部分分最最重重要要的的密密钥钥信信息息应应采采用用掉掉电电保保护护措措施施,使使得得在在任任何何情情况况下下,只只要要拆拆开开加
24、加密密设设备备,这这部部分分密密钥钥就就会会自自动动丢丢掉掉。如如果果采采用用软软件件加加密密的的形形式式,应应有有一一定定的的软软件件保保护护措措施施。重重要要的的加加密密设设备备应应有有紧紧急急情情况况下下自自动动消消除除密密钥钥的的功功能能。在在可可能能的的情情况况下下,应应有有对对加加密密设设备备进进行行非非法法使使用用的的审审计计,把把非非法法口口令令输输入入等等事事件件的的发发生生时时间间记记录录下下来来。高高级级专专用用加加密密设设备备应应做做到到:无无论论是是通通过过直直观观的的方方法法还还是是自自动动(电电子子、X X射射线线、电电子子显显微微镜镜等等)方方法法都都不不能能从
25、从密密码码设设备备中中读读出出信信息息。对对当当前前使使用用的的密密钥钥应应有密钥合法性验证措施,以防止被篡改。有密钥合法性验证措施,以防止被篡改。4密钥的更换密密钥钥的的使使用用时时有有寿寿命命的的,一一旦旦密密钥钥的的有有效效期期到到,就就必必须须消消除除原原密密钥钥存存储储区区,或或者者用用随随机机产产生生的的噪噪声声重重写写。为为了了保保证证加加密密设设备备能能连连续续工工作作,也也可可以以在在新新密密钥钥生生效效后后,旧旧密密钥钥还还可可保保持持一一段段时时间间,以以防防止止在在密密钥钥更更换换期期间间不不能能解解密的死锁。密的死锁。密钥的更换,可以采用批密钥的方式,即一次性注入多密
26、钥的更换,可以采用批密钥的方式,即一次性注入多个密钥,在更换时可按照一个密钥生效,另一个密钥废个密钥,在更换时可按照一个密钥生效,另一个密钥废除的形式进行。替代的次序可采用密钥的序号,如果批除的形式进行。替代的次序可采用密钥的序号,如果批密钥的生效和废除是顺序的,则序数低于正在使用的密密钥的生效和废除是顺序的,则序数低于正在使用的密钥的所有密钥都已过期,相应的存储区都应清零。钥的所有密钥都已过期,相应的存储区都应清零。 5保密装置密密钥钥变变换换和和数数据据加加密密的的基基本本操操作作都都用用一一个个保保密密装装置置来来实实现现的的,它它是是一一种种专专用用的的、具具有有很很高高安安全全性性和
27、和可可靠靠性性的的数数据据保保护护工工具具。保保密密装装置置可可用用硬硬件件和和软软件件实实现现,用用硬硬件件实实现现更更有有利利于于保保密密和和提提高高效效率率。目目前前国国外外都都采采用用微微处处理理器器和和软软件件相相结结合合的的技技术术来来实实现现。硬硬件件实实现现加加密密算算法法,软软件件实实现现控控制制和和检检测测功功能能,其其硬硬件组成如图件组成如图6.26.2所示所示65网络系统的密钥管理方法n n在加密系统中,算法是很重要的,但一般情况下算法是公开的,秘密全部寓于密钥之中,所以密钥的管理更为重要,而且面向网络的密钥管理尤为重要。如前所述,密钥的传统管理方法是采用密文传送的通信
28、方法以外的安全通信手段将密钥传送。下面介绍几种常用的密钥管理方法。Diffie-Hellman密钥管理方法n nDHDH方方法法是是19761976年年DiffieDiffie和和HellmanHellman提提出出的的Diffie-Diffie-HellmanHellman密密钥钥交交换换方方法法。选选择择大大素素数数q q和和生生成成元元a a (1aq1aq),其其中中q q和和a a是是公公开开的的,下下面面以以通通信双方信双方A A和和B B为例,介绍为例,介绍DHDH方法的思想。方法的思想。n nA A和和B B分分别别选选择择任任意意的的数数X Xa a和和X Xb b作作为为自
29、自己己的的秘秘密信息,首先计算公开的信息密信息,首先计算公开的信息Y Ya a和和Y Yb b:n n n n接着A和B相互地给对方发送Ya,Yb,然后计算共有密钥。由A计算由B计算和Kab相同的值Kba:A(或B)秘密地拥有Xa(或Xb),并拥有通信对方的公开信息Yb(或Ya),就可以计算Kab(或Kba)。Kab(或Kba)的安全性要得到了确保。为了加深理解上面的原理,下面给出DH法的一个例子。假设前面公式中的基本值a和q赋值为a=5,q=563,设A的秘密信息为Xa=9,设B的秘密信息为Xb=14。计算A和B的公开信息分别为Ya和Yb:=59mod563=78=514mod563=534
30、Xa和Xb是秘密信息,Ya和Yb是公开信息。A和B使用Xa、Xb、Ya、Yb可以计算共有密钥:=5349mod563=117=7814mod563=117在这里,A和B的共有密钥是117,就可以进行加密通信了。表表6.1 使用使用Diffie-Hellman密钥管理方法实现加密的过程密钥管理方法实现加密的过程发信者A受信者B前期准备秘密信息Xa秘密信息Xb公开信息Ya=公开信息事先通信取得B的公开信息Yb取得A的公开信息Ya共有密钥生成计算Kab=计算Kba=会话钥生成由随机数生成器生成会话钥数据信息加密用会话钥加密明文信息会话钥被加密用Kab将会话钥加密密文送信数据密文和加密后的会话钥接收从
31、A发来的数据密文一起送给B和加密后的会话钥解密会话钥用Kba将会话钥密文解密获得会话密钥数据信息解密 用会话钥将数据密文解密获 得数据明文基于公开钥加密体制的密钥管理方法基于公开钥加密体制的密钥管理方法1)需要的密钥对需要的密钥对是DH方法的两倍。受信者B的秘密钥和公开钥分别为Kh和Kq,其中秘密钥Kh只有受信者B拥有,公开钥Kq是公开的。对于公开钥加密方式,KhKq。A从B一方得到公开钥,处理过程如表6.2和图6.4所示。使用Kq对会话钥明文Kc进行加密(E变换)形成密文Ks。使用Kh对Ks解密(D变换)形成会话钥明文Kc,过程表示如下:Ks=E(Kq,Kc)Kc=D(Kh,Ks)用公开钥对
32、会话钥进行加密,用会话钥对数据加密,两部分密文内容一起送给B方。B方使用自己的秘密钥将密文解密,已获得会话钥明文,用会话钥将数据密文解密,获得数据明文信息。表表6.2 基于公开钥加密体制的密钥管理方法基于公开钥加密体制的密钥管理方法发信者A受信者B密钥对生成生成秘密钥Kh,公开钥Kq事先通信取得B的公开信息Kq会话钥生成由随机数生成器生成会话钥Kc数据信息加密用会话钥Kc加密明文信息会话钥被加密用Kq将会话钥Kc加密成KsKs=E(Kq,Kc)密文送信数据密文和加密后的会话钥Ks一起接收从A发来的数据密 送给B和加密后的会话钥Ks 用Kh将Ks解密获得会话钥明 文Kc数据信息解密 用会话钥Kc
33、将数据密文解密 获得数据明文2 2)伪造篡改问题)伪造篡改问题使用公开钥加密方式的密钥管理问题之一,就是伪造篡改问题。使用公开钥进行密钥管理的场合,从对方直接取得受信者的公开钥,密钥服务器是必需的,这时,产生怎样的疑问呢?取得的公开钥是自己通信对方的公开钥吗?第三者(盗听者)会不会篡改呢?并且,接受密文时,密文是谁生成发出的?送信者是谁?受信者是谁?这就是伪造篡改问题。解决这一 问 题的 手段 就 是向 系 统 中 加入认 证证 书CA(certificationauthority)机制。送信者取得受信者公开钥时,公开钥具有认证证书作的签名。并且,送信者送信时也要签名。就可以防止伪造篡改问题,
34、而认证证书的伪造篡改问题怎样防止呢?这可以采用层次性认证证书机制来解决。关于认证证书CA机制稍后讲述。公开钥会话钥被解密会话钥会话钥数据加密数据解密会话钥被加密秘密钥随机数生成器明文密文会话钥密文明文图图6.4 6.4 基于公开钥加密体制的密钥交换基于公开钥加密体制的密钥交换 基于基于KPSKPS的密钥管理方法的密钥管理方法1.基本原理基本原理给给出出系系统统参参与与者者的的公公开开的的认认证证子子ID,向向系系统统中中心心准准备备随随机机构构成成的的秘秘密密数数据据G。把把发发信信者者A的的认认证证子子定定义义为为IDa时时,计计算算Xa = GIDa。把把这这个个计计算算结结果果Xa称称为
35、为A的的秘秘密密算算法法。把把接接受受者者B的的认认证证子子定定义义为为IDb,计计算算Xb = GIDb。把把这这个个计计算算结结果果Xb称称为为B的的秘秘密密算算法法。A,B双双方方通通信信时时,把把各各自自的的认认证证子子传传递递给给对对方方,由由对对方方的的认认证证子子及及自自己己的的秘密算法生成密钥,秘密算法生成密钥,A方的共有密钥为:方的共有密钥为: Kab = XaIDb = (IDaG) IDb = IDaGIDbB方的共有密钥为:方的共有密钥为:Kba = XbIDa = (IDbG)IDa = IDbGIDa其其中中,IDbGIDa = IDaGIDb,也也就就是是A和和B
36、有有相相同同的的共共有有密密钥钥。这种方法叫做线性模式。这种方法叫做线性模式。2.2.线性模式线性模式1986年,松本努教授和今井秀树教授提出了一种线性模式。其主要原理介绍如下:首先把表示各用户的文字信息变成n比特的数据。对应单向函数h和密钥长度k比特,定义单向函数g。在管理KPS的中心,准备随机的k个nn行列式:M1,M2,Mk个行列式元素的值必须是0或1,而且,各行列式必须关于对角线对称。这样的对称矩阵M1,M2,Mk相当于基本原理一节中的G。例:假设n=4,k=3,管理中心的对称矩阵M1,M2,M3设定如下:从M1到M3构成了KPS方式的基本核心。A和B进行加密通信。首先两人将电子邮件地
37、址的认证子向中心登录,将认证子用单向函数变成n个比特。A和B的认证子用单向函数变成n个比特后的结果表示为IDa,IDb:IDa=h(A)=(0101)IDb=h(B)=(0011)在登录中心里,首先从M1到M3与IDa作乘法运算,从而计算出到。这种计算方法与一般行列式计算方法相同,相关的乘法运算时用异或原理。这里以A为例,=M1IDa=(1001)=M2IDa=(1010)=M3IDa=(0010)3.抗干扰模型抗干扰模型得到的结果到在基本原理上同秘密算法的Xa。将单向函数h和g及秘密算法(到)装入抗干扰模型,传给A方。抗干扰模型具有这样的特点:对模型内的信息很难进行不正当的读取或篡改。这个模
38、型内的个人信息,A自己也看不见。对于B方,用同样的方法计算秘密算法Xb(到)时,得到=M1IDb=(0011)=M2IDb=(1110)=M3IDb=(1001)把这些装入抗干扰模型,传递给B。从A向B通信的场合,A方要在抗干扰模型中进行下面的工作。(1)把B的认证子输入给单向函数h,单向函数h对全部用户有相同的定义。所以得出IDb=(0011)(2)得到的B的结果(0011)和A的秘密信息的一个相乘。此时加法运算规则是用异或原理IDb*=0*1+0*0+1*0+1*1=1(3)同理把IDb和 、 ,做相乘计算。(4)把得到的结果按顺序进行排列,形成kab=(101)(5)借助单向函数g计算得
39、到的kab是共有密钥。在B一方,把A的认证子通过单向函数的计算得到IDa=(1010)。然后同样的进行到与IDa的计算。IDa*=10+00+11+01=1IDa*=11+01+11+00=0IDa*=11+00+10+01=1所以kba=(101),kab和kba是相等的,是共有密钥。6.6分布式环境中公钥和单钥结合的密钥管 理体制 网络和分布式环境中,认证服务器星罗棋布,密钥量惊人,如何科学地管理、分配、存储密钥,方便地实现远域服务,是一个严峻的问题。下面介绍一种采用公钥和单钥密码体制相结合的方法来设计认证和密钥分配协议。域内的认证和密钥分配以单钥密码体制为基础,并采用随机数技术防止重放攻
40、击,避免了时戳技术的局限性。域间的认证与密钥分配采用Diffie-Hellman密钥交换体制设计,有利于简化网络密钥管理。分层式公钥分配框架如下所述。CA0CA1CA1CA1CA2CA2CA3CA3CA2第0层第1层第2层第3层认证服务器认证服务器用户用户图 6.6 分层式公钥分配架构 在分布式环境中,当用户要申请使用另一个区域的服务时,需要申请远域服务票据,这就需要两个区域的认证服务器AS之间安全的信息交换。若采用单钥体制,两个认证服务器之间需要共享一个秘密密钥,但是在分布式环境中,认证服务器星罗棋布,密钥的管理、分配和存储是一个严峻的问题。一般而言,公钥认证体制可较为方便地实现这种域间认证
41、,同时可以简化网络密钥的管理。但是,公钥体制的安全性依赖于公钥的真实性,否则非常容易受到中间人攻击,这就需要在系统中引入公证机制,由可信赖的公证机构为用户和网络认证服务器签发公钥证件,以保证公钥的真实性。对于大型的计算机分布式环境而言。采用单一的公证机构为网络中的所有用户和认证服务器签发公钥证件是很困难的,而且不便于网络的业务扩充。图6.6为基于树型公钥证件签发模式树型公钥分配架构的一种适合计算机分布式环境的、可在全球扩展的分层式公钥分配架构,它可以有效、合理地简化网络管理机制。图6.6中第0层的CA0可以视为全球性的证件签发机构,第1层的CA1可以视为是国家级的证件签发机构,第2层的CA2代
42、表省/州级的证件签发机构,而第3层的CA3则是本地区证件签发机构。实际上,CA的层数应根据网络的分布规模决定,可以少于四层。我们仅以图6.6中虚线箭头所指链路为例,给出各级CA签发的证件链样式。为了便于描述,首先定义一些符号:PK(I),SK(I),(I=0,1,2,3),表示第I层CA的公钥和秘密钥。ID(l+1),(I=0,1,2),表示第I层CA为I+1层CA分配的身份代号。PKM,SKM,IDM,表示第4层持证者M(认证服务器或用户)的公钥,私钥和身份代号。C(l+1),(I=0,1,2),表示第I层CA为I+1层CA签发的证件。sign(X;Y),表示用密钥X对消息Y进行签名。h(X
43、),表示对消息X的杂凑函数值。(1)第0层的CA0负责向第1层的CA1分配密钥并签发公钥、证件:PK(0),C(1)。(2)第1层的CA1负责向第2层的CA2分配密钥并签发公钥、证件链:PK(0)PK(1),C(1)C(2)。(3)第2层的CA2负责向第3层的本地证件机构CA3分配密钥并签发公钥、证件链:PK(0)PK(1)PK(2),C(1)C(2)C(3)。(4)位于最低层的CA3负责向它的服务区域内的认证服务器AS分配密钥并签发公钥、证件链:PK(0)PK(1)PK(2)PK(3),C(1)C(2)C(3)CAS。同时给所有入网用户分配密钥并签发公钥、证件链:PK(0)PK(1)PK(2
44、)PK(3),C(1)C(2)C(3)Cu。所有证件的签发都是脱机(Off-line)的,即不包括在实时认证协议中。以C(1)为例说明证件样式:C(1)=P,N(1),lifetime,PK(1),ID(1),sign(SK(0);h(P,N(1),ID(1),PK(1),lifetime),式中,P,是由CA0选择的一个大素数和GF(P)上的本原元(CA1,CA2和CA3不用另外选择),N(1)是CA0为CA1签发证件时产生的随机数,lifetime为证件有效期。这样每个认证服务器和用户都得到一个证件链,可以用一个简化的样式来表示:Cert-AS:CA0CA1,CA1CA2,CA2CA3,C
45、A3AS,Cert-User:CA0CA1,CA1CA2,CA2CA3,CA3User,式中YX表示实体Y给实体X签发的证件。1、认证和密钥分配协议认证和密钥分配协议下面的协议描述中,E(X;Y)表示采用X对消息Y进行公钥加密,e(X;Y)表示采用X对消息Y进行单钥加密。1、初始登录协议中采用基于公钥体制的初始登录方式代替口令键入联机,并获得与AS共享的秘密认证钥。这种利用公钥体制验证身份、交换密钥的方法是目前计算机网络中最流行的做法,它能够有效地防止口令猜测攻击。设用户A已经向本服务区域的证件签发机构申请入网,并获得了证件链Cert-A。(1)认证服务器AS按一定时间间隔,向其域内用户公布其
46、证件链和随机数RN1(每次公布消息时,RN1需要重新产生)。ASA:Cert-AS,RN1(2)用户A首先对AS证件链进行验证。验证通过后,产生随机数RN2,向AS发送询问消息。AAS: E(PKAS; Cert-A, RN1, RN2, sign(SKA; h(RN1,RN2)(3)收到消息后,AS用私钥解密消息,验证Cert-A和签名的合法性。若均合法,存储RN2,向用户A回送应答信息。ASA:e(RN2;IDA,IDAS)(4)用户A收到消息,验证通过后,将RN2作为与AS共享的认证钥kA,AS=RN2。初始化登录中,用户和其域内的认证服务器所共同信赖的证件签发机构位于CA3层上,仅须采
47、用CA3的公钥证件对CA3AS和CA3A进行验证。初始登录完成用户在认证服务器的注册。因无需键入口令,从而避免了口令的一切不安全性;每过一定时间重新登录,用户的认证密钥是暂时存储并经常更换的,一次泄漏不会造成太大的危害,从而提高协议的可修复性,同时也解决了密钥存储、管理方面的问题。2 2认证和密钥分配协议认证和密钥分配协议用户A完成初始登录后,可以和用户B进行通信(假定B已经在其域内的认证服务器ASB登录,并获得共享的认证密钥KB,AS)。1)域内认证域内认证(1)A首先向AS请求访问用户B。NA是表示消息新鲜性的随机数。AAS:DA,e(KA,AS;IDB,NA)(2)AS解密消息,根据B查
48、询其所在的域,如果发现B在本域内,则按域内认证进行以后的操作。由于协议中避免使用时戳,为了防止重放攻击,必须增加AS与B之间的一次交互,使B能够向AS提供随机数,保证以后传递的消息的新鲜性。AS产生随机数NAS,并向B发出通知ASB:e(KB,AS;IDA,IDB,NAS)(3)B解密AS发来的消息后,产生随机数NB,和地址信息一起加密回送给AS。BAS:e(KB,AS;IDA,NAS+1,IDA,NB)(4)AS产生A,B的会话密钥sk,连同B的身份代号和地址信息用KA,AS加密送至A,给B的消息以票据的方式传给A。ASA:e(KA,AS;IDB,addressB,sk,NA),e(KB,A
49、S;IDA,IDB,sk;NB)(5)A解密AS发来的消息得到会话密钥sk,验证NA正确性。验证通过后,A将AS传递的B的票据发送给B,并将自己的身份、地址信息以及随机数NA用sk加密同时发送给B。AB:e(KB,AS;IDA,IDB,sk,NB)e(sk;IDA,addressA,NA)(6)B解密A发来的消息得到sk后,验证其有效性。验证通过后,再解密得到A的地址信息,然后B发送给A用sk加密的认证符,证明自己的身份。BA:e(sk;NA+1)A对认证符验证通过后,则可以采用sk作为与B进行保密通信的会话密钥。2)域间认证)域间认证(1)A首先向其域内的认证服务器ASh请求访问用户B。AA
50、Sh:IDA,e(KA,AS;IDB,NA)(2)ASh解密消息,根据B查询其所在的域ASv,并产生随机数Nhv。计算。AShASv:(3)ASv选择随机数Nvh,计算:,。ASvASh:Svh,e(Kvh;Cert-ASv,sign(SKv;h(Shv,Svh)(4)ASh对证件Cert-ASv和签名进行验证,验证通过后向ASv发送下面的消息。AShASv:e(Khv;Cert-ASh,sign(SKh;h(Shv,Svh),IDA,IDB,Nh)(5)ASv解密收到的消息后,对公钥证件Cert-ASh和签名进行验证。两个认证服务器对双方证件链的合法性的验证过程如下:在接收到对方的证件链后,
51、首先比较、判断双方共同信赖的证件机构处于哪一层上。如果所共同信赖的CA位于CA3层上,仅须采用CA3的公钥对CA3ASh和CA3ASv进行验证;如果共同信赖的CA位于CA2层上,证件链CA2CA3,CA3ASh和CA2CA3,CA3ASv将被验证。对于其它情况可以类推,直到采用CA0的公钥对整个的证件链进行验证。验证通过后,ASv向B发出通知。ASvB:e(KB,AS;IDA,IDB,Nv)(6)B解密ASv发来的通知后,产生随机数NB,将地址信息和随机数加密回送给ASv。BASv:e(KB,AS;IDA,Nv+1,IDB,NB)(7)ASv解密消息后,产生A和B的会话密钥sk,连同B的身份代
52、号和地址信息用Kvh加密送至ASh,给B的消息以票据的方式同时传送给ASh。ASvASh:e(Kvh;Nh+1,IDB,addressB,sk,e(KB,AS;IDA,IDB,NB,sk)(8)ASh解密消息,并验证消息的有效性。验证通过后,将会话密钥sk,B的身份代号和地址信息以及给B的票据转发给A。AShA:e(KA,AS;IDA,IDB,addressB,sk,NA,e(KB,AS;IDA,IDB,NB,sk)。(9)A解密ASh发来的消息得到会话密钥sk,验证NA的正确性。验证通过后,A将ASh传递的B的票据发送给B,并将自己的身份、地址信息以及随机数NA用sk加密同时发送给B。AB:
53、e (KB,AS;IDA,IDB,NB,sk),e (sk;IDA,addressA,NA)(10)B解密A发来的消息得到sk后,再解密得到A的地址信息,然后B发送给A用sk加密的认证符,证明自己的身份。BA:e(sk;NA+1)A对认证符验证通过后,则可以采用sk作为与B进行保密通信的密钥了。3协议安全性分析在上面的协议中,用户和认证服务器的公钥证件链是由公证机构签发的。除了公证机构之外,任何人均不了解公证机构的私钥,因此公钥证件链不能被公证机构之外的任何人伪造或篡改。协议中,用单钥加密算法来证实认证密钥携带者的身份。攻击者不了解用户的秘密认证钥,不能假冒用户。公钥签名算法和单向函数用来证实
54、域间认证服务器的身份,攻击者不知道认证服务器的私钥不能伪造签名,因而不能假冒。而且签名的使用还可以有效地防止中间人攻击。在协议中,NA,NB,NA,Nv,Nh,Nvh,Nhv均为随机数,每次执行方案都需要改变一次。即使攻击者截获了某些消息,也不能利用它们来假冒协议中的任何实体进行欺诈,因此协议可以防止重放攻击。协议中,用户的身份和地址信息在域间认证时是加密后传输的,这样可以隐藏用户的真实身份,防止攻击者对用户的跟踪,实现匿名传输。协议采用基于公钥技术的初始登录,有效地避免了口令猜测攻击;协议中采用随机数技术来保证消息的新鲜性,避免了使用时戳技术所要求的整个网络时钟同步的困难性。协议在域内认证时
55、采用单钥体制,实现简单,速度快;域间认证时采用公钥体制,有利于整个网络和分布式环境的结构简化,并可以极大地消除域间的某些不安全因素,提高网络和分布式环境的整体安全性。在域内,协议的安全性依赖于认证服务器的安全性;而在域间认证与密钥交换的安全性则依赖于公证机构的可信赖程度,如果公证机构是可信赖的,则协议就是安全的。67 密钥托管随着保密通信在现代社会中的作用日益加强,保密通信设备已广泛地用于党政部门,企业内部,银行系统等,对这些部门的信息保密起了很好的作用。但这些部门内部人员以及一些犯罪分子也可利用该通信设备合法传送他们的犯罪信息,进行犯罪活动,如恐怖威胁,有组织贩毒,泄露企业内部秘密,危害国家
56、及企业的利益,为了监视和防止这种犯罪活动,人们提出了密钥托管概念。自从美国政府公布托管加密标准(EESEscrowedEncryptionStandard)以来,该领域受到了世界广泛的关注,并且有关该领域的研究也随之成为近几年密码学界的另一个热点。密钥托管的前提是:用户不应具有在他们中间分配其它秘密密钥的能力,否则用户用这些密钥替代密钥托管机构能控制的密钥,从而绕过密钥托管,使密钥托管失效。密钥托管可以简单地理解为把通信双方每次的会话密钥交给合法的第三方,以便让合法的第三方利用得到的会话密钥解密双方通信的内容,从而来监视双方通信。一般而言合法的第三方为政府部门和法律执行部门等。密钥托管的一个最
57、简单方法就是由一个(或多个)可信的政府代理机构为个人保管秘密密钥。这样经过适当的授权,政府就能检索存储的秘密密钥,进而对窃听到的通信进行解密。密钥托管方法主要有:使用单钥密码体制,公钥密码体制,单钥密码与公钥密码体制结合,秘密共享,公正密码体制,下面将详细分析各种密钥托管方法成立的条件和特点。1密钥托管方法本部分讨论的密钥托管方法使用的一些记号为:通信双方是发送者A,接受者B,密钥托管者G。下面这些方法主要讨论如何建立一个特定的数据恢复域(DRF),DRF中包括加密后的会话密钥以及其它一些特定的信息,G可从DRF中恢复出会话密钥,从而能恢复出双方通信的内容。1)单钥密码体制在使用单钥密码体制进
58、行密钥托管时,必须要求把单钥密码体制放在一个具有防拆性功能的芯片中,该单钥密码体制使用的密钥称为超级密钥UK,UK及单钥密码体制仅为少数几个政府托管部门知道,甚至UK可由几个政府部门托管,其它任何人都不知道该单钥密码体制和UK。下面有两种形式的密钥托管方法。(1)只具有密钥托管功能的密钥托管方法在A与B开始通信时,他们通过密钥交换协议得到一个相同的会话密钥CK,在用CK加密双方通信的同时,CK与A和B的身份IDa,IDb及通信时间T连接在一起作为明文输入装有单钥密码体制的芯片中,在UK的控制下得到一个DRF,DRF和密文一起传送。如果G需要解密A和B通信的内容,只需利用一个装有相应单钥密码体制
59、的芯片,在UK的作用下,解密DRF,从而得到通信双方的身份和通信时间及每次通信的会话密钥,因此能得到双方通信的内容。即用户形成的DRF为DRF=e(UK,CKIDaIDbT)G解密DRF从中分离出CKCKIDaIDbT=d(UK,DRF)去掉IDa,IDb和T后,得到CK。e表示用单钥密码体制的加密算法,d表示用单钥密码体制的相应解密算法,表示连接。(2)具有身份鉴别功能的密钥托管方法在每一个用户i开始进行通信前,他们都选择一个秘密密钥Ski,通过该芯片在UK的作用下得到一个公开密钥PKi。这里Ski和PKi仅为G用来鉴别用户i的身份,并不是一对用于加解密的密钥。在A与B开始通信时,他们通过密
60、钥交换协议得到一个相同的会话密钥CK,在用CK加密双方通信的同时,CK与通信时间T连接在一起用SKa进行加密得到一个输出,该输出与A和B的身份IDa,IDb连接在一起作为明文输入到装有单钥密码的芯片中,在UK的控制下得到一个DRF,DRF和密文一起传送。如果G需要解密A和B通信的内容,利用一个装有单钥密码体制的相应解密芯片,在UK的作用下得到A和B的身份及加密后的CK,G通过A的身份找到PKa,从而利用PKa得到SKa进而得到通信双方的会话密钥,因此能得到双方通信的内容。此外它还具有验证A的身份功能,因为只有A能构成该DRF。即用户形成的DRF为DRF=eg(UK,eu(SKa,CKT)IDa
61、IDb)G解密DRF,分离出CK为eu(SKa,CKT)IDaIDb=dg(UK,DRF)去掉IDa,IDb后,得到eu(SKa,CKT),因为dg(UK,PKa)=SKa,G能得到Ska,CKT=du(SKa,eu(SKa,CKT)去掉T后得到CK。eg表示用芯片内单钥密码体制的加密算法,dg表示用芯片内单钥密码体制的相应解密算法。eu表示用任何一种单钥密码体制的加密算法,du表示用相应的单钥密码体制的解密算法,这个算法可公开,它也很容易构造,在此不再论述。2)公钥密码体制使用公钥密码体制进行密钥托管时,我们讨论4种形式的密钥托管。(1)只具有密钥托管功能的密钥托管事先G选择一个秘密密钥SK
62、g,公开相应的公开密钥PKg。在A与B进行通信时,A把双方约定的会话密钥CK,IDa,IDb及通信时间T用PKg进行加密后形成DRF,DRF与用CK加密后的通信内容一起传送,解密时G只需要利用SKg来从DRF中恢复出双方的会话密钥CK。从而能解密双方的通信内容。即用户形成的DRF为DRF=E(PKg,CKIDaIDbT)G解密DRF从中分离出CK为CKIDaIDbT=D(SKg,DRF)去掉IDa,IDb和T后,得到CK。E表示公钥密码体制的加密算法,D表示公钥密码体制的相应解密算法。(2)具有用户身份鉴别功能的密钥托管在每一个用户i开始进行通信前,他们都选择一个秘密密钥SKi,公开相应的公开
63、密钥PKi,而且G也要选择一个秘密密钥SKg,公开相应的公开密钥PKg。在A与B进行通信时,A把双方约定的会话密钥CK及通信时间T先用自己的秘密密钥SKa进行加密后,与IDa,IDb连接在一起,然后用公开密钥PKg进行加密,形成DRF,只有G能解密DRF,获得用户A的身份,进而得到A的公开密钥PKa,从而得到会话密钥CK。它不仅能解密双方通信的内容,而且能验证用户A的身份。即用户形成的DRF为DRF=E(PKg,E(SKa,CKT)IDaIDb)G解密DRF,从中分离出CK为E(SKa,CKT)IDaIDb=D(SKg,DRF)CKT=D(PKa,E(SKa,CKT)去掉IDa,IDb和T后,
64、得到CK。E表示公钥密码体制的加密算法,D表示公钥密码体制的相应解密算法。(3)具有相互身份鉴别功能的密钥托管在每一个用户i开始进行通信前,他们都选择一个秘密密钥SKi,公开相应的公开密钥PKi,用户i把秘密密钥SKi分成两部分SKUi和SKGi,用户i把SKGi通过安全信道传送给G,而把SKUi留给自己秘密保管,SKUi和SKGi要满足一定的条件,如采用RSA时,秘密密钥SKi等于SKUi和SKGi的乘积。在A与B进行通信时,A把双方约定的会话密钥CK及通信时间T先用自己保存的部分秘密密钥SKUa进行加密后,与IDa,IDb连接在一起,然后用G的公开密钥PKg进行加密,形成DRF,除了G外任
65、何人都不能解密DRF,G首先利用SKg解密获得用户A的身份,进而利用公开密钥PKa及自己保管的另一部分秘密密钥SKGa,得到会话密钥CK。从而能解密双方通信的内容,它还能相互验证用户A和B的身份。即用户形成的DRF为DRF=E(PKg,E(SKUa,CKT)IDaIDb)G解密DRF从中分离出CK为E(SKUa,CKT)IDaIDb=D(SKg,DRF)CKT=D(PKa,SKGa,E(CKT,SKUa)去掉IDa,IDb和T后,得到CK。E表示公钥密码体制的加密算法,D表示公钥密码体制的相应解密算法。(4)具有验证和身份鉴别功能的密钥托管在每一个用户i开始进行通信前,他们都选择一个秘密密钥S
66、Ki,公开相应的公开密钥PKi,而且G也要选择一个秘密密钥SKg,公开相应的公开密钥PKg。在A与B进行通信时,A把双方约定的会话密钥CK及通信时间T先用自己的秘密密钥SKa进行加密后,与A和B的身份IDa,IDb连接在一起,并用公开密钥PKg把CK加密后取一部分,然后把加密后的CK,IDa,IDb和CK加密后的一部分连接在一起,再用公开密钥PKg进行加密形成DRF,只有G能解密DRF,获得用户A的身份,得到A的公开密钥PKa,从而得到会话密钥CK。它不仅能解密双方通信的内容和验证用户A的身份,而且G可利用自己的公开密钥PKg来重新加密CK,并得到一部分,并把它和接受到的CK的相应加密部分进行
67、比较,从而鉴别CK是否正确。即用户形成的DRF为MAC=TUN(E(PKg,CK)DRF=E(PKg,E(SKa,CKT)IDaIDbMAC)G解密DRF从中分离出CK为E(SKa,CKT)IDaIDbMAC=D(SKg,DRF)CKT=D(PKa,E(CKT,SKa)去掉IDa,IDb和T后,得到CKMAC=TUN(E(PKg,CK)MAC与MAC相等吗?E表示公钥密码体制的加密算法,D表示公钥密码体制的相应解密算法,TUN表示截取n位。3)单钥密码体制与公钥密码体制的结合此时单钥密码体制可完成鉴别功能,而公钥密码体制完成签名和托管功能,具体过程如下:在每一个用户i开始进行通信前,他们都选择
68、一个秘密密钥SKi,公开相应的公开密钥PKi,而且G也要选择一个秘密密钥SKg,公开相应的公开密钥PKg,用单钥密码体制构成一个散列函数HASH,它也可公开。在A与B进行通信时,A把双方约定的会话密钥CK及通信时间T先用自己的秘密密钥SKa进行加密后,与A和B的身份IDa,IDb连接在一起,并且A用散列函数对CK,IDa和IDb进行散列得到一个散列值,然后把加密后的CK,IDa,IDb和散列值连接在一起,用公开密钥PKg进行加密,形成DRF,除了G外,其它任何人都不能解密DRF,G用自己掌握的秘密密钥SKg解密DRF,得到A的身份,找到A的公开密钥PKa,从而解密用SKa加密的CK,得到CK。
69、在此密钥托管方案中,只有G能解密DRF,完成托管功能;只有利用A的公开密钥才能解密会话密钥,完成用户的身份验证;并且G能利用单钥密码体制构造的散列函数对得到的会话密钥CK及IDa和IDb进行散列运算,得到一个散列值,并把它和接受到的散列值进行比较,从而完成鉴别功能。即用户形成的DRF为MAC=HASH(CKIDaIDb)DRF=E(PKg,E(SKa,CKT)IDaIDbMAC)G解密DRF从中分离出CK为E(SKa,CKT)IDaIDbMAC=D(SKg,DRF)CKT=D(PKa,E(SKa,CKT)去掉IDa,IDb和T后,得到CK。MAC=HASH(CKIDaIDb)MAC与MAC相等
70、吗?E表示公钥密码体制的加密算法,D表示公钥密码体制的相应解密算法,HASH表示由单钥密码体制构造的散列函数。4)秘密共享一个秘密共享方案(也称为门限方案)的工作是这样的:一个消息划分成n片,每片称为一个影子,使得任意m个影子都能重构该消息,但任意m-1个影子都不能重构该消息。它也称为(m,n)门限方案。最常见的门限方案有:Shamir的拉格朗日插值多项式,它主要利用了有限域中的多项式方程来构造门限方案;Blakly的矢量方案,它利用了空间中的点来构造方案,消息定义为m维空间中的一个点,每一个影子是包括这个点的(m-1)维超平面的方程,任意m个这种超平面的交刚好确定这个点,Asmuth和Blo
71、om利用素数特性来分配影子,利用中国剩余定理来恢复秘密;Karnin-Greene和Hellman的使用矩阵乘法的方案。高级门限方案为:不同的人得到不同数目的影子,两个或更多的人得到多个影子。不论影子按何种方式分配,其中任意m个影子总能恢复秘密,然而即使有m-1个影子无论是一个人拥有还是多个人拥有都不能恢复这个秘密。还有有骗子情况下的秘密共享及有预防情况下的秘密共享。利用门限秘密共享进行密钥托管是很容易的,假设秘密共享密钥SSK在n个托管者之间共享,每个托管者分配一个影子,而只需其中m个托管者就可恢复秘密共享,具体的共享方案可以是上述门限共享方案中的任何一个。在A与B开始通信时,他们通过密钥交
72、换协议得到一个相同的会话密钥CK,在用CK加密双方通信的同时,CK及通信时间T用一个秘密共享密钥SSK进行加密,形成DRF,DRF和密文一起传送。如果G需要解密双方通信的内容,那么他只需要m个托管者协作就可得到SSK,从而用SSK解密DRF,得到通信双方的会话密钥,因此能得到双方通信的内容。A用SSK对CK的加密可采用任何一种加密形式,而G的解密就是加密的逆运算。甚至可根据不同的托管者的特权不同,可分配不同数目的影子,如特权大的多分配几个影子,特权小的少分配几个影子,这样也可进行高级门限密钥托管。像秘密共享方案一样,它也可进行有骗子情况下的密钥托管和有预防情况下的密钥托管,在此不再叙述。5)公
73、正密码体制自从1979年Blakley和Shamir首次推出秘密共享方案后,各种秘密共享方案不断大量出台,Blakley和Shamir发现了秘密共享方案的一个难点是,只有每个人都泄露他们各自持有的秘密时,才能恢复出他们的共享。而公正密码体制就能去掉这个缺点,它不必泄露各自的秘密,就能恢复出他们的共享。如共享秘密是一个私人密钥对文件的签名,那么n个分享者每个人都能完成对文件的部分签名,在第n个签名后,文件便是用共享的私人密钥签名,而分享者中没有一个人能学到有关其它分享者的任何东西,而且分享者能验证的部分共享是否正确。利用公正密码体制进行密钥托管是很容易的,在A与B进行通信时,他们通过密钥交换协议
74、得到一个相同的会话密钥CK,在用CK加密双方通信的同时,CK及通信时间T用一个A的秘密托管密钥S进行加密,形成DRF,DRF和密文一起传送。如果G需要解密双方通信的内容,那么他只需要所有托管者协作就可得到S,从而用S解密DRF,就可得到通信双方的会话密钥,因此能得到双方通信的内容。下面我们以基于离散对数的公钥密码体制为例,看一看A是如何分配托管密钥的,G又是如何恢复出A的托管密钥的,这种方案也可推广到其它一些公钥密码体制中去。n个托管者共享一个素数p和一个生成元g,A的托管密钥是S,且他的公开密钥是:T=gSmodp(1)A选择n个都比p小的整数s1,s2,s3,sn,A的托管密钥是S=(s1
75、+s2+sn)modp同时他的公钥是T=gSmodpA也要计算ti=gsimodp,i=1,2,nA的公开托管密钥是ti及相应的私人托管密钥Si。(2)A发给每一个托管者一个私人托管密钥和相应的公开托管密钥。如发给第一个托管者的是s1和t1,他把T送给G。(3)每一个托管者验证ti=gsimodp,i=1,2,n如果它成立,则该托管者对ti签名,并把它发给G,然后把si存储在一个安全的地方。(4)在接受到所有公开托管密钥后,G验证T=(t1t2tn)modp如果它成立,G同意这个公钥。至此G知道每一个托管者都有一个有效的托管密钥,而且如果需要的话他们一起还能恢复出A的托管密钥(私人密钥),然而
76、无论是G还是任何单个人都不能恢复出A的托管密钥。68 等级加密体制中的密钥管理1等级模型在等级加密体制中,我们把所有用户按安全等级分成组,组之间是按外向树组织,树中每一个节点对应一个组,父节点对应的组一定能解密子孙节点对应组所加密的消息,反之则一定不成立。由于节点与组之间一一对应,所以,为叙述方便,我们将节点与组视为同一概念。以图6.7为例来说明,所有用户被分为6个组,组g0的安全级别最高,组g3,g4,g5的安全级别最低,也就是说,g0可以解密任何一个组加密的消息,g3,g4,g5只能解密自己组加密的消息,这里,消息是指文件内容、电子邮件、同组用户之间的会话等。对于外向树中的每一个节点所对应
77、的组,我们把父节点对应的组称为父组,把子孙节点对应的组称为子孙组。用gpar(j)表示gj的父组,用gdes(j)表示gj的子孙组,用gson(j)表示gj的子组。根节点对应的组称为根组,把叶子节点对应的组称为叶子组,g0g2g5g1g4g3图 6.7 分组构成的树2密钥管理体制我们用ek(x)表示用密钥K利用对称体制对消息x加密,Ek(x)表示用公钥K对x利用非对称体制加密,dk(x)、Dk(x)表示相应的解密运算,xsig(A)表示x连同签名的消息,IDj表示组gj的属性字符串,同样,我们有一个密钥管理中心,作为可信任的第三方存在,我们把该中心称为KMC(keymanagementcent
78、er)。在我们的体制中有一个证书当局CA(certificationauthoriy)存在。1)利用非对称加密技术的体制(1)会话密钥的产生与发布在此体制下,KMC用来存放组公钥以及存放组之间的关系参数。会话密钥的产生与发布的步骤如:步骤步骤1每一个子组gj选择公开钥pkj和秘密钥sj,把IDj,pkjsig(gj)送交KMC,KMC对其签名并发布出来。这里,如果该组是第一次参与到该等级加密体制中来,则IDj,pkj需通过安全信道传送至KMC。这是由于不诚实的组假扮成另一个组与KMC通信,而KMC无法判断其真伪所至。同时,把pkj及相关的信息传送到CA,由其建立相应的证书。步步骤骤2每一个非根
79、组gj,从KMC得到gpar(j)的由KMC签名的公开钥,然后计算:并传送到KMC,KMC签名并发布出来,我们把上式称为gpar(j)与gj的关系参数。很显然,树中的每一条边对应于一个关系参数。步骤步骤3gj选择会话密钥kj,计算:然后将上式及有关的必须信息(如管理信息等)传送到KMC,由KMC签名并发布出来。(2)会话密钥的推导由于任何一个组到其子孙组都有一条直接的通路,通路上每一条边都有对应的关系参数,只要已知父节点的秘密钥,就能推导出子孙节点的秘密钥。所以任何的父组都能得到子孙组的秘密钥,这样,通过解密由子孙组的公开钥加密的会话密钥,就可以得到相应的会话密钥,也就是说,每一个祖先组都能够
80、计算得到子孙组的会话密钥。(3)用户秘密钥的改变为安全起见,组可能改变自己的公开、秘密钥。以组gj为例,将其公开、秘密钥改为pkj,sj的过程如下:步步骤骤1把传送到KMC,KMC对仍有效的会话密钥重新加密,比如会话密钥kj仍有效,则KMC计算:,然后将加密结果签名并公布出来.。步骤步骤2gj计算该组与其父组的关系参数:然后将及有关的必需信息送到KMC。步骤步骤3KMC将,分别签名后发布出来。(4)基于RSA算法的等级加密体制每一个组gj选择素数pj,qj,计算nj=pjqj,随机选择xj,使得gcd(xj,(nj)=1,使用Eucildean算法计算,将nj,xjsig(gj)送交KMC,如
81、果是第一次参加到等级加密体制中来,则通过安全信道将nj,xj送交KMC。同时,将nj,xj及相关信息送交到CA,由CA产生相应的证书。gj从KMC得到npar(j),xpar(j)sig(KMC),计算yj,如果dj的位数大于,则对yj进行分块加密,然后将结果送交KMC,再由KMC签名后发布出来。组gj选择会话密钥kj,计算,然后将计算结果及相关的信息送交KMC,再由KMC签名并且发布出来。注意:在使用基于RSA的等级加密体制时,所有组不能选取同样的素数p,q。(5)基于ElGamal算法的等级加密体制KMC选择大素数p,在乘群z*p中选择本原根,然后将p,公布出来供所有的用户使用。每一个组g
82、j随机选择xz*p-1,计算,然后将IDj,yjsig(gj)传送到KMC。如果是第一次参与到等级加密体制中来,则通过安全信道传送,在KMC验证签名的正确性之后,重新签名并将其发布出来。同时,将yj及相关信息送交到CA,由CA产生相应的证书。组gj从KMC得到ypar(j)sig(KMC),随机选择rjz*p-1,计算和然后将结果送交KMC,再由KMC签名后发布出来。会话密钥的推导与组公、秘密钥的改变这里不再加以描述。(6)安全性分析以上的体制具有如下的安全特性:下级组要得到祖先组的会话密钥,面对离散对数问题(ElGamal)或素因子分解(RSA)问题;对于外部用户(不属于会话组的用户),要得
83、到任何子组的会话密钥,也面对同样的问题。这是因为:我们假设子组gj企图得到kpar(j),他只能通过获得spar(j)去解密(Epar(j),要获得spar(j),首先,gj可以通过改变sj得到自己想要的密文(sj)。很显然,得到选择的明密文对对RSA和ElGamal的安全性不构成任何威胁,所以,通过改变sj获得明密文对无助于得到spar(j)。其次,gj只有通过解密(spar(j),才能获得其父组的秘密钥,而解密该密文只能面对离散对数问题或者素因子分解问题。所以,对于gj要获得祖先组的会话密钥或者对于外部用户要获得任何组的会话密钥,在目前看来是不可能的。2)基于对称加密技术的体制与公钥体制不
84、同,若采用单钥加密体制,KMC在产生不同组的会话密钥之前,与每一个组有一个预共享密钥shj。(1)会话密钥的产生步骤步骤1 子组gj选择密钥k(0)j,并传送至KMC。步骤步骤2 KMC用gpar(j)的密钥k(0)par(j),计算:并发布出来。步骤步骤3每一个子组gj选择会话密钥k(1)j,然后计算:并将计算结果传送到KMC。步骤步骤4 KMC将发布出来。(2)会话密钥的推导与基于公钥的体制一样,任何一组到其子孙组都有一条通路,沿着该通路的对应边逐一解密,即可得到子孙组密钥,从而得到其会话密钥。(3)组密钥的改变设gj要改变密钥为,则gj计算:并传送到KMC,KMC计算:,并发布出来,对于
85、gj所有的子组gson(j),计算:,并发布出来。对仍有效的会话密钥,KMC先解密得到会话密钥,然后用加密后重新发布出来。设gj要改变其与KMC之间的会话密钥为shj,则gj计算:传送到KMC,KMC解密得到shj。(5)安全性分析如果等级加密体制采用的对称算法可以抵抗明文的已知攻击,则以上体制可以做到:下级组要得到任何其祖先组的会话密钥只能使用穷搜索攻击;对于外部用户,他要得到任何组的会话密钥也只能采用穷尽搜索攻击。这是由于,一个内部用户可以通过不停地改变其密钥来获得由其父组密钥加密的明密文对,表面上看来,该用户可以采取选择明文攻击的策略。到目前为止,由于选择明文攻击所需的明密文对数量非常大,我们可以通过有效手段控制任何组得到足够多的明密文对,使得内部用户不可能实施选择明文攻击,所以,只要我们的对称算法抵抗已知明文攻击,则下级组要得到任何其祖先组的会话密钥只能使用穷搜索攻击。同样,外部用户要得到某一组的会话密钥,也只能使用穷搜索攻击。