网络安全,非对称加密,对称加密和非对称加密的区别

2023-05-16

当今世界,网络安全问题比以往任何时候都更需认真对待。 本文是属于《网络安全》系列文章之一,我们将详细阐述了安全性的基础知识。在本文中,我们将阐述非对称加密的原理,这是确保真实性、完整性和保密性的唯一方法。


不对称加密的加密技术和签名: 2000多年前,凯撒通过加密来保护其军事信息。现如今就轻而易举了吗?

在我们最近的一篇博客中,我们看到了对称加密即使在一定程度上满足了保密性,也不足以确保真实性和完整性。那么,非对称加密如何破解这个方程呢?

我们举个例子,将想要交换机密消息的两个人命名为Alice和Bob。每人都有一个公钥和对应的私钥。

作为假设,有必要了解以下内容: 用公钥加密的消息只能用相应的私(秘)钥解密。用私钥加密的消息只能用相应的公钥解密(我们将在本文后面看到这一点的好处)。

基于上述情况,Alice想给Bob发送消息,将使用Bob的公钥对其进行加密。在此情况下,只有Bob能用自己的密钥对消息进行解密。

以上只是解决了保密性需求而已。

但是Bob如何能确定是Alice给他发来的信息呢?他如何确定消息在传输过程中没有被修改?为了解决这个问题,Alice还需使用签名机制。

说到签名之前,我们必须引入散列函数的概念。“散列函数”是将文本转换为签名(也称为指纹)的“加工厂”。

这个“加工厂”有5个特性:

  • 对于相同的函数,指纹中的字符数总是相同,
  • 指纹不允许重建原始文本,
  • 指纹不可预测,
  • 相同的数据会产生相同的指纹,
  • 不同的数据会产生完全不同的指纹。

“MD5”和“SHA” 是两个众所周知的散列函数。使用MD5时,文本“Ewon: Leading IIoT for 20 years”被转换成32个字符的密链: “5b184c5cafcad9ef410afbcb0fab5518”。维基百科的完整内容也会生成32个字符的(完全不同的)密链。

单向转换最为轻而易举:只需使用互联网上容易找到的一款在线工具即可。毋庸置疑,反向转换并非易事

考虑到上述情况,回到我们之前的例子:

