RSA加密原理简述

article/2025/3/18 17:32:50

RSA加密原理简述

  • RSA简介:
  • 前置技能(数论知识)
  • RSA加密原理

RSA简介:

RSA加密算法使用不同的加密密钥与解密密钥,且由已知加密密钥推导出解密密钥在计算上是不可行的,以此来保障安全。
RSA算法通常是先生成一对RSA密钥,公钥和私钥,私钥由用户保存,公钥可对外公开。
为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位或2048位 。
RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

前置技能(数论知识)

在讲解原理之前,需要掌握一些数论知识才行。

互质:如果整数 a,b 的最大公因数为 1,即:gcd(a, b) == 1,称 a, b互质。

欧拉函数
定义:对于正整数 x, ϕ ( x ) : = 从 1 至 x 中,与 x 互质的整数的个数 \phi(x) := 从1至x中,与x互质的整数的个数 ϕ(x):=1x中,与x互质的整数的个数
例如: ϕ ( 1 ) = 1 , ϕ ( 2 ) = 1 , ϕ ( 8 ) = 4 \phi(1) = 1, \phi(2) = 1, \phi(8) = 4 ϕ(1)=1,ϕ(2)=1,ϕ(8)=4

欧拉函数有以下性质:

  • 若 p 为质数,则 ϕ ( p ) = p − 1 \phi(p) = p-1 ϕ(p)=p1
  • 若 a, b 互质,则 ϕ ( a b ) = ϕ ( a ) ∗ ϕ ( b ) \phi(ab) = \phi(a)*\phi(b) ϕ(ab)=ϕ(a)ϕ(b)
  • 若 a, n 互质,则 a ϕ ( n ) ≡ 1 ( m o d n ) a^{\phi(n)} \equiv 1\ (mod\ n) aϕ(n)1 (mod n)

证明过程,请阅读 《初等数论及其应用·第五版》p174 - p177,提取密码2233

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

RSA加密原理

  1. 选取两个大素数,p, q
  2. 令 n = p * q,则 ϕ ( n ) = ( p − 1 ) ∗ ( q − 1 ) \phi(n) = (p-1) * (q-1) ϕ(n)=(p1)(q1)
  3. 选取一个与 ϕ ( n ) \phi(n) ϕ(n) 互质的数 E
  4. 计算 E 模 ϕ ( n ) \phi(n) ϕ(n) 的逆元 D, 即 E ∗ D ≡ 1 ( m o d ϕ ( n ) ) E*D \equiv 1\ (mod\ \phi(n)) ED1 (mod ϕ(n))

现在,公钥就是(E, n),私钥就是 (D,n)
假设待加密数据为 a,(a必须与n互质,只需要保证a < min(p,q) 就行了)

加密: m = E n c r y p t ( a ) = a E ( m o d n ) m=Encrypt(a)=a^E\ (mod\ n) m=Encrypt(a)=aE (mod n)
解密: a = D e c r y p t ( m ) = m D ( m o d n ) a=Decrypt(m)=m^D\ (mod\ n) a=Decrypt(m)=mD (mod n)

