加密与安全_ 解读非对称密钥解决密钥配送问题的四个方案

文章目录

Pre


对称密钥的死穴 - 经典的密钥配送问题

假设 Alice 和 Bob 两个人需要相互发送消息,这封邮件里面的信息比较私密,因此不想让第三人知道.

Alice 思来想去,觉得有必要对内容做个加密. 这样即便被 Eve 窃取了,他也无法知道内容.

是不是 Alice 使用对称密钥将加密数据通过邮件传输给 Bob 就可以高枕无忧了? Alice 加密的数据,Bob 需要解开才行.

那问题就来了:如果 Alice 可以通过安全通道将密钥传递给 Bob,那么还有啥必要搞加密呢? 如果没有这样的安全通道,那么 Bob 又如何接受密钥呢?

这就是密钥配送问题的由来 .


现实世界中,这个问题如何解决呢? 通常需要下发密钥的时候,会同时通过两个渠道发送两个信封。 这两个信封是由两组人走不同的路线到达同一个地点。 只有将两个信封内的数据放到一起才是完整的密钥。否则单纯拿到其中一封并不能解决任何问题。


什么是非对称密钥

非对称密钥就是为了解决密钥配送问题,通常采用的方案有四个

  • 共享密钥
  • 密钥分配中心
  • Diffie-Hellman 密钥交换
  • 公钥密码

接下来我们:

  1. 介绍共享密钥的定义、工作原理、优缺点及应用场景。
  2. 讲解密钥分配中心的定义、工作原理、优缺点及应用场景。
  3. 详细说明Diffie-Hellman密钥交换体系的定义、工作原理、优缺点及应用场景。
  4. 介绍公钥密码体系的定义、工作原理、优缺点及应用场景,并详细说明RSA算法

非对称密钥解决密钥配送问题的四个方案

共享密钥

定义:共享密钥是一种简单的密钥配送方案,通过安全通道事先将密钥传递给通信双方。

工作原理

  • Alice和Bob通过某种安全通道(如面对面交换、使用安全信道)共享一个密钥。
  • 使用共享密钥进行加解密。

优点

  • 实现简单,适用于小范围内的通信。

缺点

  • 随着参与者数量的增加,管理和分发密钥的成本和复杂性急剧上升。
  • 安全性依赖于共享密钥的保密性和安全通道的安全性。

应用场景

  • 小型闭合网络或组织内部的通信,如银行内部系统。

密钥分配中心(KDC)

定义:密钥分配中心(Key Distribution Center, KDC)是一个集中管理密钥的实体,负责生成和分发临时密钥。

工作原理

  1. KDC为每个用户生成一个密钥,并存储在数据库中。
  2. 当Alice需要和Bob通信时,向KDC申请临时密钥。
  3. KDC生成临时密钥,并使用Alice和Bob的密钥分别加密临时密钥。
  4. KDC将加密后的临时密钥分别发送给Alice和Bob。
  5. Alice和Bob解密得到临时密钥,使用临时密钥进行加密通信。
  6. 通信结束后,销毁临时密钥。

优点

  • 扩展性较好,适用于中等规模的用户群体。
  • 减少了每对通信双方需要直接共享密钥的需求。

缺点

  • 密钥分配中心是一个单点故障,如果KDC失效,所有通信都会中断。
  • 需要高度信任KDC的安全性和可靠性。

应用场景

  • 中等规模的网络环境,如公司内部网络或组织内的通信。

Diffie-Hellman 密钥交换体系

定义:Diffie-Hellman密钥交换是一种基于数学问题的密钥交换协议,允许通信双方在不安全的信道上协商共享密钥。

工作原理

  1. Alice和Bob各自选择一个私有密钥,并计算各自的公开值。
  2. Alice和Bob交换公开值。
  3. Alice使用Bob的公开值和自己的私有密钥计算共享密钥。
  4. Bob使用Alice的公开值和自己的私有密钥计算共享密钥。

即使Eve截获了公开值,也无法推导出共享密钥。

优点

  • 无需事先共享密钥,适用于不安全信道。
  • 提供了良好的安全性。

缺点

  • 需要适当的数学基础和计算能力。
  • 不提供身份验证,需结合其他机制防止中间人攻击。

应用场景

  • 安全电子邮件、VPN等需要安全密钥交换的场景。

公钥密码体系

密钥配送问题痛点在于加解密使用的是相同的密钥,所以才需要交换。 如果 Alice 和 Bob 使用的不同的密钥呢? 那是不是就不需要交换了呢? 这正是公钥体系的核心: 双方使用不同的密钥进行加解密。

定义:公钥密码体系使用一对密钥进行加解密:公钥用于加密,私钥用于解密。

工作原理

  1. Alice和Bob各自生成一对公钥和私钥。
  2. Alice和Bob交换公钥。
  3. Alice使用Bob的公钥加密消息,发送给Bob。
  4. Bob使用自己的私钥解密消息。

在这个过程中,公钥可以任意传递,而私钥决定不能外泄

优点

  • 无需安全通道传递公钥,私钥无需共享。
  • 提供了身份验证和数字签名功能。

缺点

  • 加解密速度较慢,不适合大数据量的加密。

应用场景

  • 安全电子邮件、数字签名、SSL/TLS等需要高安全性的场景。

RSA算法

定义:RSA是一种常见的公钥加密算法,基于大素数分解的难题。

加密公式

[ y = x^e \mod N ]

其中,( x )为明文,( y )为密文,( e )和( N )为公钥。

解密公式

[ x = y^d \mod N ]

其中,( d )和( N )为私钥。

RSA的安全性依赖于大素数分解的计算难度,公钥和私钥是一对不可逆的数学关系。

应用场景

  • 安全数据传输、数字签名和身份验证等。
相关推荐
小小工匠1 小时前
Web安全 - 路径穿越(Path Traversal)
安全·web安全·路径穿越
不灭锦鲤3 小时前
ssrf学习(ctfhub靶场)
网络·学习·安全
网络研究院6 小时前
如何安全地大规模部署 GenAI 应用程序
网络·人工智能·安全·ai·部署·观点
DonciSacer9 小时前
TryHackMe 第6天 | Web Fundamentals (一)
安全
云卓科技13 小时前
无人机之数据提取篇
科技·安全·机器人·无人机·制造
山兔114 小时前
工控安全防护机制与技术
安全
HEX9CF15 小时前
【CTF Web】Pikachu xss之href输出 Writeup(GET请求+反射型XSS+javascript:伪协议绕过)
开发语言·前端·javascript·安全·网络安全·ecmascript·xss
小小工匠16 小时前
加密与安全_HOTP一次性密码生成算法
算法·安全·htop·一次性密码
Tandy12356_16 小时前
js逆向——webpack实战案例(一)
前端·javascript·安全·webpack
什么鬼昵称18 小时前
Pikachu-xxe-xxe漏洞
网络·安全·xxe