一 通过事先共享密钥来解决

事先以安全的方式将密钥交给对方,这称为密钥的事先共享。

事先共享的局限性:

1 要想事先共享密钥,就需要用一种安全的方式将密钥交给对方,在某些情况下,可以很方便也可以很安全的交给对方。但如果通信双方在异地,安全的将密钥交给对方就比较困难了。

2 在人数很多的情况下,通信所需要的密钥数量也会增大,这就产生了问题。例如一个公司有1000名员工,每两个员工间使用1个密钥,这样就需要1000*999/2=499500个密钥进行存储,数量惊人,使用起来并不现实。

二 通过密钥分配中心来解决

密钥分配中心可以解决密钥配送问题。

当需要进行加密通信时,密钥分配中心会生成一个通信密钥,每个人只要和密钥分配中心事先共享密钥就可以了。

在公司中,先配置一台充当密钥分配中心的计算机。这台计算机中有一个数据库,其中保存了Alice的密钥、Bob的密钥......等所有员工的密钥。如果公司有1000名员工,那么数据库中就会保存1000个密钥。

当有新员工入职时,密钥分配中心会为该员工生成一个新的密钥,并保存到数据库中。而新员工则会在入职时从密钥分配中心的计算机领取自己的密钥,就像领取工作证一样。

这样,密钥分配中心就拥有了所有员工的密钥,而每个员工则拥有自己的密钥。

现在Alice再向Bob发送加密邮件时,就需要进行以下步骤。

1 Alice向密钥分配中心发出希望与Bob进行通信的请求。

2 密钥分配中心通过伪随机数生成器生成一个会话密钥,这个密钥是供Alice和Bob在本次通信中使用的临时密钥。

3 密钥分配中心从数据库取出Alice的密钥和Bob的密钥。

4 密钥分配中心用Alice的密钥对会话密钥进行加密,并发送给Alice。

5 密钥分配中心用Bob的密钥对会话密钥进行加密,并发送给Bob。

6 Alice对来自密钥分配中心的会话密钥进行解密,得到会话密钥。

7 Alice用会话密钥对邮件进行加密,并将邮件发送给Bob。

8 Bob对来自密钥分配中心的会话密钥进行解密,得到会话密钥。

9 Bob用会话密钥对来自Alice的密文进行解密。

10 Alice和Bob删除会话密钥。

密钥分配中心有它的局限性。首先,每当员工进行加密通信时,密钥分配中心计算机都需要进行上述处理。随着员工数量的增加,密钥分配中心的负荷也随之增加。如果密钥分配中心计算机发生故障,全公司的加密通信就会瘫痪。

此为,主动攻击者也可能会对密钥分配中心下手。如果主动攻击者入侵了密钥分配中心计算机,并盗取了密钥数据库,则后果会相当严重,因为全公司所有的加密通信都会被攻击者破译。

因此,如果要使用密钥分配中心,就必须妥善处理上述问题。

三 通过DH密钥交换来解决

DH密钥交换中,进行加密通信的双方需要交换一些信息,这些信息即使被窃听者窃听也没问题。

根据交换的信息,双方可以各自生成相同的密钥,而窃听者Eve却无法生成相同的密钥,窃听者虽然能够窃听到双方所交换的信息,但却无法根据这些信息生成和双方相同的密钥。

四 通过公钥密钥来解决

在对称密码中,加密密钥和解密密钥是相同的,但公钥系统中,加密密钥和解密密钥却是不同的。只要拥有加密密钥,任何人都可以进行加密,但没有解密密钥是无法解密的。因此,公钥密码的一个重要性质,就是只有拥有解密密钥的人才能够进行解密。接收者事先将加密密钥发送给发送者,这个加密密钥即便被窃听者获取也是没有问题。发送者使用加密密钥对通信内容进行加密并发送给接收者,而只有拥有解密密钥的人才能够进行解密。这样一来,就用不着将解密密钥发送给接收者了,也就是说,对称密码的密钥配送问题,可以通过公钥密码来解决。

