【信息安全】RSA

公钥加密,密钥是一对,一个公开一个保密,用其中一个加密,用另一个解密。

RSA是一种公钥加密方法。过程如下:

(1)选择质数p,q,n=p*q,p和q是private,n是public;

(2)选择e,e与f(n)=(p-1)*(q-1)互质,且1<e<f(n),e是public的,f(n)是private;

(3)求解e^-1 = d mod f(n),d是private的。e是d是一对密钥。e公开d保密;

(4)加密m,其中m<n。c=m^e % n;

(5)解密c,m = c^d % n。

证明正确性:

e和d关系: e*d = k*f(n) + 1.

且x = c^d = m^(ed) = m^(k*f(n)+1) = m^(k(p-1)*(q-1) + 1),

只要证明c^d = m mod n即可,即(m^e%n)^d % n= x % n = m。 

(1)如果m同时与n互质,m与p和q也互质,

使用m与p互质,得到m^(p-1) = 1 mod p,那么,(m^(p-1))^(q-1) % p = (m^(p-1) % p)^(q-1) % p = 1 % p = 1,所以x = m mod p。

同理根据m与q互质,得到x = m mod q。所以(x-m) | pq,即x = m mod pq 

(2)如果m与n不互质,则m必为p或者q之一的倍数,假设m | p。

那么m此时与q互质,否则m同时为p和q的倍数,则m大于n,与RSA要求违背。所以m与q互质,根据(1)可得,x = m mod q。

根据m | p,得到x | p,因为x是由m经过幂运算得到的。所以x = 0 mod p,(x - m) | p,所以(x - m) | pq。即x = m mod pq。

m被q整除相似,得证。

注:使用了取余的乘法运算,m^x % p = (m % p)^x % p

一个例子:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值