Warm-up
ASCIS 2023 WARMUP
CRYPTOGRAPHY WRITEUP
Author:
Pham Quoc Trung
Used Language:
Python3
Problem Solving:
Welcome RSA
Welcome, here is a RSA crypto challenge. Good luck
Attachments: easy_rsa.py
#!/usr/bin/python3
from Crypto.Util.number import getPrime
from Crypto.Util.number import bytes_to_long
N = 1024
p = getPrime(N)
q = getPrime(N)
m = 0
with open('flag.txt', 'rb') as f:
m = bytes_to_long(f.read())
e = 65537
phi = (p-1) * (q-1)
c_p = pow(m, e, p)
c_q = pow(m, e, q)
print(f"c_p = {c_p}")
print(f"c_q = {c_q}")
print(f"N = {p * q}")
print(f"phi = {phi}")
output.txt
Đọc đề bài, ta thấy được cho $N$ = $p$ * $q$ và $phi$ = $(p-1)*(q-1)$. Vì vậy, ta dễ dàng tìm lại được $p$, $q$ bằng cách đặt $q$ = $N / p$
Giải phương trình bậc 2 trên, ta sẽ thu được p. Ở đây mình sử dụng sagemath:
Và mình ra được 2 nghiệm của p:
Vì ở đây message được mã hóa dựa trên p hoặc q, nên mình chỉ cần p và giải mã sử dụng c_p:
Flag: ASCIS{W3lc0me_t0_th3_P4rty_8597b0394054835f80ebd573a238ddbe1d86942657a59a7b6f84660d629472b5}
© 2023,Pham Quoc Trung. All rights reserved.
Last updated