密钥配送问题解决方法相关推荐

  1. git本地无法上传到远程的问题解决方法

    git本地无法上传到远程的问题解决方法 正常的创建本地git仓库然后上传到远程的方案参考另一篇博客: 用git建立本地仓库并与远程仓库连接 但是在push过程中可能出现无法连接的问题, 本文将对常见的 ...

  2. Oracle不能在本地计算机启动,Windows 不能在本地计算机启动 OracleDBConsoleorcl的问题解决方法...

    解决步骤如下: 1.开始->运行cmd 2.执行 emctl start dbconsole 输入:C:\Documents and Settings\xcl>emctl start db ...

  3. IDEA的CPU占用率高问题解决方法

    前言:这段时间发现 IDEA 的 CPU 占用率猛涨,时不时就飙升到百分之7.80,使得敲代码的体验感十分不佳,在经过一番查找之后终于解决了问题,在此记录一下 IDEA的CPU占用率高问题解决方法 问 ...

  4. vs2019 MFC 中 cannot open include file 'afxres.h' 问题解决方法

    vs2019 MFC 中 cannot open include file 'afxres.h' 问题解决方法 使用Everything查找afxres.h文件,如果没有everything的,可以到 ...

  5. IE问题解决方法汇总

    1.发送错误报告 [故障现象]在使用IE浏览网页的过程中,出现"Microsoft Internet Explorer遇到问题需要关闭--"的信息提示.此时,如果单击"发 ...

  6. 我的电脑点不开问题解决方法?

    我的电脑点不开问题解决方法?     今天遇到一个问题,就是用鼠标点击任何东西都没什么反应,刚开始想了到底是为什么呢?不过这个问题确实没遇到过,后来想了一段时间,我在想会不会非法关机引起的,后来开始菜 ...

  7. python php 通信,Python和php通信乱码问题解决方法

    Python和php通信乱码问题解决方法 发布于 2014-07-29 22:28:21 | 118 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertex ...

  8. 王者荣耀s22服务器未响应是什么意思,王者荣耀s22资源包升级失败 s22解析包出现问题解决方法...

    王者荣耀s22资源包升级失败怎么解决?相信大家都知道王者荣耀S22破晓版本在今日14日正式推出,一时间大量玩家去更新游戏,不过有一小部分玩家出现了更新问题,那就是资源包升级错误,关于这个问题,官方也给 ...

  9. 织梦php首页老是自动恢复,dede首页网址自动加上index.html问题解决方法

    麦慧网提供:dede首页网址自动加上index.html问题解决方法,dede的首页有index.php和index.html,默认的是index.php重定向到index.html,所以访问时,网址 ...

  10. Java之相对路径找不到文件问题解决方法

    Java之相对路径找不到文件问题解决方法 参考文章: (1)Java之相对路径找不到文件问题解决方法 (2)https://www.cnblogs.com/gongxr/p/8862155.html ...

最新文章

  1. jquery.datatable能返回数据绑不上_地磁场可以影响人体机能吗?解释有多种,但都不理想...
  2. VisualStudio:WEB 性能测试和负载测试 入门
  3. 通过源代码研究ASP.NET MVC中的Controller和View(二)
  4. 深圳人均GDP过一万美元随想
  5. LeetCode 758. 字符串中的加粗单词(Trie树)
  6. 痛惜!年仅38岁,中科院研究员、博导周传不幸病逝!
  7. C++之第一个程序Hello World,使用IO库输出Hello World
  8. python当作为条件表达式时_2019知到Python程序设计基础(山东联盟)结课测验答案...
  9. java 数据结构与算法_数据结构与算法—常用数据结构及其Java实现
  10. sx1268 中文_SX1268驱动程序设计
  11. Android重新分区parted,分区工具parted的详解及常用分区使用方法【转】
  12. 为什么我严重不建议去培训机构参加SAP培训?
  13. uwp浏览器java源码_在UWP应用程序中打开UWP
  14. Sass Module 介绍
  15. 小瘦牛虚拟无线路由器官方版
  16. 以下不属于大气数据计算机系统的传感器是,下列不属于地理信息技术的是 A. 遥感     B.传感器     C. 全球定位系统   D. 地理信息系统——青夏教育精英家教网——...
  17. 软件测试学习笔记与思考(2)---软件测试策略
  18. 揭秘阿里巴巴神奇的人物抠图算法内幕
  19. pat 1027. Colors in Mars (20)
  20. 10. Yii 2.0 Session

热门文章

  1. 查看ASA日志服务器信息,ASA 日志管理
  2. bitcscs计算机系统,深入理解计算机系统CSAPP-美-布莱恩特
  3. matlab解韩信点兵问题,小学数学题目巧解—韩信点兵问题
  4. win7 把html作为桌面,微软开始部署桌面HTML5版必应Bing
  5. python里的百分号_python中的百分号
  6. 解读阿里云是干什么的?
  7. java监听服务器信息,java实时监控服务器状态
  8. php服务器状态监测,PHP网站状态在线监控源码
  9. shell 脚本切换用户执行当前脚本命令
  10. Windows 9X电脑经常出现bluescreen蓝屏怎么办?