密码学(1)RSA与AES算法原理

news2025/1/10 4:03:07

什么是RSA

在1977年,Ron Rivest, Adi Shami和Leonard Adleman这三个人开发了一个新的算法,并用他们三个名字的首字母来命名这个算法,这个算法名叫RSA

非对称加密与对称加密

RSA算法采用的是非对称加密,假如我有你的公钥,我想给你发一个加密的消息,我可以利用你的公钥来加密我的消息, 然后你就可以用你的私钥来解密

在这里插入图片描述

而对称加密则是要双方都拥有同一个私钥,才能进行解密

在这里插入图片描述

RSA与AES

RSA使用的是非对称加密,AES使用的是对称加密,那他们俩有什么区别呢?

AES

假如我们使用AES加密一个文件

首先我们会生成一个随机的128位或192位或256位的密钥,然后通过AES加密算法来加密文件

在这里插入图片描述

接收方要使用相同的密钥才能解密消息,AES比RSA要快一些,因为AES是一种分组密码,简单来说它就是一个美化版的字节混合器,首先AES将数据划分成块,然后会进一步划分这个块并处理字节

在这里插入图片描述

AES的关键操作是对字节替换和混合,这和RSA不一样

RSA

RSA是进行基本的数学运算,你要加密的消息越大,数字就越大,这就是为什么AES比RSA快

ABC --> \x41\x42\x43 --> 0x414243 --> 4276803
   ascii             hex        hex转dec

加密

https://en.wikipedia.org/wiki/RSA_(cryptosystem)

在这里插入图片描述

在这里插入图片描述

c:加密后的消息
e:公钥
m:需要加密的消息
n:公钥

RSA会对消息进行一个数学运算,这个公式很简单,跟高中数学差不多

((0x414243)^e %n) = c

解密

在这里插入图片描述

d:私钥
(c)^d %n = 0x414243

进行这两个运算非常依赖e和d,也就是公钥与私钥,如果我们e作为消息的幂运算并模n,然后再用d作为幂进行运算并模n,就会得到原消息

((0x414243)^e)^d %n = 0x414243

mod n

mod是什么意思呢,假如我们有一个钟表,时针指向的是3,那么12小时后指向的是几呢,结果还是3

12 + 3 =15
15 % 12 = 3

而这个12就是mod 12,取余数

在之前的运算中,如果不进行mod运算,我们会得到一个非常大的数字

((0x414243)^e)^d = 114514.........312331....313

进行mod运算后,就会变成很小的数字

((0x414243)^e)^d = 114514.........312331....313
mod n = 0x414243

RSA的密钥生成

首先看看RSA的密钥生成过程

在这里插入图片描述

在这里插入图片描述

如果要生成RSA密钥,首先需要两个大质数,p和q,这两个质数必须是随机的,然后使用p乘以q,得到n,也就是上面算术使用的mod n,n也是公钥的一部分,这也是为什么n是公开的,它只是两个数的乘积,并且我们也很难通过因数分解来得到原来的q和p,因为p和q都是随机的,并且是质数,而且非常大

现在得到了公钥n,接下来我们要看看私钥d部分

在这里插入图片描述

φ(n) = n - (p + q -1)
d ≡ e^−1 (mod φ(n))

这是公钥e的生成过程

在这里插入图片描述

e是一个大于1小于φ(n)的随机数,e通常设置为65537,因为当随机选择更大的数字时,加密效率会大大降低

RSA算法简单演示

加密

首先我们需要将字符转换为数字

B --> 2

在这里插入图片描述

然后对这个数字进行运算,这里需要e和n,假设e是5,n是14,方程式就是这样的

2^5 (mod 14) == 32 (mod 14) = 4

加密后的密文就为4

解密

解密我们需要私钥d以及公钥n

d ≡ e^−1 (mod φ(n))

这里d通过计算得到11,n还是14

在这里插入图片描述

4^11(mod 14) == 4194304(mod14)

在这里插入图片描述

最终运算结果为2,转换为字符就是B

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

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

相关文章

从零到一手写一个小型RPC框架——介绍篇

RPC框架介绍 RPC框架是微服务的通信工具,其涉及到网络传输、服务注册、序列化、代理模式等等知识的学习与使用,是微服务的入门框架。 现有的比较知名的RPC框架有阿里巴巴开源的Dubbo,谷歌的开源RPC框架gRPC,甚至SpringCloud中所…

vue2笔记4(服务代理、插槽、vuex、路由)

vue脚手架 ## vue脚手架配置代理 vue在请求服务器的资源的时候,自身使用的是8080端口,如果服务器端口号是别的,这时候直接访问的话就会出现跨域的问题无法访问,就需要使用一个代理来访问服务器。vue配置脚手架的代理有两种方式。…

Unreal Engine学习

1,什么是组件? 继承于Uobject的为了给actor以及其他在场景中显示出来的类增加新的功能的一个东西 2,可以自己创建一个蓝图,然后将蓝图拖到场景中,也可以直接在c class中将蓝图拖到场景中 3,创建一个组件&…

vuex的新写法引入mapState省略$store.state

vuex的新写法: state简写(映射):mapState state里都是状态,所以mapState在computed中使用;state映射也就是引入mapState,然后state可以简写$store.state.状态 > 状态:前面的$s…

多点Dmall冲刺港交所上市:前三季度营收11亿元,张文中为实控人

