Mind your Ps and Qs

Bill Elim


DIberikan sebuah file yang isinya sebagai berikut

Ini adalah skema RSA sederhana, bagi yang belum tau RSA kira-kira sistemnya sebagai berikut:

Tentukan dua bilangan prima p dan q.
Hitung n = pq
Hitung phi = (p-1)(q-1)
Tentukan e, e biasanya bernilai antara 3 hingga 65537
Tentukan d sebagai modular multiplicative inverse dari e modulo phi, artinya, cari
d dimana e*d % phi = 1

Untuk mengenkripsi pesan M, lakukan:
C = M^e% n

Untuk mendekripsi ciphertext C, lakukan:
M = C^d % n

(n,e) adalah kunci publik sedangkan (n,d) adalah kunci privat. Value yang lain perlu dirahasiakan karena dapat digunakan untuk menghitung d.

Pada soal ini kita diberikan kunci publik dan ciphertext untuk didekripsi, tetapi kita tidak memiliki kunci privat sehingga kita tidak dapat langsung mendekripsinya.
Jadi, bagaimana cara merecover d hanya dari n dan e?

Jika dilihat-lihat kita hanya perlu p dan q untuk menghitung phi dan menggunakan phi dan e untuk mendapatkan d, jadi, cara yang bisa lakukan adalah dengan menemukan p dan q melalui pemfaktoran n. Sayangnya n disini terlalu besar untuk di bruteforce faktornya. jadi kita harus mencari alternatif lain.

Ada database yang sangat bagus yang menyimpan faktor-faktor dari sebuah angka, termasuk bilangan yang cukup besar sekalipun. Yaitu factordb, saat kita memasukkan n yang ada di soal, maka akan keluar faktornya yaitu p dan q

Didapatkan p = 2434792384523484381583634042478415057961 dan q = 650809615742055581459820253356987396346063

Setelah mendapatkan p dan q maka kita bisa merekonstruksi d dan mendekripsi flagnya



Flag: picoCTF{sma11_N_n0_g0od_73918962}


Thank you for reading!