公钥密码(非对称加密)

news2024/11/23 11:28:39

实例

投币寄物柜是这样使用的:

  1. 首先,将物品放人寄物柜中。然后,投入硬币并拔出钥匙,就可以将寄物柜关闭了。关闭后的寄物柜,没有钥匙是无法打开的。
  2. 只要有硬币,任何人都可以关闭寄物柜,但寄物柜一旦被关闭,再怎么投币也无法打开。
  3. 打开寄物柜需要使用钥匙,而不是硬币。

因此我们可以说,硬币是关闭寄物柜的密钥,而钥匙则是打开寄物柜的密钥。

密钥配送问题

将邮件加密后发送到接收者,但密钥要如何告诉接收者呢?

如果密文和密钥都通过邮件发送,两者就都会被窃听者 Eve 窃听到。这样一来,同时得到密文和密钥的 Eve 就能够像Bob —样完成密文的解密并看到明文的内容了。也就是说,如果同时发送密钥,则 Eve 也能够完成解密。

在这里插入图片描述

解决方案

  1. 通过事先共享密钥来解决:在人数很多的情况下,通信所需要的密钥数量也会
    增大,最终级别可能上千万
  2. 通过密钥分配中心来解决:随着员工数量的增加,密钥分配中心的负荷也会随之增加。如果密钥分配中心计算机发生故障,全公司的加密通信就会瘫痪。
  3. 通过 Diffie-Hellman 密钥交换来解决密钥配送问题:根据所交换的信息,双方可以各自生成相同的密钥,而窃听者 Eve 却无法生成相同的密钥。Eve 虽然能够窃听到双方所交换的信息,但却无法根据这些信息生成和双方相同的密钥。
  4. 通过公钥密码来解决密钥配送问题:在对称密码中,加密密钥和解密密钥是相同的,但公钥密码中,加密密钥和解密密钥却是不同的。只要拥杳加密密钥,任何人都可以进行加密,但没有解密密钥是无法解密的。因此,公钥密码的一个重要性质,就是只有拥有解密密钥的人才能够进行解密。接收者事先将加密密钥发送给发送者,这个加密密钥即便被窃听者获取也没有问题。发送者使用加密密钥对通信内容进行加密并发送给接收者,而只有拥有解密密钥的人( 即接收者本人 )才能够进行解密。这样一来,就用不着将解密密钥配送给接收者了,也就是说,对称密码的密钥配送问题,可以通过使用公钥密码来解决。

公钥密码

  1. 公钥密码( public-key cryptography )中,密钥分为加密密钥和解密密钥两种。
  2. 发送者用加密密钥对消息进行加密,接收者用解密密钥对密文进行解密。
  3. 要理解公钥密码,清楚地区分加密密钥和解密密钥是非常重要的。加密密钥是发送者加密时使用的,而解密密钥则是接收者解密时使用的。
  4. 也就是说,解密密钥从一开始就是由接收者自己保管的,因此只要将加密密钥发给发送者就可以解决密钥配送问题了,而根本不需要配送解密密钥。

在这里插入图片描述

公钥密码无法解决的问题

公钥密码解决了密钥配送问题,但这并不意味着它能够解决所有的问题,因为我们需要判断所得到的公钥是否正确合法,这个问题被称为公钥认证问题。

mod 运算

为 “除法求余数的运算” 定义一个运算符,即mod

RSA

RSA 是一种公钥密码算法,它的名字是由它的三位开发者,即 RonRivest 、 Adi Shamir 和Leonard Adleman 的姓氏的首字母组成的( Rivest-Shamir-Adleman )。

RSA 加密

仅仅对明文进行乘方运算并求 mod 即可,这就是整个加密的过程。

密文 = 明文的E次方 mod N ( RSA 加密 )

其中,E和W是 RSA 加密的密钥,也就是说,E和N的组合就是公钥。

E 和N 这两个数并不是密钥对( 公钥和私钥的密钥对 )。E和N两个数才组成了一个公钥,因此我们一般会写成 “公钥是(E,N)” 或者"公钥是{E,N}” 这样的形式。

