rsa-crt

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>…

TSG Live CTF 6 | Broken RSA

#tsglivectf6 class key: def __init__(self, p, q): self.N = p * q self.phi = (p - 1) * (q - 1) self.e = 65537 self.d = pow(self.e, -1, self.phi) def gen_private_key(self): return (self.N, self.d) def gen_public_key(self): return (self.N, se…

0CTF Finals 2021 | ezrsa

#0ctf2021finals from Crypto.Util.number import * from secret import flag from os import urandom def gen(n_size, m_size): alpha = 0.5 delta = 0.03 d_size = int(delta * n_size) k_size = int((alpha + delta - 0.5) * n_size) c_size = int(n_size…

0CTF Finals 2021 | ezrsa+

#0ctf2021finals from Crypto.Util.number import * from secret import flag from os import urandom def gen(n_size, m_size): alpha = 0.5 delta = 0.03 d_size = int(delta * n_size) k_size = int((alpha + delta - 0.5) * n_size) c_size = int(n_size…

Layer7 CTF 2020 | Baby Coppersmith

#!/usr/bin/env sage from Crypto.Util.number import bytes_to_long as b2l def generate(): p = random_prime(2 ** 1024) q = random_prime(2 ** 1024) e = random_prime(200, False, 150) d = inverse_mod(e, (p-1)*(q-1)) n = p * q return [n, e, p, q,…

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 …

Fword CTF 2020 | One Part

RSA だけどRSA-CRTのが与えられている。dpがわかっているときの素因数分解 from ptrlib import Socket from Crypto.Util.number import GCD, inverse, long_to_bytes sock = Socket("onepart.fword.wtf", 4445) n, e = map(int, sock.recvregex(r"\((.+), (.…

RSA

公開鍵暗号方式の一つ。典型的には以下のようなコードが登場する from Crypto.Util.number import getPrime, isPrime, inverse import os def keygen(): p = getPrime(512) q = getPrime(512) n = p*q e = 65537 d = inverse(e, (p-1)*(q-1)) return (n, e),…