2023-12-04から1日間の記事一覧

redpwnCTF 2021 | baby

#redpwnctf2021 #uninterested_challenge_list crypto/baby EvilMuffinHa 827 solves / 102 points I want to do an RSA! は? n: 228430203128652625114739053365339856393 e: 65537 c: 126721104148692049427127809839057445790 RSA

p進付値

p-adic number関連の用語 数のにおけるp進付値 というのはを素因数分解したときのにおけるの値 要するにに含まれるの個数 性質 Lifting The Exponent Lemma LTE Lemma が成立する

corCTF 2021 | mystery stream

#corctf2021 from random import randrange from secrets import flag, key from Crypto.Util.number import long_to_bytes def bsum(state, taps, l): ret = 0 for i in taps: ret ^= (state >> (l - i)) return ret & 1 class Gen: def __init__(self, key…

WaniCTF 2021 Spring | Can't restore the flag

#wanictf2021spring from Crypto.Util.number import bytes_to_long with open("flag.txt", "rb") as f: flag = f.read() flag = bytes_to_long(flag) assert flag <= 10 ** 103 upper_bound = 300 while True: try: mod = int(input("Mod > ")) if mod > up…

TSG LIVE CTF 8 | RSA Debug

rsa

def my_pow(a, n, m): result = 1 while n > 0: if n % 2 != 0: result = (result + a) % m # omg! a = (a + a) % m # oops! n = n // 2 return result from Crypto.Util.number import getPrime, bytes_to_long p = getPrime(512) q = getPrime(512) N = p …

TSG LIVE CTF 10 | random duo

#tsg_live_ctf_10 #!/usr/bin/python3 from Crypto.Util.number import getPrime, bytes_to_long import flag import secrets assert(len(flag.flag) == 33) p = getPrime(512) q = getPrime(512) N = p * q phi = (p - 1) * (q - 1) e = 3 assert(phi%e!=0)…

Ricerca CTF 2023 | Revolving Letters

#ricerca_ctf_2023 https://furutsuki.hatenablog.com/entry/2023/04/23/143704#Revolving-Letters

RaRCTF 2021 | unrandompad

#rarctf2021 from random import getrandbits from Crypto.Util.number import getPrime, long_to_bytes, bytes_to_long def keygen(): # normal rsa key generation primes = [] e = 3 for _ in range(2): while True: p = getPrime(1024) if (p - 1) % 3: …

RaRCTF 2021 | snore

#rarctf2021 from Crypto.Util.number import long_to_bytes, bytes_to_long, isPrime from Crypto.Util.Padding import pad from Crypto.Cipher import AES from hashlib import sha224 from random import randrange import os p = 1489829114012647345006…

Pwn2Win 2020 | lost qKeys

quantum computing https://furutsuki.hatenablog.com/entry/2020/06/01/023111#crypto-Lost-qKeys

NeverLAN CTF 2019|Super Old School

#NevarLANCTF2019 #uninterested_challenge_list https://ctftime.org/task/7614 This image is trying to tell you something 見た感じ楔形文字か何かだが、楔形文字ではなかった。規則的な並びがあることから何かしらの数字ではないだろうか。 と思ってい…

NeverLAN CTF 2019|Oink Oink

#NevarLANCTF2019 https://ctftime.org/task/7613 問題文はこれだけ。数字と記号は変になってないので残りは英数字。こういうフォントがあるのかと思って探したけど見つからない。google画像検索でもにたものは見当たらなかった 「四角 暗号」でぐぐったらそ…

N1CTF 2021 | checkin

#n1ctf2021 from Crypto.Util.number import * from secret import flag p = getPrime(512) q = getPrime(512) n = p*q x = 2021*p+1120*q h = (inverse(x,n)+x)%n e = 65537 c = pow(bytes_to_long(flag), e, n) print('n =', n) print('c =', c) print('h …

IJCTF 2020 | Space

from hashlib import md5 from base64 import b64decode from base64 import b64encode from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from random import randrange import string alphabet = string.ascii_lowercase + strin…

IJCTF | LSB

#!/usr/bin/env python3 import socketserver, sys from Crypto.Util.number import getPrime import gmpy2 import random, math from secret import flag def recvline(req): buf = b"" while not buf.endswith(b"\n"): buf += req.recv(1) return buf clas…

Hastad Broadcast Attack

