PolyPKC - SCTF 2018 final Attachments Attachments are uploaded on gist .
A brief description key generation RSAμ²λΌ
λ₯Ό μ‘λλ°,
μ λ§μ‘±νλ μμ
λ₯Ό μ ννλ€.
κ·Έ λ€μ λλ€ν
μ λν΄ λΉλ°ν€
λ₯Ό μ»λλ€.
μ¬κΈ°μ
μ λ§μ‘±νκ² λλ€.
곡κ°ν€λ μ°¨μκ° 50μΈ λ€νμ
μ κ³μλ€μ 리μ€νΈμ΄λ€.
κ³μλ€μ
μ 무μμ λμλ‘ μ νκ³ ,
λ₯Ό μ λΉν μ‘°μ ν΄μ
μ΄ λλλ‘ νλ€.
encryption
ν¨μλ₯Ό μλ μ½λμ²λΌ μ μνλ€.
def poly_mul (self, p, q ):
res = [0 for _ in range (self.order)]
for i in range (self.order):
for j in range (self.order):
k = (i + j) % self.order
res[k] = (res[k] + (p[i] * q[j])) % self.N
return res
κ·Έ λ€ μ°¨μκ° λ§μ°¬κ°μ§λ‘ 50μ΄κ³
μ 무μμ λμλ₯Ό κ³μλ‘ νλ
λ₯Ό μ‘λλ€.
μ΄μ λ©μμ§
μ΄ μ£Όμ΄μ‘μ λ, μνΈλ¬Έ
μ΄λ€.
decryption λΉλ°ν€
λ₯Ό μ¬μ©ν΄μ
μ²λΌ 볡νΈννλ€.
μΌλ°μ μΌλ‘
μ΄μ§λ§,
μΈ
λ μμΈλΌλ κ²μ μ μ μλ€.
λ°λΌμ
μ΄ μ±λ¦½νλ€.
Finding out private key
μ΄λ€.
곡격μκ° μ‘μ λλ€ λ€νμ
μ λν΄
λν
μ΄λ€.
λ°λΌμ
μ
μ λν΄
λ₯Ό νλ©΄
λ₯Ό μ»μ μ μλ€.
κ³Ό μλ‘ μκ° μλ μλ€μ
κ°λ°μ μκΈ° λλ¬Έμ
λ₯Ό ν΅ν΄ 1μ°¨μκΉμ§ μμ νκ² λ΄λ €κ° μ μλ€.
μ λλ©΄ λ€λ₯Έ
λ₯Ό μ‘μμ λ리면 λλ€.