joseph

DownUnderCTF 2021 | Subsutitution Cipher 2

#joseph #downunderctf2021 from string import ascii_lowercase, digits CHARSET = "DUCTF{}_!?'" + ascii_lowercase + digits n = len(CHARSET) def encrypt(msg, f): ct = '' for c in msg: ct += CHARSET[f.substitute(CHARSET.index(c))] return ct P.<x> </x>…

DownUnderCTF 2021 | Subsutitution Cipher 3

#joseph #downunderctf2021 #good_challenges_2021 def encrypt(pubkey, msg): gens = pubkey[0].parent().gens() n = len(gens) B = ''.join(f'{c:08b}' for c in msg) B = list(map(int, B)) assert len(B) <= n B += [0] * (n - len(B)) subs = { x: b fo…

DownUnder CTF 2021 | power sign

#joseph #downunderctf2021 #!/usr/bin/env sage proof.arithmetic(False) # just makes things faster def get_3m4_prime(N): while True: p = random_prime(2^N - 1, lbound=2^(N-1)) if p % 4 == 3: return p def generate_key(L, n, m): p = get_3m4_pri…

DownUnderCTF 2021 | yadlp

#joseph #downunderctf2021 def G_add(A, B): x1, y1 = A x2, y2 = B return ((x1*x2 + D*y1*y2) % p, (x1*y2 + x2*y1 + 2*y1*y2) % p) def G_mul(A, k): out = (1, 0) while k > 0: if k & 1: out = G_add(out, A) A = G_add(A, A) k >>= 1 return out def …

DownUnderCTF 2021 | Treasure

#joseph #downunderctf2021 #!/usr/bin/python3 import re from Crypto.Util.number import long_to_bytes from Crypto.Random import random from secret import REAL_COORDS, FLAG_MSG FAKE_COORDS = 575462271004247427844974531438712885812843213815360…

DownUnderCTF 2021 | Substitution Cipher 1

#joseph #downunderctf2021 def encrypt(msg, f): return ''.join(chr(f.substitute(c)) for c in msg) P.<x> = PolynomialRing(ZZ) f = 13*x^2 + 3*x + 7 FLAG = open('./flag.txt', 'rb').read().strip() enc = encrypt(FLAG, f) print(enc) 単一換字暗号 P.<x> </x></x>…

DownUnderCTF 2021 | 1337cryptov2

#downunderctf2021 #joseph #good_challenges_2021 from Crypto.Util.number import getPrime, bytes_to_long flag = open('flag.txt', 'rb').read().strip() p, q = getPrime(1337), getPrime(1337) n = p*q K.<z> = NumberField((x-p)^2 + q^2) hint1 = p^2 +</z>…

DownUnderCTF 2021 | Break Me!

#joseph #downunderctf2021 #!/usr/bin/python3 import sys import os from Crypto.Cipher import AES from base64 import b64encode bs = 16 # blocksize flag = open('flag.txt', 'rb').read().strip() key = open('key.txt', 'r').read().strip().encode(…