RSAで同一のを暗号化したがあるとき(すなわち個の暗号文と剰余の法が得られるとき)、CRTで上の暗号文を構成するととなるため乗根を求めると解ける、という問題 generalized hastads broadcast attack とすると、はそれぞれでを根に持つ ここでで、でとなる…

HackTM CTF 2020 Finals | rSAGA 2

#HackTM_CTF_2020_Finals from Crypto.Util.number import getStrongPrime, inverse, bytes_to_long from flag import flag p = getStrongPrime(1024) q = getStrongPrime(1024) e = 65537 N = p * q phiN = (p - 1) * (q - 1) d = inverse(e, phiN) dp = d …

HSCTF 8 | agelaius-phoeniceus

#hsctf8 from sage.all import * import random flag = open('flag.txt','rb').read() class prng: co = [random_prime(2**64-1,False,2**63) for i in range(100)] n = int(next_prime(2**64)) def __init__(self): self.s = [random.randint(1,self.n) for…

HITCON 2020 | 100pins

https://www.josephsurin.me/posts/2020-11-30-hitcon-ctf-2020-100-pins-writeup hit and blowみたいなゲームで、128 attemptsで100回pinを当てる必要がある。当然guessであてるのは無理なので、pinの生成方法がMath.floor(Math.random() * 5040) であるこ…

Fermat's little theorem

フェルマーの小定理

DLP

位数 の巡回群において、として となるを求める問題 典型的にはや上での問題となる

DDH仮定

ある群のを持ってきて、 はを知っていたとしてもランダムな値に見える、という仮定 ところでDDH仮定は では成り立たない。なぜなら のそれぞれに対してjacobi記号をとって積をとって、のjacobi記号と比べることで区別できる場合があるから(1/2くらいの確率…

Crypto CTF 2021 | trunc

#cryptoctf2021 #!/usr/bin/env python3 from Crypto.Util.number import * from hashlib import sha256 import ecdsa from flag import FLAG E = ecdsa.SECP256k1 G, n = E.generator, E.order cryptonym = b'Persian Gulf' def keygen(n, G): privkey = ge…

Crypto CTF 2021 | Hyper Normal

#cryptoctf2021 #!/usr/bin/env python3 import random from flag import FLAG p = 8443 def transpose(x): result = [[x[j][i] for j in range(len(x))] for i in range(len(x[0]))] return result def vsum(u, v): assert len(u) == len(v) l, w = len(u),…

Crypto CTF 2021 | Frozen

#cryptoctf2021 #!/usr/bin/env python3 from Crypto.Util.number import * from gmpy2 import * import sys import random import string from flag import FLAG def genrandstr(N): return ''.join(random.choice(string.ascii_uppercase + string.digits …

Circle City Con CTF 2021 | No Stone Left Unturned

#circle_city_con_2021 from gmpy2 import next_prime, is_prime import random, os, sys if __name__ == "__main__": random.seed(os.urandom(32)) p = next_prime(random.randrange((1<<1024), (1<<1024) + (1<<600))) pp = (p * 7) // 11 q = next_prime(…

CYBER APOCALYPSE CTF 2021 | Forge of Empires

#cyber_apocalypse_ctf_2021 from random import randint from math import gcd from Crypto.Util.number import long_to_bytes, bytes_to_long def gen_keys(): x = randint(1, p-2) y = pow(g, x, p) return (x, y) def sign(message: str, x: int): while…

CBCモード

わかりやすいやつ。各ブロックは前の暗号文とxorをとってから暗号化される。最初のブロックはIVとxorをとる 逆に復号するときは復号後のブロックと前のブロックの暗号文でxorをとる。最初のブロックはやはりIVとxorを取る

BlackHat MEA CTF Quals 2022 | ursaminor

BlackHat MEA CTF Quals 2022 #!/usr/local/bin/python # # Polymero # # Imports from Crypto.Util.number import isPrime, getPrime, inverse import hashlib, time, os # Local import FLAG = os.environ.get('FLAG').encode() class URSA: # Upgraded RS…

ASIS CTF Finals 2022 | vindica

#ASIS_CTF_Finals_2022 #!/usr/bin/env sage from Crypto.Util.number import * from flag import flag def genkey(nbit, k): p = getPrime(nbit) q = getPrime(nbit >> 2) n = p * q N = (p**k - 1) * (q**k - 1) while True: e = getRandomRange(1, n) if …