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

文章目录

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的安全性依赖于大素数分解的计算难度,公钥和私钥是一对不可逆的数学关系。

应用场景

  • 安全数据传输、数字签名和身份验证等。
相关推荐
Red Red2 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
2401_857610033 小时前
SpringBoot社团管理:安全与维护
spring boot·后端·安全
弗锐土豆5 小时前
工业生产安全-安全帽第二篇-用java语言看看opencv实现的目标检测使用过程
java·opencv·安全·检测·面部
HackKong6 小时前
小白怎样入门网络安全?
网络·学习·安全·web安全·网络安全·黑客
打码人的日常分享6 小时前
商用密码应用安全性评估,密评整体方案,密评管理测评要求和指南,运维文档,软件项目安全设计相关文档合集(Word原件)
运维·安全·web安全·系统安全·规格说明书
爱吃奶酪的松鼠丶6 小时前
Web安全之XSS攻击的防范
安全·web安全·xss
东莞梦幻网络科技软件开发公司6 小时前
开发体育赛事直播平台防止数据泄露的技术安全方案
经验分享·安全
vmlogin虚拟多登浏览器6 小时前
虚拟浏览器可以应对哪些浏览器安全威胁?
服务器·网络·安全·跨境电商·防关联
澜世6 小时前
2024小迪安全基础入门第三课
网络·笔记·安全·网络安全
.Ayang8 小时前
tomcat 后台部署 war 包 getshell
java·计算机网络·安全·web安全·网络安全·tomcat·网络攻击模型