RSA加密原理与RSA公钥加密系统、数字签名

article/2025/3/18 17:35:11

通过公钥加密系统,可以对传输于两个通信单位之间的消息进行加密,即使窃听者窃听到加密之后的消息,也不能对其破译。

1、RSA公钥加密原理

1.1 几个核心概念

  • 公钥P与公钥函数P()
  • 密钥S与密钥函数S()
    可以简单理解,一个公钥对应一个公钥函数,知道了公钥也就知道了公钥函数。一个密钥也是对应一个密钥函数。我们要传输的信息M,经过公钥函数P()之后,就成了密文C,然后密文C经过密钥函数S()解密之后,就可以还原成密文M。
    由于公钥、公钥函数以及密钥、密钥函数是一一对应的,后续叙述中不再区分,即默认知道公钥,也就知道了公钥函数。

加密系统中,每个参与者,都有自己的公钥和密钥,公钥(公钥函数)是对外公开的,密钥是不对外公开的(这是加密的前提)

公钥函数和密钥函数互为反函数,即对于任意一条消息M,有:

M  = S(P(M))
M = P(S(M))

也就是说,无论哪种顺序,运用两把钥匙P和S对消息M进行变换之后,可以还原消息M。这是加密的基本原理。

1.2 RSA公钥加密系统中遵守的原则和假设

  • 系统每个参与者都有自己的公钥和密钥
  • 公钥对外公开,密钥只有自己知道
  • 其他人不能根据公钥P推断除密钥S

1.3 公钥加密信息传输过程

在公钥加密系统中,信息的接受方(假设为Alice),需要给信息的发送方(假设为Bob)提供公钥。右一般来说,在一个公钥加密系统中,每个参与者的公钥都是公开的(放在一个公开的目录)。记住一个关键点:
公钥加密消息传递中,接受方提供公钥,发送方使用接受方提供的公钥进行加密,然后发送。
假如Bob需要给Alice发送加密消息,那么Bob需要先获取Alice的公钥PA。然后使用公约PA对消息M进行加密,然后将加密的消息发送给Alice,然后Alice使用自己的密钥SA进行解密,然后就可以获得消息M了。由于密钥SA只有Alice自己知道,因此即使窃密者获取了密文C,由于不知道密钥SA,也无法对获取的密文C解密。
在这里插入图片描述

1.4 数字签名实现的原理与过程

在公钥系统的设想中,很容易实现数字签名。假如现在Alice希望把一个数字签署的答复M’发送给Bob。

  • Alice运用自己的密钥对签名进行加密
  • Alice将加密后的信息,即数字签名以及消息M‘一同发送给Bob
  • Bob收到数字签名之后,运用Alice的公钥进行解密,判断得到的消息是否来自Alice(假如消息M‘包含Alice的名字,那么Bob就知道该使用谁的公钥)
  • 如果等式成立,那么Bob就知道M’确实是来自Alice,否则就认为是伪造的签名。

在这里插入图片描述
这里判断的一个基本逻辑就是,只有数字签名是通过Alice的密钥加密得到的,那么对数字签名运用Alice的公钥PA解密之后,才能得到消息M’
那么想象一下,有没有可能一个伪造的签名,运用Alice的公钥解密之后也能得到消息M‘呢?
– – 这是不可能的,因为能够通过一种方法F伪造一个数字签名Q,并且签名Q经过Alice的公钥运算之后还能得到M’,那么有如下关系:
在这里插入图片描述
说明F就是PA的反函数,那么PA的反函数为SA,说明F就是SA,根据1.3中假设,是不能通过公钥P得到密钥S的,因此这就保证了不能产生伪造的签名。

1.5 数字签名和公钥加密的异同

同:

  • 使用同一套加密系统,都是信息发送者对信息进行加密,然后接受者对信息进行解密。

