Simple Cryptosystems - 75 Points
POC
Diberikan sebuah code simple-cryptosystem.py dan sebuah text enkripsi
Xfhztzp czpzqy ca ifqlaxaszq Ofztzqzq Uzbaqyzq Yftzxpao V. Xezh-xezh lzqy caruaozq cabzqmzqy xfcftaoazq briz zyzb Zqcz wfhzuzb tzpfba-tzpfba ofztzqzq xaxpft oetirpfb lzqy wfbgeorx izcz ifqyfpzsrzq czxzb lzqy tfqczhzt. Zqcz paczo carua rqpro tfqyfoxiheapzxa hzlzqzq dfw/uzbaqyzq tfqyyrqzozq peehx lzqy aqxpzq zpzr tfqyyrqzozq xmbaip rqpro mfhzs lzqy xrczs capftrozq xfwfhrtqlz. Zqcz szbrx tfhzorozq zqzhaxax xfqcaba czq tftfmzsozq xezh cfqyzq mzbz Zqcz xfqcaba. Xfwzyza meqpes, xezh aqa zczhzs xezh tfqyfqza obaipeybzga xfcfbszqz lzqy pfqprqlz paczo cayrqzozq izcz atihftfqpzxa xaxpft lzqy xfwfqzbqlz. Pfpzia Zqcz szbrx tztir tfhzorozq zqzhaxax pfbszczi aqa pfbhfwas czsrhr xfwfhrt wfhzuzb tfqyfqza xaxpft obaipeybzga tecfbq. Ghzy rqpro Zqcz zczhzs YFTZXPAO{oqedq_ihzaqpfvp_dahh_sfhi_ler_pe_wbfzo_xetf_mblipexlxpftx}
Untuk menyelesaikan ini pertama-tama kami melakukan brute force dengan semua kemungkinan alphabet yang ada karena fungsi generate key yang diberikan merupakan random.shuffle(string.lowercase) namun karena brute force berjalan terus dan tidak menemukan titik cerah, akhirnya kami mencoba melakukan dekripsi manual, melihat pola dari baris terakhir text enkripsi
YFTZXPAO{oqedq_ihzaqpfvp_dahh_sfhi_ler_pe_wbfzo_xetf_mblipexlxpftx}
yang secara tidak langsung bisa disimpulkan bahwa YFTZXPAO = GEMASTIK (Y = G, F = E dst) Secara bertahap kita menemukan pesangan2 kalimat yang mudah untuk di tebak dan sampai flag terkonstruksi secara penuh.
Flag: GEMASTIK{known_plaintext_will_help_you_to_break_some_cryptosystems}