Matasano Crypto Challenge 24: Create The MT19937 Stream Cipher and Break It

Pada tulisan sebelumnya dibahas mengenai duplikasi MT19937 RNG dari output yang dihasilkan. Untuk tulisan hari ini akan dibahas mengenai cara membuat cipher stream MT19937 dan memecahkannya.

Challenge

Anda dapat membuat sebuah cipher stream yang mudah dengan berbagai PRNG; Gunakan hal tersebut untuk men-generate sequence yang terdiri dari 8 bit output dan gunakan output ini sebagai keystream.

Tulis sebuah fungsi MT19937 dengan menggunakan seed sebesar 16 bit. Verifikasi hal tersebut, apakah bisa melakukan enkripsi dan dekripsi dengan baik. Coding ini mirip seperti pada challenge CTR sebelumnya.

Gunakan fungsi anda untuk melakukan enkripsi terhadap known plaintext (katakan, 14 karakter A secara berturut-turut) Awali dengan angka acak dan karakter acak.

Dari ciphertext, temukan kembali “key” (seed 16 bit).

Gunakan ide sama agar menghasilkan “password reset token” yang acak menggunakan MT19937 seed dari waktu yang sedang berjalan.

Juga tulis fungsi untuk memerika jika password token yang diberikan menghasilkan PRNG Seed MT19937 dengan waktu yang sedang berjalan.

Solved

Ini dia penampakannya :).

create_n_break_the_mt19937_stream_cipher

Mengapa hanya share screenshot saja? Alasannya bisa anda lihat pada tulisan ikhtisar MCC sebelumnya.

Sekian tulisan hari ini, semoga bermanfaat.

Keep Fun Coding 😀

[1] Unknown. (????). Create The MT19937 Stream Cipher and Break It . Tersedia: cryptopals.com/sets/3/challenges/24/. [30 Januari 2015].

Advertisements

2 thoughts on “Matasano Crypto Challenge 24: Create The MT19937 Stream Cipher and Break It

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s