题目:给了一个文件

用txt文本打开

从字面上就可以知道这是一个危险的加密,由于e=3,攻击者可以很容易的解开

当e=3时:

情况一,当m的e次方小于n时,m^emodn=c,这个时候m^e=c,直接对c开三次方得到m

情况二,当m的e次方大于n时,m^e=k*n+c,由于e比较小,可以直接爆破将k求出来,在开e次方解出m(求出当k满足k*n+c能够被开e次方根时)

方法一:

直接开方:

import gmpy2
import libnum
n=0x52d483c27cd806550fbe0e37a61af2e7cf5e0efb723dfc81174c918a27627779b21fa3c851e9e94188eaee3d5cd6f752406a43fbecb53e80836ff1e185d3ccd7782ea846c2e91a7b0808986666e0bdadbfb7bdd65670a589a4d2478e9adcafe97c6ee23614bcb2ecc23580f4d2e3cc1ecfec25c50da4bc754dde6c8bfd8d1fc16956c74d8e9196046a01dc9f3024e11461c294f29d7421140732fedacac97b8fe50999117d27943c953f18c4ff4f8c258d839764078d4b6ef6e8591e0ff5563b31a39e6374d0d41c8c46921c25e5904a817ef8e39e5c9b71225a83269693e0b7e3218fc5e5a1e8412ba16e588b3d6ac536dce39fcdfce81eec79979ea6872793
e=0x3
c=0x10652cdfaa6b63f6d7bd1109da08181e500e5643f5b240a9024bfa84d5f2cac9310562978347bb232d63e7289283871efab83d84ff5a7b64a94a79d34cfbd4ef121723ba1f663e514f83f6f01492b4e13e1bb4296d96ea5a353d3bf2edd2f449c03c4a3e995237985a596908adc741f32365
n=int(n)
c=int(c)
m=gmpy2.iroot(int(c),3)
m2=13040004482819713819817340524563023159919305047824600478799740488797710355579494486728991357
print(libnum.n2s(m2))

(由于gmpy2.iroot()的返回值是这个

(mpz(1013490999291107792177153466361805236241416288817078687311931724463214489794108438975329011563341967086989437L), True)

所以我走了两边程序)

得到flag

方法二:

爆破求k

import gmpy2
import libnum
c=388982143888913566432952899826435392441858422012474418115554896677409312904369689532731213565894852383492256145502964385553788742668687031164573906300895459775220943136552401216451862200841942583444538908982200072193240856135729470918596634612711419824662550437824107515342351230372078513370978292361156537349448203629
n=604679512138617037843063400335852277917759302720680757801819343322169177317789639211717686519352704962708383679383874632838218844139645603288642990840752333972443512630475955756086004231475765696973696131487596242445439165181095216174429784632070450967063006140391578931127355859533792899253464689363815381795168313503
k=0
def dec(c,N):k=0while 1:(x,y)=gmpy2.iroot(c+k*N,3)if y:print(gmpy2.iroot(c+k*N,3))breakk=k+1print(k)
dec(c,n)
m=1013490999291107792177153466361805236241416288817078687311931724463214489794108438975329011563341967086989437
print(libnum.n2s(m))

(同上)

得到flag

