题目如下:在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17
求解出d

1. RSA算法介绍

RSA算法是一种非对称加密算法,由三位计算机科学家Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出并命名。

它采用一对公钥和私钥进行加解密,其中公钥用于加密消息,而私钥则用于解密消息。RSA算法基于数论中的整数分解难题,即将一个大素数因子分解为质因数很困难,这使得通过暴力攻击来破解RSA加密信息的难度极高。

具体来说,RSA算法加密过程如下:

  1. 随机选择两个大质数p和q,计算它们的积n=p×q;
  2. 计算欧拉函数φ(n)=(p−1)×(q−1);
  3. 随机选择一个满足1<e<φ(n)且gcd(e,φ(n))=1的整数作为公钥指数;
  4. 计算模反元素d,使得ed≡1modφ(n),即公钥与私钥互为逆元;
  5. 将p、q和d作为私钥,将n和e作为公钥;
  6. 加密者获取接收者的公钥(n,e)后,在明文进行加密得到密文c=M^e mod n;
  7. 发送密文c给接收者;
  8. 接收者利用私钥(p,q,d),计算解密出明文M=c^d mod n。

RSA算法应用广泛,特别在电子商务和网络安全领域,常被用于数字签名、数据加密、身份认证等方面。

2. 解题过程

根据题目描述,我们现在知道了p,q,e需要求解出d,根据RSA算法的定义,ed≡1modφ(n)

而φ(n) = (p-1)(q-1)

存在b,使得ed + bφ(n) = 1

现在需要我们解出d,这里使用拓展欧几里得算法,参考https://blog.csdn.net/lovecyr/article/details/105372427

代码如下:

#include<stdio.h>int exGcd(long long a, long long b, long long *x, long long *y)
{if(b == 0){*x = 1;*y = 0;return a;}int g = exGcd(b, a%b, x, y);long long temp = *x;*x = *y;*y = temp - (a/b)*(*y);return g;
}int main(){long long e = 17;long long p = 473398607161;long long q = 4511491;long long n = (p-1)*(q-1);long long x = 0, y = 0;int a = exGcd(n, e, &x, &y);printf("%lld, %lld", x, y);
}

运行代码,结果如下:

总结:这道题更像一道数学题,考察点在于基础数学理论知识,属于非常基础的部分了

攻防世界-easy_RSA相关推荐

  1. 攻防世界 crypto 入门题之easy_RSA

    攻防世界 crypto 入门题之easy_RSA 继续开启全栈梦想之逆向之旅~ 这题是攻防世界crypto 入门题之easy_RSA RSA的密码学听说了好久,主要是战队的队友之前有研究,而我却是一点 ...

  2. 攻防世界 ——crypto

    目录 新手区部分题解: 1,easy_RSA 2,Normal_RSA 3, 幂数加密 4,easy_ECC 高手进阶区部分题题解 5, ENC 6,告诉你个秘密 7,Easy-one 8,说我作弊需 ...

  3. 攻防世界 CRYPTO 新手练习区 答题(1-12题解)

    序 传送门:https://adworld.xctf.org.cn/task/ 1.base64 题目描述:元宵节灯谜是一种古老的传统民间观灯猜谜的习俗. 因为谜语能启迪智慧又饶有兴趣,灯谜增添节日气 ...

  4. crypto-j(攻防世界)

    攻防世界-crypto 一.base64 题目:Y3liZXJwZWFjZXtXZWxjb21lX3RvX25ld19Xb3JsZCF9 1.知识补充 一.什么是Base64? 百度百科中对Base6 ...

  5. 攻防世界- CRYPTO -练习区12题解

    攻防世界- CRYPTO-新手区 一.base64 题目描述: 元宵节灯谜是一种古老的传统民间观灯猜谜的习俗. 因为谜语能启迪智慧又饶有兴趣,灯谜增添节日气氛,是一项很有趣的活动. 你也很喜欢这个游戏 ...

  6. 刷攻防世界crypto

    小白刷攻防世界crypto新手区 001 base64 002 Caesar 003 Morse 004 幂数加密 005 Railfence 006 不仅仅是Morse 007 混合编码 008 e ...

  7. 攻防世界 crypto入门WP

    攻防世界 crypto入门WP 前言 下学期要求密码和Re,现在这俩几乎是空白,趁着暑假的功夫,最近也能闲下来,就学一学crypto,其实真正接触发现挺有意思的,各种密码的加密千奇百怪,层出不穷,也是 ...

  8. 【攻防世界001】Guess-the-Number

    攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...

  9. 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制

    ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...

最新文章

  1. .net 连接ORACLE 数据库的例子
  2. 零基础学习SVN之(二):CVS与SVN的区别
  3. 7-1 最大子列和问题
  4. Node.js 使用jQuery取得Nodejs http服务端返回的JSON对象示例
  5. java 完全匹配,Java 正则表达式匹配模式(贪婪型、勉强型、占有型)
  6. LeetCode--88.合并两个有序数组(插入法,排序法)
  7. break continue区别和用法_[分享]Python专题之流程控制(进阶用法2)
  8. Python游戏编程(一)“猜数字”游戏
  9. 解决pom文件无法导入ojdbc驱动的问题
  10. SQL Server 【不允许保存更改】问题解决图解
  11. 高中信息技术python讲义
  12. java自制语音识别,JAVA作的语音识别
  13. VC2008+OpenCV2.3.1 的安装配置
  14. cocos2d--仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
  15. PUE 1.2,总投资达36.4亿,17600个机柜!天和防务拟建陕西最大数据中心
  16. 备份路由器配置文件到服务器,教你如何备份路由器配置文件
  17. 2022年安全员-B证理论题库及模拟考试
  18. 利用matlab的newff构建BP神经网络来实现数据的逼近和拟合
  19. 电子商务物流与供应链管理
  20. 2014计算机基础知识试题及答案,2014计算机基础知识试题及答案解析.doc

热门文章

  1. 百度加速攻城略地,Apollo会成智能交通平台吗?
  2. RMAN 命令拼凑版
  3. python UDP广播
  4. 统计调查方案设计、统计数据的整理与显示
  5. 曼哈顿算法公式_计算机领域各种距离计算公式
  6. 鼎捷T100——XG报表样板引起的BUG
  7. 业内人士真心话,软件测试是没有前途的,我慌了......
  8. 相关-5/14. 向量对向量求导/矩阵对矩阵求导
  9. 简述php无限极分类,PHP 无限极分类
  10. C#程序优化的50种方案