RSA验证 | ||||||
|
||||||
Description | ||||||
RSA算法是一种非对称加密算法,由公钥和密钥两部分组成。公钥:P=(e,n);密钥:S=(d,n)。 RSA的密钥和公钥生成过程是: 1.取两个随机大素数p和q,使p≠q。 2.计算n=pq。 3.选取一个与f(n)互质的小奇数e,其中f(n)=(p-1)(q-1)。 4.对模f(n),计算e的乘法逆元d的值。 5.将对P=(e,n)公开,作为公钥。 6.将对S=(d,n)保密,作为密钥。 所以对于消息M,计算:P(M)=M^e mod n,得到密文C。 对于密文C,计算:S(C)=M^d mod n,得到明文M。 当你了解了加密和解密的过程之后就可以判断一个加密过的信息,是不是你给出的公钥加密过的。 |
||||||
Input | ||||||
每组数据有六行。每行分别包含整数p,q,e,d,C,M。当p=q=e=d=C=M=0时,输入结束。 输入数据保证所有的数都在64位整数的范围内。
|
||||||
Output | ||||||
你需要输出该密文是否为给定的消息M经过P加密过的。如果是,请输出“Yes”并换行;如果不是,请输出该消息通过加密后的正确的密文。 |
||||||
Sample Input | ||||||
11 29 3 187 254 100 1277 1493 131 1351547 947015 400 0 0 0 0 0 0 |
||||||
Sample Output | ||||||
Yes 947005
|
详细解决方案
Hust oj 1953 RSA验证(快速幂)
热度:57 发布时间:2023-12-22 04:22:45.0
相关解决方案
- HUST 1214 Cubic-free numbers II(区间n=x^3*k的n的个数、枚举x容斥)
- 51Nod--1953--folyd()算法
- HUST-大整数排序
- HUST-奇偶校验
- HUST-找位置
- HUST-阶乘
- HUST-回文字符串
- HUST-排序
- HUST-统计单词
- HUST-矩阵转置
- Hust oj 1813 小乐乐要下山(dp + 路径还原)
- Hust oj 1861 猥琐宅男——koko(DP)
- Hust oj 1293 取数(Map)
- Hust oj 1160 吸血鬼(并查集)
- Hust oj 1429 凸多边形(叉乘+二分)
- Hust oj 1630 网线(MST)
- Hust oj 1987 逃课的孩子(Map)
- Hust oj 1926 函数式计算(二分)
- Hust oj 1921 三原色(改进版)(容斥原理)
- Hust oj 1953 RSA验证(快速幂)
- Hust oj 1949 寻找宝藏(BFS)
- Hust oj 1929 走三方,路迢迢水长长(递推)
- Hust oj 1944 皮卡丘(同蚂蚁感冒)
- Hust oj 1431 摞盘子(水题)
- Hust oj 1629 统计图(水题)
- Hust oj 1608 XianGe的旅途(水题)
- Hust oj 1606 用户体验之帖子排序(模拟)
- Hust oj 1637 水神与Linux(KMP)
- Hust oj 1632 最大的最小公倍数(简单数学)
- Hust oj 1426 集训队的晚饭(DP)