撰稿|汤汤 来源|贝多财经 日前,多点数智有限公司(下称“多点Dmall”或“多点”)向港交所递交招股书,准备在港交所主板上市,瑞信、招银国际为其联席保荐人。 据贝多财经了解,多点Dmall在境内的主要经营主体…

《Linux运维实战:MongoDB数据库全量逻辑备份恢复(方案二)》

一、备份与恢复方案 Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据,只支持导出集合(collection),不支持导出库。 由于mongodb实例里面的数据类…

宠物网页作业HTML 大一作业HTML宠物网页作业 web期末大作业HTML 动物网页作业HTML HTML制作宠物网页作业css

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

区块链行业的一次“里程碑时刻”…

12月8日,由中国新闻社、中国新闻周刊主办的第十八届中国企业社会责任论坛成功举办,欧科云链入选“2022年度责任企业”,成为历届唯一获奖的区块链科技企业。 1999年1月,在瑞士达沃斯世界经济论坛上,联合国秘书长安南提出…

如何搞一个在线的Shape生成

Shape是Android中一个必不可少的资源,很多的背景,比如圆角,分割线、渐变等等效果,几乎都有它的影子存在,毕竟写起来简单便捷,使用起来也是简单便捷,又占用内存小,谁能不爱&#xff1…

【Python游戏】咱就说Python实现一个蔡徐坤大战篮球的小游戏,可还行? | 附带源码

前言 halo,包子们下午好 小编作为一个鸡你太美的忠实黑粉,怎么能不实行一个蔡徐坤大战篮球的小游戏呢 今天小编用Python给大家实现啦 今天不为别的,就是想督促大家学习 废话不多说,直接开整 相关文件 关注小编,私信…

GoDiagram.Winforms完全重写版-Crack

介绍GoDiagram 10 – 用于 .NET 项目的新图表库。 GoDiagram 10 是 GoDiagram 的完全重写,基于 GoJS API,具有相同的功能。这包括节点和链接的模板、数据绑定、JSON 模型数据格式、动画和许多其他功能。 在 C# 中为 .NET 构建图表 流程图 构建交互式流程…

安卓APP源码和设计报告——仿淘宝购物APP

2021—2022学年第二学期期末考试 《Android手机软件开发》实践考核 项目设计说明书 项目名称: 购物APP的设计与实现 专 业: 计算机科学与技术 学 号: 姓 名: 任课教师: 2022年6月12日 目 录 1.项目概述11 2…

磨金石教育摄影技能干货分享|优秀摄影欣赏—足球经典名画

世界杯正在如火如荼的进行,相信通过本次世界杯先进的转播技术,又会诞生一大批新的足球迷。而随着拍摄技术的进步,足球场上的许多精彩瞬间也被更清晰的抓拍下来。 1、c罗的惊讶 这张照片相信看过本届世界杯的朋友都不陌生,c罗做出…

[效率工具] Git下对敏感文件/内容的处理

🍁简介 🔗 相关资料 : 一文玩转Git 有时候我们提交代码到GitHub/Giglab平台, 发现一不小心把带有账号密码以及服务器地址的代码等敏感信息提交到公共平台,对于这种情况我们应该使用一些方案进行规避。下面就讨论下这些方案! 方法一: 配置文件…

『SnowFlake』雪花算法的详解及时间回拨解决方案

📣读完这篇文章里你能收获到 图文形式为你讲解原生雪花算法的特征及原理了解时间回拨的概念以及可能引起发此现象的操作掌握时间回拨的解决方案—基于时钟序列的雪花算法关于雪花算法的常见问题解答 文章目录一、原生的雪花算法1. 简介2. 特征3. 原理3.1 格式&…

什么软件可以去除照片水印?这3种方法可以帮你轻松搞定

大家有过这样的烦恼吗?在网上看到一张喜欢的图片,想要将它保存下来做壁纸,但是却发现图片里面有个大大的水印,十分影响效果。或者是在网上看到一张喜欢的头像,里面也有着一个大大的水印,我们该放弃这张图片…

【能源物联网】物联网体系结构与建筑能源管理系统的相关性分析

摘要: 在能源形势紧张的大趋势下,高能耗的大型公共建筑能源管理系统的建设逐渐受到重视,以物联网技术及基础的建筑能源管理平台可以提供即时、准确、高效的能源管理策略。系统阐述了结合物联网技术的建筑能源管理构建方法,对物联…

低代码助力制造型企业——工时管理系统

生产管理是制造企业的核心职能之一,工时管理是生产管理的重要方法和手段,可以帮助更好的掌控交货期,控制成本,更准确的安排生产计划。在当前激烈竞争的市场环境下,企业必须以现代化的理念结合不断改进的管理方法才能及时抓住发展机…

Aspose.GIS 22.10.0 for .NET Crack

概述 获取最完整和最强大的 API,以创建受其启发并基于它们的新项目,而不是通过为您编写此处已有的内容来浪费资源和精力。适用于 .NET 的 GIS API 是一种使用 GIS 数据的简单方法完全托管的代码,具有简单的界面、部署和数据安全性。 我们的 .…

Python FastAPI 多参数传递

Python FastAPI请求参数传递 FastAPI多参数传递类型 FastAPI通过模板来匹配URL中的参数列表,大致有如下三类方式传递参数: 路径参数传递:获取自定义的构造URL中的参数GET参数传递:获取一个URL后面带的?param11&param22这种…