非对称加密工作原理

2023-11-12

非对称加密

非对称加密使用两个密钥,一个是public key,一个是private key。通过某个算法,使得数据的加密和解密使用不同的密钥。因为用的是不同的密钥,所以称为非对称加密。非对称加密最著名的是RSA算法,这是以其发明者Rivest, Shamir 和Adleman命名。非对称加密算法里面的public key和private key在数学上是相关的,这样才能用一个加密,用另一个解密。不过,尽管是相关的,以现在的能力还无法从一个密钥,算出另一个密钥。
非对称加密的好处在于A可以保留private key,通过网络传递public key。这样,就算public key被C拦截了,因为没有private key,C还是没有办法完成信息的破解。
具体在使用中,A和B都各有一个public key和一个private key,这些key根据相应算法是已经生成好了的。private key保留在各自的本地,public key传给对方。A要给B发送网络数据,那么A先使用自己的private key(只有A知道)加密要发送数据的hash值(数字签名),之后再用B的public key加密数据。之后,A将加密的hash值和加密的数据再加一些其他的信息,发送给B。B收到了之后,先用自己的private key(只有B知道)解密数据,通过解密的数据计算出一个hash值,然后用A的public key解密hash值,对比两个hash值,以检验数据的完整性。
非对称加密通信过程
解密过程

非对称加密的安全隐患

如果在一切的最开始,A和B通过网络交换public key。如果C在中间拦截了呢?假设有这种情况,C拦截了A和B的public key,又分别用自己的public key发给A和B。A和B并不知道,他们还以为这个public key来自对方。当A给B发消息时,A先用自己的private key加密数据的hash值,之后用C传来的假的public key加密数据,再发出去。C拦截到之后,先用C自己的private key解密数据,C就获取了A的原始信息!之后,C可以篡改数据内容,再用自己的private key加密数据的hash值,用之前拦截的B的public key加密数据,再发给B。B收到以后,先用自己的private key解密数据,再用C传来的假public key解密hash值,发现匹配。这样,B收到了一条来自C的假的信息,但是B还以为信息来自于A。中间人攻击仍然可能存在!

实际使用

非对称加密算法比对称加密算法要复杂的多,处理起来也要慢得多。如果所有的网络数据都用非对称加密算法来加密,那效率会很低。所以在实际中,非对称加密只会用来传递一条信息,那就是用于对称加密的密钥。当用于对称加密的密钥确定了,A和B还是通过对称加密算法进行网络通信。这样,既保证了网络通信的安全性,又不影响效率。。
所以,在现代,A和B之间要进行安全,省心的网络通信,需要经过以下几个步骤:

  • 通过CA体系交换public key
  • 通过非对称加密算法,交换用于对称加密的密钥
  • 通过对称加密算法,加密正常的网络通信

参考:
https://zhuanlan.zhihu.com/p/36981565

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

非对称加密工作原理 的相关文章

  • Windows平台下安装与配置MySQL

    免费下载网址 https dev mysql com downloads windows installer 8 0 html 版本选择 社区版8 0 20 双击安装包 选择Developer Default 下一步 点Execute执行
  • C语言 - static inline

    2019 07 16 今天在看DPDK负载均衡的实例代码中 通过函数跳转 看到官方API后 发现了static inline这个关键字 这个我只是在很早之前知道inline是内联的 可以不进行压栈 但是static毕竟是限制函数的作用域的啊
  • Sentinel实现熔断与限流

    文章目录 一 Sentinel是什么 1 简介 2 对比 3 Linux安装 二 初始化演示工程 1 新建module cloudalibaba sentinel service8401 2 pom文件 3 application yml

