最近筹备一场CTF比赛发现了一道关于RSA解密的题如下:

#小明得到了一个 RSA 加密信息,你能帮他解开吗?

n = 41069065654959614597750207738698085798765257876378561837894254544512565197793

c = 27990707239527629138352696377606718299992092729307910015562504696905353450041

e = 11

这道题主要考察了参赛选手对RSA加密原理的理解

RSA解密的公式是m=c^d mod n

如果要解密,现在依靠题目提供的信息还缺少一个d

得到参数D的方法:

按正常的方法要使用e与φ(n)互质的特性计算d

先计算φ(n)=(q-1)*(p-1)= t
#41069065654959614597750207738698085798358793355227373058859423166149935907348
 
因为e与φ(n)互质,根据求模反元素的公式计算e,对于e的模反元素d有:
ed≡1(modφ(n))
#14934205692712587126454620995890213017585015765537226566857972060418158511763
 
在这里直接使用CTF比赛机器提供的python模块gmpy2下的invert方法
gmpy2.invert(e,t)
#14934205692712587126454620995890213017585015765537226566857972060418158511763
直接传入e和φ(n)直接可以算出d的值
 
现在我们已经得到了d的值,直接套进公式c^d mod n得出m = 29517411348814866499427616583800503208093502027866036802414445379669260002593
现在也可以使用python的pow函数代替这个公式
m = pow(c,d,n)
#29517411348814866499427616583800503208093502027866036802414445379669260002593
这串数字并不是我们要的结果,转换成16进制再decode直接可以得出明文FLAG
print hex(pow(c,d,n))[2:].decode('hex')
ABCEF!th1s_was_very_hot_outside!

Python下关于RSA解密模块的使用的更多相关文章

  1. python下的web服务器模块

    python下的web服务模块有三种: BaseHTTPServer: 提供基本的Web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler SimpleHTTPS ...

  2. python下RSA加密解密以及跨平台问题

    Reference:  http://www.cnblogs.com/luchanghong/archive/2012/07/18/2596886.html 项目合作需要,和其他网站通信,消息内容采用 ...

  3. Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)

    本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...

  4. javascript的rsa加密和python的rsa解密

    先说下目前测试情况:javascript加密后的数据,python无法完成解密,我估计是两者的加密解密方法不同 1.看了这篇文章:http://blog.nsfocus.net/python-js-e ...

  5. 【python网络编程】使用rsa加密算法模块模拟登录新浪微博

    一.基础知识 http://blog.csdn.net/pi9nc/article/details/9734437 二.模拟登录 因为上学期参加了一个大数据比赛,需要抓取数据,所以就想着写个爬虫抓取新 ...

  6. 第六章:Python基础の反射与常用模块解密

    本课主题 反射 Mapping 介绍和操作实战 模块介绍和操作实战 random 模块 time 和 datetime 模块 logging 模块 sys 模块 os 模块 hashlib 模块 re ...

  7. 【Python】【Web.py】详细解读Python的web.py框架下的application.py模块

    详细解读Python的web.py框架下的application.py模块   这篇文章主要介绍了Python的web.py框架下的application.py模块,作者深入分析了web.py的源码, ...

  8. 利用python 下paramiko模块无密码登录

    利用python 下paramiko模块无密码登录   上次我个大家介绍了利用paramiko这个模块,可以模拟ssh登陆远程服务器,并且可以返回执行的命令结果,这次给大家介绍下如何利用已经建立的密钥 ...

  9. python下的select模块使用 以及epoll与select、poll的区别

    python下的select模块使用 以及epoll与select.poll的区别 先说epoll与select.poll的区别(总结) 整理http://www.zhihu.com/question ...

随机推荐

  1. awk 实战

    awk 一些好玩的用法.有什么不错的点子可以留言,发挥出awk牛逼功能 分离mac地址 ifconfig wlan0 | grep eth | awk '{n=split($2,arr,": ...

  2. linux上查询网卡型号

  3. HBase JavaAPI

    一.概念 1.对HBase JavaAPI的概述: 01.hbase使用java语言编写,自然支持java编程 02.支持CRUD操作 03.JavaAPI包含了所有的hbase的shell,甚至比这 ...

  4. 2.Hadoop平台架构准备工作

    1. 需要的软件:centos.hadoop.jdk.winscp. 2.搭建开发环境 Vmware安装 3.安装Linux操作系统 (1).安装虚拟机1,设置相关的参数: 4.点击设置,常规-> ...

  5. js把页面的table标签导出为csv

    // 使用该保存方法,table必须外嵌一个div且不能有任何其他元素 否则ie下载会出现其他数据 //tableid , title 为文件保存的文件名 function saveCode(tabl ...

  6. Asp.net Web Api开发(第四篇)Help Page配置和扩展

    https://blog.csdn.net/sqqyq/article/details/52708613

  7. linux云计算面试知识汇总,文件共享--vsftpd秘籍

    随着天气的升温快要步入夏天,紧随着面试季来喽,想知道Linux运维面试时都会被问到哪些问题吗?特整理出这些资料给大家参考学习,据说知道全部答案的人,月薪能过万,还不快快码下,以备后用! 今天小编将继续 ...

  8. vue页面传参

    1.传的参数是数组 传递参数的页面 let setStr = encodeURIComponent(JSON.stringify(this.tableData)); this.$router.push ...

  9. 计算机网络网络层的IP地址划分及子码

    现在在网络层,即就是TCP/IP协议里的网际互联层,最流行IP协议的就是IPV4.其中IP地址的格式是由32位二进制数字表示的,通常为了人们阅读习惯,将其转换成点分十进制来表示,如:192.168.1 ...

  10. 在vue中使用echarts图表

    在vue中使用echarts图表   转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9815290.html 安装vue依赖 使用npm npm instal ...