ComSec作业三:RSA


前言

RSA算法是最著名的且被广泛应用的公钥加密体制
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。


9.1  证明:变种RSA算法加密解密互逆

在这里插入图片描述

解:由费尔马小定理知, m p − 1 m^{p-1} mp1 ≡ \equiv 1 mod p (m不为p的倍数)
     所以,对任意整数 k k k m k ( p − 1 ) m^{k(p-1)} mk(p1) ≡ \equiv 1 mod p
     同理,对任意整数 k k k m k ( q − 1 ) m^{k(q-1)} mk(q1) ≡ \equiv 1 mod q
     ∵ \because λ ( n ) \lambda(n) λ(n) = LCM (p-1,q-1)

     ∴ \therefore m λ ( n ) m^{\lambda(n)} mλ(n) ≡ \equiv 1 mod p
       m λ ( n ) m^{\lambda(n)} mλ(n) ≡ \equiv 1 mod q
     由中国剩余定理知, m λ ( n ) m^{\lambda(n)} mλ(n) ≡ \equiv 1 mod pq ≡ \equiv 1 mod n
     ∵ \because   ed ≡ \equiv 1 mod λ ( n ) \lambda(n) λ(n)
     ∴ \therefore   ed = k λ ( n ) k\lambda(n) (n) + 1 ,    k ∈ Z k \in \mathcal{Z} kZ

     ∴ \therefore m = ( m e ) d m =(m^e)^d m=(me)d mod n
          = m e d =m^{ed} =med mod n
          = m k λ ( n ) + 1 =m^{k\lambda(n)+1} =m(n)+1 mod n
          = ( m k λ ( n ) =(m^{k\lambda(n)} =(m(n) • m ) mod n
          = m =m =m mod n
    由此可知,该算法的加解密互逆


9.2  使用RSA 算法进行加密和解密

在这里插入图片描述

(a)解:
         n = pq = 3x7 = 21
          ϕ \phi ϕ(n) = (p-1)(q-1) = 2x6 = 12
         确定d,使得 de ≡ \equiv 1 mod ϕ \phi ϕ(n),且 0 ≤ \leq d ≤ \leq n
         通过拓展欧几里得算法可算得, d = 5
         则 公钥 KU = {e,n} = {5,21}     私钥 KR = {d,n} = {5,21}
         加密: C = M e M^e Me mod n = 1 0 5 10^5 105 mod 21 = 19
         解密: M = C d C^d Cd mod n = 1 9 5 19^5 195 mod 21 = 10
         【数值过大时可用 “中国剩余定理” 进行计算】

   同理,即可求得其他几项的加密和解密结果,如下:
  (b)C = 8,      M = 8
  (c)C = 114,   M = 11
  (d)C = 46,    M = 2
  (e)C = 61,    M = 7


9.3  已知公钥和密文,求解明文

在这里插入图片描述

解: n = 77 = 7x11
      假设 p = 7, q = 11
      则 ϕ \phi ϕ(n) = (p-1)(q-1) = 6 x10 = 60
      确定d,使得 de ≡ \equiv 1 mod ϕ \phi ϕ(n),且 0 ≤ \leq d ≤ \leq n
      通过拓展欧几里得算法可算得, d = 37
      M = C d C^d Cd mod n = 2 0 37 20^{37} 2037 mod 77 = 48


9.4  已知公钥,求解私钥

在这里插入图片描述

解: ∵ \because n = 2881;
     ∴ \therefore 构成 n 的两个乘数 p 和 q,要么是个位数为 3 和 7 的素数,要么是两个个位数都为 9 的素数

    通过反复实验和试错后可知,n = 2881 = 43 x 67
    令 p = 43, q = 67
    则 ϕ \phi ϕ(n) = (p-1)(q-1) = 42 x 66 = 2772
    通过拓展欧几里得算法可算得, d = 725
     则其私钥 KR = {d,n} = {725,2881}


总结

在这里插入图片描述
加密: C = M e M^e Me mod n
解密: M = C d C^d Cd mod n

RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥
只要掌握了RSA密钥的产生过程,就可以很好的实现运用其进行加密和解密



中国剩余定理 CRT
RSA加密算法中为什么可以取 LCM (p-1,q-1) 代替 (p-1)(q-1) ?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值