首页 > 编程知识 正文

rsa加密算法其密钥长度,rsa加密过程

时间:2023-05-03 12:13:26 阅读:156148 作者:3773

AES算法是一种对称加密算法,必须将密钥传递给对方才能解密,如何保证密钥的安全性成为关键问题。 1977年,三位数学家Rivest、Shamir、Adleman设计了一种非对称加密,也就是实现本文讨论的RSA算法的算法。 要使用非对称加密算法,必须生成公钥和私钥,用公钥加密,并用私钥解密。

互惠关系

首先让我们回顾一下素数的定义。 “素数”(prime number )也称为素数,有无限个。 大于1的自然数不能被1和除此以外的自然数整除。 换言之,其数量不再具有1和其自身以外的因数。 否则我们称之为合数。

如果两个正整数除了1以外没有其他公因子,我们把这两个数称为相互质量的关系。 在互质关系中,两个数不必是素数,合数也可以与一个素数构成互质关系。

欧拉函数

对于正整数n,欧拉函数是小于n的正整数中,与n相互独立的整数,且由表示。 例如(8)=4,是因为1 )3)5) 7和8是互质的。 欧拉函数可以表示为如下

此处,p1、p2 …… pn为x的所有质因数,x为非0的整数。 且(1)=1。 每个质因数只有一个。 例如12=2 * 2 * 3那样

(12 )=12*(1-1/2) )1-1/3)=4

n是素数p的k次幂,p的倍数以外的数全部与n相互素时

如果m、n互为质

n为奇数时

n为素数时

模式反转元素

如果两个正整数a和n相互为素数,则一定可以找到整数b,使ab - 1能被n整除,或ab能被n整除的馀数为1。 此时,b被称为a的“模反元素”。 您将看到以下内容:

是ab1(modn )

例如,在3和11相互为素数的情况下,第三模式反转元素为4。 因为(3 4 )- 1可以被11整除。 很明显,模式反转元素有多个,411的整数倍都是3的模式反转元素{ .-18、-7、- 4、15、26、 }。 也就是说,如果b是a的模式反转元素,则b k n都是a的模式反转元素。

欧拉定理

欧拉定理是关于同余的性质。 欧拉定理在n,a为正整数,且n,a相互为素的情况下,表示了以下情况

a^(n ) )1) modn ) )

证明过程很复杂,所以在这里跳过。

假设正整数a和素数p互为素,由于(p )=p-1,欧拉定理可写为

a^(p-1 )1) modp ) )

RSA公钥和私钥的生成

要生成密钥,请执行以下操作:

首先选择两个素数p和q。 而且越大越好。

计算n=pq时,n的二进制位数就是密钥的位数。

计算n的欧拉函数

(n )=) p )) q ) ) p-1 ) q-1 ) ) ) ) ) ) ) )。

随机选择整数e。 条件是1

计算e相对于(n )的模逆元素d

ed1(mod(n ) )

上式与以下一元二次方程等价,d和k有无限的组合方式,选择一个d值即可

EDk(n )=1

将n和e封装为公钥,将n和d封装为私钥

RSA加密和解密

使用公开密钥(n,e )的加密过程,可以表示为如下式,实际上是基于明文m的

计算密文c的过程。 m必须是整数,且字符串可以是ascii或unicode值,m必须小于n。

是m^ec(modn )

使用私钥(n,d )解密的过程可以由以下公式表示,实际上是根据密文c计算明文m的过程。 这里的证明很复杂,感兴趣的朋友可以自己看看。

c^dm(modn ) )。

RSA加密过程示例

首先生成密钥:

设p=61、q=53

计算出n=61 * 53=3233

计算n的欧拉函数(3233 )=60 * 52=3120

随机选择整数e=17

计算e相对于(n )的模逆元素d=2753

用公开密钥进行加密,假设明文m=65,表示大写字母a,根据公式计算密文2790。

65172790 (模3233 )

使用机密密钥进行解密,将密文设为2790,根据公式计算出明文为65,表示大写字母a。

790 ^ 275365 (模3233 )

分享学习笔记和技术总结。 内容涉及Java高级化、体系结构设计、尖端技术、算法和数据结构、数据库、中间件等多个领域,敬请关注。 本文从微信公众号“后端开发那么一点小事”开始。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。