首页 > 其他分享 >对称密码中的密钥是如何实现安全配送的?

对称密码中的密钥是如何实现安全配送的?

时间:2024-09-22 15:49:29浏览次数:11  
标签:公钥 配送 Alice KDC 密码 密钥 加密 Bob

对称密码在设计时就存在一个天然的缺陷,就是要求通信双方都要持有相同的密钥。确保密钥的安全传输和防止密钥泄露,往往比加密算法本身更为复杂和困难。一旦密钥被第三方获取,通信的安全性就会受到严重威胁,从而可能暴露敏感信息。接下来跟随博主一起来探索下如何在不安全的网络传输通道中实现密钥共享。

1. 什么是密钥配送问题

密钥配送问题是指在对称密码算法中,加密和解密使用同一个密钥,发送方必须设法将密钥安全地发送给接收方,而不会被第三方窃听者截获。如果密钥被窃取,那么加密的数据也会被破解,因此密钥的安全配送成为对称密码算法的一个关键问题

为了解决这个问题,密码学领域发展出了多种策略和解决方案。下面分别介绍几种主要的方法:

  • 通过通信双方事先共享密钥密钥来解决
  • 通过密钥分配中心(KDC)来解决
  • 通过密钥交换Diffie-Hellman(DH)来解决
  • 通过公钥密码来解决

为了让以下讲解更容易被大家理解,我们假设有如下场景:Alice在网上认识了Bob,现在Alice想给Bob发一封邮件,Alice不想让别人知道邮件的内容,所以她采用了对称密码算法。

接下来Alice就需要想办法让对称密码(此处也可称为密钥或加密密钥) 通过安全的方式提供给Bob。

Alice与Bob采用对称密码方式通信

2. 如何解决密钥配送问题?

2.1. 通过通信双方事先共享密钥来解决

事先共享是指事先用安全的方式将密钥交给对方。这种方法最为简单,但却存在以下局限

  • 地理位置限制:如果Alice和Bob家距离较近,Alice找到Bob,直接告诉他密钥就可以了。如果他们相距较远,就很难事先共享密钥了。通信双方地理位置较远
  • 记录和管理困难:即使能够实现事先共享密钥,但在人数较多的场景下,通信所需要的密钥数量也会增大,记录和管理如此多的密钥将变更非常困难。比如果Alice除了和Bob发加密邮件,还和另外1000个网友发加密邮件,那么Alice就需要记忆和管理1000个密钥,对于Alice来说,这几乎不可能。

2.2. 通过密钥分配中心(KDC)来解决

若所有参与通信的双方都要事先共享密钥,从而导致密钥的数量巨大,可以使用密钥分配中心(Key Distribution Center,KDC)来解决密钥配送问题。密钥分配中心会给每个人生成一个通信密钥,每个人只要和KDC事先共享密钥就可以了。

:实质上是把数量巨大的密钥交给KDC记录和管理了,每个人只需要记录自己与KDC的事先共享密钥。

有了KDC后,Alice向Bob发送加密邮件时,具体的步骤如下:

  1. Alice向KDC发出希望与Bob进行通信的请求。
  2. KDC生成一个会话密钥S,用于Alice和Bob在本次通信中用于加解密邮件;
  3. KDC从数据库中取出Alice的密钥A和Bob的密钥B
  4. KDC用Alice的密钥(KDC与Alice的事先共享密钥A)对会话密钥S进行加密,并发送给Alice;
  5. KDC用Bob的密钥(KDC与Bob的事先共享密钥B)对会话密钥S进行加密,并发送给Bob;
  6. Alice对来自KDC的会话密钥(己使用Alice的密钥A加密)进行解密,得到会话密钥S
  7. Alice用会话密钥S对邮件进行加密,并将邮件发送给Bob;
  8. Bob对来自KDC的会话密钥(己使用Bob的密钥B加密)进行解密,得到会话密钥S
  9. Bob用会话密钥S对来自Alice的加密邮件进行解密。
  10. Alice和Bob删除会话密钥S

KDC工作原理

上图为在KDC的参与下,Alice与Bob的加密通信过程。虽然KDC有效,但也存在局限

  • 所有的加密通信都由KDC处理,随着通信参与方增多,KDC的负荷也随之增加,可能出现单点故障导致整个加密通信平台瘫痪;
  • 如果 KDC被攻破,所有的通信都会被攻击者破译

2.3. 通过密钥交换Diffie-Hellman(DH)来解决

Diffie-Hellman密钥交换是1976年由Whitfield Diffie和Martin Hellman共同发明的一种算法。通过此算法,通信双方仅通过交换一些可公开的信息就能够生成出共享密钥了。

虽然这种算法被称为密钥交换,但双方并没有真正的交换过密钥,而是通过计算生成了一个相同的共享密钥。因此,这种算法也被称为Diffie-Hellman密钥协商

DH密钥交换流程

由于Diffie-Hellman密钥协商原理比较复杂,一两句话说不清楚,在本文就不展开介绍了,如果大家感兴趣可以参阅博主文章《一文读懂密钥交换(DH、ECDH)算法(附密码国标下载)》

2.4. 通过公钥密码来解决

在公钥密码中加密密钥(公钥)和解密密钥(私钥)是不同的。加密密钥是可以公开的,任何知道加密密钥的人都可以进行加密,但只有拥有解密密钥的人才能解密。

