XSCTF crypto
XSCTF
[简单] 初识RSA
p和q藏起来了,你能帮我找到它们吗
from Crypto.Util.number import bytes_to_long, inverse, getPrime |
解題思路
接下來就算出d,照RSA的常規解法來。
解答
from Crypto.Util.number import long_to_bytes |
baigeiRSA
题目描述:
白给了,白给了,真白给!
import libnum |
解答
基礎RSA,有手就行,n丟factordb就拆出p, q了,其他方式應該也能拆,位數不大很好爆破。
from Crypto.Util.number import long_to_bytes |
baigeiRSA2
题目描述:
既然白给,就多给一点吧!
import libnum |
解答
題目眼花撩亂,直接先拆n,發現有五個質數,就建一個list來裝,水題。
from Crypto.Util.number import long_to_bytes |
babyFibo
题目描述:
简单题,快做!
import os |
解答
把費波那契數列算出來做xor就好了,不過一開始很笨的以為^是次方,睡迷糊ㄌ好好笑。
import sys |
Xor很心疼你
题目描述:
看了这么久题目了,Xor很心疼你,并打算考考你
# Python3 |
解題思路
這題關鍵點感覺在於tmp,把tmp找出來就可以和密文xor找出明文,tmp由key和r組成,key會變動,r是介於2-250之間的隨機數。
所以我小改一下,變成一個爆破程式,但很遺憾的效果感覺並不好。
import random |
結果我去洗完澡還沒有跑完,看起來是沒用,看來只能小範圍窮舉。
import random |
二元一次方程组
题目描述:
签到题
import libnum |
答案
水題,已知和的情況下。
p, q國中生看到這裡都會算,就不寫詳細過程了。
import gmpy2 |
简单的LFSR
这是一个生成随机数的算法,简单吧~
from secret import secret |
下意識爆破,然後寫完爆破之後去上廁所的同時按了一下計算機才發現,謝…謝了哦。
import numpy as np |
以上的程式只要電腦夠強,理論上應該跑得出來,但很明顯我的電腦不夠,只好另尋方法,應該可以變成線性方程組求解,透過256條方程式求128個變數,但懶得找套件,就先這樣。
[中等偏下] 线性反馈移位寄存器
题目描述:
听说这玩意儿不太安全emmm hint1: 异或运算与模2的加法是等价的。 hint2: 与运算和模2的乘法是等价的。
from secret import secret |
解答
稍微改寫了一下,但跟上一題一樣輸光。
Equation
低能破題,題目沒出好。
import random |
解答
第一階段是找出的數,所以把a0, b0對調除以gcd。
第二階段是透過連分數展開進行求解,此時可以得到
HSCTF{1e8d38ef-a949-4117-8ec |
然後第三階段他的條件是,隨便代入都會過,三小破題目,完全不該寫那麼久。
from gmpy2 import * |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Afan's blog!
評論