深入理解RSA算法

 我来答
机器1718
2022-06-17 · TA获得超过6837个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:161万
展开全部

本文结构:

假设alice想要通过rsa算法在公网上,将消息加密传递给bob,他们应该怎么做呢?
分为以下几个步骤:
1.bob生成一堆共私钥,将公钥在网上公开,私钥自己保存
2.alice通过bob的公钥加密明文消息m,得到密文c,并将密文c传递给bob
3.bob用自己的私钥解密密文c,得到明文m

特别的,当n为质数时: a^(n-1)≡1 mod n

(ab-1 被n整除,或者说ab被n除的余数是1)
这时,b就叫做a的 "模反元素" 。

假设alice要向bob发送明文信息m,则用bob的公钥 (n,e) 对m进行加密。
并且加密时必须将明文进行比特串分组,保证每个分组对应的十进制数小于n,即保证m<n。

这里m假设是65,那么可以算出下面的等式:65^17 ≡ 2790 (mod 3233)
于是,c等于2790,alice就把2790发给了bob。

bob拿到2790以后,就用自己的私钥(n=3233, d=2753) 进行解密。

现在,c等于2790,私钥是(3233, 2753),那么,bob算出
2790^2753 ≡ 65 (mod 3233)
因此,bob知道了alice加密前的原文就是65。

对于密文的解密运算为:

现在来证明上面的公式恒成立。将 c ≡ m^e (mod n) 代入右边,可得

又由于 ed ≡ 1 (mod φ(n)) 可知必有 ed=kφ(n)+1 ,故有

下面分两种情况证明 m^(kφ(n)+1)(mod n) = m :
1)明文m与n互质。那么由欧拉定理知

2)明文m与n不互质:
m与n不互质,说明m与n有公因子。
又因为n=pq,且p和q都为质数,所以n的因子只有p,q,那么m与n的公因子只能是p或者q。 所以m为p或q的倍数
假设m=tp,(t为一正整数),且t与q互质 (若t与q不互质,假设t=kq,则m=tp=kpq=kn,违反了m<n)
因为m=tp与q互质,由欧拉定理知

两边同时取kφ(p)次方,得

m ≡ c^d (mod n) 得证。

回顾上面的密钥生成步骤,一共出现六个数字:

公钥用到了两个(n和e),私钥用到了两个(n和d)。
那么,有无可能在已知n和e的情况下,推导出d?

结论:如果n可以被因数分解,d就可以算出,也就意味着私钥被破解
但是大整数的因数分解是非常困难的,n越大,算法约安全,目前推荐用的rsa秘钥长度为2018及上。

同秘钥RSA有乘法同态。
简单来说:

原理:

同价加密的一些相关知识: https://yeasy.gitbooks.io/blockchain_guide/content/crypto/homoencryption.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式