为了签署一份文档,Alice首先使用散列函数(如https://www.md5hashgenerator.com/ 或其他任何能在互联网上找到的函数)生成文件指纹。之后,她使用自己的私钥加密这个指纹。她在自己的文档上获得了一个签名,可将该签名与原始文档一起发送给Bob。

然后,Bob需使用Alice的公钥解密签名。如果不起作用,则是因为文档不是由Alice发送的(Alice是唯一拥有私钥的人)。如果解密成功,他便可以确定是Alice在信息上签名了。

因此,他获得了文档的第一个指纹。

一旦完成了这一步,Bob就需使用与Alice相同的散列函数生成所收原始文档的指纹。

如果两个指纹完全相同,那么他完全可以肯定,在Alice发送和他接收期间,文档没有被修改过。


 

加密和签名的结合,是同时对文档进行编码和签名并确保消息的机密性、完整性和真实性的唯一方法。

这种做法是很不错,但可能还有最后一个问题: 事实上,当Alice加密一条消息时,她怎么能确定自己使用的是Bob的公钥呢?事实上,如果一个黑客(我们称他为Eve)也生成一对密钥(私钥/公钥),然后让Alice相信它们是Bob的密钥,将它们传输给Alice,则Alice会继续加密消息并将其传输给Bob。在此情况下,只有Eve才能破译和读取这些信息……

因此,Alice需要能在使用Bob的公钥之前验证Bob的真实性。为此,Bob可以让证书颁发机构(CA)认可他的公钥,确保他是该公钥的所有者。这种保障方法采用的是CA将证书颁发给Bob的形式。该证书包含识别Bob及其公钥的信息。又由证书颁发机构签署,确保其合法性。

这样一来,Alice可以联系该机构,确认她正在使用的公钥属于Bob。

想要做的更好很难!

与对称加密相比,非对称加密只有一个缺点:比较慢。为了提高速度,安全的连接使用对称和非对称两种加密方式。

当网络浏览器与服务器建立安全连接时,将首先生成一个对称会话(临时)密钥。而后,使用服务器的公钥(其真实性和有效性通过其证书得到验证)来加密该会话密钥,并将其发回服务器,解密后,将能以对称方式与浏览器进行通信。

这种方法解决了长达2000年之久的凯撒难题。得益于此,两个互不相识的实体可以交换秘密,而无需事先在加密/解密的密钥问题上达成一致。

网络安全系列博客中文原文地址:Cybersecurity essentials : Asymmetric cryptographyicon-default.png?t=M276https://www.ewon.biz/zh/all-resources/ewon-iiot-blog/cybersecurity-essentials-asymmetric-cryptography

这里是专注于工业通信技术的HMS,更多工业物联网洞察和技术知识可关注公众号:HMS工业网络,业内大咖都在看!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络安全,非对称加密,对称加密和非对称加密的区别 的相关文章

  • 用C语言实现串口通讯程序

    1 首先安装虚拟串口vspd软件 xff0c 用于创建虚拟串口进行互联调试 2 打开vspd软件 xff0c 选择COM1和COM4 xff0c 点击Add pair xff0c 把COM1和COM4互联 3 打开虚拟串口助手 xff0c
  • A2M7雷达在虚拟机的SLAM建图

    准备 Ubuntu18 04 雷达A2M7 一 前期准备 安装 建立工作空间并编译 mkdir p turtlebot ws src cd turtlebot ws src git clone https github com ncnynl
  • linux cmake分别指定编译/运行时动态库链接路径

    1 背景 在树莓派上开发执行程序 xff0c 需要用到opencv curl jsoncpp等库函数支持 xff0c apt get安装好后 xff0c 编译执行正常 但是执行程序挪到别的板子上 xff0c 都要apt get安装这些库 x
  • C语言函数库之字符串连接函数(string.h)

    1 字符串连接函数strcat 函数定义 xff1a char strcat char str1 const char str2 函数功能 xff1a 把str2 包括 39 0 39 拷贝到str1的尾部 连接 xff0c 并返回str1
  • foc学习笔记3——电流环

    foc学习笔记3 电流环 电流环的作用 前文不断强调 xff0c 进行磁场定向控制需要控制的是电流而非电压 xff0c 只是因为我们没有办法直接去控制电流才暂时退而求其次地去控制电压 虽然电压控制的效果也还不错 xff0c 但由于电机不是单
  • ESP32之蓝牙配网blufi

    概览 BluFi 是一款基于蓝牙通道的 Wi Fi 网络配置功能 xff0c 适用于 ESP32 它通过安全协议将 Wi Fi 配置和证书传输到 ESP32 xff0c 然后 ESP32 可基于这些信息连接到 AP 或建立 SoftAP B
  • 机器人学习之项目- Project2 :Where Am I?

    1 项目概述 欢迎来到 Where Am I 我在哪里 定位项目 在这个项目中 xff0c 将学习如何利用ROS AMCL包在Gazebo模拟环境的地图中准确地定位移动机器人 在完成本项目的过程中 xff0c 涉及机器人软件工程的几个方面
  • 将不同类对象指针存放QVector中

    需求 xff1a 将一系列操作步骤放在链表中按需调用 我将每个操作步骤用一个类实现 xff0c 将各类继承于一个基类 xff0c 再将指向各子类的基类指针放在QVector Vector xff0c 即可通过C 43 43 的多态实现调用各
  • 体感摄像头 realsense 系列硬件资料

    一 体感摄像头 Intel的体感摄像机是具有深度图像采集能力的摄像机 xff0c 目前已经出到了400系列 与kinect 2 xff0c ZED xff0c leap motion比较 xff0c 属于比较中庸 手势识别方面不如leap
  • C语言进度条的实现

    C语言进度条的实现 buff N xff1a 进度条状态字符串 xff0c N大小决定进度条长度 xff08 自行调整 xff09 xff0c 使用前先将所有字符初始化置零 xff0c 我这里使用的是memset函数 xff1b label
  • numpy下的随机数

    版权声明 xff1a 本文为博主原创文章 xff0c 未经博主允许不得转载 https blog csdn net m0 38061927 article details 75335069 在使用Python进行数据处理时 xff0c 往往
  • 宏函数 可变参数 C/C++

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • 排查ingress 404报错的方法--附:在容器中使用tcpdump抓包

    出现这个问题 xff0c 一般是由于路由不通导致的 xff0c 需要进行抓包排查 首先要解决的问题是 xff0c 如何在 ingress controller 容器中安装抓包工具 1 由于 ingress controller 的mando
  • fastApi介绍与重要版本更新细节

    fastApi介绍 FastAPI 是用于使用 Python 构建 API 的现代 Web 框架 它建立在 Starlette 框架之上 xff0c Starlette 框架是一个轻量级且可扩展的 ASGI xff08 异步服务器网关接口
  • 3. fastApi查询参数详解

    当声明的参数不是路径参数时 xff0c 路径操作函数会把该参数自动解释为查询参数 如下 路径操作函数将参数skip limit解释为查询参数 query parameter span class token decorator annota
  • 4. fastApi请求体详解

    简单介绍网络请求 网络请求是指客户端 xff08 例如浏览器 移动应用程序等 xff09 向服务器发送请求 xff0c 以获取特定资源或执行特定操作的过程 HTTP请求是一种常见的网络请求协议 xff0c 它通过互联网连接客户端和服务器 x
  • python多线程与多进程简略介绍

    GIL介绍 在python中GIL的限制导致不论是在单核还是多核条件下 xff0c 同时刻都只能运行 一个线程 xff0c 这使得Python多线程无法发挥多核并行的优势 GIL全称为Global Interpreter Lock意思是全局
  • 高并发场景下,python各web框架的优劣对比与示例分析

    高并发场景下 xff0c python各个web框架的优劣对比与示例分析 Python有许多适合高并发场景的Web框架 xff0c 下面是其中几个 xff1a Flask Flask是一个轻量级的Web框架 xff0c 由Werkzeug和
  • 6. fastApi文件上传请求处理示例

    需求 xff1a 开发文件上传功能接口 接口路径 files 请求类型 post 响应结果 返回文件的大小 单位bytes 实现方案 使用post类型处理方法 xff0c 指定参数类型为bytes或UploadFile 使用File 方法处
  • 7. fastApi表单数据处理详解与示例

    需求 前端通过表单数据的形式发送用户名与密码到后端 xff0c 后端通过用户信息校验 xff0c 过滤出合法用户 xff0c 并为用户设置cookie 超时时间为24h xff09 接口路径 login 请求类型 post方法发送的文件 响

随机推荐

  • C语言结构体字节对齐规则

    C语言结构体字节对齐规则 基本规则 规则1 xff1a 结构体 xff08 struct xff09 的数据成员 xff0c 第一个数据成员放在offset为0的地方 xff0c 以后每个数据成员存放在offset为该数据成员大小的整数倍的
  • 如何处理C++构造函数中的错误

    用C 43 43 写代码的时候总是避免不了处理错误 xff0c 一般来说有两种方式 xff0c 通过函数的返回值或者抛出异常 C语言的错误处理一律是通过函数的返回值来判断的 xff0c 一般是返回0 NULL 或者 1 表示错误 xff0c
  • 改进后的A星三维路径规划完整算法(matlab语言),包括障碍物模型优化

    改进后的A星三维路径规划完整算法 matlab语言 xff0c 包括障碍物模型优化 xff0c 平滑处理 xff0c 启发函数的改进 xff0c 环境地图可以根据自己的实际情况进行改进 xff0c 算法包含了非常详细的代码注释 ID 695
  • 8. fastApi请求错误处理方式与示例

    请求错误处理 某些情况下 xff0c 需要向客户端返回错误提示 需要向客户端返回错误提示的场景主要如下 xff1a 客户端没有执行操作的权限客户端没有访问资源的权限客户端要访问的项目不存在服务器内部错误 遇到这些情况时 xff0c 通常要返
  • 9. fastApi的json编码器使用示例

    JSON 编码器 有时 xff0c 我们要把 Pydantic 模型等数据类型转换为字典 列表等与 JSON 兼容的格式 例如 xff0c 把 Pydantic 模型存入数据库时就要进行转换 为此 xff0c FastAPI 提供了 jso
  • 10. fastApi数据更新方法

    用 PUT 更新数据 把输入数据转换为 JSON 数据 xff08 例如 xff0c 使用 NoSQL 数据库时 xff09 xff0c 可以使用 jsonable encoder 例如 xff0c 把 datetime 转换为 str P
  • 写在前面--(与各位读者聊聊)

    xff61 xff65 xff65 xff89 xff9e 嗨 xff01 我是jesse xff0c 欢迎来到我的Python爬虫博客专栏 xff01 在本专栏中 xff0c 我将分享Python爬虫技术的各个方面 xff0c 包括基础知
  • 爬虫示例一【简单爬虫实现】

    爬虫构建 回顾以上的接口分析过程 xff0c 整个对我们有用的请求过程是 xff0c 浏览器发送一个GET请求 xff0c 直接获取到了我们想要的数据页面 那么如何通过python代码复现以上的请求过程呢 xff1f 对于这样的简单爬虫 x
  • 第一节 请求与响应

    请求 由客户端发往服务器 xff0c 分为四个部分 xff1a 请求头 xff0c 请求方法 xff0c 请求网址URL 请求体 当我们在浏览器中输入一个网址或点击一个链接时 xff0c 浏览器会向服务器发送请求 xff0c 请求获取指定的
  • 第二节 Web网页基础

    网页的组成 网页需要通过 HTML CSS JavaScript 和各种媒体资源的组合 xff0c 实现多种功能和呈现效果的页面 一个网页通常由以下几个组成部分构成 xff1a HTML标记语言 xff1a 定义网页的结构 内容和格式 xf
  • 第三节 爬虫基本原理

    爬虫概述 爬虫是指通过程序自动化地获取互联网上的信息 xff0c 从而达到快速 大量地获取数据的目的 Python语言有着丰富的爬虫库和框架 xff0c 因此成为了编写爬虫程序的主流语言之一 Python写爬虫的优势 xff1a 语法简洁
  • 第四节 Session和Cookie

    静态页面和动态页面 静态页面是指服务器上存储的固定页面 xff0c 每次用户访问时返回的内容都是一样的 xff0c 内容不会根据用户的操作或者其他因素发生改变 静态页面通常由 HTML CSS 和 JavaScript 等静态文件组成 xf
  • 案例四 ajax动态加载页面数据爬虫

    需求 xff1a 爬取https spa3 scrape center 电影名称 xff0c 电影分类 xff0c 上映时间和评分 接口分析 直接在浏览器请求https spa3 scrape center xff0c 并查询网页源码 xf
  • python数据持久化总结

    数据持久化 数据持久化通常指将数据保存到磁盘或其他永久存储介质中以便以后使用 以下是一些在Python中进行数据持久化的常用方法 xff1a 文件操作 xff1a 可以使用Python内置的文件操作来将数据保存到文本文件中 xff0c 例如
  • MongoDB查询综合

    数据库操作 选择数据库 use lt 数据库名 gt 展示当前所在数据库 db 在选择数据库后 xff0c 可以进行该数据库的相关操作 xff0c 例如创建集合 插入文档等 查询语法 查询全部文档 db lt 集合名 gt find 指定条
  • c++如何编译

    include lt iostream gt 预处理指令 xff0c include是找一个文件 xff0c 一般引出头文件 int main main函数不用从主函数返回任何数据 std cout lt lt 34 Hello World
  • 在DAX进行字符串大小比较

    昨天看到一个人在论坛上上求助 xff0c 想找一个方法按照一定要求对数据进行分类 分类要求是查找原始数据中的BU Type隶属于分类依据中的哪个区间 xff0c 然后输出该区间对应的Identifier值 其中AA ZZ区间指的是所有两位字
  • Modbus协议的数据模型和地址模型,Modbus寄存器40001,30001是什么意思?

    在使用Modbus协议的时候 xff0c 经常会遇到诸如40001 30001 xff0c 10001之类的地址 xff0c 这些数字代表什么含义呢 xff1f 这其实是Modbus协议的数据模型和地址模型 Modbus协议的数据模型 数据
  • 如何看懂Modbus数据帧?Modbus RTU数据帧格式

    在介绍Modbus RTU数据帧格式之前 xff0c 首先让我们先了解一下Modbus的通讯模式 Modbus通讯模式 Modbus协议是典型的主 从通讯结构 xff0c 链路中只能有一台主设备 xff0c 可以有多台从设备 主设备向从设备
  • 网络安全,非对称加密,对称加密和非对称加密的区别

    当今世界 xff0c 网络安全问题比以往任何时候都更需认真对待 本文是属于 网络安全 系列文章之一 xff0c 我们将详细阐述了安全性的基础知识 在本文中 xff0c 我们将阐述非对称加密的原理 xff0c 这是确保真实性 完整性和保密性的