CakeCTF 2023 | janken vs yoshiking

#CakeCTF2023 import random import signal import os HANDNAMES = { 1: "Rock", 2: "Scissors", 3: "Paper" } def commit(M, m): while True: r = random.randint(2, 2**256) if r % 3 + 1 == m: break return M**r, r signal.alarm(1000) flag = os.enviro…

CakeCTF 2023 | Simple Signature

#CakeCTF2023 import os import sys from hashlib import sha512 from Crypto.Util.number import getRandomRange, getStrongPrime, inverse, GCD import signal flag = os.environ.get("FLAG", "neko{cat_does_not_eat_cake}") p = getStrongPrime(512) g =…

zer0pts CTF 2021| war(sa)mup

#zer0ptsCTF2021 from Crypto.Util.number import getStrongPrime, GCD from random import randint from flag import flag import os def pad(m: int, n: int): # PKCS#1 v1.5 maybe ms = m.to_bytes((m.bit_length() + 7) // 8, "big") ns = n.to_bytes((n…

zer0pts CTF 2021 | signme

#zer0ptsCTF2021 #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "signme.h" void authenticated(void) { puts("Thank you for signing my message!"); system("/bin/sh"); } void fatal(const char *msg) { fputs(msg, stderr); exit(1); } /** * Pad m</string.h></stdlib.h></stdio.h></unistd.h>…

zer0pts CTF 2021 | easy pseudorandom

#zer0ptsCTF2021 from Crypto.Util.number import* from flag import flag nbits = 256 p = random_prime(1 << nbits) Fp = Zmod(p) P.<v> = PolynomialRing(Fp) b = randrange(p) d = 2 F = v^2 + b v0 = randrange(p) v1 = F(v0) k = ceil(nbits * (d / (d + </v>…

singular curve

#EllipticCurve 特異点(Singular Point)を持つ楕円曲線のこと。特異点の様子によってNode型かCusp型かに分けられる。 SingularなEllipticCurveは同型な別の群への写像を持ち、離散対数問題が簡単になることがある CuspかNodeか調べる 特異点(のx座標)を調…

math

#数学