RSA加密算法

news2024/12/25 8:58:49

RSA算法原理

  1. 非对称加密算法,有公钥和私钥之分
  2. 通过公钥加密的数据必须通过私钥才能解密,反之,私钥加密的数据需要通过公钥解
  3. 私钥能生成公钥,当公钥不能推导出私钥

欧拉函数

  1. 指小于n的正整数中与n互质的数的总个数(记为 ϕ ( n ) {\phi}(n) ϕ(n) ),当n为质数时则 ϕ ( n ) = n − 1 \phi(n) = n-1 ϕ(n)=n1
  2. 互质指公约数只有1的两个整数
  3. 质数指大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

如: ϕ ( 6 ) = 2 \phi(6) = 2 ϕ(6)=2 因为小于6的正整数有1、2、3、4、5而与6互质的有 1、5那么总个数为2个 ϕ ( 7 ) = 7 − 1 \phi(7) = 7-1 ϕ(7)=71 因为7为质数

  1. 当两个质数p、q且p != q , 则 n = pq 就有—> $\phi(n) = \phi(pq) = \phi§ * \phi(q) = (p-1)*(q-1) $

如:p = 5 , q = 7, 则n = 35 ------> ϕ ( 35 ) = ( 5 − 1 ) ∗ ( 7 − 1 ) = 24 \phi(35) = (5-1)*(7-1) = 24 ϕ(35)=(51)(71)=24

模反元素

如果两个正整数 e e e ϕ ( n ) \phi(n) ϕ(n)互质,则有整数d使得–> e d − 1 ed-1 ed1 ϕ ( n ) \phi(n) ϕ(n)整除 --> e d    m o d    ϕ ( n ) = 1 ed~~mod~~\phi(n) = 1 ed  mod  ϕ(n)=1 ,此时d就叫e的模反元素

加密原理

在这里插入图片描述

经过上述理论可以明白每一步的计算过程,其中明文记为M 密文记为C 。则加密公式为 : M e    m o d    n = C M^e~~ mod ~~n = C Me  mod  n=C解密公式为: C d    m o d    n = M C^d ~~ mod ~~ n = M Cd  mod  n=M

推导过程:

C d    m o d    n = M C^d ~~ mod ~~ n = M Cd  mod  n=M

—> ( M e    m o d    n ) d    m o d    n = M (M^e~~mod ~~n)^d ~~ mod ~~ n = M (Me  mod  n)d  mod  n=M

—> M e b    m o d    n = M M^{eb} ~~ mod ~~n = M Meb  mod  n=M

—> M k ϕ ( n ) + 1    m o d    n = M M^{k\phi(n) + 1} ~~ mod ~~ n = M Mkϕ(n)+1  mod  n=M ## 因为$eb~~mod ~~\phi(n) = 1 $ —> eb = k$\phi(n) $ +1 #k表示正整数

—> ( M k ϕ ( n ) ∗ M )    m o d    n = M (M^{k\phi(n)} * M) ~~ mod ~~ n = M (Mkϕ(n)M)  mod  n=M ## 实际加密中n为一个很大的数,那么当 M k ϕ ( n )   = 1 M^{k\phi(n)} ~ = 1 Mkϕ(n) =1 ( 1 ∗ M )    m o d    n = M (1 * M) ~~mod ~~n = M (1M)  mod  n=M

**定义:当a、n同为互质,则 a ϕ ( n ) ≡ 1    m o d    n a^{\phi(n)} \equiv 1 ~~mod ~~n aϕ(n)1  mod  n ,其中在n为一个很大的数的情况下,且a与n大小差距非常大时,就有 a ϕ ( n ) = 1 a^{\phi(n)} = 1 aϕ(n)=1 **

证明: M k ϕ ( n )   = 1 M^{k\phi(n)} ~ = 1 Mkϕ(n) =1

答:根据上面定义可知,要上列公式成立则有 ( M k ) ϕ ( n ) = 1 (M^k)^{\phi(n)} = 1 (Mk)ϕ(n)=1 ,这里 M k M^k Mk就等同于定义中的a,那么就需要证明n为一个很大的数,同为互质,且 M k M^k Mk 与 n大小距离非常大,,,因为 n = p ∗ q n = p * q n=pq 因为p、q是一对不相等且互质的数,那么n只有在 n /[p,q,1,n]时才能被整除,其中M为明文它本身就是一个不是特别大的数,所以在加密过程中 M k M^k Mk 与 n一定满足上述的定义条件,那么就有 M k ϕ ( n )   = 1 M^{k\phi(n)} ~ = 1 Mkϕ(n) =1

