2019年第十届蓝桥杯省赛C++A组【第五题:RSA 解密】

第五题

试题 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+
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值