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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值