例子:

设p = 3,q = 11,M(明文) = 20
加密过程:
1-----> p=3,q=11
2-----> n = p*q = 33
3-----> φ(n) = (p-1) * (q-1)  = 2 * 10 = 20
4-----> 1<e<φ(n) ,设e= 3
5-----> de mod φ(n) = 1 --> 3d mod 20 = 1 --> 设d = 7
6-----> KU = (e,n) = (3,33)
7-----> KR = (d,n) = (7,33)

经过上面得到了公钥和私钥那么如下:

加密则为 M e    m o d    n = C M^e~~ mod ~~n = C Me  mod  n=C —> 2 0 3    m o d    33 = 14 20^3 ~~ mod ~~33 = 14 203  mod  33=14 则密文为14

解密则为 C d    m o d    n = M C^d ~~ mod ~~ n = M Cd  mod  n=M —> $14^7 ~~ mod 33 = 20 $ 对应的明文为20

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

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

相关文章

基于蜣螂算法优化的核极限学习机(KELM)回归预测-附代码

基于蜣螂算法优化的核极限学习机(KELM)回归预测 文章目录基于蜣螂算法优化的核极限学习机(KELM)回归预测1.KELM理论基础2.回归问题数据处理4.基于蜣螂算法优化的KELM5.测试结果6.Matlab代码摘要&#xff1a;本文利用蜣螂算法对核极限学习机(KELM)进行优化&#xff0c;并用于回归…

C 语言零基础入门教程(十九)

C 文件读写 上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件&#xff0c;无论它是文本文件还是二进制文件&#xff0c;都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数&#xff0c;也…

激光SLAM闭环方案总结

高质量的闭环是建图必不可少的元素之一。而激光SLAM不像视觉那样可以提供细致的纹理信息&#xff0c;因此常常出现误检和漏检的情况。最近&#xff0c;看了不少关于激光SLAM闭环方法的论文&#xff0c;总结一下。一、构建点云的描述子1、Scan Context&#xff08;2018&#xff…

抗抑郁药如何帮助细菌抵抗抗生素

谷禾健康 迄今为止最全面的全球抗菌素耐药性 (AMR) 研究发现&#xff0c;由耐药菌引起的感染是所有年龄段人群死亡的主要原因之一。 22年发表在《柳叶刀》杂志上的分析估计&#xff0c;2019 年有 495 万人死于细菌性 AMR 发挥作用的疾病。其中&#xff0c;127 万人死亡是 AMR 的…

如何使用matlab对时间序列进行ADF检验?|adftest函数(获取不同显著性下的统计结果)

ADF检验 迪基富勒检验&#xff08;ADF检验&#xff09;是一种常见的统计检验&#xff0c;用于检验给定时间序列是否平稳。在分析序列的平稳性时&#xff0c;它是最常用的统计检验之一。matlab中提供了函数adftest可以完成该检验&#xff0c;本文重点介绍该函数的用法。 Matla…

创建表和管理表

文章目录基础知识一条数据存储的过程标识符命名规则MySQL中的数据类型创建和管理数据库创建数据库使用数据库修改数据库删除数据库创建表创建方式1创建方式2查看数据表结构修改表追加一个列修改一个列重命名一个列删除一个列重命名表删除表清空表内容拓展拓展1&#xff1a;阿里…

setState的使用+React更新机制+events+受控和非受控组件

setState是异步更新 总结&#xff1a; 1.setState设计为异步&#xff0c;可以显著的提升性能 如果每次调用 setState都进行一次更新&#xff0c;那么意味着render函数会被频繁调用&#xff0c;界面重新染&#xff0c;这样效率是很低的&#xff1b;最好的办法应该是获取到多个更…

单片机开发---ESP32S3移植lvgl+触摸屏

书接上文 《单片机开发—ESP32-S3模块上手》 本章内容 熟悉一下ESP32S3的开发&#xff0c;修改范例程序的lvgl&#xff0c;使之能够匹配现在的显示屏。 具体工作大概为通过SPI接口连接一块SPI串口屏幕&#xff0c;并且适配lvgl&#xff0c;最后加上触摸屏作为输入。 屏幕 …

【计算机网络】第一章 计算机网络结构

