专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

非对称加密算法RSA的演绎 rsa非对称加密有什么优点

ins518 2024-10-08 08:25:41 技术文章 25 ℃ 0 评论

目标

Bob的公开密钥是e=13,n=51,Alice需要将明文“2”加密后发送给Bob,而Bob可解密收到的密文。

信息加密方式(发送方)

Alice首先用Bob的公开密钥加密明文,即:

C=(M的e次方)mod(n)=(2的13次方)mod(51)=8192mod51=32;

备注:mod指取余数运算。

信息解密方式(接收方)

Bob收到Alice发来的密文C后,用自己的私钥d解密密文C,即:

M=(C的d次方)mod(n)=(32的5次方)mod(51)=2。

私钥d如何计算

非对称算法RSA中发送者利用公约(n,e)加密信息,而接收方利用私钥(d)解密加密信息,那么,私钥d如何计算的呢?

第一步:生成两个大素数p和q;

第二步:计算这两个素数的乘积n=p*q;

第三步:计算小于n并且与n互素的整数的个数,即欧拉函数φ(n)=(p-1)*(q-1);

第四步:选取一个随机数e,且满足1<e<φ(n),并且e和φ(n)互素,即gcd(e,φ(n))=1(gcd指最大公约数);

第五步:计算d=(k*φ(n)+1)/e,其中k是p-1和q-1的最大公约数;

第六步:保密d、p和q,而公开n和e,即d作为私钥,而n和e作为公钥;

注意事项:明文信息M的十进制值小于n。

举例说明:

设素数p=3,q=17,e=13,那么私钥d的计算过程如下所示:

计算:n=3*17=51

计算:φ(n)=2*16=32

计算:k,即2和16最大公约数是2

计算:d=(2*32+1)/13=65/13=5

总结

RSA安全性保证要做到选取的素数p和q足够大,使得给定了它们的乘积n后,在事先不知道p或q的情况下分解n是计算上不可行的。因此,破译RSA密码体制基本上等价于分解n。基于安全性考虑,要求n长度至少应为1024位,然而从长期的安全性来看,n的长度至少应为2048比特,或者是616位的十进制数。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表