2021-05-07

rsa

rsa作为一种非对称加密方式,被广泛用于计算机领域。其加密模式大致为:
(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。
其公匙与私匙不同,因此被称为非对称加密。
那公式与私匙是如何生成的呢?又是如何做到用不同的密匙分别进行加密与解密的呢?

rsa的前置理论基础

互质关系

如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。比如,15和32没有公因子,所以它们是互质关系。这说明,不是质数也可以构成互质关系。

关于互质关系,不难得到以下结论:

1. 任意两个质数构成互质关系,比如13和61。

2. 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系,比如3和10。

3. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97和57。

4. 1和任意一个自然数是都是互质关系,比如1和99。

5. p是大于1的整数,则p和p-1构成互质关系,比如57和56。

6. p是大于1的奇数,则p和p-2构成互质关系,比如17和15。

欧拉定理

在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则:
在这里插入图片描述
也就是说,a的φ(n)次方被n除的余数为1。
其中,φ(n)是欧拉函数,其意义是任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系。
在rsa中只需用到其中的一个性质:φ(n) = φ(p1p2) = φ(p1)φ(p2),具体用法下文再进行讲述。

rsa的算法

(1)任意选取两个不同的大素数p和q计算乘积n
即:n = p * q
由于pq都为素数,其欧拉函数φ§=p-1;φ(q)=q-1
根据前文提到的性质,φ(n)=(p-1)*(q-1)
(2)随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。
(3)计算e对于φ(n)的模反元素d
所谓"模反元素"就是指有一个整数d,可以使得ed被φ(n)除的余数为1。
  ed ≡ 1 (mod φ(n))
这个式子等价于
  ed - 1 = kφ(n)
于是,找到模反元素d,实质上就是对下面这个二元一次方程求解。
  ex + φ(n)y = 1
(6)将n和e封装成公钥,n和d封装成私钥
加密信息 m(二进制表示)时,首先把m分成等长数据块 m1 ,m2,…, mi ,块长s,其中 2^s <= n, s 尽可能的大。对应的密文是:
  ci = mi^e ( mod n )
  解密时作如下计算:
  mi = ci^d ( mod n )

证明过程及例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值