考研复习 Day 51 | 密码学--第九章 密钥管理(上)

注:以下内容参考《新编密码学》范九伦 张雪锋 侯红霞 编著


第9章 密钥管理

著名的Kerckhoffs原则指出:密码系统的安全仅取决于对用户密钥的保护。密钥管理作为提供数据机密性、完整性、可认证性和可鉴别性等安全技术的基础,涵盖了密钥的设置、产生、分配、存储、装入、使用、备份、恢复、提取、更新、撤销、销毁以及保护等一系列内容和过程。

9.1 密钥管理的生命周期

密钥管理覆盖了密钥的整个生命周期,大致分为12个阶段(图9-1):

1. 用户登记

一个实体成为安全域的授权成员,包括初始密钥材料(如共享口令或PIN码)的获取、创建或交换。

2. 系统和用户初始化

系统初始化包括搭建和配置安全操作环境;用户初始化包括软件和硬件的安装及初始密钥材料的安装。

3. 密钥材料安装

将密钥材料配置到实体的软件或硬件中。技术包括手工输入口令、磁盘交换、ROM设备、智能卡等。

4. 密钥生成

按照预定规则,采用可行措施产生符合应用目标或算法属性要求的伪随机有效密钥。

5. 密钥登记

将密钥材料与相关实体的信息和属性捆绑(如身份、认证信息等),并通过公开目录等方式供其他实体访问。

6. 密钥使用

密钥在其有效期内可用于加密、解密、认证等操作。需注意不同密钥用于不同场合,必要时提前更新或终止。

7. 密钥材料备份

将密钥副本备份到独立、安全的存储媒体上,以便恢复时使用。

8. 密钥存档

对过期或提前撤销的密钥进行较长时间的离线保存,以备特殊情况(如仲裁、过去签名验证)时检索。

9. 密钥更新

当前密钥有效期即将结束时,用新密钥取代,需重新安装、登记、备份和发布。

10. 密钥恢复

从备份或存档的密钥材料中检索并重新构造出密钥(如设备损坏或口令遗忘时)。

11. 密钥撤销

在密钥正常生命周期结束前提前作废(如密钥泄露或相关人员变动)。需通过公告通知所有相关实体。

12. 密钥销毁

将不再需要的密钥材料从正式记录中清除,销毁所有备份,安全清除存储媒体,使密钥无法恢复。

密钥状态分类

  • 预运行状态:尚不能用于正常密码操作

  • 运行中状态:可用且处于正常使用中

  • 后运行状态:不再用于正常用途,但可能需要离线访问

  • 过期状态:任何情况下不再使用,相关记录已销毁


9.2 单钥体制的密钥管理

9.2.1 密钥的分类

从密钥管理角度一般将密钥分为以下四类:

密钥类型说明有效期
初始密钥由用户选定或系统分配,用于自动控制密钥生成器较长
会话密钥一次通信中真正使用的数据加密密钥短期(一次会话)
密钥加密密钥用于加密传输中的会话密钥等其他密钥长期或暂时
主密钥对密钥加密密钥进行保护,层次最高,通常手工分配较长

分层密钥结构的优点:每个密钥使用次数不多,同一密钥产生的密文量有限,有利于系统安全。

9.2.2 密钥分配的基本方法

单钥体制密钥分配的四种基本方法:

  1. 手工方式:一方选取密钥后手工发送给另一方

  2. 可信第三方手工分配:由可信第三方选取密钥后手工发送给双方

  3. 加密传输:用已共享的密钥加密新密钥,通过网络发送

  4. KDC分配:通过密钥分配中心(KDC)利用各自的主密钥分配会话密钥

KDC分配流程(图9-2):

  1. A向KDC发送请求(包含A、B身份标识和唯一性标识符N₁)

  2. KDC用A的主密钥KA​加密应答消息(包含会话密钥KsKs​和用B的主密钥加密的包EKB[Ks,IDA])

  3. A解密获得Ks​,重新选择会话密钥K,用Ks加密后连同EKB[Ks,IDA]发送给B

  4. B解密获得K ,验证后返回确认,密钥分配完成

9.2.3 层次式密钥控制

当网络规模很大时,可划分多个安全域,每个域设置一个KDC,形成层次结构(图9-3)。同一域内用户由本地KDC分配密钥;不同域用户通过共同的上级KDC协作分配。

9.2.4 分布式密钥控制

无需KDC,但要求通信双方事先共享一个主密钥(图9-4):

  1. A向B发送请求(含一次性随机数N₁)

  2. B选择会话密钥K,用主密钥加密后回送(含IDB,N₁,N₂​)

  3. A解密验证后,用会话密钥加密N₂+1回送B

