在非对称加密算法RSA中,假设“大”素数p=5,q=11,试给出计算过程。

文章目录

      • 1. 题目在非对称加密算法RSA中,假设“大”素数p=5,q=11,试给出计算过程。
      • 2. 分析步骤
      • 3. 抄作业简单粗暴看这里
      • 4. 参考

1. 题目在非对称加密算法RSA中,假设“大”素数p=5,q=11,试给出计算过程。

知识点:

  • RAS计算方法
  • 辗转相除法计算私钥d
  • 快速指数计算方法

2. 分析步骤

  1. 先计算n=p*q,φ(n)=(p-1)(q-1)

    n=5*11=55,φ(n)=4*10=40

  2. 选取一整数e,满足1互质。
    不妨选取e=17,其满足1互质的条件

  3. 计算d,d满足e*d ==1 mod φ(n)
    这里的e*d ==1 mod φ(n)
    等价如下:
    e*d -n*k =1
    带入得 17d-40k=1
    后面利用辗转相除法计算d,简单理解是大数当被除数求余就行了
    ①将40对17取模得到的余数6代替40,则变为17d-6k=1;
    ②将17对6取模得到的余数5代替17,则变为5d-6k=1;
    ③将6对5取模得到的余数1代替6,则变为5d-1k=1;
    注意点如果k的系数先为1,则令d=1再回代。若d的系数先为1,则令k=0再回代
    当前k系数先为1令d=1,回代到③式中。
    令d=1,回代到③式,5-1k=1,显然 k=4
    令k=4,回代到②式,5d-24=1,显然 d=5
    令d=5,回代到①式,17*5-6k=1,显然 k=14
    令k=14,代入到17d-40k=1,得d=33,这个值即我们要求的私钥d的最终值。

  4. 可得公钥{e,n}={17,55},私钥{d,n}={33,55}

  5. 其实到上一步就算完了,我们可以验证试试

    • 加密时密文 c=memod n,m是明文。我们可以设个简单的明文 m=2,显然 217mod 55 =7
    • 解密时 明文 m=cemod n。这里是 m=733mod 55 =2。我们可以采用快速指数运算来计算,实际上就是幂为奇数提一个出来,之后的偶数幂拆开计算。

快速指数法是运用公式: (a×b)mod n = [(a mod n)×(b mod n)]mod n

例子:

15^27(mod 33)

15^27(mod 33) = 15 * 15^26(mod 33) = 15 * (152)13 (mod 33) = 15 * 27 ^13 (mod 33) = (15 * 27) * 27 ^12 (mod 33) = 9 * 27^12 (mod 33) = 9 * (272)6 (mod 33) = 9 * 3 ^6 ( mod 33) = 9* (32)3 (mod 33) = 9 * 9^3 (mod 33) = (9*9)*9^2(mod 33)=15 * 15 (mod 33) = 27 (mod 33) = 27


3. 抄作业简单粗暴看这里

n=pq=55, φ(n)=(p-1)(q-1)=40
令e=17,e满足与40互质的条件
∵e*d ==1 mod φ(n)
∴17d-40k=1,由辗转相除法可算出
d=33,满足 e*d=561=55*14+1
可得公钥{e,n}={17,55},私钥{d,n}={33,55}

4. 参考

RSA 计算私钥d的计算方法 (辗转相除法)

你可能感兴趣的:(总结,密码学,作业)