异:
从目的上来讲,公钥加密是为了保证发送信息的私密性,即信息只有接受者可以获取正确信息,其他人不能获取。而数字签名,主要目的是别人验证这个信息来源是否正确,签名的内容可以是公开的(没有私密性), 也可不公开。

从加密过程来讲,公钥加密使用的接受方的公钥和密钥,而数字签名使用的发送方的公钥和密钥
公钥加密是发送者运用信息接收方的公钥进行加密,然后接受者用自己的密钥解密。数字签名,是发送者用自己的密钥加密,接收者(需要验证信息的人)运用发送方的公钥进行加密。

1.6 公钥加密与数字签名结合使用

1.4中签属的信息是公开的、没有加密受到保护的。如果把公钥加密与数字签名结合起来使用,就可以创造出同时被签属和加密的信息:

  • 只有接收者才能接受到消息签署的消息
  • 接收者可以验证签属的信息来源是否正确

具体做法如下:

  • 签属者(发送方)运用自己的密钥(发送方密钥)对消息M’进行运算得到签名Q,
  • 发送方将消息M‘以及得到的签名Q一起作为整体消息M,使用接受方的公钥进行加密,得到密文C
  • 发送方将密文C发送给接受方
  • 接受方队密文C,运用自己的密钥(接收方密钥)进行解密,得到消息M(包含M’以及Q)
  • 接受方对解密后的消息Q使用发送方公钥进行运算,判断结果是否等于M’, 若等于则接受,否则拒绝

2 RSA加密系统的具体实现

通过上面的内容可以发现,要实现一个RSA加密系统,其实就是需要给参与者创建一对公钥和密钥
由于RAS加密系统在创建公钥和密钥的过程中,涉及到很多一些数论概念,推导过程也需要用到一些数论中的结论,有些麻烦和晦涩。这里仅给出创建过程和结论:

  • 公钥P = (e, n), 对外公开,作为参与者的RSA公钥
  • 密钥S = (d, n), 保密,作为参与者的RSA密钥
    一对公钥密钥涉及到三个参数e、d、n
    其中获得过程如下:
    1、选取两个很大素数p和q, pq很多可能上千位
    2、计算 n = pq
    3、选取一个与k = (p-1)
    (q-1) 互质的小jing奇数e
    4、对模k,计算e的乘法逆元d的值

知道公钥和密钥之后,对应的公钥方法和密钥方法也就确定了:
在这里插入图片描述
解密的原理(证明过程省略。。。):
在这里插入图片描述
上面的式子说明,无论说明顺序,一条消息经过公钥和密钥变换之后,可以将加密后的消息还原(解密)。


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

相关文章

RSA加密解密原理

引言: CTF密码学类题目中,RSA加密可谓是很重要且常见的加密类型,今天就总结下 RSA加密的原理及解密方法。 文章目录 RSA算法简介:1、什么是非对称加密算法:2、RSA 加密原理:3、RSA加密算法过程详解&#xff1a…

# RSA加密原理和一些知识笔记

RSA加密原理和一些知识笔记 原文地址: 01:RSA 加密和原理 .pem .csr .crt .der .p12文件的区别 base64 (https://www.cnblogs.com/zyzmlc/p/12875277.html) 写得不错,这应该是他的学习笔记,我做了一些错误修正 复习:…

Rsa加密原理与简单实现

源码:https://gitee.com/Cheney822/programmes/blob/master/rsa.py 1背景 1.1 数据加密 指的是根据一定规则,将数据处理成不规则的数据,使得人们除非有了关键的钥匙以及得知这个规则,难于得知无规则数据的真实含义。这个一定规则…

RSA加密原理简述

RSA加密原理简述 RSA简介:前置技能(数论知识)RSA加密原理 RSA简介: RSA加密算法使用不同的加密密钥与解密密钥,且由已知加密密钥推导出解密密钥在计算上是不可行的,以此来保障安全。 RSA算法通常是先生成一…

RSA加密基本原理

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

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

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

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

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

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

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

激发客户潜在需求

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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