RSA算法

工作过程:

RSA算法是一种非对称公开密钥密码算法。这个算法中有两个密钥:一个是公钥,它由通信双方所共同拥有;还有一个是私钥,它由通信接收方所拥有。现在来简要说明一下通信接收方生成公钥和密钥的过程。

1、选择两个大素数p和q。p、q的值越大,破解RSA越困难。

2、计算n=p*q和z=(p-1)*(q-1)。

3、选择一个小于n且和z互质的数e作为公钥。

4、选择一个数d,这个d要满足ed mod z=1。进行到这一步,我们已经可以得到公钥

     (n,e)以及私钥(n,d)

5、若此时发送方发送由整数m表示的比特组合,则明文报文m加密后为c=(m^e)mod n

      接收方解密方式如下式m=(c^d)mod n。

工作原理:

     1、先来分析一下为何(c^d)mod n==m。首先c=(m^e)mod n,则解密运算式可以写成

     (((m^e)mod n)^d) mod n,模运算有一个性质:((a mod n)^d) mod n==(a^d) mod n,

     所以解密运算式可以写成(m^(e*d)) mod n。这时我们要运用数论中的一个结论:如果

     p和q是素数,且有n=pq且z=(p-1)(q-1),则(x^y) mod n==(x^(y mod z))mod n。这时,令

     x=m,y=ed,则(m^(e*d)) mod n==(m^((e*d) mod z))mod n。又前面已知(e*d) mod z==1,

     则(m^(e*d)) mod n==(m^((e*d) mod z))mod n==m mod n==m。

   2、该算法的安全性是基于以下事实:目前没有已知的算法可以快速进行一个数的因数

         分解,这时无法将公钥n快速分解成素数p和素数q。如果已知p和q,则可以通过

         公钥(e*d) mod ((p-1)*(q-1))==1这一特性很快推测出密钥d。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值