ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

密码学基础(六) - 密钥分发与管理(转)

2022-07-25 20:06:06  阅读:199  来源: 互联网

标签:Pr 分发 协议 Alice KDC 密钥 Bob 密码学


私钥加密体系的实际应用中存在三个问题:

  1. 密钥的分发
  2. 存储和管理大量的密钥
  3. 私钥加密体系在开放系统中的不适用性

密钥分发中心(Key-Distribution Center, KDC)

KDC的运行机制:

  1. 首先,Alice和KDC共享一个密钥kA,Bob和KDC共享一个密钥kB
  2. Alice向KDC发送一条信息:“I, Alice, want to talk to Bob”
  3. KDC接收到消息后选择一个会话密钥k,然后用kA将k进行加密后发送给Alice,同样的,用密钥kB将k加密后发送给Bob
  4. 只要Alice和Bob恢复了会话密钥,他们就可以进行私密的会话了
  5. 会话结束后,需要擦拭掉会话密钥

KDC的图示:

KDC的优点:

  • 每个用户只需要与KDC维持一个长期的密钥,而且用户需要管理并存储会话密钥,但这个会话密钥时短期的
  • KDC需要保存很多密钥,然而,KDC可以放在安全的地方,并且有抵抗网络攻击的安全手段
  • 每当一个用户加入时,只需要添加一个该用户与KDC之间的密钥

KDC的缺点:

  • 如果成功攻击了KDC,那么着整个系统都会被破解
  • KDC是单点故障:如果KDC停机,则暂时无法进行安全通信

KDC的密钥分发协议

这个协议其实就是在原来KDC的运行机制的基础上做了一点改进:

当Alice向KDC发起与Bob会话的请求后,KDC用kA将会话密钥加密发送给Alice,然后又用kB将会话密钥发送给Alice,然后Alice在向Bob发起会话,并同时将EnckB(k)发送给Bob。

图示如下:

KDC的密钥分发协议的优点:

  • 该协议减少了KDC上的通信负担。
  • KDC不需要启动到Bob的第二个连接,也不需要担心Alice启动协议时Bob是否在线。 
  • 此外,如果Alice保留了票据(以及会话密钥副本),那么就可以通过简单地将票据重新发送给Bob来重新启动与Bob的安全通信,而需要再次向KDC发起请求。

然而密钥分发协议并没有降低KDC的安全隐患问题

密钥交换与迪菲-赫尔曼(Diffie-Hellman)协议

KDC体系中还存在一个问题就是需要用一条私密的信道来分享用户与KDC之间的密钥

Diffie和Hellman意识到不对称现象可以被用于推导安全密钥交换的交互协议,允许双方通过一条公共信道来分享一个密钥,并且允许双方执行他们可以逆转但窃听者不能逆转的操作。

密钥交换协议的安全性:协议执行过程中,窃听者无法区分由协议生成的密钥和一个随机的二进制串

密钥交换协议的安全实验:KEeavA,Π(n):

  1. 通信双方在执行协议的时候需要维护一个安全参数1n,这将生成一个包含各方发送的所有消息的文本trans,以及各方输出的密钥k。
  2. 随机的选择一个比特b,如果b = 0,则令k^ = k;如果b = 1,则随机的选择k^∈{0, 1}n
  3. 将trans和k^发送给敌手,然后敌手输出一个比特b‘
  4. 如果b' = b,则这个实验输出1;否则输出0

定义:如果存在一个可忽略函数negl对所有运行在PPT上的敌手都有Pr[KEeavA, Π(n)=1] ≤ 1/2 + negl(n),则称这个密钥交换协议是安全的。

Diffie-Hellman协议

Diffie-Hellman协议的构造方法:

首先通信双方都需要输入一个安全参数1n,然后运行协议:

  1. Alice运行 ç(1n) 从而获得(G, q, g)
  2. Alice随机的在Zq中选择一个x,然后计算hA := gx
  3. Alice发送(G, q, g, hA)给Bob
  4. Bob收到(G, q, g, hA)后,随机的在Zq中选择一个y,然后计算hB := gy,并将hB发送给Alice,然后输出密钥kB := hAy
  5. Alice收到hB后输出密钥kA := hBx

Diffie-Hellman协议的图示:

离散对数问题的难度对于协议的安全性来说是必要的,但不是充分的,因为有可能存在其他方法来计算密钥kA=kB,而不需要显式地计算x或y。

密钥交换协议所要求的是共享密钥gxy对于给定g、gx和gy的任何敌手都应该与某个随机的数不可区分,而这正是DDH(Decision Diffie-Hellman)假设。

DDH问题,假设存在一个可忽略函数对所有PPT上的敌手 A 都有:
|Pr[A(G, q, g, gx, gy, gz)=1] - Pr[A(G, q, g, gx, gy, gxy)=1]| ≤ negl(n)

定理:如果DDH问题在群G中是难以解决的,那么Diffie-Hellman密钥交换协议在被动攻击下是安全的。

证明.

在开始证明之前需要将前面的KEeavA,Π实验进行一定的修改:当b=1时,随机的选择一个群G中的元素,而不是一个n比特长的随机二进制串,则:

Pr[KEeavA,Π(n)=1]

=1/2(Pr[KEeavA,Π(n)=1 | b=0] + Pr[KEeavA,Π(n)=1 | b=1])

=1/2(Pr[A(G, q, g, gx, gy, gxy)=0] + Pr[A(G, q, g, gx, gy, gz)=1])

=1/2(1-Pr[A(G, q, g, gx, gy, gxy)=1] + Pr[A(G, q, g, gx, gy, gz)=1])

=1/2(1-(Pr[A(G, q, g, gx, gy, gxy)=1]  - Pr[A(G, q, g, gx, gy, gz)=1]))

=1/2(1 - negl(n))

=1/2 - 1/2negl(n)

所以Diffie-Hellman密钥交换协议是安全的。

然而在实际应用中,Diffie-Hellman协议对于中间人攻击是完全不安全的。

原文链接https://www.cnblogs.com/TheFutureIsNow/p/11897621.html  

标签:Pr,分发,协议,Alice,KDC,密钥,Bob,密码学
来源: https://www.cnblogs.com/qduconan/p/16518600.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有