优点:无KDC瓶颈;缺点:需要预先共享主密钥,不适合大规模网络。


9.3 公钥体制的密钥管理

9.3.1 公开密钥的分发

1. 公开发布

用户将自己的公钥直接发送或广播。缺点:公钥真实性和完整性难以保证,易被假冒。

2. 使用公钥目录分发

建立公开、动态、可在线访问的公钥数据库,由可信机构(公钥目录管理员)维护。缺点:公钥目录可能成为性能瓶颈和攻击目标。

3. 在线安全分发

用户向公钥管理机构请求其他用户公钥,管理机构用私钥签名后回复,请求者用管理机构公钥验证。缺点:管理机构必须在线,可能成为瓶颈。

4. 使用公钥证书分发(最佳方案)

由证书管理机构(CA)为用户创建并颁发公钥证书,证书包含用户名、公钥、有效期、CA签名等。用户通过交换证书实现公钥分发,离线验证签名即可确认公钥真实性。优点:CA压力小,可靠性高,效率高。

9.3.2 用公钥加密分配单钥体制的会话密钥

虽然利用公钥证书能够在通信各方之间方便地交换密钥,但由于公钥加密的速度远比单钥加密慢,通信各方通常不直接采用公钥体制进行保密通信。但是,将公钥体制用于分配单钥体制的会话密钥却是非常合适的。

图9-5描述了如何利用公钥加密分配单钥体制的会话密钥。图中,PKXPKX​和SKXSKX​分别表示用户X的公钥和私钥,CERTXCERTX​代表用户X的公钥证书。这个过程具有保密性和认证性,因此既能防止被动攻击,又能抵抗主动攻击。

图9-5 用公钥加密分配单钥体制的会话密钥

协议步骤

(1) 用户A发起请求

A→B:ESKA[ IDA∥N₁ ]∥CERTA​

用户A将自己的身份IDA​和一个一次性随机数N₁用自己的私钥SKA​加密,并附上自己的公钥证书CERTA​一起发送给用户B。这里的私钥加密不是为了保密,而是为了让对方能够更好地验证自己的公钥证书,同时还可以抵抗对消息的篡改。

(2) 用户B响应

B→A:ESKB[ EPKA[Ks∥IDB∥N₁∥N₂ ]]∥CERTB

用户B验证收到的消息,并从中提取对方的公钥PKA和一次性随机数N₁​,然后选取一个会话密钥Ks​和一个新的一次性随机数N₂​,将Ks​与自己的身份IDB​以及N₁​和N₂​一起先用对方的公钥PKA加密,再用自己的私钥SKB签名,并附上自己的公钥证书回送给用户A。这个消息实现了保密与认证的结合,A收到消息后可以从中获得一个机密的会话密钥Ks​,同时确信这个会话密钥一定来自B。

(3) 用户A确认

A→B:EKs[N₂+1]

A验证收到的消息,并解密出会话密钥Ks和一次性随机数N₂​,然后对N2​做一个简单变换(例如加1),再将变换的结果用Ks​加密发送给用户B。若B能从所收到的消息中解密出N₂+1,则可相信A已经与其共享了会话密钥Ks,会话密钥的分配工作结束。

协议分析

该协议具有以下安全特性:

特性实现方式
保密性会话密钥Ks​用对方的公钥PKA​加密,只有A能解密
认证性消息用发送方的私钥签名,接收方可用其公钥验证
抗重放攻击使用一次性随机数N₁,N₂保证消息新鲜性
抗中间人攻击公钥证书CERT保证公钥的真实性

9.3.3 Diffie-Hellman密钥交换与中间人攻击

W. Diffie与M. Hellman于1976年提出了Diffie-Hellman密钥交换算法。该算法能用来在两个用户之间安全地交换密钥材料,从而使双方得到一个共享的会话密钥,但该算法只能用于交换密钥,不能用于加/解密。

Diffie-Hellman密钥交换的安全性基于求解有限域上离散对数的困难性。

协议步骤

首先,双方需要约定一个大素数p和它的一个本原根g,然后整个密钥交换的过程分两步完成:

  1. 交换公开值:双方(记为A和B)分别挑选一个保密的随机整数XA和XB​,并分别计算

                                                  YA=g^XA mod  p,YB=g^XB mod  p

    然后互相交换,即A将YA​发送给B,而B将YB​发送给A。其中,YA​和YB​分别相当于A和B的公开密钥(但却不能用于真正的消息加密)。

  2. 计算共享密钥:A和B分别计算

                                                       K=YB^XA mod  p,K=YA^XB mod  p

    得到双方共享的密钥K。这是因为:

    YB^XA=(g^XB)^XA=g^(XAXB)=(g^XA)^XB=YA^XB

