Lexington Informatics Tournament2025
one hint
12345678910111213141516171819202122232425262728293031\#!/usr/bin/env python3def vigenere(pt,key): res = "" for i in range(len(pt)): if pt[i] in "LITCTF{_}": res += pt[i] continue res += chr((ord(pt[i])+ord(key[i%len(key)])-2*ord('a'))%26+ord('a')) return resdef power(pt,n): a = pt for i in range(n): a = vigenere(a, vigenere(a, a)) return aflag = "LITCTF{redacted}"print("hint 1:...
NetDream2025
EzRSA
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859import sysimport randomfrom sympy import nextprimeimport binasciiFLAG = b"flag{xxxxxxx}"BIT_SIZE = 512DIFF = 1000def generate_close_primes(bit_size, diff): start = random.getrandbits(bit_size) | 1 p = nextprime(start) q = nextprime(p + diff) return p, qdef flag_to_int(flag_bytes): return int.from_bytes(flag_bytes, byteorder='big')def main(): ...
杂题
Nepnep2025 Lattice Bros
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#已知α的极小多项式为三次多项式f(x),即f(α)=0,且α≈54236.606188881754809671280151541781895183337725393#上述极小多项式的常数项为a0from secret import a0,alphaimport gmpy2from Crypto.Util.number import long_to_bytesimport randomfrom math import sqrt,log2d=981020902672546902438782010902608140583199504862558032616415p = d - a0k=sqrt(log2(p))+log2(log2(p))B = 2**30assert B < p/2**km = 30assert m >...
CMCTF2025
这里就对mix这题进行记录
mix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475from Crypto.Util.number import *from secret import flagimport randomp = getStrongPrime(2048)q = getStrongPrime(2048)s = getStrongPrime(2048)r = int(裴波那契数列[2022])mask = b'******'enc1 = b'******'flag1 = b'CMCTF{' +enc1 + mask + b'}'e = 0o10001m = bytes_to_long(enc1)n = p * q * rc =...
HNCTF2025
为什么出题人的rsa总是ez
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#part 1def pad(flag, bits=1024): pad = os.urandom(bits//8 - len(flag)) return int.from_bytes(flag + pad, "big")p = random_prime(2**1024)q = random_prime(2**1024)a = randint(0, 2**1024)b = randint(0, 2**1024)n = p * qe = 0x10001flag = b''m = pad(flag)assert m < nc = pow(m, e,...
LitCTF2025
basic
123456789101112131415161718192021222324252627from Crypto.Util.number import*from encimport flagm = bytes_to_long(flag)n = getPrime(1024)e =65537c = pow(m,e,n)print(f"n = {n}")print(f"e = {e}")print(f"c = {c}")'''n =...
