Singular Elliptic Curves

서론 최근 타원 곡선에 대해서 공부하면서 피상적으로 이해하던 부분을 좀 더 깊이 이해하는 단계에 들어서고 있습니다. 특히 수학에 대해서 배우는 것은 좋아하지만 고등 수...

2020-04-18 · 5 min · RBTree

Coppersmith's method

긴 글은 아니고, Coppersmith’s method에 대해서 공부하고 싶으신 분들을 위한 요약 글입니다. 기본 기본적인 Coppersmith’s method를 이해하는데 도움이 되는 글은 역시 Alexander May의...

2020-03-10 · 2 min · RBTree

[zer0pts CTF 2020] dirty laundry

Do you wanna air my dirty laundry? How to solve Recovering PRNG The challenge uses 256-bit LFSR PRNG, of which seed is the lower 256-bit of 1024-bit prime number. Let’s see pailler_enc unction. def paillier_enc(m, p, noise): p = next_prime(p + noise) q = getStrongPrime(512) n = p * q g = (1 + prng.rand() * n) % n**2 c = pow(g, m, n**2) * pow(prng.rand(), n, n**2) % n**2 return n, g, c The value p is 1024-bit, so n should be 1536-bit....

2020-03-09 · 5 min · RBTree

[zer0pts CTF 2020] nibelung

nc 18.179.178.246 3002 (This was all of the description) Overview From the organizer’s write-up(Link): FiniteGeneralLinearGroup is just a matrix class over a finite field. We can encrypt and decrypt arbitrary messages. Encryption is defined as: $Y = UXU^{-1}$. Decryption is defined as: $X = U^{-1}YU$. The size of matrix (from the server) is 6×6. How to solve You cannot decrypt the flag directly, because it only accepts the matrix with values in the range 0~255....

2020-03-09 · 2 min · RBTree

[zer0pts CTF 2020] diysig

I made a cipher-signature system by myself. nc 18.179.178.246 3001 How to Solve In the challenge, you can (1) encrypt and sign, (2) verify encrypted message, and (3) get public key. The public key of the server is always fixed. If you see the verify function of server.py, you can find out that it will let you know the hash of the decrypted message. if h == H: sock.send(b"Signature OK!\n") else: sock....

2020-03-09 · 2 min · RBTree