RSA 解密

数 D 和数 N 组合起来就是 RSA 的解密密钥,因此 D 和 N 的组合就是私钥。

明文 = 密文的D次方 mod N ( RSA 解密 )

在这里插入图片描述
在这里插入图片描述

生成密钥对

由于 E 和 N是公钥,D 和 N 是私钥,因此求 E、D 和 N 这三个数就是生成密钥对。RSA 密钥对的生成步骤如下。

(1) 求 N
(2) 求 L 是仅在生成密钥对的过程中使用的数 )
(3) 求 E
(4) 求 D

在这里插入图片描述

安全隐患

要防御中间人攻击,还需要一种手段来确认所收到的公钥是否真的属于 Bob, 这种手段称为认证,在这种情况
下,我们可以使用公钥的证书。

其他公钥密码

  1. ElGamal方式
  2. Rabin 方式
  3. 椭圆曲线密码:椭圆曲线密码( Elliptic Curve Cryptography, ECC )是最近备受关注的一种公钥密码算法。
    它的特点是所需的密钥长度比 RSA 短。椭圆曲线密码是通过将椭圆曲线上的特定点进行特殊的乘法运算来实现的,它利用了这种乘法运算的逆运算非常困难这一特性

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

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

相关文章

Locust学习记录2-locust用户类属性【HttpUser,wait_time,weight和fixed_count】

HttpUser 每个模拟用户定义的类,都必须继承HttpUser,目的时为每个用户提供一个client属性,该属性是一个实例HttpSession,可用于向我们要进行负载测试的目标系统发出HTTP请求 当测试开始时,locust将为它模拟的每个用户…

vue项目分环境打包的具体步骤 --- 区分测试环境与线上环境的打包引用路径

第一步: 安装cross-env npm install --save-dev cross-env 运行跨平台设置和使用环境变量的脚本 第二步:修改package.json 在package.json 里设置打包命令 --- 主要是基于使用vue-cli创建的项目,配置文件基于 NODE_ENVproduction 去处…

图文多模态模型CLIP

前言 CLIP带给我的震撼是超过transformer的,这是OpenAI的重要贡献之一。就如官网所描述的: CLIP: Connecting Text and Images 用对比学习(Contrastive Learning)来对齐约束图像模型和文本模型。用文本嵌入指导图像学习&#xff…

C++11特性-其他特性

1.字符串的原始字面量 表达式:R"xxx(原始字符串)xxx"或者R"(原始字符串)",xxx要写的话,必须一样 //两种申明形式string a "aaa";//没有转义的时候就是原始字面量string b R"aaa(…

Ansible最佳实践之 AWX 作业创建和启动

写在前面 分享一些 AWX 作业创建和启动的笔记博文内容涉及: 创建作业模板涉及相关参数,作业模板角色配置介绍运行作业模板并测试的Demo 食用方式: 需要了解 Ansible理解不足小伙伴帮忙指正 傍晚时分,你坐在屋檐下,看着…

Js逆向教程20-Hook基础

Js逆向教程19-Hook基础 一、jshook Hook就是在这些流程任意环节插入自己的代码,让浏览器先执行自己的代码 然后再执行原本网站的 hook在以下流程中可以做的事情: 1.1 html流程 联机服务器:获取ip地址,ws获取参数拿回资源&…

IntelliJ IDEA 2022.3正式发布,配置云同步支持Redis好用到炸

本文已被https://yourbatman.cn收录;女娲Knife-Initializr工程可公开访问啦;程序员专用网盘https://wangpan.yourbatman.cn;技术专栏源代码大本营:https://github.com/yourbatman/tech-column-learning;公号后台回复“…

【iOS】AFNetworking

