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

文章目录

  • Pre
  • 对称密钥的死穴 - 经典的密钥配送问题
  • 什么是非对称密钥
  • 非对称密钥解决密钥配送问题的四个方案
    • 共享密钥
    • 密钥分配中心(KDC)
    • Diffie-Hellman 密钥交换体系
    • 公钥密码体系
      • RSA算法

在这里插入图片描述

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

应用场景

  • 安全数据传输、数字签名和身份验证等。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/42814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B端界面:英文换成了中文,怎么就成了卖家秀和买家秀呢?

首先看看AI给我的回答。 为什么英文B端界面换成了中文 就成了卖家秀和买家秀呢? 这可能是因为平台希望吸引更多的中国卖家和买家。使用中文界面可以方便中国用户的操作和沟通,同时也能更好地满足他们的需求。卖家秀和买家秀可能是平台为了促进交流和展示…

HTML5实现我的音乐网站源码

文章目录 作者:[xcLeigh](https://blog.csdn.net/weixin_43151418) 1.设计来源1.1 界面效果1.2 轮播图界面1.3 音乐播放界面1.4 视频播放界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作…

Python28-9 XGBoost算法

XGBoost(eXtreme Gradient Boosting,其正确拼写应该是 "Extreme Gradient Boosting",而XGBoost 的作者在命名时故意使用了不规范的拼写,将“eXtreme”中的“X”大写,以突出其极限性能和效率)是一…

概论(二)随机变量

1.名词解释 1.1 样本空间 一次具体实验中所有可能出现的结果,构成一个样本空间。 1.2 随机变量 把结果抽象成数值,结果和数值的对应关系就形成了随机变量X。例如把抛一次硬币的结果,正面记为1,反面记为0。有变量相对应的就有自…

基于字典学习的地震数据降噪(MATLAB R2021B)

稀疏表示基于研究者们提出了许多变换基函数的方法逐渐成型,比如小波域,曲波域,dreamlet 域等,其原理是利用地震信号在变换域内的稀疏性和可分离性以去除噪声。继 Donoho发表非线性去噪方法-小波阈值萎缩方法,在后续的研…

HackTheBox--Headless

Headless测试过程 1 信息收集 NMAP端口扫描 nmap -sSCV 10.10.11.85000端口测试 检查页面功能,请求 For questions 功能,跳转到 /support 目录 目录扫描 发现 /dashboard 目录 访问 /dashboard 目录,显示未认证,如果通过认证…

MySQL之备份与恢复和MySQL用户工具(一)

备份与恢复 备份脚本化 为备份写一些脚本是标准做法。展示一个示例程序,其中必定有很多辅助内容,这只会增加篇幅,在这里我们更愿意列举一些典型的备份脚本功能,展示一些Perl脚本的代码片段。你可以把这些当作可重用的代码块&…

图解 RocketMQ 架构

写在前面 Kafka、RocketMQ都是很出名的中间件,上次我们讲解了Kafka,这次我们来讲讲RocketMQ的原理。 基本架构图 解析 RocketMQ 总共可以分成四个模块 NameServer:提供服务发现和路由功能,管理各种元数据信息。Broker&#xf…

基于最大相邻夹角的边缘点提取(matlab)

1、背景介绍 边缘点是指点云数据中代表物体或场景几何形状突变的那些点。在三维点云中,边缘点通常标志着不同表面或物体的分界,或者是物体表面上的不规则性,如裂缝、棱角、突起等。点云边缘检测的作用非常重要,最常见是进行特征点…

php校园二手交易网站-计算机毕业设计源码041148

目 录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2 校园二手交易网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结…

基于AOP的数据字典实现:实现前端下拉框的可配置更新

作者:后端小肥肠 创作不易,未经允许严禁转载。 目录 1. 前言 2. 数据字典 2.1. 数据字典简介 2.2. 数据字典如何管理各模块的下拉框 3. 数据字典核心内容解读 3.1. 表结构 3.2. 核心代码 3.2.1. 根据实体类名称获取下属数据字典 3.2.2. 数据字…

回顾 DTC 2024 大会——聚焦数据技术创新:揭秘下一代纯实时搜索引擎 INFINI Pizza

2024 年 4 月 12 日至 13 日,备受瞩目的第十三届“数据技术嘉年华”(DTC2024)在北京新云南皇冠假日酒店盛大开幕。本次大会由中国 DBA 联盟(ACDU)与墨天轮社区联合主办,以“智能云原生一体化——DB 与 AI 协…

在先企业字号被申请注册成商标!

今天一网友联系普推商标知产老杨,说自己注册的商标被某公司无效宣告了,去年联系老杨时,当时就给说这个商标名称存在风险,与别人的字号权存在高度近似,而且是同行业同地区在后面注册的。 十几年前某公司先成功注册成字号…

Ubuntu 安装CGAL

一、什么是CGAL CGAL(Computational Geometry Algorithms Library)是一个广泛使用的开源库,主要用于计算几何算法的实现。该库提供了一系列高效、可靠和易于使用的几何算法和数据结构,适用于各种应用领域。以下是 CGAL 的主要功能…

JD-GUI下载和使用

JD-GUI是专门查看jar包的,包括source.jar和doc.jar。JD-GUI可以把.class文件反编译为可编辑的.java文件,有图形化界面。 github下载地址:https://github.com/java-decompiler/jd-gui/releases 下载windows版本的zip包,如下图&…

智能化代码审查系统设计

设计一个智能化代码审查系统,特别是针对Java开发,需要综合考虑多个维度来提升代码质量、提高审查效率,并促进团队间的协作。以下是该系统设计的关键要素和功能特性: 系统架构 客户端-服务器架构:前端提供友好的Web界面…

破局 AI 2.0 时代:利用 AI 提升自我核心竞争力

文章目录 破局 AI 2.0 时代:利用 AI 提升自我核心竞争力1. AI 2.0 时代1.1 特点1.2 发展1.3 影响 2. AI 2.0 时代的机遇 & 挑战2.1 AI 对行业市场的冲击2.2 挑战变为机遇2.3 不同场景下的 AI 效能提升2.3.1 自动化办公任务2.3.2 提升学习效率2.3.3 创意生成与内…

LabVIEW光谱测试系统

在现代光通信系统中,光谱分析是不可或缺的工具。开发了一种基于LabVIEW的高分辨率光谱测试系统,通过对可调谐激光器、可编程光滤波器和数据采集系统的控制,实现了高效、高精度的光谱测量。 项目背景 随着光通信技术的迅速发展,对…

仿哔哩哔哩视频app小程序模板源码

仿哔哩哔哩视频app小程序模板源码 粉色的哔哩哔哩手机视频网页,多媒体视频类微信小程序ui前端模板下载。包含:视频主页和播放详情页。 仿哔哩哔哩视频app小程序模板源码

thinkphp6/8 验证码

html和后台验证代码按官方来操作 ThinkPHP官方手册 注意: 如果验证一直失败,看看Session是否开启, 打印dump(session_status());结果2为正确的, PHP_SESSION_DISABLED: Session功能被禁用(返回值为0)。…