证明一下:
m D = a E D = a k ϕ ( n ) + 1 = a k ϕ ( n ) ∗ a = ( a ϕ ( n ) ) k ∗ a = ( k ′ n + 1 ) k ∗ a = 1 k ∗ a = a ( m o d n ) m^D=a^{ED}=a^{k\phi(n)+1}=a^{k\phi(n)}*a=(a^{\phi(n)})^k*a=(k'n+1)^k*a=1^k*a=a\ (mod\ n) mD=aED=akϕ(n)+1=akϕ(n)a=(aϕ(n))ka=(kn+1)ka=1ka=a (mod n)


http://chatgpt.dhexx.cn/article/pxkMSMBv.shtml

相关文章

RSA加密基本原理

工作中遇到RSA加密的内容&#xff0c;特意学习了一下&#xff0c;作为自己的笔记吧。&#xff08;公钥和私钥得到不在本次文章范围内&#xff0c;此处只有基本原理&#xff09;方便自己更好的理解。 笔记来源于bilibili的视频&#xff0c;地址如下&#xff1a; https://www.bil…

非对称加密算法--RSA加密原理详解

密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用&#xff0c;已成为一门综合性的尖端技术科学。 密码学发展史 在说RSA加密算法之前&#xff0c; 先说下密码学的发展史。其实密码学的诞生&#xff0c;就是为了运用在战场&#xff0c;在公元前&#…

密码学——RSA加密算法原理

前言&#xff1a;之前在做密码学题的时候了解了一下RSA&#xff0c;但总感觉那时总结的过少&#xff0c;而且也理解的不到位&#xff0c;这次就再来详细的了解一下&#xff0c;并通过做题来巩固一下。 一、对称加密与非对称加密 对称加密&#xff1a; 加密和解密用的是同一密…

如何利用好大数据挖掘潜在用户?

就目前而言&#xff0c;现在的大数据技术为绝大部分的业务提供了许多功能&#xff0c;同时还提高了效率和收入。当然除了这些以外&#xff0c;大数据分析还为公司的潜在客户和现有客户提供了许多好处。这些优点让很多公司对于大数据技术十分向往&#xff0c;那么怎么能够利用好…

激发客户潜在需求

企业不光要看到客户的显现需求&#xff0c;更要挖掘客户的潜在需求&#xff0c;因为客户的潜在需求是可以转化为显现需求的&#xff0c;满足客户的潜在需求可以为企业带来更多经济效益。 前言 潜在需求是指消费者虽然有明确意识的欲望&#xff0c;但由于种种原因还没有明确的显…

HubSpot入站营销:吸引潜在客户的7大技巧!

入站营销是当今数字化时代的重要策略之一。它不仅可以帮助企业吸引潜在客户、建立品牌知名度&#xff0c;还能促进客户参与并提高客户满意度。今天运营坛将带领大家深入探讨HubSpot入站营销的理论和实践&#xff0c;包括如何开始入站营销、入站营销的框架以及关键技巧。 一、什…

Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户

最近我们被客户要求撰写关于银行拉新活动的研究报告&#xff0c;包括一些图形和统计输出。 项目背景&#xff1a;银行的主要盈利业务靠的是贷款&#xff0c;这些客户中的大多数是存款大小不等的责任客户&#xff08;存款人&#xff09;。银行拥有不断增长的客户。该银行希望增…

潜在客户需要单独管理吗?

通常销售型企业会将客户类型区分为&#xff1a;潜在客户、意向客户和购买客户等状态。那么&#xff0c;潜在客户需要单独拿出来进行管理吗&#xff1f;。 企业从展会、网站、广告及其它市场活动收集来的潜在客户是客户挖掘、获得、细分的主要目标受众&#xff0c;这些线索客户的…

python数据分析与挖掘实战---航空公司客户价值分析

航空公司客户价值分析 一、 背景与挖掘目标 **** 客户关系管理是企业的核心问题&#xff0c;关键在于客户的分类&#xff1a;区别无价值客户&#xff0c;高价值客户&#xff0c;针对不同客户群体有的放矢投放具体服务方案&#xff0c;实现企业利润最大化的目标。 各大航空公…

银行电话精准营销的探索性分析并基于XGboost进行潜在客户预测建模

问题背景&#xff1a; 随着利率市场化改革推进&#xff0c;银行业整体面临息差收窄的压力&#xff0c;不少银行将中间业务收入作为新的利润增长点。其中&#xff0c;以招商银行为代表的一批大型股份制银行&#xff0c;更是将大财富管理模式做到了极致&#xff0c;中间收入占比的…

如何和产品潜在的客户沟通

老于笔记01.10 一个人幸运的前提其实是他有能力改变自己。 正文 和产品潜在的客户沟通很有必要&#xff0c;有时候还需要对他们提供必要指导&#xff0c;这样有助于挖掘他们需求&#xff0c;将他们变成真正的消费者。 1 C端产品的第一批用户很可能来自推消以外的其他渠道&#…

salesforce-使用Web-to-Lead引入网站的潜在客户

salesforce的web-to-lead功能可以将网站的流量转化为潜在客户&#xff0c;只需要用户填写我们在salesforce后台设定好的表单&#xff0c;即可实现将用户填写的信息导流到salesforce后台&#xff0c;从而统一管理网站的潜在客户。 我个人比较习惯在英文环境下操作&#xff0c;我…

链脉刘松华:如何用AI名片发掘更多潜在客户

本文来自链脉联合创始人:刘松华 乐尚七色光美术教育创始人 懂孩子家庭教育讲师 润阳父母大学家庭教育讲师 润阳演讲大学演说训练讲师 链脉名片联合创始人 新营销能量讲师 链脉创富讲师 销售行业需要不断的签单成交就需要不断有潜在客户的加入,所以潜在客户的获取关乎到…

Python爬虫爬取知乎用户信息+寻找潜在客户

【Python应用】寻找社交网络中的目标用户 日后的更新&#xff1a;由于是很久以前的课程设计项目&#xff0c;完整的源码已经不见了&#xff0c;关键的网页数据获取和解析的部分代码我在文章中已经贴出来了&#xff0c;但写的也不够好&#xff0c;如果想参考爬取知乎的同学&…

用户画像实战:基于Kmeas的电商潜在客户识别

电商潜在客户识别 前言 1、任务描述 此数据集仅用于学习客户细分概念&#xff0c;也称为市场篮子分析。我将以最简单的形式使用无监督的ML技术&#xff08;KMeans聚类算法&#xff09;来演示这一点。 通过超市商场会员卡信息&#xff0c;我们可以得到一些关于客户的基本数据…

数据分析,把握商机 关键词采集工具助你挖掘潜在客户

数据分析&#xff0c;是指对大量的数据进行收集、处理、分析和解析的过程&#xff0c;从而发现其中隐含的规律、趋势和价值信息。而在商业领域&#xff0c;数据分析则是一种能力&#xff0c;可以帮助企业更好地了解市场、客户和竞争对手&#xff0c;把握商机&#xff0c;提高效…

营销自动化如何帮助你挖掘潜在客户?

点击上方“AI公园”&#xff0c;关注公众号&#xff0c;选择加“星标“或“置顶” 作者&#xff1a;Xen Chia 编译&#xff1a;ronghuaiyang 导读 看看如何使用营销自动化工具来得到潜在客户。 你如何争取潜在客户&#xff1f; 如果你的答案将是“购买潜在客户”&#xff0c;那…

Python实现预测信用卡潜在客户

一、数据集 有一家名为Happy Customer Bank (快乐客户银行) 的银行&#xff0c;是一家中型私人银行&#xff0c;经营各类银行产品&#xff0c;如储蓄账户、往来账户、投资产品、信贷产品等。 该银行还向现有客户交叉销售产品&#xff0c;为此他们使用不同类型的通信方式&…

数据挖掘(二)预测潜在贷款发放客户

注&#xff1a;参考多篇csdn及b站文章所得 一、实验背景 某机构想要预测哪些客户可能会产生贷款违约行为&#xff61;他们搜集了历史客户行为的部分数据以及目标客户的信息,希望通过历史数据对目标客户进行预测哪些客户会是潜在的违约客户,从而缩小目标范围,实现低风险贷款发…

淘宝客服话术《挖掘每一个潜在客户》

在这个电商行业的时代&#xff0c;作为一名淘宝客服人员&#xff0c;与店铺之间的关系是密不可言的&#xff0c;客服相当于店铺的门面&#xff0c;也是和客户第一接触者&#xff0c;重要性可想而知。 随着客服岗位的泛滥&#xff0c;客服之间的能力也是参差不齐的&#xff0c;想…