pohlig-hellman_attack

*CTF 2021 | MyCurve

#*CTF_2021 from Crypto.Util.number import bytes_to_long from flag import flag assert flag[:5]=='*CTF{' and flag[-1]=='}' flag=flag[5:-1] def add(P,Q): if Q==0: return P x1,y1=P x2,y2=Q return (d1*(x1+x2)+d2*(x1+y1)*(x2+y2)+(x1+x1^2)*(x2*(y…

PicoCTF 2018 | ECC2

#ECDH #ECDLP #Pohlig-Hellman_Attack Elliptic Curve: y^2 = x^3 + A*x + B mod M M = 93556643250795678718734474880013829509320385402690660619699653921022012489089 A = 660015981440128658766741155702689908063145067111045210367475336127984349047…

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 …

TokyoWesterns CTF 6th 2020 | The Melancholy of Alice

from Crypto.Util.number import getStrongPrime, getRandomRange N = 1024 def generateKey(): p = getStrongPrime(N) q = (p - 1) // 2 x = getRandomRange(2, q) g = 2 h = pow(g, x, p) pk = (p, q, g, h) sk = x return (pk, sk) def encrypt(m, pk): (…

EllipticCurve

関連ページ 位数がSmoothな楕円曲線のとき: Pohlig-Hellman Attack 楕円曲線/6点からパラメータを復元する properties 2素数 と について、 のとき、 (つまり任意の について) これは Frobenius trace が0になっている https://eprint.iacr.org/2020/001.…

InCTF 2020 | DLPoly

#inctf2020 sage: p 35201 sage: len(flag) 14 sage: X = int.from_bytes( flag.strip(b'inctf{').strip(b'}') , 'big') sage: n 1629*x^256 + 25086*x^255 + 32366*x^254 + 21665*x^253 + 24571*x^252 + 20588*x^251 + 17474*x^250 + 30654*x^249 + 31322*x…

SecurinetsQuals2K21 | Sign It!

#securinetsquals2k21 from Crypto.Util.number import inverse from Crypto.Random import random from fastecdsa.curve import Curve from fastecdsa.point import Point import hashlib import signal class Server(): def __init__(self, curve, G): sel…

corCTF 2021 | dividing secrets

#corctf2021 from Crypto.Util.number import bytes_to_long, getStrongPrime from random import randrange from secret import flag LIMIT = 64 def gen(): p = getStrongPrime(512) g = randrange(1, p) return g, p def main(): g, p = gen() print("g:"…

ASIS CTF Finals 2021 | mDLP

#asisctffinals2021 #!/usr/bin/env sage from sage.all import * from Crypto.Util.number import * from secret import gen_prime, gen_base_matrix, flag def keygen(nbit, l): # ## Create the n-bit prime and base square matrix of size l over Ring …

ASIS CTF Finals 2022 | monward

#ASIS_CTF_Finals_2022 #!/usr/bin/env sage from Crypto.Util.number import * from secret import C, flag def monon(C, P): a, d, p = C x, y = P return (a*x**2 + y**2 - d*x**2*y**2) % p == 1 def monadd(C, P, Q): a, d, p = C assert monon(C, P) a…

redpwn CTF 2021 | scrambled-elgs

#redpwnctf2021 #!/usr/bin/env sage import secrets import json from Crypto.Util.number import bytes_to_long, long_to_bytes from sage.combinat import permutation n = 25_000 Sn = SymmetricGroup(n) def pad(M): padding = long_to_bytes(secrets.r…

N1CTF | flagbot

from hashlib import sha256 from Crypto.Cipher import AES from Crypto.Util.number import long_to_bytes, bytes_to_long from Crypto.Util.Padding import pad, unpad import base64 from secret import flag RECEIVER_NUM = 7 def generate_safecurve()…

zer0pts CTF 2022 | EDDH

#zer0ptsCTF2022 from random import randrange from Crypto.Util.number import inverse, long_to_bytes from Crypto.Cipher import AES from hashlib import sha256 import ast import os import signal n = 256 p = 641410175380266908475076657440727641…