Matasano Crypto Challenge 6: Break Repeating-Key XOR

Pada tulisan sebelumnya dibahas mengenai implementasi repeating-key XOR dalam sebuah file. Untuk tulisan hari ini akan dibahas mengenai memecahkan chiper yang menggunakan repeating-key XOR. 

Challenge

Challenge ini secara konsep tidak sulit, namun kenyataannya ketika coding cenderung error. Challenge lain dalam set ini akan membawa anda lebih cepat memahami. Yang satu ini digunakan untuk mengkualifikasi anda. Jika anda bisa mengatasi challenge ini, maka anda akan mampu melakukan challenge sampai set 6.

Ada sebuah file disini

6txt

File telah dienkripsi dengan repeating-key XOR dan menghasilkan encoding base64. Dekrip itu!

Petunjuk:
1. Terka KEYSIZE (panjang kunci); coba nilai dari 2 sampai 40.
2. Tulis fungsi untuk menghitung perubahan jarak (hamming) antara dua string.

String pertama:

this is a test

String kedua:

wokka wokka!!!

Pastikan jaraknya adala 37. Jangan lanjut coding sebelum ini berhasil.
3. Untuk setiap KEYSIZE, ambil KEYSIZE pertama, dan KEYSIZE kedua dan cari perubahan jarak diantara keduanya. Normalisasi hasilnya dengan dibagi KEYSIZE.
4. KEYSIZE dengan normalisasi terkecil adalah kunci yang mungkin. Anda bisa melanjutkan dengan nilai KEYSIZE 2-3 terkecil. Atau ambil 4 blok KEYSIZE dibanding 2 dan rerata jarak.
5. Sekarang anda mengetahui KEYSIZE yang paling mungkin: pecahkan ciphertext kedalam blok-blok panjang KEYSIZE.
6. Sekarang transpose blok tersebut: buat sebuah blok yang merupakan byte pertama setiap blok dan sebuah blok yang merupakan byte kedua setiap blok dan seterusnya.
7. Pecahkan setiap blok selama ditemukan single-charachter XOR [in url]. Anda sudah coding ini sebelumnya.
8. Untuk setiap blok, kunci single-byte XOR yang menghasilkan histogram merupakan kunci repeating-key XOR untuk blok tersebut. Letakkan keduanya bersamaan dan anda akan mendapat kuncinya.

Kode ini akan sangat berguna nantinya. Memecahkan repeating-key XOR (“Vigenere”) secara statistik merupakan latihan akademik. Namun kebanyakan orang hanya tahu “bagaimana” untuk memecahkannya dibanding pemecahan sebenarnya dengan coding, dan teknik yang serupa benar-benar penting.

Solved

Ini dia penyelesainnya.

break_repeating_key_XOR
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. (????). Break Repeating-Key XOR
Tersedia: cryptopals.com/sets/1/challenges/6/. [4 Januari 2015].

Advertisements

2 thoughts on “Matasano Crypto Challenge 6: Break Repeating-Key XOR

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