网络安全中基于传统对称密码体制的密钥管理(共7页).doc
精选优质文档-倾情为你奉上 网络安全中基于传统对称密码体制的密钥管理 摘要本文主要介绍了基于传统对称密码体制下的一种密钥分配方案。它将整个系统中的密钥从低到高分成三个等级初级密钥、二级密钥和主机主密钥。低级密要不会以明文的形式出现,而是以受高级密钥加密的形式传输和保存。高级密钥存放在一种专有密码装置(硬件)的工作寄存器中(该寄存器的内容只能设置不能访问),并且相关的密码转换操作均在专有密码装置中进行,这样便保证了密钥装置内之外永不一明文的形式出现。从而较好的提供了一种安全的密钥管理方案。1 介绍根据近代密码学的观点,密码系统的安全应只取决于密钥的安全,而不取决于对算法的保密。在计算机网络环境中,由于用户和节点很多,需要使用大量的密钥。密钥的数量如此之大,而且又要经常更换,其产生、存贮、分配是极大的问题。如无一套妥善的管理方法,其困难性和危险性是可想而知的。 以下的讨论基于这样一个事实:计算机网络中的各个节点或者是主机或者是终端。为了简化密钥的管理工作,我们采用密钥分级策略。我们将密钥分成初级密钥、二级密钥和主机主密钥三个级别。1) 初级密钥用于加解密数据的密钥称为初级密钥,记为K。初级密钥可由系统应用实体请求通过硬件或软件方式自动产生,也可以由用户自己提供。初级密钥仅在两个应用实体交换数据时才存在,它的生存周期很短,通常只有几分钟。为了安全,初级密钥必须受更高一级的密钥的保护,直至它的生存周期结束为止。 一般而言,初级密钥为相互通信的两个进程所共享,在主机或终端上会同时存在多个初级密钥。2) 二级密钥二级密钥用以加密保护初级密钥,记作KN。二级密钥的生存周期一般较长,它在较长时间里保持不变。3) 主机主密钥 主机主密钥是这一管理方案中的最高机密钥,记作KM,用于对主机系 统的 初级密钥和二级密钥提供保护。主机主密钥的生存周期很长。在一个网络系统中由主机和终端等多种需要使用密钥的实体,只有针对 不同性质的实体配备不同的密钥,并对不同的密钥采取不同的保护才能 方便密钥的管理。我们可以采用下面的密钥配置方案。原始数据初级密钥二级密钥主机主密钥 加密 加密 加密 加密2 密钥的配置和保护我们所要达到的目标是要确保除了在保密条件下,密钥永不以明文的形式出现。假定网络的拓扑结构是多个终端连到一台主机上,然后主机在与其他主机相连。如下图所示:KMT3终端3密钥数据库KM02KMT2主机2密钥数据库KM01主机1终端2 终端1KMT1终端1 KN1 KN3 KN4 KN2 KN5 为专用密码装置 一般情况下,当用户要在某一个通信信道上进行通信时,要用初级密钥KS对所要传输的数据进行加密,并且连同KS一起传送给接收方。如果KS被敌方所截获,这不能保证数据的保密性。于是可以用该通道上的二级密钥对KS进行加密后再传送,便可以保证数据的保密性。但是,二级密钥不能以明文的方式出现,否则同样会被敌方所利用。 为了很好的解决这些问题,我们对密钥进行如下分配: 1)终端 每一个终端配置唯一的一个二级通信密钥KN(称其为终端的主要密钥(KMT)),并由密钥安装人员装入终端的专用密码装置,终端接收用户自己提供的初级密码。 2)主机 如果一个接有m个终端的主机与其余n个主机相连,那么它需要2n+m个二级密钥,其中2n个二级密钥对其余n个主机的两个通信方向进行隔离保护,剩下的m个对终端通信进行隔离保护。实行加密隔离的好处是即使某一密钥被泄露二不会暴露其它密钥,是损失降至最小。 为了对初级密钥和二级密钥的两个传输方向之间进行加密隔离,在主机中采用三个主机主密钥:KM0,KM1,KM2。KM0用来加密保护主机中的初级密钥,KM1和KM2分别用来加密通信的两个方向上的二级密钥。 其中KM1和KM2可以由KM0导出。例如,对KM0的某些位取反分别产生KM1和KM2,这样在主机中只需将KM0以明文的形式保存到专用密码装置中。3 密钥数据库(CKDB)CKDB用以存贮备足记住密钥加密的二级密钥。一种可行的CKDB的文件记录格式如下:密钥名 密钥1 密钥2 密钥类型 密钥名通常使用密钥的资源名命名,密钥1字段放置KM1加密的密钥,密钥2字段放置KM2加密的密钥,类型1表示本主机上的终端上的主密钥,类型2表示与其他主机通信的二级密钥。举例如下:本地终端主密钥:终端名 E(KM1,KMT) 1 与其他主机通信的二级密钥主机j E(KM1,KNij) E(KM2,Knji) 2 其中,E(K,M)表示用密钥K加密信息M的结果。 4.专用密码装置专用密码装置是一种专用的具有高安全性和可靠性的保密工具,它用硬件实现,由一个强的密码算法、密钥存贮器、数据存贮器以及控制器和接口电路组成,如下图所示: 数据存贮器 E/D工作密钥 主密钥 控制器 操作码 数据 输出主密钥采取物理的和逻辑的存取控制方法,确保只有授权的合法操作才能对专用密码装置进行操作。专用密码装置的安全关系到整个密码系统的安全,必须采取各种技术的和行政的措施予以确保。专用的密码装置的基本功能是存贮密钥、加解密数据和密钥变换。用于终端和主机的专用密码装置的操作和功能是不同的。1) 终端专用密码装置的操作a. LKD:K 直接装入初级密钥K因为终端允许用户自己提供初级密钥,故设此操作予以支持。此命令把用户自己提供的初级密钥有数据输入端直接送入工作密钥寄存器。注意:当初级密钥由系统自动产生时不需要此操作。不存在用于读出工作密钥的逆操作。b.WMK:KN 写二级密钥此命令的功能是把分配给终端的二级密钥写入主密钥寄存器。并因此称KN为终端的主密钥,记为KMT。注意:此操作无逆操作,且仅在特许状态下才能进行。c.DECK:E(KN,K) 转入初级密钥驰名淋巴从数据输入端输入的被KN加密的初级密钥K的密文解密,恢复出K并送入工作密钥寄存器。d.ENC:M->E(K,M) 加密数据此命令用工作密钥寄存器中的初级密钥K加密有数据输入端输入的数据,并将密文输出。e.DEC:E(K,M)àM 解密数据此命令用工作密钥寄存器中的初级密钥K解密由数据输入端输入的密文,并将明文输出。2) 主机专用密码装置的操作 主机专用密码装置的操作比终端的复杂a.ECPH:E(KM0,K),MàE(K,M) 加密数据此操作的功能是,输入初级密钥的密文形式E(KM0,K),解密出K,将K存入工作密钥寄存器,再用K加密输入的数据M,输出密文 E(K,M).b.DCPH:E(KM0,K),E(K,M)àM 解密数据此操作的功能是,输入E(KM0,K),解密出K,将K存入工作密钥寄存器,再用K解密输入的密文E(K,M),输出明文M.c.SMK:KM0 置入主密钥此操作的功能是由密钥安装人员手工置入主密钥KM0.注意:此操作仅在特许状态下才允许进行,而且无逆操作。d.EMK:KàE(KM0,K) 加密初级密钥此操作的功能使用主密钥KM0加密初级密钥K。本操作支持用户自己提供的初级密钥,而且无逆操作。e.RFMK:E(KM1,KN),E(KM0,K)àE(KN,K) 密钥变换此操作的功能是把用KM0加密的初级密钥K,转换成用二级密钥KN加密的形式。执行过程为,输入E(KM1,KN),用KM1解密得到KN,并将KN存入工作密钥寄存器,其中的KM1由KM0产生。再输入E(KM0,K),用KM0解密得到K,并将K存入数据寄存器。最后用KN加密K,输出E(KN,K).f.RTMK:E(KM2,KN),E(EN,K)àE(KM0,K) 密钥变换此操作的功能是,把用KN加密的初级密钥转换成为用KM0加密的形式。此操作的执行过程与RFMK类似。注意:如果KM1=KM2,这操作RFMK和RTMK便成为互逆操作。为了避免这种情况,采用KM0KM1KM2.应该指出,以上介绍的专用密码装置的操作,均是基本操作,直接编程仍然不方便,同时也为了与系统借口,通常还要利用这些基本操作形成功能更强、使用更方便的宏指令与系统接口。5 实例介绍为了避免自己产生明文的初级密钥,采用动态产生伪随机数RN,并以RN作为被主密钥加密的形式 RN=E(KM0,KS)这样做的优点是,密钥一产生就以密文形式出现,而且可以直接用于数据的加密和解密。1) 同一主机上的两个终端的通信设T1,12是同一主机上的两个终端,T1的用户A要和T2的用户B进行保密通信的过程如下:a) A向主机申请与用户B会话。b) 主机响应后,产生一个RN=E(KM0,KS),从CKDB中取出E(KM1,KMT1)和E(KM1,KMT2),并进行密钥转换: RFMK:E(KM1,KMT1),RNàE(KMT1,KS), RFMK:E(KM1,KMT2),RNàE(KMT2,KS), 将E(KMT1,KS)发给T1,将E(KMT2,KS)发给T2。c)T1和T2各自利用自己的终端密码装置解密出KS,并置入工作密钥寄存器: T1:DECK:E(KMT1,KS) T2:DECK:E(KMT2,KS) 至此,T1和T2已共享相同的会话密钥KS。d)A利用终端密码装置加密会话数据并发给B,ENC:MàE(KS,M)e)B利用终端密码装置解密:DEC:E(KS,M)àM上述密码操作仅涉及主机主密钥KM0,KM1。整个通信过程的加解密全部在专用密码装置中进行。除了初始化时制作E(KM1,KMT)时外,其余操作均不需要明文形式的密钥,从而避免了密钥在密码装置外以明文形式出现。2) 不同主机上的两个终端的通信设i,j代表两个主机节点,它们的主机主密钥分别是KM0i和KM0j。为了实现I和j之间的保密通信,必须使I和j能够建立共享的会话密钥KS。KMTi 主机i 上的一个终端KMTj 主机j上的一个终端 KNij 由主机节点i和j共享,用于保护由主机i产生的会话密钥,这一会话密钥要送给主机j.KNji 由主机节点i和j共享,用于保护由主机j产生的会话密钥,这一会话密钥要送给主机i.在主机节点I,Knij由KM1I加密保护,Knji由KM2I加密保护,并存入CKDBi.在主机节点J,Knji由KM1j加密保护,Knij由KM2j加密保护,并存入CKDBj.主机I的终端Ti1的用户A和主机j的终端Tj2的用户B的保密通信如下:a) A通过Ti1向主机I申请与B通信。b) 主机I响应后,调用密钥管理程序产生一个随机数RN,并以此作为受KM0I保密的会话密钥,RN=E(KM0i,KS).调用RFMK操作将RN转变为由KMTi1加密KS的形式。 RFMK:E(KM1I,KMTi1),RNàE(KMTi1,KS)并将E(KMTi1,KS)发给A.调用RFMK操作将RN转变为由Knij加密KS的形式。 RFMK:E(KM1I,Knij),RNàE(Knij,KS)并将E(KNij,KS)发给主机j.c) 主机j收到E(KNij,KS)后,调用RTMK操作将E(KNij,KS)转变为E(KM0j,KS): RTMK:E(KM2j,Knij), E(KNij,KS)àE(KM0j,KS) 调用RFMK操作将E(KM0j,KS)转变为E(KMTj2,KS): RFMK:E(KM1j,KMTj2), E(KM0j,KS)àE(KMj2,KS)并将E(KMj2,KS)发送给Tj2的B.d) A和B已共享会话密钥KS,他们可进行保密通信。于是,A利用KS加密会话数据M并发给B ENC:MàE(KS,M)e) B收到后进行解密:DEC:E(KS,M)àM6 结论综上所述,大量的数据通过少量的动态产生的初级密要来保护,初级密钥又用更少量的、相对不变的二级密钥或主机主密钥KM0来保护,而二级密钥又用主机主密钥KM1和KM2来保护。这样,不仅是密钥的数量大大减少,而且只需少量的密钥以明文形式存贮在专用密码装置中,其余的密钥均以密文形式存贮在专用密码装置以外,从而大大的方便了密钥管理而且提高了安全性。专心-专注-专业