Matasano Crypto Challenge 11: An ECB/CBC Detection Oracle

Pada tulisan sebelumnya dibahas mengenai implementasi mode CBC. Untuk tulisan hari ini akan dibahas mengenai mendeteksi ECB atau CBC dengan padding oracle.

Challenge

Tulis sebuah fungsi untuk menghasilkan kunci acak AES; yang berukuran 16 bytes .
Tulis sebuah fungsi untuk mengenkripsi data dengan kunci yang tidak diketahui, dengan menggunakan fungsi sebelumnya yang menghasilkan kunci acak dan enkrip data tersebut dengan kunci itu.

Fungsi akan nampak seperti ini:

encryption_oracle(your-input)
=> [MEANINGLESS JIBBER JABBER]

Juga buat fungsi untuk menambahkan 5-10 byte (dihitung dan dipilih secara acak) sebelum plaintext dan 5-10 byte setelah plaintext.

Sekarang anda punya fungsi untuk melakukan enkripsi kedalam ECB dan kedalam CBC (hanya gunakan random IV setiap kali untuk CBC). Gunakan rand(2) untuk memilih apa yang anda gunakan.

Deteksi mode cipher block dengan fungsi ini setiap waktu. Anda seharusnya dapat menyelesaikan dengan potongan kode tersebut, yang berujung apakah ECB atau CBC.

Solved

Ini dia penyelesainnya.

an_ecb_cbc_detection_oracle

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. (????). An ECB/CBC Detection Oracle
Tersedia: cryptopals.com/sets/2/challenges/10/. [10 Januari 2015].

Advertisements

2 thoughts on “Matasano Crypto Challenge 11: An ECB/CBC Detection Oracle

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