Matasano Crypto Challenge 9: Implement PKCS#7 Padding

Pada tulisan sebelumnya dibahas mengenai cara mendeteksi AES dalam mode ECB. Untuk tulisan hari ini akan dibahas mengenai implementasi PKCS#7 Padding.

Set 2

Sebelum masuk ke challenge, mari pahami ikhtisar set ke 2. Set ini adalah set pertama diantara beberapa set pada kriptografi block chiper. Anda akan melihat implementasi di banyak web app menggunakan crypto ini. Set ini relatif mudah. Orang – orang akan mampu sapu bersih set 1 dan set 2 secara cepat.

Tiga dari semua challenge di set ini merupakan ‘extremely valuable in breaking real-world crypto’; satu membolehkan anda untuk dekrip pesan yang dienkripsi dengan mode AES, dan dua lainnya membolehkan anda untuk menulis ulang pesan yang dienkripsi dalam mode AES yang populer.

Challenge

Sebuah blok cipher mentransformasi sebuah blok yang berukuran tetap (biasanya 8 atau 16 byte) plaintext ke dalam ciphertext. Namun untuk pesan ini tidak ditransformasi dengan single block; namun pesan dienkripsi dengan ukuran yang irregular.

Salah satu cara menghitung pesan dengan ukuran irregular adalah dengan padding, membuat sebuah plaintext yang mengalikan blok – blok yang mempunyai ukuran sama. Skema padding paling populer adalah PKCS#7.

Beri padding semua block untuk menspesifikasi panjang blok, dengan menambahkan nomor byte padding sampai akhir dari blok. Misalnya,

“YELLOW SUBMARINE”

Ditambahkan padding 20 byte menjadi:
“YELLOW SUBMARINE\x04\x04\x04\x04”

Solved

Ini dia penyelesainnya.

implement_pkcs7_padding

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. (????). Implement PKCS#7 Padding
Tersedia: cryptopals.com/sets/2/challenges/9/. [8 Januari 2015].

Advertisements

One thought on “Matasano Crypto Challenge 9: Implement PKCS#7 Padding

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