RSA(自留)

本文解释了RSA算法中公钥和私钥的使用,强调了公钥(e,n)的安全性,指出BCD虽然知道加密算法但无法仅凭公钥解密,除非能分解接收方A的大素数。私钥的存在确保了信息的保密性,除非拥有私钥d,否则无法还原原始内容。
摘要由CSDN通过智能技术生成

      目标  

        现有A B C D 四个人,A是接受方,B C D 写信给A,B C D 可以截取另一人发出的信(密文),但B C D 知道加密算法,却得不到明文即信的原内容。

       过程

  •    于是A用了RSA算法,发布了公钥(e, n)给B C D。

        (e, n)e是一个按某要求选出来的数,n是两个大素数的乘积。

  •    B C D用公钥加密了明文发给A

           c=m^{e}mod\left ( n \right )

  •     A用密钥解出原内容。

           m=c^{d}mod\left ( n \right )

        原理

  • 可解得原文

       即将 c=m^{e}mod\left ( n \right ) 代入 m=c^{d}mod\left ( n \right ) 中进行验证

       即 m\equiv m^{ed}mod(n) 吗?

       是的,因为:

       m^{ed}=m^{k\varphi (n)+1}              -----------(1)

       m^{k\varphi (n)+1}\equiv m (mod(n))        k为正整数        -------------(2)

       这将涉及到公钥的构造,欧拉函数,mod下的乘法运算

       先看(2)为什么成立       

        已知(2)中\varphi (n)是欧拉函数值,满足

                              a与m互素

       n是两个大素数乘积,密文m与n互素的概率几乎为100%,所以满足上式,所以

       

图1

       再看(1)为何成立

       而公钥的构造中,要求选取公钥e,e是素数且e与 \varphi (n) 互素,故必然存在

       

图2

(可以理解为e和\varphi (n)互素,所以不会因为公因子而得不到1)

       综上,公钥设计通过 设计e和\varphi (n)互素 构造 m^{ed}=m(mod(n)) 实现还原,B C D只有e是无法将 m^{e} 还原为 m 的,但是 A 有d才有 m^{d},才可以还原出 m。

  • 安全性

       这里仅讨论RSA是较为安全的原因。

       由上文可知,B C D要破译彼此内容,就要 m^{d}就要d。

       由图2中的  ed\equiv 1mod(\varphi (n)) 可知,我们需要\varphi (n)

       由欧拉函数中的一个性质 φ ( n ) = ( p − 1 ) ( q − 1 )(数论知识自己查)我们需要将 n 分解为 p和q,才知道p-1,q-1,才知到φ ( n )。

       综上,B C D只有将接受方A设计的大素数分解出p, q,才能破译截获的密文。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值