Matasano Crypto Challenge 27: Recover The Key from CBC with IV=Key

Pada tulisan sebelumnya dibahas mengenai serangan bitflipping terhadap mode CTR. Untuk tulisan hari ini akan dibahas mengenai cara mengungkap kunci CBC dengan IV = Kunci.

Challenge

Ambil coding anda tentang CBC sebelumnya dan modikasi, sehingga kunci untuk enkripsi CBC juga merupakan IV.

Kadang banyak aplikasi yang menggunakan kunci sebagai IV pada keduanya, antara pengirim dan penerima, mereka sudah mengetahui kunci pastinya dan dapat menyimpan beberapa tempat dengan menggunakannya entah sebagai kunci maupun IV.

Penggunaan kunci sebagai IV adalah hal yang tidak aman; attacker bisa melakukan modifikasi terhadap cipherteks saat dikirim ke penerima untuk di dekrip sehingga kunci akan terungkap.

Coding CBC pada latihan ke-16 mengenkripsi string URL. Verifikasi setiap byte plainteks untuk compliance ASCII (lihat nilai high-ASCII). Pesan yang non-compliant harus dapat membuat exception atau mengembalikan error termasuk plainteks yang didekrip (Ini terjadi sepanjang waktu pada semua sistem yang sebenarnya, apakah ini hal yang layak?)

Gunakan coding anda untu mengenkripsi pesan, setidaknya punya 3 blok:

AES-CBC(P_1, P_2, P_3) -> C_1, C_2, C_3

Modifikasi pesan (sekarang anda adalah attacker):

C_1, C_2, C_3 -> C_1, 0, C_1

Dekrip pesan tersebut (sekarang anda adalah penerima) dan dapatkan error yang tepat jika high-ASCII ditemukan.

Sebagai attacker, untuk memperoleh plainteks dari ‘the error’, lakukan ekstrak kunci:

P’_1 XOR P’_3

Solved

Ini dia penampakannya :).

recover_key_from_cbc_iv_eq_key

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. (????). Recover The Key from CBC with IV=Key. Tersedia: cryptopals.com/sets/4/challenges/27/. [6 Februari 2015].

Advertisements

One thought on “Matasano Crypto Challenge 27: Recover The Key from CBC with IV=Key

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