当前位置: 首页 > article >正文

数字信封原理解析:安全高效,一次一密!

在《一文彻底搞懂公钥密码、数字签名和数字证书》一文中博主详细介绍了数字签名和数字证书,他们均基于公钥密码,其实在现代密码学领域还有一种利用公钥密码的技术,即数字信封,此技术也可保证只有特定收信人才能阅读通信的内容。

1. 数字信封的产生背景

随着互联网的发展,越来越多的信息需要在网络上传输,而这些信息往往包含着敏感的数据,如个人隐私信息、商业机密等。因此,如何确保这些信息在传输过程中不被未经授权的第三方读取,成为了一个亟待解决的问题。

在这样的背景下,数字信封(Digital Envelope)技术应运而生,相关定义及技术标准在RFC-2315中均有阐述。

来源:https://www.rfc-editor.org/rfc/rfc2315

2. 数字信封的工作原理

数字信封结合了公钥密码和对称密码的优点,既能够高效地加密大量数据,又能够利用公钥基础设施(PKI)来安全地分发密钥,从而实现了信息的高效与安全传输。

工作原理

采用数字信封时,接收方需要使用自己的私钥才能打开数字信封得到对称密钥。
数字信封加解密过程主要如下:

  1. 发送方(Alice)使用对称密钥对明文进行加密,生成密文;
  2. 发送方(Alice)使用接收方(Bob)的公钥加密对称密钥,生成数字信封;
  3. 发送方(Alice)将数字信封和密文信息一起发送给接收方(Bob);
  4. 接收方(Bob)接收到发送方(Alice)的加密信息后,使用自己的私钥打开数字信封,得到对称密钥;
  5. 接收方(Bob)使用对称密钥对密文信息进行解密,得到最初的明文。

从工作原理图中我们可以看出:

  • 对称密钥是发送方生成的,可以做到"一次一密",即每次发送都可以使用不同的对称密钥;
  • 数字信封在解决了密钥配送问题的同时,还将消息同步发送给了接收者。

3. 数字信封存在的问题

数字信封技术也会存在MITM(中间人)攻击,如果攻击者拦截Alice的信息,用自己的对称密钥加密伪造的信息,并用Bob的公钥加密自己的对称密钥,然后发送给Bob。Bob收到加密信息后,解密得到的明文,而且Bob始终认为是Alice发送的信息。

此时,需要一种方法确保接收方收到的信息就是指定的发送方发送的。这就用到了数字签名技术。

数字签名工作原理

若将数字签名用到数字信封中后,如果Alice发送的信息受到MITM攻击后,Bob可以通过数字签名识别出来。

但采用数字签名技术就又会引入一个新的问题,如果攻击者更改Bob的公钥,Alice获得的是攻击者的公钥,攻击者拦截Bob发送给Alice的信息,用自己的私钥对伪造的信息进行数字签名,然后与使用Alice的公钥的加密伪造的信息一起发送给Alice。Alice收到加密信息后,解密得到的明文,并验证明文没有被篡改,则Alice始终认为是Bob发送的信息。

此时,需要一种方法确保一个特定的公钥属于一个特定的拥有者。数字证书则实现了此方法。

证书结构示意图

数字证书简称证书,它是一个经证书授权中心(即在PKI中的证书认证机构CA)数字签名的文件,包含拥有者的公钥及相关身份信息。

若想了解更多关于数字证书的内容,可以参阅:

  • 轻松掌握X.509数字证书全解析,附赠权威详解资料!

4. 总结

数字信封、数字签名、数字证书经常会组合使用,公钥密码作为数字信封、数字签名、数字证书的基础。针对以上不同密码技术,博主总结了如下表格,方便大家理解与记忆。

技术简介主要解决的问题重点
公钥密码一种非对称加密技术对称密码存在密钥配送问题(要在通信双方之间的不安全通道上共享密钥,很难做到!),公钥密码根本不需要密钥配送,从根本上解决了此问题用公钥加密,用私钥解密
数字信封数字信封是指发送方采用接收方的公钥加密对称密钥后与密文组合在一起所得的数据数字信封技术解决了对称密码中对称密钥分发困难和公钥密码存在的性能问题,实现了两种加密方法的取长补短和优势互补用对方的公钥加密对称密钥,同时用此对称密钥加密明文
数字签名一种将现实世界中的盖章签字的功能在计算机世界中进行实现的技术 。使用数字签名可以识别篡改、伪装,并可以防止否认消息到底是谁写的
数字证书一种类似现实世界中驾照的技术,上面记有姓名、组织、邮箱等个人信息,以及属于此人的公钥,并由认证机构进行数字签名解决了数字签名中用于验证签名的公钥必须属于真正的发送者这一难题(即使数字签名算法再强大,如果 你得到的公钥是伪造的,一切皆徒劳!)为公钥加上数字签名

5. 参考链接

  • https://support.huawei.com/hedex/hdx.do?docid=EDOC1100149311&id=ZH-CN_CONCEPT_0176370527


http://www.kler.cn/a/372944.html

相关文章:

  • [C++ 核心编程]笔记 4.2.6 初始化列表
  • 每日读则推(十四)——Meta Movie Gen: the most advanced media foundation models to-date
  • 算法工程师重生之第三十九天(不同的子序列 两个字符串的删除操作 编辑距离 编辑距离总结篇 )
  • WPF拖拽交互全攻略及实现自定义拖拽控件及数据交换技巧解析
  • ViSual studio如何安装 并使用GeographicLib
  • 一些有用的科研数据网站
  • 基于Hadoop和Hive的健康保险数据分析
  • 现代Web酒店客房管理:基于Spring Boot的实现
  • Linux scp命令语法
  • 00 硬件、嵌入式硬件知识-目录篇
  • R语言机器学习算法实战系列(十五)随机森林生存预后模型+SHAP值 (Random Survival Forest + SHAP)
  • AI虚拟主播实时互动模块的搭建与开发!
  • XSS小游戏【1-13关】
  • HTML入门教程22:HTML文件路径
  • 物联网监控数据采集,传输和存储方案:使用 GreptimeDB 和 YoMo
  • Flink CDC系列之:调研应用Flink CDC将 ELT 从 MySQL 流式传输到 Doris方案
  • 如何解决RabbitMQ消息的重复消费问题
  • ubuntu 24 (wayland)如何实现无显示器远程桌面
  • 基于Python的A*算法实现路径规划
  • 农村扶贫管理:SpringBoot解决方案
  • PPT / Powerpoint中利用LaTeX输入公式
  • 机器学习之线性回归
  • 二、k8s快速入门之docker+Kubernetes平台搭建
  • 提升网站速度与性能优化的有效策略与实践
  • ShellScript脚本编程(函数与正则表达式)
  • 软考:中间件