AFNetworking是MAC/iOS为了简化网络操作设计的一套网络框架,专注与网络数据传输 ,以及网络中多线程的处理,只需要简单几步就可以完成网络请求任务。 小说明 ANF的特性: 登录传参数时 , 传递 字典 即可 .( 键名为参数名 , 键值为…

【网络层】IP组播(多播)、硬件组播、IGMP、组播路由选择协议、移动IP、路由器详解、路由表和路由转发

注:最后有面试挑战,看看自己掌握了吗 文章目录IP多播----只给有相同需求的路由器传信息以看视频为例-----组播路由器支持--------运行组播协议的路由器IP组播地址------多播组的设备都有一个组播组IP地址---------一群共同需求主机的相同标识-------看直…

数据安全事故频发以及防范措施

误删除事故 最近在和IT群友的聊天中得知,一个小伙因为看错了一个语句,直接将生产数据库中所有数据全部删除了,并且该库在设计的时候虽然做了备份,但在运行过程中因某些原因把备份关闭了。 传统数据运维模式 受到科技制裁的原…

opencv c++ 霍夫直线检测

目的:在进行图像边缘提取后,将数据从平面坐标转换到极坐标空间,即完成了直线的信息提取。 1、原理 平面坐标系:通过之间的斜率k和截距b来确定一条直线。y kxb 极坐标系:通过半径r、角度θ来确定一条直线。r xcosθ …

计算机毕业设计基于Springboot+vue口腔牙科诊所管理系统

项目介绍 口腔卫生是关系民生的一个重要问题。口腔健康会直接影响全身的健康,口腔基本常见的有龋齿,牙周炎等问题,而且人类的牙齿只有2次更换周期,一旦牙齿彻底完成更换终生将不再更换,所以越来越多的人开始关系口腔问…

C++中的多态和虚函数及多态原理

定义 多态:事物的一种形态,在不同的子类中表现为多种形态,就称为多态; 分类 多态分为静态和动态多态 静态多态包括运算符重载和函数重载,复用函数名; 动态多态包括虚函数派生类; 区别&…

【Flask框架】——03 应用程序的参数加载

目录1.从配置对象中加载2.从配置文件中加载3.从环境变量中加载4.从Pycharm中的运行时设置环境变量的方式加载5.企业项目开发常用的方式应用程序配置参数设置的是一个Web应用工程的相关信息,比如: 数据库的连接信息 日志的配置信息 自定义的配置信息 ……

【苹果家庭推源码】利用新的Alloc Replication方法建立一个对象

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

[Database] 脏读、幻读这些都是什么?事务隔离级别又是什么?MySQL数据库的事务隔离级别都有哪些?

文章目录前言事务隔离级别三种数据不一致问题1. 脏读2. 不可重复读3. 幻读不可重复读 vs 幻读四种事务隔离级别1. READ UNCOMMITTED2. READ COMMITTED3. REPEATABLE READ4. SERIALIZABLE不同事务隔离级别会面临的问题不同隔离事务级别的使用率排名实战查看事务隔离级别更改事务…

linux篇【11】:计算机网络—网络基础

目录 一.网络基础 1.认识 "协议" 2.协议分层 (1)软件分层 (2)协议分层 3.OSI七层模型 4.TCP/IP五层(或四层)模型 5.网络和操作系统之间的关系 6.数据包的封装(封包)和解包,分用 (1&…

四、文件管理(一)文件系统基础

目录 1.1文件的基本概念 1.2文件控制块和索引结点 1.3文件的操作 1.4文件保护 1.5文件的逻辑结构 1.5.1无结构文件(流式文件) 1.5.2有结构文件(记录式文件) 1.5.2.1顺序文件 1.5.2.2索引文件 1.5.2.3索引顺序文件 1.5…

数据库之架构

一、数据库架构原则 高可用 高性能 一致性 扩展性 二、常见的架构方案 方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用 jdbc:mysql://vip:3306/xxdb 1、高可用分析:高可用,主库挂了,kee…

[ vulhub漏洞复现篇 ] Apache Solr RemoteStreaming 文件读取与SSRF漏洞 (CVE-2021-27905)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…