第五题
试题 E: RSA 解密
本题总分:15 分
问题描述
RSA是一种经典的加密算法。它的基本加密过程如下。
首先生成两个大质数p,q, 令n = p*q,设d与(p-1)*(q-1)互质,则可以找到e,使得d*e除以(p-1)*(q-1)的余数为1
n,d,e组成了私钥,n,d构成了公钥。
当使用公钥加密一个整数X时(X<=n-1),计算C = X^d mod n,则C是加密后的密文。
当收到密文C时,可以使用私钥解开,计算公式为:X = C^e mod n。
例如:当p = 5, q = 11, n = 55, e = 27。
若加密数字24,得24^3 % 55 = 19。
解密数字19,得19^27 % 55 = 24。
现在你知道公钥中n = 1001733993063167141,d = 212353,同时,你截获了别人发送的密文C = 20190324,请问,原文是多少?
题意
题意:
给一个n,分解质因数成p*q, 然后计算d关于(p-1)*(q-1)的逆元,结果为e,
求C^e % n的结果
n = 1001733993063167141
d = 212353
c = 20190324
C++代码块
#include <bits/stdc+