由于XA​和XB​是保密的,攻击者最多能够得到p、g、YA​和YB​。如果攻击者希望得到K,那么至少需要计算出XA​和XB中的一个,这意味着需要求解离散对数,这在计算上是不可行的。

中间人攻击

虽然Diffie-Hellman密钥交换简单易行,但它很容易遭受中间人攻击(Man-In-the-Middle Attack),具体方法如下:

  1. 在A将本人的公开密钥YA=g^XA mod  p发送给B的过程中,中间人MIM(攻击者)截取YA​,并用自己的公开密钥YM=g^XM mod  p取代YA,发送给B。

  2. 在B将本人的公开密钥YB=g^XB mod  p发送给A的过程中,中间人MIM截取YB​,并用自己的公开密钥YM=g^XM mod  p取代YB,发送给A。

  3. A、B、MIM分别计算会话密钥:

    • A与MIM共享会话密钥K1=YM^XA=g^(XAXM) mod  p

    • B与MIM共享会话密钥K2=YM^XB=g^XBXM mod  p
      一般情况下K1≠K2,但A与B对此一无所知。

  4. 接下来,在A与B通信过程中,A用K1​加密发送给B的消息,B用K2加密发送给A的消息。中间人MIM截取来自A的消息用K1​解密,再用K2​重新加密后发送给B;对于来自B的消息则先用K2​解密,然后用K1加密后发送给A。这样,中间人MIM就可以轻易监视A与B的通信,甚至还能够在其中实施篡改、伪造或假冒攻击。

防御方法

在Diffie-Hellman密钥交换中,中间人攻击之所以能够得逞,是因为密钥交换者A和B交换的消息未被认证保护。只需让A和B分别对他们发送的消息施加数字签名,并在协议的每一步进行签名验证,那么中间人将不会有任何机会。

改进的Diffie-Hellman密钥交换方案(使用数字签名):

假定A和B互相拥有对方的公钥证书,那么他们可以按照如下步骤安全地生成一个共享会话密钥:

  1. A选取一个随机数XA​,计算YA=g^XA mod  p并将其发送给B。

  2. B收到YA之后,也选取一个随机数XB​,计算YB=g^XB mod  p并根据Diffie-Hellman协议计算出共享会话密钥K=g^(XAXB) mod  p。然后,B对YA​、YB​签名,再用计算出的会话密钥K对签名加密,最后把它与YB​一起发送给A,即B发送给A的消息为:

                                                            YB,EK(SIGB(YA,YB))
  3. A收到消息后,也根据Diffie-Hellman协议计算出共享会话密钥KK,然后用KK解密收到的消息EK(SIGB(YA,YB)),并验证B的数字签名SIGB(YA,YB)。如果签名通过验证,那么A再用自己的私钥对YA​、YB​签名,并将签名结果用共享密钥K加密后送回给B:

                                                               EK(SIGA(YA,YB))   
  4. B用会话密钥K解密收到的消息,并验证A的数字签名。如果签名通过验证,那么A和B获得了共享的会话密钥K,并且在这个过程中攻击者没有任何渗透机会,因此K是安全的。


注:以上内容的理解和计算,如果有任何错误,希望各位读者和大佬指出改正,非常感谢!!!

内容概要:本研究聚焦于“绿电直连型电氢氨园区”的优化运行,提出一种直接利用绿色电力驱动制氢与合成氨的综合能源系统架构。通过构建包含风/光发电、电解水制氢、氢气储存、合成氨反应及电能直供等关键环节的系统模型,研究旨在实现能源的高效转化与梯级利用,降低对外部电网依赖,提升园区能源自洽率与经济性。研究综合运用Matlab与Python工具进行建模与仿真,结合实际气象与负荷数据,对系统在不同工况下的运行策略、能量流动、设备容量配置及经济技术指标进行深入分析与优化,并形成完整的Word论文文档,为新型零碳产业园区的规划与建设提供了理论依据和技术支撑。; 适合人群:具备新能源、电力系统、化工或综合能源系统背景的科研人员,以及从事园区规划、能源管理、低碳技术开发的工程技术人员。; 使用场景及目标:①研究绿电如何高效耦合至化工生产流程,实现“电--氨”多能互补;②掌握综合能源系统(IES)的建模、仿真与优化方法,特别是多时间尺度下的运行调度策略;③为撰写高水平学术论文或完成相关课题研究积累数据、代码与写作模板。; 阅读建议:此资源包含代码、数据和完整论文,建议使用者先通读Word论文以理解整体框架与理论基础,再结合Matlab/Python代码进行复现与调试,最后可基于提供的数据和模型进行二次开发,以深化对绿电综合利用技术的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值