随机推荐

  • 个人总结:京东技术体系员工级别划分及薪资区间

    管理层级 序列层级 职衔 对应T序 薪资区间 技术 M5 CXO M5 VP M4 3 高级总监 M4 2 总监 T5 40 50k M4 1 副总监 T5 35 45k M3 高级经理 T4 2 30 40k M2 2 经理 T4 1 2
  • 【ReID】【代码注释】采样器 deep-person-reid/samplers.py

    源码URL https github com michuanhaohao deep person reid blob master samplers py 采样器读源码注释如下 from future import absolute imp
  • Java三大器之拦截器(Interceptor)的实现原理及代码示例

    前言 前面2篇博客 我们分析了Java中过滤器和监听器的实现原理 今天我们来看看拦截器 1 拦截器的概念 java里的拦截器是动态拦截Action调用的对象 它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码 也可以在一个
  • ImportError: cannot import name ‘mean_absolute_percentage_error‘ from ‘sklearn.metrics‘

    在使用mean absolute percentage error时 导入模块报错 from sklearn metrics import mean absolute percentage error 报错信息 ImportError ca
  • python将字符串转为字典(将str类型还原为dict字典类型)

    有三种方法 eval 字符串 yaml load 字符串 Loader yaml FullLoader ast literal eval 字符串 但是要注意 转换之前 原始的字典中key与value必须是python原生支持的类型 不能是d
  • 代码实例讲解:卷积神经网络程序细节(附完整代码)

    1 导入数据集和tensorflow包 from tensorflow examples tutorials mnist import input data import tensorflow as tf 2 初步探索mnist数据集的内容
  • 高通平台中用devicetree注册设备及驱动匹配

    1 在设备树文件 dts 中的相应节点下添加要注册设备的节点 soc plf char dev mytest plf char dev compatible mytest plf char dev 定义好的设备树源文件 dts文
  • Python数据可视化(三)绘制统计图形大全

    3 1 柱状图 以 Python 代码的形式讲解柱状图的绘制原理 这里重点讲解 bar 函数的使用方法 代码 import matplotlib as mpl import matplotlib pyplot as plt mpl rcPa
  • 网络编程——TFTP协议(基于UDP)

    目录 1 tftp协议概述 2 tftp下载模型 3 tftp协议分析 代码 1 tftp协议概述 简单文件传输协议 适用于在网络上进行文件传输的一套标准协议 使用UDP传输 特点 是应用层协议 基于UDP协议实现 数据传输模式 octet
  • 小例子:实现互斥锁,自旋锁

    小例子实现互斥锁 自旋锁 在多线程并发访问临界区时 使用上面三种操作 可以实现并发访问 首先创建是个线程 for i 0 i
  • 开源主流分布式文件系统简单介绍

    文章目录 一 分布式文件系统简介 1 特点 2 主要指标及分类对比 3 AFS与NFS 二 开源分布式文件系统 1 GFS 1 GFS与NFS AFS的区别 2 BigTable 3 Chubby 4 特点1 2 HDFS 1 HDFS与C
  • 多线程与多进程(5)

    概念上 一 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动 是系统进行资源分配和调度的一个独立单位 二 线程是进程的一个实体 是CPU调度和分派的基本单位 它是比进程更小的能独立运行的基本单位 线程自己基本上不拥有系统资源 只
  • AlexNet网络详解及各层作用

    AlexNet 图中所给关于卷积核的尺寸来自于Alex在2012年发表的经典文章 Alex在2012年提出的alexnet网络结构模型引爆了神经网络的应用热潮 并赢得了2012届图像识别大赛的冠军 使得CNN成为在图像分类上的核心算法模型
  • CSDN----Markdown:---文字颜色、大小和字体设置

    Markdown是一种轻量级标记语言 创始人为约翰 格鲁伯 英语 John Gruber 它允许人们使用易读易写的纯文本格式编写文档 然后转换成有效的XHTML 或者HTML 文档 这种语言吸收了很多在电子邮件中已有的纯文本标记的特性 一
  • [BuildRelease]C++代码静态分析工具splint

    转自 http www cnblogs com bangerlee archive 2011 09 07 2166593 html引言 最近在项目中使用了静态程序分析工具PC Lint 体会到它在项目实施中带给开发人员的方便 PC Lint
  • QQ-AR实物识别!香蕉扫一扫,解救小黄人?

    神偷奶爸3 已于7月7日正式登录国内各大院线 奶爸格鲁继续率领小黄人们贱萌作死 早先 神偷奶爸3 创造了北美影史最高4529馆开画记录 同时首周报收7541万美元 国内上映前海外票房累积1 421亿美元 毫无意外地登顶北美票房榜首座 根据猫
  • 【多目标跟踪论文阅读笔记——2021年CVPR论文粗读记录】

    阅读心得 多目标跟踪经典论文 2021CVPR论文粗读记录 前言 一 学习策略类 QDTrack 二 Temporal Spatial 类 TADAM Alpha Refine TraDes CorrTracker 三 Motion mod
  • 长大后会发现,学习其实就是因为自己想知道

    简单总结 01 习惯 看不懂的名词 第一时间google 02 注释 注释一些思路 把注释嵌入到工作和生活 像现在的记录 03 随记 关注身边的细节 及时回应别人 明白自己想说什么 选择好时机去说 04 务实方法 ETC Easier to
  • IDEA 设置为护眼的豆沙绿

    代码区域设置成护眼色 先打开 IDEA 的设置界面 然后按照下图按顺序店了设置就可以了 这个时候 可以看到 只有代码区域别成了护眼色 其他地方还是白的刺眼 我们来一个一个的解决掉 左侧的文件页修改为护眼色 还是先打开设置 然后如下图所示 先
  • 非对称加密工作原理

    非对称加密 非对称加密使用两个密钥 一个是public key 一个是private key 通过某个算法 使得数据的加密和解密使用不同的密钥 因为用的是不同的密钥 所以称为非对称加密 非对称加密最著名的是RSA算法 这是以其发明者Rive