m0leCon 2021 | Obscurity-fixed

#m0lecon2021

legendre記号

平方剰余 def legendre_symbol(a, p): ls = pow(a, (p - 1)//2, p) if ls == p - 1: return -1 return ls

good_challenges_2021

https://mystiz.hk/posts/crypto-in-ctf/q3-2021/#

getStrongPrimeはsafe primeを返すわけではない

ので、getStrongPrimeを使った問題を見かけたときは小さい部分群を使ったsolutionを考えてみよう

branch and prune

いわゆる分枝限定法で、の半分程度のbit(実験によると大体53%〜が精度良く機能する)が分かっているときに素因数分解できる方法 ↓のコードでは分かっていると行ったbitのうち下位何bitかがエラーのケースに対応している。あと aeroctf と branch_and_prune …

Zh3r0 CTF V2 | Twist and Shout

#zh3ro_CTF_2021 from secret import flag import os import random state_len = 624*4 right_pad = random.randint(0,state_len-len(flag)) left_pad = state_len-len(flag)-right_pad state_bytes = os.urandom(left_pad)+flag+os.urandom(right_pad) stat…

Wani CTF 2023 | pqqp

#wani_ctf_2023 import os from Crypto.Util.number import bytes_to_long, getPrime flag = os.environb.get(b"FLAG", b"FAKE{THIS_IS_FAKE_FLAG}") p = getPrime(1024) q = getPrime(1024) n = p * q e = 0x10001 d = pow(e, -1, (p - 1) * (q - 1)) m = b…