公钥密码原理

为了解决Alice与Bob的加密通信问题,Bob可以将加密密钥(公钥)发送给Alice,即便此加密密钥被他人窃取也关系不大,因为只有Bob才有解密密钥(私钥)。这样一来,其实就不存在密钥配送问题了。即采用公钥密码替代对称密钥可以解决密钥配送问题。

当然还有一种比较好的实践方法(HTTPS通信中常用的方式),即将对称密码的共享密钥通过公钥密码(用对方的公钥加密共享密钥)来配送,由于步骤与公钥密码类似(仅把公钥密码中通信的消息换成了共享密钥),具体工作流程如下图。

通过公钥密码来执行密钥配送

需要注意的是,如果采用了公钥密码来进行密钥配送,就又会涉及到数字证书和数字签名问题。若想了解更多关于公钥密码、数字签名和数字证书的细节,可以参阅博文:


标签:公钥,配送,Alice,KDC,密码,密钥,加密,Bob
From: https://blog.csdn.net/u013129300/article/details/142301718

相关文章

  • 帝国网站后台密码忘了,无法修改,提示您的用户名、密码或安全答案有误,也可能您的帐号已被
    如果你在尝试重置帝国CMS后台密码时遇到了“您的用户名、密码或安全答案有误,也可能您的账号已被禁用”的提示,这可能是因为你的账户状态存在问题,或者是由于数据库中的某些字段需要特别处理才能完成密码重置。以下是一些可能的解决方案:步骤一:检查账号状态检查账号是否被禁用在p......
  • 帝国网站管理系统忘记后台账号和密码怎么办?
    如果你忘记了帝国网站管理系统的后台账号和密码,可以通过以下几个步骤来尝试恢复或重置:情况一:只知道密码忘记了使用数据库管理工具登录phpMyAdmin或其他数据库管理工具。选择帝国CMS所使用的数据库。找到用户表,通常为phome_enewsuser,但请注意实际表名可能会根据安装时设定的......
  • 帝国CMS数据库密码忘记了如何找回
    如果你忘记了帝国CMS的数据库密码,可以通过以下几种方法来找回或重置密码:1.使用数据库管理工具重置如果你有数据库管理工具(如phpMyAdmin)的访问权限,可以通过直接修改数据库中的用户记录来重置密码。步骤登录phpMyAdmin访问phpMyAdmin的登录页面,输入数据库的用户名和密码登......
  • 帝国CMS忘记后台登陆密码怎么办啊?
    如果你忘记了帝国CMS后台的登录密码,可以通过直接修改数据库中的相关记录来进行密码重置。以下是具体的步骤:步骤一:登录phpMyAdmin访问phpMyAdmin打开浏览器,访问phpMyAdmin的URL,通常是:  http://yourdomain.com/phpmyadmin其中yourdomain.com需要替换成你的实际域名......
  • 帝国模板登录出现已被登录或者密码错误解决方法
    当帝国CMS(EmpireCMS)后台登录时出现“已被登录”或“密码错误”的提示,这可能是由多种原因造成的。以下是一些可能的解决方法:密码错误确认密码确认输入的密码是否正确。注意区分大小写,以及是否有空格等。重置密码如果忘记了密码,可以通过直接访问数据库来重置密码。使用......
  • 帝国CMS忘记后台登陆密码怎么办?
    当你忘记了帝国CMS后台的登录密码时,可以通过直接访问数据库来重置密码。这里提供一个使用phpMyAdmin来修改数据库中的phome_enewsuser表以重置密码的方法。步骤登录phpMyAdmin访问phpMyAdmin的登录页面,输入数据库的用户名和密码登录。选择数据库在phpMyAdmin中选择你......
  • 帝国cms 数据库用户名或密码有误
    当遇到帝国CMS安装或使用过程中提示“数据库用户名或密码有误”的问题时,通常是因为提供的数据库连接信息不正确。以下是一些可能的原因和解决步骤:原因分析用户名或密码错误提供的数据库用户名或密码不正确。数据库服务器地址错误数据库服务器地址填写错误,或未填写(例如......
  • 帝国CMS源码忘记后台用户名和密码怎么办?
    如果你忘记了帝国CMS后台的用户名和密码,可以通过以下几种方法来恢复或重置它们:通过数据库重置密码登录数据库使用数据库管理工具(如phpMyAdmin)登录到你的数据库。定位用户表在数据库中找到存储用户信息的表,通常该表名为user。修改密码找到管理员用户的记录(通常是......
  • 帝国cms安装时怎么数据库名跟密码不输入也能安装
    在正常情况下,安装帝国CMS时,数据库名称和密码是必需的,因为系统需要这些信息来连接和创建数据库表。然而,如果你遇到了不需要输入数据库名称和密码就能安装的情况,这可能是由于以下几个原因:安装程序的默认行为有些早期版本的安装程序可能存在漏洞或设计缺陷,使得在某些情况下即使......
  • 帝国cms安装默认密码 帝国cms安装教程
    帝国CMS是一款广泛使用的网站内容管理系统,其安装过程通常包括以下几个步骤:安装教程:上传文件解压帝国CMS安装包。将upload文件夹中的所有文件上传至您的网站根目录。访问安装脚本在浏览器中访问http://您的域名/e/install来启动安装向导。确认环境检查服务器环......