知识点:多素数,中国剩余定理,模三次剩余

题目给了一个flag.enc,还有一个public.pem

安装openssl可以读取到n和e,因为n不大,可以在yafu或者factordb.com上分解得到n = p * q * r

根据flag.enc,可以得到密文m

根据中国剩余定理,我们要求得m在p,q,r下的余数,不妨设为pmod,qmod,rmod

然后根据模三次剩余,即:proot ^ 3 ≡ pmod ( mod p),求得:proot,同理求得qroot,rroot

利用网页工具可以直接计算得到:

http://www.wolframalpha.com/input/?i=x%5E3+%3D+19342563376936634263836075415482+(mod+27038194053540661979045656526063)

题解在这儿:

https://github.com/sonickun/ctf-crypto-writeups/tree/master/2016/0ctf/rsa

代码来自题解链接:

# -*- coding:utf-8 -*-
# 0CTF 2016: RSA? (Crypto 2pt)'''
# openssl rsa -in public.pem -pubin -text -modulus
Public-Key: (314 bit)
Modulus:02:ca:a9:c0:9d:c1:06:1e:50:7e:5b:7f:39:dd:e3:45:5f:cf:e1:27:a2:c6:9b:62:1c:83:fd:9d:3d:3e:aa:3a:ac:42:14:7c:d7:18:8c:53
Exponent: 3 (0x3)
Modulus=2CAA9C09DC1061E507E5B7F39DDE3455FCFE127A2C69B621C83FD9D3D3EAA3AAC42147CD7188C53
writing RSA key
-----BEGIN PUBLIC KEY-----
MEEwDQYJKoZIhvcNAQEBBQADMAAwLQIoAsqpwJ3BBh5Qflt/Od3jRV/P4Seixpti
HIP9nT0+qjqsQhR81xiMUwIBAw==
-----END PUBLIC KEY-----
'''# Chinese Remainder Theorem
def chinese_remainder(n, a):sum = 0prod = reduce(lambda a, b: a*b, n)for n_i, a_i in zip(n, a):p = prod / n_isum += a_i * mul_inv(p, n_i) * preturn sum % proddef mul_inv(a, b):b0 = bx0, x1 = 0, 1if b == 1: return 1while a > 1:q = a / ba, b = b, a%bx0, x1 = x1 - q * x0, x0if x1 < 0: x1 += b0return x1e = 3
n = 0x2CAA9C09DC1061E507E5B7F39DDE3455FCFE127A2C69B621C83FD9D3D3EAA3AAC42147CD7188C53# Factorize n using factordb.com
p = 26440615366395242196516853423447
q = 27038194053540661979045656526063
r = 32581479300404876772405716877547assert p * q * r == nct = int(open("flag.enc", "rb").read().encode("hex"), 16)
# ct = 2485360255306619684345131431867350432205477625621366642887752720125176463993839766742234027524# pt^3 mod p = ct mod p = 20827907988103030784078915883129
# pt^3 mod q = ct mod q = 19342563376936634263836075415482
# pt^3 mod r = ct mod r = 10525283947807760227880406671000# Calculate possible cube-root
# using wolflam alpha (or using modified Tonelli-Shanks algorithm)
# like this: "x^3 = 20827907988103030784078915883129 (mod 26440615366395242196516853423447)"
p_root = [5686385026105901867473638678946, 7379361747422713811654086477766, 13374868592866626517389128266735]
q_root = [19616973567618515464515107624812]
r_root = [6149264605288583791069539134541, 13028011585706956936052628027629, 13404203109409336045283549715377]# For every compination of roots, mix them using Chinese Remainder Theorem
for x in p_root:for y in q_root:for z in r_root:m = chinese_remainder([p, q, r], [x, y, z])pt = hex(m)[2:-1]if len(pt) % 2 != 0:pt = "0"+ptpt = pt.decode("hex")if pt.find("0ctf{") >= 0:# Get the flagprint pt.strip()break# Result
# > python solver.py
# �^˄�RC�J0ctf{HahA!Thi5_1s_n0T_rSa~}

2016 0CTF rsa相关推荐

  1. 网络安全行业的未来在哪里?

    在第25届RSA大会上,我们看到,2016年将成为安全+机器学习+人工智能的爆发之年. 随着全球网络花费在2020年预计达到1700亿美元,无论是初创企业,还是老牌企业,都已经虎视眈眈地盯着这一块大蛋 ...

  2. 法律应是站在加密和隐私这面的……

    在2016年RSA大会,微软公司的首席律师毫不讳言地称其公司正致力于保护强有力的加密和保护客户隐私. 在其主题演讲中,微软总裁兼首席法律官Brad Smith重申其公司在苹果与FBI的战斗中支持苹果公 ...

  3. CISO的真正挑战:密码管理、IoT安全合规性

    随着越来越多的公司安排了CISO,在企业责任方面CISO似乎越来越接近其他的高管.不过有些CISO尚不知道如何与其他高管合作,另外一些CISO则仍然在试图弥合技术和业务之间的沟通鸿沟. 无论在哪种情况 ...

  4. 计算能力足够强大,所有加密算法原理上都会被破解吗

    转载自:http://blog.sina.com.cn/s/blog_185c43eee0102ypk1.html 苏盛辉  2018-06-29 1  引言 2018年5月28日,潘建伟教授在两院院 ...

  5. 信息安全-零信任-SDP技术到底有多能打?

    SDP是一套开放的技术架构,它的理念与零信任理念非常相似.国内国际很多安全大厂都在推出基于SDP技术的零信任产品.可以说SDP是目前最好的实现零信任理念的技术架构之一. 1.为什么说SDP技术好呢? ...

  6. [0CTF 2016]piapiapia WP(详细)

    [0CTF 2016]piapiapia WP(详细) 1.打开网站,是个登录框,尝试注入无果.....按道理来说就是注入了啊喂 2.玄学时间到::: 目录扫完啥结果没有.在buuctf做题总是这样, ...

  7. BUCTF[0CTF 2016]piapiapia

    [0CTF 2016]piapiapia 打开环境是个登录框,尝试了一下sql注入,发现并无任何用处. 于是扫描目录,发现了个/www.zip. 开始代码审计: 在config.php中看到了flag ...

  8. BUU [0CTF 2016]piapiapia

    BUU [0CTF 2016]piapiapia 进去之后是个登录界面,抓包有一个cookie.感觉是十六进制,但是其实不是这样做,是应该扫描的. buu什么都扫不出来,直接看源码. /registe ...

  9. [0CTF 2016]piapiapia php反序列化字符串逃逸

    一.php反序列化字符串逃逸 <?phpclass user{public $user = 'admin';public $pass = 'passwd'; }$a = new user(); ...

  10. BUUCTF-WEB 【0CTF 2016】piapiapia 1

    考点:php反序列化字符长度逃逸 打开题目 一般看到登录框,就以为是sql注入题,这道题不是. dirsearch扫网站目录 python3 dirsearch.py -u "http:// ...

最新文章

  1. SLAM Scan-Matching/Registration
  2. 安装ESXi5.5遇到Relocating modules and starting up the kernel的处理
  3. SpringBoot在IDEA中实现热部署
  4. 基于 matplotlib 的抽象网格和能量曲线绘制程序
  5. 汇编指令:LDM、STM详解
  6. 数据中心行业在能源转型中将发挥重要作用
  7. 用户访问网站的基本流程
  8. Chrome浏览器查看cookie
  9. 关于DOM2级事件的事件捕获和事件冒泡
  10. 计量经济学第六版计算机答案,伍德里奇计量经济学导论计算机习题第六章第13题c_6.13...
  11. 为什么机油使用后变红_水泥固化剂的使用原理是什么,涂洒后时间为什么要足够长?...
  12. Kylin开启Kerberos安全认证
  13. 信息隐藏技术与应用期末复习
  14. python 指定时间内_python获取指定时间段内的随机不重复的时间点
  15. tp5验证码详细代码
  16. 微信开发者工具使用bug
  17. 即时通讯工具腾讯 QQ v9.1.9.26361 绿色便携版
  18. 全网最新-扶风视频解析计费系统,2022优化免授权版(赠接口轮询插件)
  19. the jar file has no source attachment解决方法
  20. 成都计算机专科学院分数线,成都计算机工业职业技术学校2019年招生录取分数...

热门文章

  1. 什么是遥远的相似性?
  2. java 加密 —— 对称加密、非对称加密、消息摘要
  3. 清理outlook缓存
  4. html5视屏教程地址
  5. 基于JSP学生学籍管理系统
  6. ImageView实现圆形头像效果
  7. linux的XDG(X Desktop Group)基本目录规范
  8. 微星笔记本电脑安装Linux(Ubuntu)系统–失败
  9. win7登录密码破解
  10. Microsoft Teams 报错:We‘re sorry-we‘ve run into an issue.