3kctf-2021

3kCTF-2021 | ASR

#3kCTF-2021 import binascii import hashlib import random import os import string import OpenSSL.crypto as crypto rsa_p_not_prime_pem = """\n-----BEGIN RSA PRIVATE KEY-----\nMBsCAQACAS0CAQcCAQACAQ8CAQMCAQACAQACAQA=\n-----END RSA PRIVATE KEY…

3kCTF-2021 | SMS

#3kCTF-2021 SBOX = [0xb9, 0xb3, 0x49, 0x94, ...] # 略 def pad(data): if len(data) == 0: return b"\x00" * 8 while len(data) % 8 != 0: data += b"\x00" return data def sub(state): return [SBOX[x] for x in state] def mix(block, state): for i i…

3kCTF-2021 | secure roots

#3kCTF-2021 from Crypto.Util.number import getPrime, long_to_bytes import hashlib, os, signal def xgcd(a, b): if a == 0: return (b, 0, 1) else: g, y, x = xgcd(b % a, a) return (g, x - (b // a) * y, y) def getprime(): while True: p = getPri…

3kCTF-2021 | crypto warmup

#3kCTF-2021 import random import math n = 24 def make_stuff(): A = []; b = [1, 10] for i in range(n): A.append(random.randint(*b)) b[False] = sum(A) + 1 b[True] = int(b[False] << 1) c = random.randint(sum(A), sum(A) << 1) while True: d = r…

3kCTF-2021 | Digital

#3kCTF-2021 from Crypto.Util.number import inverse import hashlib import os rol = lambda val, r_bits, max_bits: (val << r_bits%max_bits) & (2**max_bits-1) | ((val & (2**max_bits-1)) >> (max_bits-(r_bits%max_bits))) class Random(): def __in…