1.you raise me up
题目源码如下
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Crypto.Util.number import *
import random
n = 2 ** 512
m = random.randint(2, n-1) | 1
c = pow(m, bytes_to_long(flag), n)
print 'm = ' + str(m)
print 'c = ' + str(c)
# m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075
# c = 6665851394203214245856789450723658632520816791621796775909766895233000234023642878786025644953797995373211308485605397024123180085924117610802485972584499
这是一个求解离散对数的问题——经过查询在sage下有discrete_log函数可以直接解决问题
e=discrete_log(Mod(c,n),Mod(m,n))
2.boom
题目给出一个exe,我们运行exe解出每一道题即可有结果
第一关

去md5查询得到en5oy
第二关

使用sympy解方程
from sympy import *
x = Symbol('x')
y = Symbol('y')
z = Symbol('z')
print solve([3*x-y+z-185,2*x+3*y-z-321,x+y+z-173],[x, y,z])
第三关

同上解方程
from sympy import *
x = Symbol('x')
print solve([x*x+x-7943722218936282],[x])
3.easy_ya
首先爆破获得之后的数据
from pwn import *
import gmpy2
def md5(a):
for i in xrange(128):
for j in xrange(128):
for k in xrange(128):
for o in xrange(128):
jie=chr(i)+chr(j)+c

本文详细解析了CTF竞赛中遇到的三种典型密码学难题:离散对数问题、线性方程组求解及RSA加密破解。通过Python和Sage等工具,演示了如何利用数学原理和编程技巧成功解密密文,获取关键信息。
最低0.47元/天 解锁文章
3544

被折叠的 条评论
为什么被折叠?



