k-1
Deskripsi
Shamir said we need k shares to recover the secret.
Author: prajnapras19
nc ctf-gemastik.ub.ac.id 10000
Seperti biasa, kita diberikan sebuah service dan source code dari service tersebut.
chall.py
Jika dijalankan, hasil output-nya kira-kira seperti berikut. Kita diberikan nilai k
(jumlah share yang dibutuhkan untuk me-recover secret
) serta pasanganโ (x,y) dari share
untuk secret
yang hanya diberikan sebanyak k-1
. Btw pada soal ini, secret
yang ingin dicari adalah password
.
Pertama-tama, yang saya lakukan adalah membaca berbagai write-up terkait Shamir Secret Sharing Scheme
, karena kelihatannya itu adalah materi dari soal ini. Namun karena mulai merasa kesulitan (skill issue :v), saya mulai memikirkan apakah penyelesaian soal ini dilakukan secara non konvensional. Terlebih, saya merasa ada yang aneh dengan soal ini. Biasanya (di ctf lain), nilai x
pada share
โ yang diberikan angkanya kecil (1, 2, 3, ...). Tapi di soal ini baik nilai x
maupun koefisien polinomial-nya sangat sangat besar.
Fokus saya tertuju pada bagian kode berikut.
Jumlah digit koefisien pertama (password
) saja tidak sampai 7, tapi koefisien lainnya punya nilai sebesar 1024-bit. Ini berarti ada ketimpangan yang sangat jauh. Apabila kita pikirkan cara kerja polinomial...
Kalau saja nilai dari password
lebih besar dibanding nilaiโ x
yang masuk, hal ini (menggunakan modulo) tidak akan bekerja begitu saja, karena kali ini bisa jadi nilai x
tersebut merupakan salah satu faktor dari password
.
Pada kasus soal ini, nilai f
di atas (nilai koefisien paling pertama/konstanta pada polinomial), adalah nilai password
. Oleh karena itu, untuk mendapatkan password
, kita ambil saja salah satu share
(nilai x dan y), lalu lakukan y mod x
. Password pun bisa kita submit ke server, dan flag didapatkan.
Referensi https://en.wikipedia.org/wiki/Shamir%27s_secret_sharing https://medium.com/mii-cybersec/pengenalan-shamir-secret-sharing-dan-implementasi-2a52bdbbe81d
Flag: gemastik{40a94a3351d72f7e4a79afdc646746b907c18c0c652bb7869d01454afe6784af}
Last updated