文章目录第一章 体系结构1.1 计算机网络概述1.1.1 计算机网络的概念1.1.2 计算机网络的组成1.1.3 计算机网络的功能1.1.4 计算机网络的分类*1.1.5 计算机网络的标准化工作1.1.6 计算机网络的性能指标1.2 计算机网络体系结构与参考模型1.2.1 计算机网络分层结构1.2.2 计算机网络…

#8链表的中间结点#

链表的中间结点 1题目链接 链接 2思路 思路1:遍历一遍 计数 然后/2 再遍历一遍 思路2:slow fast指针 slow指针一次走1步 fast指针一次走2步 当fast为空的时候 slow的位置就是中间结点 奇数个: 1 2 3 4 5 fast走完第三次为空 slow走完第三次就是3 偶数个: 1 2 3 4 5 6 fast走完…

智慧型物业管理系统功能解析

随着当前社会经济的发展与科技发达&#xff0c;物业管理系统化已经成为常态了。尤其是随着智慧物业管理系统功能越来越多&#xff0c;人们对智慧物业管理系统的依赖就更明显了。毕竟系统真的可以给生活带来很多的便利之处&#xff1a; 业主可通过该系统查询自己住房的详细信息…

“揾”钱,最紧要系稳

我是腾讯安全的樊自磊。我们团队在腾讯主要负责金融风控产品&#xff0c;解决相关产品交付和服务维护工作&#xff0c;像国内知名大型国有银行、城商行、互联网金融公司等&#xff0c;都是我们的服务对象。今年春节&#xff0c;我和我的的同事们都在深圳为金融行业的网络安全进…

连续多输入多输出对象最优控制

连续多输入多输出对象最优控制 控制对象:平面二自由度机械臂 动力学模型: M ( q ) q + C ( q , q ) + G ( q ) =

【HDRP】自动生成的光照探针——Probe Volume

HDRP中&#xff0c;增加了Probe Volume&#xff0c;可代替旧版的光照探针Light Probe Group。 使用此功能的物体&#xff0c;不再需要光照贴图。 一、优缺点比较 详细说明可查看官方说明。 1.Probe Volume按像素而不是按对象发光&#xff0c;这意味着 HDRP 可以更准确地照亮…

软件著作权申请材料

(一)按要求填写的软件申请表; (二)软件的鉴别材料; 1、软件的操作手册&#xff1a;图文并茂的详细介绍软件的各功能&#xff0c;文档应不超过60页&#xff0c;超过60页应当删除中间内容&#xff0c;保留前后30页&#xff1b; 2、软件的源代码&#xff1a;每页不少于50行&…

Go第 15 章 :单元测试

Go第 15 章 &#xff1a;单元测试 15.1 先看一个需求 在我们工作中&#xff0c;我们会遇到这样的情况&#xff0c;就是去确认一个函数&#xff0c;或者一个模块的结果是否正确&#xff0c; 如&#xff1a; 15.2 传统的方法 15.2.1 传统的方式来进行测试 在 main 函数中&a…

k8s集群调度、亲和性、污点和容忍、pod状态、排障步骤

目录 一、调度约束 二、创建资源工作流程 三、Scheduler调度过程 1.Scheduler调度中考虑的问题 2.调度过程的步骤 3.预算策略&#xff08;predicate&#xff09;的常见算法 4.优选策略&#xff08;priorities&#xff09;的优先级 四、Pod 调度到指定Node节点 1.nodeNa…

微服务的服务拆分与远程调用

​ 哈喽大家好呀&#xff01;好久不见甚是想念&#xff0c;给大家拜个年啦~应该不晚吧(ಥ_ಥ) 放假在家确实是容易躺平&#xff0c;有心而无力呀哈哈哈哈。但是闲着也是闲着&#xff0c;最近学了学微服务相关知识&#xff0c;马上也快毕业了就更到抓紧了 今天我来说说关于微服…

医疗影像容积重建-物体坐标系和渲染图像坐标系

1 物体坐标系&#xff08;mm为单位&#xff0c;并三方向都是各向同性的情况)将所有数据的正中间&#xff08;这里所有的数据&#xff0c;是指各体素按照实际位置在空间排列&#xff09;&#xff0c;作为物体坐标系的原点&#xff0c;以图像的image orientation X方向&#xff0…

Android开机动画

1.动画的位置 android开机动画位置在/system/media目录下&#xff0c;/system/media/bootanimation.zip 解压是如下的文件内容 part0&#xff0c;part1&#xff0c;part2存放的都是要播放开机动画的帧图片&#xff0c;desc.txt写的是播放方式&#xff0c;desc文件内容类似如下…