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