BUUCTF_Crypto_Dangerous RSA相关推荐

  1. golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用

    RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...

  2. RSA签名算法,计算调用加密报文,安全传输

    RSA签名算法 1. 获取当前的时间戳参数 2. 计算参数签名 3. 获取请求对象的MD5密文 4. 通过私钥计算某个参数的RSA签名 5. 转换字符集到utf8 6. MD5加密字符串 7. bas ...

  3. RSA、MD5等加密算法的区别和应用

    RSA算法: 是典型的非对称加密算法,主要具有数字签名和验签的功能. MD5算法: 是消息摘要算法,只能用来生成消息摘要无法进行数字签名. IDEA算法和RC4算法: 对称加密算法,只能用来进行数据加 ...

  4. java签名算法阻止 设置_java数字签名算法之RSA

    © 版权声明:本文为博主原创文章,转载请注明出处 实例 1.项目结构 2.pom.xml xsi:schemaLocation="http://maven.apache.org/POM/4. ...

  5. php+rsa生成签名sign,PHP 做 RSA 签名 生成订单(支付宝例子)

    /组合签名 $a=time(); $b=substr($a, 1); //生成随机订单号 $orderid= $b.mt_rand(10000,99999); //合作身份者id,以2088开头的16 ...

  6. rsa证书ssh登陆服务器

    好久不用,又生疏了. 今晚实操了一下,作一个记录. 使用rsa的密钥对登陆linux服务器,主要是为了安全. 这种证书级别的登陆,比最复杂的root用户名和帐号的安全性都要高一个等级. 至少服务器不会 ...

  7. 非对称加密算法RSA公钥私钥的模数和指数提取方法

    生成非对称加密算法RSA公钥.私钥的方法: 1. 通过OpenSSL库生成,可参考  https://github.com/fengbingchun/OpenSSL_Test/blob/master/ ...

  8. 非对称加密算法之RSA介绍及OpenSSL中RSA常用函数使用举例

    RSA算法,在1977年由Ron Rivest.Adi Shamirh和LenAdleman,在美国的麻省理工学院开发完成.这个算法的名字,来源于三位开发者的名字.RSA已经成为公钥数据加密标准. R ...

  9. 支付宝 php rsa算法,:PHP支付宝接口RSA验证

    这两天一直困扰的PHP RSA签名验证问题终于解决了,由于之前RSA接触的不多,再加上官方至今还未有PHP的SDK可供参考,因此走了一些弯路,写在这里和大家分享. 虽然支付宝官方还未提供相关SDK,P ...

最新文章

  1. Android图像变化
  2. VMware虚拟机:桥接、NAT、Host-only(仅主机)上网方式的区别
  3. 微服务精华问答 | 为什么需要微服务?
  4. php post 微信沙箱,微信支付平台错误:获取沙箱密钥失败,确保交易密钥是
  5. 【数据库系统】再谈关系模型和关系型数据库
  6. Codeforces 120F Spiders
  7. Java 用栈实现队列
  8. MySQL 5.7安装
  9. 个人名义申请的支付接口。支付聚合网站汇总
  10. BCS冬奥主题活动日:奥运网络安全成全球关注焦点
  11. 一个小型的中文文本分类系统(项目链接文末)——《ML算法原理和实践》学习笔记
  12. python源码中的pass
  13. php与plc,plc编程语言有哪几种
  14. uni-app横屏设置
  15. Eclipse Mars2在线安装svn详细步骤
  16. 现代软件工程讲义 7 设计阶段 Spec
  17. Java面试题消息队列
  18. #1265 - Data truncated for column
  19. c语言订餐系统项目范例,C语言订餐系统.doc
  20. jenkins windows 20008 R2 msi 工作目录迁移

热门文章

  1. 广西大学计算机仿真实验,计算机仿真(matlb)实验一(广西大学电气).doc
  2. Android studio报错:Could not identify launch activity: Default Activity not found
  3. GPT2.0 Language Models are Unsupervised Multitask Learners 论文解读
  4. ac3168无线网卡驱动下载_星际蜗牛C款i211网卡服务器装Windows sevse2012R2服务器装机篇下...
  5. Ubuntu LiveSuit V3.06不能烧写问题
  6. mysql分库分表 ppt_数据库分库分表中间件架构解析.ppt
  7. 蚁剑ASP连SQLSERVER执行xp_cmdshell爆 驱动程序不支持所需的属性 解决办法
  8. 三菱FX-3UPLC加威伦通TK8071IP触摸屏,控制3个步进电机
  9. 三菱FX-3UPLC加威伦通TK8071IP触摸屏,控制3个步进电机,到达给电池盒裹膜的目的
  10. 【转】开启新时代 “硬改”Windows 7实战