• Tidak ada hasil yang ditemukan

MODIFIKASI ALGORITME FUNGSI HASH MD5 DIDASARKAN PADA ANALISIS SYARAT CUKUP SERANGAN DIFERENSIAL AGUSTINUS SROYER

N/A
N/A
Protected

Academic year: 2021

Membagikan "MODIFIKASI ALGORITME FUNGSI HASH MD5 DIDASARKAN PADA ANALISIS SYARAT CUKUP SERANGAN DIFERENSIAL AGUSTINUS SROYER"

Copied!
88
0
0

Teks penuh

(1)

MODIFIKASI ALGORITME FUNGSI HASH MD5

DIDASARKAN PADA ANALISIS SYARAT CUKUP

SERANGAN DIFERENSIAL

AGUSTINUS SROYER

SEKOLAH PASCASARJANA

INSTITUT PERTANIAN BOGOR

BOGOR

2009

(2)

PERNYATAAN MENGENAI TESIS DAN SUMBER INFORMASI Dengan ini saya menyatakan bahwa tesis berjudul Modifikasi Algoritme Fungsi Hash MD5 didasarkan pada Analisis Syarat Cukup Serangan Diferensial adalah karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apapun kepada perguruan tinggi manapun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir tesis ini.

Bogor, Agustus 2009 Agustinus Sroyer NIM. G551060351

(3)

ABSTRACT

AGUSTINUS SROYER. The Modification of MD5 Hash Function Algorithm Based on Sufficient Conditions of Analysis Differential Attack. Supervised by SUGI GURITMAN and NUR ALIATININGTYAS.

MD5 (message digest five) is one of algorithms most widely used cryptographic hash functions nowadays. It was designed in 1992 as an improvement of MD4. On 2004, Wang found the weakness of the algorithm using differential attack, the collisions of MD5 could be found efficiently in two blocks. The first took about 239 MD5 operations, and the second block took about 232 MD5 operations. Based on these cases, it would be explained the weaknesses of the algorithm according to sufficient conditions analysis. The resulting analysis were used to modify the structure of MD5 hash function algorithm.

The result was that there were four important components in MD5 algorithm which were changed, i.e addition constancy, cyclic constancy, message block permutation, and non-linearly boolean function. The value of addition constancy, cyclic constancy, message block permutation were changed from the value of fixed constancy into the value of a number of variable operation in the previous iteration, which was spread (depend on previous variable). In the meantime, the formula of non-linearly boolean function was changed.

Modified MD5 algorithm was intended to be resistant to the differential attack of Wang version. Since the structure was not changed, this algorithm was also resistant to the other types or kinds of attack. The changing of some operations in MD5 algorithm caused the implementation to slow down. The results of the implementation showed that modified MD5 slower about three times from previous version.

Keywords: hash function, MD5 algorithm, collision, differential attack, sufficient conditions.

(4)

RINGKASAN

AGUSTINUS SROYER. Modifikasi Algoritme Fungsi Hash MD5 didasarkan pada Analisis Syarat Cukup Serangan Diferensial. Dibimbing oleh SUGI GURITMAN dan NUR ALIATININGTYAS.

Salah satu primitif kriptografi modern adalah fungsi hash kriptografi, atau sering disebut fungsi hash satu-arah. Dari segi transformasinya, fungsi hash didefinisikan sebagai fungsi yang memetakan bitstring dengan panjang sebarang ke bitstring dengan panjang tetap. Output dari fungsi hash adalah nilai hash (hash value). Di samping itu, dari segi peranannya di dalam kriptografi, fungsi ini juga diharuskan memenuhi sifat satu arah dan tahan tumbukan. Fungsi hash h dikatakan bersifat satu arah apabila secara komputasi tak layak menentukan input x jika diketahui nilai hash y sehingga y = h(x). Di lain pihak, sifat tahan tumbukan dari h dimaknai secara komputasi tak layak menentukan pasangan input x dan x’ dengan x ≠ x’ sehingga outputnya sama, h(x) = h(x’) (terjadi tumbukan).

Sifat satu arah dan tahan tumbukan menyebabkan fungsi hash salah satunya digunakan untuk melindungi integritas data dari pemalsuan. Sebagai ilustrasi, suatu pesan x dilabelkan dengan nilai hashnya y = h(x). Kita bisa memalsukan x apabila kita bisa menentukan pesan lain x’ ≠ x sehingga h(x’) = y (mempunyai label yang sama dengan x). Jika ini yang terjadi maka fungsi hash yang bersangkutan dikatakan tidak aman, dengan kata lain x’ bisa digunakan untuk memalsukan x.

Dari makna fungsi hash yang telah diuraikan di atas, jelas bahwa menyerang suatu algoritme fungsi hash berarti mencari suatu metode untuk menentukan x dan x’, x ≠ x’, sehingga mempunyai peluang yang cukup tinggi terjadinya tumbukan, h(x) = h(x’). MD5 merupakan salah satu algoritme fungsi hash yang paling luas digunakan dalam kriptografi. Tahun 2004, Wang dan Yu (dalam How to Break MD5 and Other Hash Functions), selanjutnya disebut sebagai artikel Wang, berhasil mematahkan algoritme tersebut berdasarkan analisis syarat cukup serangan diferensial.

Ide dasar serangan diferensial pada fungsi hash adalah memilih pasangan input x dan x’, x ≠ x’, dan mempunyai beda tertentu sehingga memperbesar peluang terjadinya tumbukan (h(x) = h(x’)). Pada proses serangan diferensial untuk MD5, pertama kali Wang dan Yu mendefinisikan diferensial karakteristik dalam bentuk Tabel Diferensial Karakteristik (Lampiran1 & Lampiran 3). Pendefinisian diferensial karakteristik ini dimaksudkan sebagai alur dalam proses algoritme MD5 jika diberi pasangan input x dan x’ dengan beda tertentu, diharapkan mempunyai peluang yang tinggi terjadinya tumbukan. Proses terjadinya tumbukan ditunjang dengan memodifikasi pesan melalui penentuan syarat cukup pada bit-bit tertentu. Syarat cukup diberikan dalam bentuk Tabel Syarat Cukup (Lampiran 2 & Lampiran 4). Dengan metode tersebut Wang dan Yu berhasil menentukan tumbukan pada MD5 secara efisien di mana blok pertama memerlukan sekitar 239 operasi MD5 dan blok kedua memerlukan sekitar 232 operasi MD5. Hasil tersebut diperkuat juga oleh Hawkes et al. (dalam Musings on the Wang et al. MD5 Collision, 2004).

(5)

Namun sayangnya, pendefinisian karakteristik diferensial pada artikel tersebut diberikan tanpa penjelasan dan hanya diberikan sedikit ilustrasi bagaimana menentukan syarat cukup. Pada penelitian ini dieksploitasi bagaimana menentukan syarat cukup penentuan nilai bit-bit tertentu untuk memodifikasi pesan sampai pada langkah ketujuh secara lengkap mengikuti Tabel Karakteristik Diferensial. Dengan kata lain, jika dilanjutkan maka akan diperoleh nilai-nilai syarat cukup (Lampiran 2 & Lampiran 4). Syarat cukup tersebut digunakan untuk memodifikasi pesan sehingga memperbesar peluang terjadinya tumbukan (collision). Berdasarkan syarat cukup tersebut maka digunakan untuk menarik kesimpulan dan selanjutnya memodifikasi MD5.

Modifikasi MD5 hanya dilakukan pada komponen-komponen utama tanpa mengubah struktur besarnya. Komponen-komponen utama tersebut adalah konstanta putaran, konstanta jumlah, permutasi blok pesan dan fungsi boolean tak linear. Nilai konstanta jumlah, konstanta putaran, dan permutasi blok pesan diubah dari nilai konstanta tetap ke nilai hasil operasi beberapa variabel pada iterasi sebelumnya yang sifatnya merambat. Di lain pihak, fungsi boolean tak linear diubah rumusnya. Algoritma MD5 termodifikasi dimaksudkan agar tahan terhadap serangan diferensial, khususnya versi Wang. Karena strukturnya tidak berubah algoritme ini juga tahan terhadap tipe atau jenis serangan yang lain.

Perubahan beberapa operasi di dalam algoritme MD5 menyebabkan kinerjanya menurun dibandingkan sebelumnya (MD5 asli). Hasil implementasi menunjukkan MD5 termodifikasi sepertiga kali lebih lambat dari MD5 sebelumnya.

Kata kunci: fungsi hash, algoritme MD5, tumbukan, serangan diferensial, karakteristik diferensial, syarat cukup

(6)

© Hak Cipta milik Institut Pertanian Bogor, tahun 2009 Hak cipta dilindungi Undang-undang

1. Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan atau menyebut sumber.

a. Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau tinjauan suatu masalah.

b. Pengutipan tidak merugikan kepentingan yang wajar Institut Pertanian Bogor.

2. Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis dalam bentuk apapun tanpa ijin Institut Pertanian Bogor.

(7)

MODIFIKASI ALGORITME FUNGSI HASH MD5

DIDASARKAN PADA ANALISIS SYARAT CUKUP

SERANGAN DIFERENSIAL

AGUSTINUS SROYER

Tesis

sebagai salah satu syarat untuk memperoleh gelar Magister Sains pada

Departemen Matematika

SEKOLAH PASCASARJANA

INSTITUT PERTANIAN BOGOR

BOGOR

2009

(8)

Judul Tesis : Modifikasi Algoritme Fungsi Hash MD5 didasarkan pada Analisis Syarat Cukup Serangan Diferensial

Nama : Agustinus Sroyer NIM : G551060351

Disetujui Komisi Pembimbing

Dr. Sugi Guritman Dra. Nur Aliatiningtyas, M.Si. Ketua Anggota

Diketahui

Ketua Program Studi Dekan Sekolah Pascasarjana Matematika Terapan

Dr. Ir. Endar Nugrahani, M.S. Prof. Dr. Ir. Khairil A. Notodiputro, M.S.

(9)

Karyaku ini kupersembahkan untuk orang-orang yang

kukasihi:

Bapak Yeremias Sroyer (alm.) dan Ibu Yulita Reprep (alm.) Ibu Sugiyem

Istriku terkasih Agnes Eri Maryuni beserta kedua buah hatiku Marchelino dan Amadhea

Bapak Robert Masreng dan Mbak Endah

Kakak-kakak, adik-adik, dan keponakan-keponakan di Papua beserta keluarga besar di Papua

Keluarga besar yang ada di Gombong, Wonosobo, Tawangmangu, Tangerang, Bogor, Jambi

Semoga karyaku yang kecil ini dapat bermakna bagi perkembangan ilmu pengetahuan di tanah Papua khususnya di Universitas

(10)

PRAKATA

Puji dan syukur penulis haturkan kepada Tuhan Yesus Kristus, karena atas berkat dan rahmat-Nya sehingga karya ilmiah ini bisa diselesaikan. Sembah syukur juga penulis panjatkan kepada Bunda Maria, atas terkabulnya Novena Salam Maria. Tema yang dipilih dalam penelitian yang dilaksanakan sejak Januari 2008 ini adalah bagaimana cara memodifikasi algoritme fungsi hash MD5 agar tahan terhadap serangan diferensial.

Terima kasih penulis sampaikan kepada Bapak Dr. Sugi Guritman dan Ibu Dra. Nur Aliatiningtyas, M.Si. selaku pembimbing. Selain itu penulis ucapkan terima kasih juga kepada:

1. Semua dosen dan staf Departemen Matematika IPB atas segala ilmu dan bantuannya.

2. Bapak Festus Simbiak selaku Dekan FKIP Uncen yang telah memberikan kesempatan untuk studi serta bantuan dana maupun moril.

3. Teman-teman seangkatan di Pascasarjana IPB: Sri Rosdiana, Is Esti Firmanesa, Sitta Alief Farihati, dan Asmara Iriani Tarigan yang telah memberi dorongan dalam penulisan tesis.

Semoga karya ilmiah ini bermanfaat.

Bogor, Agustus 2009 Agustinus Sroyer

(11)

RIWAYAT HIDUP

Penulis dilahirkan di Fakfak-Papua pada tanggal 15 Agustus 1980 dari ayah Yeremias Sroyer (alm.) dan Ibu Yulita Reprep (alm.). Penulis merupakan anak kedelapan dari duabelas bersaudara.

Pada tahun 1998 penulis kuliah di Universitas Cenderawasih Jayapura lewat Seleksi Lokal Siswa Berpotensi (SLSB) dan lulus tahun 2003 dan langsung menjadi asisten dosen pada program studi Pendidikan Matematika FKIP Universitas Cenderawasih. Tahun 2003 juga penulis diangkat menjadi CPNS, pengangkatan sebagai PN pada tahun 2005 dan sampai sekarang penulis bekerja sebagai staf pengajar pada Program Studi Pendidikan Matematika FKIP Universitas Cenderawasih.

Pada tahun 2006, atas inisiatif dan biaya sendiri penulis melanjutkan studi di Sekolah Pascasarjana Program Studi Matematika Terapan, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.

(12)

DAFTAR ISI

Halaman

DAFTAR TABEL ... xiii

DAFTAR GAMBAR ... xiv

DAFTAR LAMPIRAN ... xv PENDAHULUAN ... 1 Latar Belakang ... 1 Tujuan Penelitian ... 4 Manfaat Penelitian ... 4 LANDASAN TEORI ... 5 Fungsi ... 5 Fungsi Hash ... 7

Konstruksi Umum Fungsi Hash ... 11

Deskripsi Umum MD5 ... 14

Modular dan Xor ... 19

Diferensial Modular dan Xor ... 20

Serangan Diferensial pada Fungsi Hash ... 21

Penotasian Serangan Diferensial pada MD5 ... 23

Diferensial Tumbukan untuk MD5 ... 23

Langkah-langkah Syarat Cukup Dipenuhinya Karakteristik Diferensial pada MD5 ... 24

Modifikasi Algoritme Fungsi Hash MD5 ... 27

Jenis-jenis Serangan Fungsi Hash ... 27

HASIL DAN PEMBAHASAN ... 32

Analisis Syarat Cukup Karakteristik Diferensial pada MD5 ... 32

Modifikasi Algoritme MD5 dan Program MD5 beserta Implementasinya ... 46

SIMPULAN DAN SARAN ... 51

Simpulan ... 51

Saran ... 51

DAFTAR PUSTAKA ... 52

(13)

DAFTAR TABEL

Tabel 1 Tabel Xor Operasi Biner ... 19 Tabel 2 Tabel Waktu Hashing Algoritme MD5 dalam Detik ... 49 Tabel 3 Tabel Waktu Hashing Algoritme MD5 dalam Menit ... 50

(14)

DAFTAR GAMBAR

Gambar 1 Contoh Tumbukan Fungsi ... 7

Gambar 2 Klasifikasi Sederhana dari Kriptografi Fungsi Hash ... 11

Gambar 3 Model Umum Suatu Iterasi Fungsi Hash ... 13

(15)

DAFTAR LAMPIRAN

Lampiran 1 Tabel Karakteristik Diferensial Iterasi Pertama ... 53

Lampiran 2 Tabel Syarat Cukup Diferensial Iterasi Pertama ... 54

Lampiran 3 Tabel Karakteristik Diferensial Iterasi Kedua ... 55

Lampiran 4 Tabel Syarat Cukup Diferensial Iterasi Kedua ... 56

Lampiran 5 Program Hashing MD5 Asli ... 57

(16)

I PENDAHULUAN 1.1 Latar Belakang

Perkembangan dunia yang semakin maju dan modern ini tidak terlepas dari adanya peranan teknologi informasi. Berbagai bidang kehidupan pun tak luput dari penggunaan sarana informasi yang semakin canggih. Hal itu terlihat dengan adanya penggunaan komputer baik di rumah, sekolah, kantor, maupun jasa penyewaan (rental) komputer yang dengan mudahnya dapat kita temui di manapun kita berada. Pemakaian komputer pun tidak hanya sebatas mengetik tugas-tugas sekolah maupun tugas-tugas kantor, tetapi lebih dari pada itu digunakan untuk mengirim informasi/berita yang lebih kita kenal dengan surat elektronik atau electronic mail (email). Pengiriman email pun dapat dilakukan antar sahabat, antar dosen-mahasiswa, serta siapa saja baik dalam satu kota, antar kota, bahkan antar negara. Isi berita email pun tidak hanya sekedar mengetahui kabar masing-masing tetapi lebih dari itu, informasi atau dokumen paling rahasia pun dapat dikirim lewat email. Hal ini dikarenakan biaya pengiriman email yang sangat murah, mudah, dapat dikirim ke berbagai belahan dunia. Berkaitan dengan pengiriman informasi atau dokumen rahasia, apakah email dapat menjamin kerahasiaan? Untuk menjawab pertanyaan tersebut dibutuhkan suatu ilmu yang dapat menyembunyikan huruf atau tulisan sehingga tulisan tersebut tidak dapat dibaca oleh orang yang tidak berhak atau yang dikenal dengan ilmu kriptografi.

Kriptografi adalah studi teknik matematika yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi asal data (Menezes et al. 1996). Kerahasiaan berarti menjaga isi informasi dari semua yang tidak berwenang memilikinya. Integritas data berarti menjamin bahwa informasi yang dikirim tidak diganti oleh siapapun yang tidak berwenang. Autentikasi entitas berarti pembuktian yang kuat tentang identitas suatu entitas, yaitu unsur-unsur yang menjadi komponen dalam suatu transaksi informasi, bisa berupa orang, terminal komputer, kartu kredit, dan sebagainya. Autentikasi asal data (autentikasi pesan) berarti pembuktian yang kuat bahwa pesan benar-benar berasal dari sumber informasi.

Salah satu primitif kriptografi modern adalah fungsi hash kriptografi, atau sering disebut fungsi hash satu-arah. Fungsi hash adalah suatu fungsi yang

(17)

mengambil input (bitstring) dengan panjang sebarang dan mentransformasikannya menjadi suatu output (bitstring) dengan panjang tetap, biasanya disebut dengan nilai-hash (hash-value). Sebagai ilustrasi, jika x → h(x) nilai sebelum dan sesudah dihashing sama, berarti pesan masih asli tetapi kalau beda berarti pesan sudah diubah.

Kegunaan fungsi hash adalah untuk melindungi data. Dalam kriptografi dikenal dengan istilah integritas data (data integrity), maksudnya menjamin bahwa informasi yang dikirim tidak diganti oleh siapapun yang tidak berwenang.

Secara umum fungsi hash mempunyai 3 (tiga) sifat utama, yaitu pertama bersifat kompresi dan memudahkan perhitungan di mana jika diketahui h dan suatu input x, maka h(x) mudah dihitung; kedua bersifat satu-arah (one-way) di mana fungsi hanya bekerja dalam satu arah, untuk setiap h yang dihasilkan adalah tak layak untuk mencari nilai x sedemikian sehingga H(x) = h, sehingga pesan yang sudah diubah menjadi nilai hash sulit dikembalikan lagi menjadi pesan semula; ketiga bersifat tahan tumbukan di mana secara perhitungan tak layak mencari dua input berbeda x, x’ dengan x≠ x’ sehingga h(x’) = h(x) (Menezes et al. 1996).

Ketahanan tumbukan dibagi 2 (dua) yaitu ketahanan tumbukan lemah dan kuat (Menezes et al. 1996) . Ketahanan tumbukan lemah, jika diberikan x dan h(x), secara perhitungan infisibel untuk mencari sebarang x’, dengan

x

'

x

, sedemikian sehingga h(x')h(x). Di lain pihak, ketahanan tumbukan kuat, secara perhitungan infisibel untuk mencari pasangan

x

dan

x

'

, dengan

x

x

'

, sedemikian sehingga h(x)h(x'). Istilah lain dari ketahanan tumbukan adalah ketahanan tumbukan kuat. Tahan tumbukan ini bertujuan untuk mencegah pemalsuan, agar orang tidak bisa memperoleh input-input lain yang sama dengan nilai hash.

Prinsip kerja fungsi hash melalui 3 (tiga) langkah yaitu pertama padding, input x dengan

x

= b dibagi menjadi t blok, di mana setiap blok mempunyai panjang r dan b bukan kelipatan dari r, sehingga dilakukan penambahan bit ekstra (padding) agar blok terakhir mempunyai panjang r. Langkah kedua kompresi, di mana setiap blok xi adalah input dari fungsi kompresi f dengan menggunakan

(18)

proses iterasi H0 = VI0 dan Hi = f(Hi-1, xi), 1 ≤ i ≤ t. Langkah ketiga finalisasi, Ht ditransformasikan dengan suatu fungsi g ke suatu bitstring dengan panjang m.

Salah satu jenis fungsi hash adalah message digest five (MD5). Message digest bisa diartikan sebagai intisari pesan. MD5 didesain oleh Ron Rivest sebagai versi penguatan dari MD4. Secara umum, fungsi hash diiterasikan oleh fungsi kompresi X = f(Z) yang mengompres blok pesan Z berukuran l bit menjadi nilai hash X berukuran s bit, dengan s < l. Untuk MD5, nilai l = 512 bit dan s = 128 bit, dan metode iterasinya menggunakan Merkle-Damgard Meta Method. Untuk suatu pesan yang telah dilipatkan (padded message) M, berarti mempunyai panjang Hi+1 = f(Hi, Mi), 1 ≤ i ≤ t dengan M =

M0,M1,...,Mt1

dan H0 =

a0,b0,c0,d0

adalah nilai awal fungsi hash. MD5 memproses blok pesan Mi berukuran 512 bit, kemudian dibagi ke dalam 16 kata mj berukuran 32 bit, yaitu

m0,m1,...,m15

Mi  . Output dari MD5 berupa 4 buah blok pesan yang masing-masing berisi 32 bit yang mana akan menjadi 128 bit yang merupakan nilai hash.

Sejak MD5 pertama kali dipublikasikan tahun 1992, telah ditemukan beberapa kelemahan. Kelemahan ini ditemukan oleh Xiaoyun Wang dan Hongbo Yu dalam (2004), di mana serangan yang dilakukan adalah tipe serangan diferensial. Inti dari serangan ini adalah mencari pasangan

M0, M1

dan

M0 ,'M1'

. Pada artikel itu diperoleh bahwa tumbukan pada MD5 dapat dicapai secara efisien, yaitu dengan pencarian tumbukan pada blok pertama memerlukan 239 operasi MD5 dan pada blok kedua memerlukan waktu sekitar 232 operasi MD5.

Pada penelitian ini akan dimodifikasi algoritme dari fungsi hash MD5 yang didasarkan pada analisis syarat cukup serangan diferensial versi Wang. Pada algoritme ini terdapat 4 (empat) komponen utama yang sangat mempengaruhi tiap langkah pada proses iterasinya. Pertama, fungsi konstanta jumlah yaitu fungsi yang menghasilkan nilai-nilai konstanta pada tiap langkah dalam satu blok, t(i) = 232 abs (sin i) di mana i adalah sudut dalam radian. Kedua, konstanta putaran di mana konstanta ini mempunyai struktur yang teratur dan selalu tetap (berpengaruh pada kecepatan, semakin teratur maka semakin cepat). Ketiga, permutasi blok pesan. Keempat, fungsi ronde Boolean tak linear yaitu fungsi

(X,Y,Z) di mana

(19)

yang berpengaruh adalah nilai X. Keempat komponen ini juga merupakan kelemahan dalam algoritme MD5.

Pada penelitian ini akan dianalisis keempat kelemahan tersebut. Nilai konstanta jumlah, konstanta putaran, dan permutasi blok pesan diubah dari nilai konstanta bebas ke nilai hasil operasi beberapa variabel pada iterasi sebelumnya yang sifatnya merambat, dan fungsi boolean tak linear akan diubah rumusnya. Merambat berarti modifikasi tiap langkah berikutnya bergantung pada langkah sebelumnya.

Inti dari modifikasi ini adalah bagaimana membaharui algoritme yang sudah ada agar lebih baik dari sebelumnya. Di dalam modifikasi ini akan dianalisis syarat cukup berdasarkan Tabel Karakteristik Diferensial (Lampiran 1 & Lampiran 3), di mana akan dianalisis sampai pada langkah ketujuh dan syarat cukup selanjutnya mengacu pada Tabel Syarat Cukup (Lampiran 2 & Lampiran 4) yang sudah diperoleh Wang. Dari syarat cukup tersebut akan dianalisis mengapa serangan diferensial berhasil untuk menyerang MD5.

Penelitian yang dilakukan Wang, sudah dipertegas juga oleh Hawkes et al. (2004), di mana penelitian tersebut menjelaskan secara rinci langkah-langkah diperolehnya syarat cukup berdasarkan karakteristik diferensial. Dalam penelitian ini dilakukan penentuan syarat cukup setipe dengan Hawkes et al. tapi dengan pendekatan yang berbeda dan adanya penambahan dengan memodifikasi algoritme MD5. Implementasi dari penelitian ini adalah merekonstruksi algoritme MD5 menggunakan software maple dalam bentuk program hashing MD5 dan mengimplementasikan fungsi iterasi MD5 dan mengimplementasikan hasil modifikasi MD5.

1.2 Tujuan Penelitian

Penelitian ini bertujuan memodifikasi algoritme fungsi hash MD5 yang didasarkan pada analisis syarat cukup serangan diferensial yang diharapkan tahan terhadap serangan diferensial versi Wang.

1.3 Manfaat Penelitian

Hasil modifikasi dari algoritme fungsi hash MD5 ini diharapkan lebih baik dan lebih aman dari sebelumnya apabila digunakan untuk melindungi integritas data.

(20)

II LANDASAN TEORI

Pada bagian ini akan dijelaskan mengenai fungsi secara umum, fungsi hash, deskripsi MD5 dan jenis-jenis serangan fungsi hash.

2.1 Fungsi

Sebelum memberi definisi fungsi hash, akan dibahas dulu topik dasar matematika yang melandasi fungsi hash yaitu fungsi (definisi fungsi) beserta sifat-sifatnya, dan fungsi satu-arah (one-way).

2.1.1 Definisi Fungsi

Definisi 1.1 (Menezes et al. 1996) Suatu fungsi f dari himpunan A ke himpunan B, dinotasikanf :AB, didefinisikan sebagai suatu aturan yang memetakan setiap anggota A ke tepat satu anggota B. Dalam hal ini, A disebut domain dan B disebut kodomain dari f . Jika

a

A

dan

b

B

adalah hasil pemetaan dari

a

oleh f , maka

b

disebut imej dari

a

dan

a

disebut preimej dari

b

oleh f , dan dinotasikan

b

f

 

a

. Himpunan imej dari semua anggota A disebut imej dari f dan dinotasikan Im( f ). Jelas bahwa Im( f )  B.

2.1.2 Sifat-sifat fungsi

Ada 3 (tiga) sifat fungsi yang sangat penting, yaitu: injektif (satu-satu atau 1-1), surjektif (onto), dan bijektif (korespondensi satu-satu).

a. Injektif

Definisi 1.2 (Menezes et al. 1996) Suatu fungsi f :AB disebut fungsi satu-satu (1-1) jika setiap anggota dari B merupakan imej dari paling banyak satu anggota A. Dari definisi tersebut, jelas bahwa untuk fungsi f :AB yang injektif

A

B

(kardinalitas A harus sama dengan B atau kardinalitas B melebihi A).

b. Surjektif (onto)

Definisi 1.3 (Menezes et al. 1996) Suatu fungsi f :AB disebut fungsi onto jika setiap anggota dari B merupakan imej dari paling sedikit satu anggotaA, atau Im( f ) = B. Dengan kata lain, jika

f

 

A

B

artinya

y

B



x

A

,

y

f

 

x

atau b harus habis ( a sudah pasti) dan juga

B

A

(kardinalitas Blebih kecil dariA).

c. Bijektif

Definisi 1.4 (Menezes et al. 1996) Jika fungsi f :AB adalah fungsi satu-satu dan sekaligus fungsi onto, maka f disebut bijektif.

(21)

2.1.3 Fungsi satu arah (one-way)

Definisi 1.5 (Menezes et al. 1996) Suatu fungsi f :AB disebut dengan fungsi satu-arah jika untuk setiap

a

A

,

f

 

a

adalah mudah dihitung, tetapi untuk ‘kebanyakan’

 

f

b Im

adalah secara perhitungan tak layak (computationally infeasible) dapat menentukan

a

A

sehingga

b

f

 

a

.

Istilah ’kebanyakan’ dalam definisi di atas mempunyai makna bahwa berdasarkan fakta bisa jadi masih ada sebagian kecil

b Im

 

f

yang secara perhitungan dapat ditentukan

A

a

sehingga

b

f

 

a

.

Jika dikaitkan dengan fungsi hash yang akan dibahas berikutnya, dari definisi surjektif di atas terlihat bahwa

B

A

, b harus habis ( a sudah pasti). Ini mengandung arti bahwa berapapun banyaknya A harus dipasangkan ke B dan keduanya harus habis. Hal ini mengakibatkan

a

A

bisa dipasangkan dengan berapapun banyaknya

b

B

. Banyaknya pasangan inilah yang mengakibatkan adanya tumbukan (collision) (Ilustrasinya dapat dilihat pada Gambar 1).

Sebelum fungsi hash dibahas secara detail dan mengacu pada pengertian-pengertian fungsi di atas maka secara umum sifat fungsi hash yaitu fungsi yang tidak bijektif tetapi surjektif, fungsi satu arah (one-way), dan tahan tumbukan.

(22)

A

B

Gambar 1 Contoh tumbukan (collision) dengan fungsi f :AB di mana

seribu

bilangan

asli

pertama

A

dan

dua

puluh

enam

abjad

inggris

B

2.2 Fungsi Hash

Salah satu primitif kriptografi modern adalah fungsi hash kriptografi, seringkali disebut fungsi hash satu-arah. Berikut diberikan definisi sederhana fungsi hash (tidak harus satu-arah).

Definisi 1.6 (Menezes et al. 1996) Fungsi hash adalah fungsi yang secara komputasi

efisien memetakan bitstring dengan panjang sembarang ke bitstring dengan panjang tetap yang disebut nilai-hash (hash-value).

Untuk fungsi hash dengan output nilai-hash n-bit (yaitu n = 128 atau 160), probabilitas pemilihan string secara random yang dipetakan ke nilai-hash n-bit adalah 2-n. Berdasarkan definisi di atas, ide dasar dari fungsi hash adalah membuat string input menjadi teratur rapat dengan panjang seragam. Terkait dengan kegunaan kriptografi, fungsi hash h dipilih sedemikian sehingga secara komputasi tak-layak (sulit) menentukan input berbeda x dan y sehingga h(x) = h(y).

Secara umum fungsi hash dibagi menjadi dua kelas: fungsi hash tak berkunci (unkeyed hash function) dan fungsi hash berkunci (keyed hash function). Fungsi hash tak berkunci mempunyai spesifikasi mengatur parameter input tunggal (pesan). Fungsi hash berkunci mempunyai spesifikasi mengatur parameter dua input berbeda (pesan dan kunci). Terkait dengan klasifikasi tersebut, berikut didefinisikan fungsi hash yang lebih ditekankan pada sifat-sifatnya.

Definisi 1.7 (Menezes et al. 1996) Fungsi hash adalah fungsi h yang mempunyai minimal

dua sifat berikut:

1. 2. 3. 4. 5. . . . 1000 .A .B .C . . . .Z

Terlihat bahwa ujung anak panah berhimpit menunjukkan terjadi tumbukan (collision).

(23)

1. kompresi (compression): h memetakan input x dengan sembarang panjang bit yang berhingga, ke output h(x) dengan panjang bit tetap n.

2. kemudahan komputasi (ease of computation): diketahui h dan suatu input x, h(x) mudah dihitung.

Berdasarkan kegunaannya, fungsi hash dibedakan atas dua tipe:

1. MDC (manipulation detection code) atau message integrity code (MIC) merupakan subkelas dari fungsi hash tak berkunci. Tujuan dari MDC, dikaitkan dengan suatu mekanisme, adalah untuk memberikan jaminan integritas data sebagaimana diperlukan dalam suatu aplikasi khusus, khususnya dalam aplikasi skema digital signature. Pada MDC ini input dari fungsi hash hanyalah pesan yang akan dikirim dan tidak membutuhkan input kunci rahasia. Dua bahasan yang termasuk dalam MDC:

(a). fungsi hash satu-arah (one-way hash function - OWHF); fungsi hash ini mempunyai sifat bahwa diketahui suatu nilai-hash untuk menentukan sembarang inputnya adalah tak layak.

(b) fungsi hash tahan tumbukan (collision resistant hash function - CRHF); fungsi hash ini mempunyai sifat bahwa diketahui suatu nilai-hash untuk menentukan sembarang dua inputnya adalah tak layak.

2. MAC (message authentication code) merupakan subkelas dari fungsi hash berkunci.

MAC adalah fungsi hash untuk otentikasi data dengan teknik simetrik. MAC mempunyai dua parameter berbeda, yaitu: input pesan dan kunci rahasia. Sesuai dengan namanya, tujuan MAC (tanpa terkait dengan mekanisme yang lain) adalah untuk menjamin integritas pesan dan asal pesan.

Menyambung dua sifat pada Definisi 1.2, berikut ini diberikan tiga sifat penting untuk fungsi hash tak berkunci h dengan input x, x’ dan output y, y’:

1. ketahanan preimej (preimage resistance): jika diketahui sembarang nilai-hash y, maka secara perhitungan tak layak mencari x’ sehingga h(x’) = y. Istilah lain untuk ketahanan preimej adalah satu-arah (one-way).

2. ketahanan preimej kedua (2nd-preimage resistance): jika diketahui x, maka secara perhitungan tak layak mencari x’  x sehingga h(x’) = h(x). Istilah lain untuk ketahanan preimej kedua adalah ketahanan tumbukan lemah (weak collision resistance).

3. ketahanan tumbukan (collision resistance): secara perhitungan tak layak mencari dua input berbeda x, x’ sehingga h(x’) = h(x). Istilah lain untuk ketahanan tumbukan adalah ketahanan tumbukan kuat (strong collision resistance).

(24)

Definisi 1.8 (Menezes et al. 1996) One Way Hash Function (OWHF) adalah fungsi hash

dengan dua sifat pada Definisi 1.7 ditambah sifat ketahanan preimej dan ketahanan preimej kedua. Istilah lain untuk OWHF adalah fungsi hash satu-arah lemah. OWHF adalah fungsi hash yang bekerja dalam satu arah artinya pesan yang sudah diubah menjadi nilai hash sulit dikembalikan lagi menjadi pesan semula (irreversible).

Definisi 1.9 (Tilborg 2005) One Way Hash function (OWHF) adalah suatu fungsi h yang

memenuhi kondisi-kondisi sebagai berikut:

 input x dengan panjang sembarang dan hasil h(x) mempunyai panjang n bit yang tetap,

 fungsi hash menjadi satu arah (one way) jika diberikan suatu y dalam h, ini adalah komputasional yang tak layak untuk memperoleh x sehingga h(x)=y dan jika diberikan x dan h(x) maka secara perhitungan tak layak untuk memperoleh suatu pesan x  x’ sehingga h(x) = h(x’).

Definisi 1.10 (Menezes et al. 1996) Collision Resistance Hash Function (CRHF) adalah

fungsi hash dengan dua sifat pada Definisi 1.7 ditambah sifat ketahanan preimej kedua dan ketahanan tumbukan. Istilah lain untuk CRHF adalah fungsi hash satu-arah kuat.

Definisi 1.11 (M. Stamp dan R. M. Low 2007) Suatu kriptografi fungsi hash, dinotasikan

dengan h(x), harus memenuhi semua yang berikut:

 Kompresi (compression): untuk sebarang input

x

, output yh(x) adalah kecil. Pada umumnya kriptografi fungsi hash menghasilkan suatu ukuran output yang tetap, bagaimanapun juga panjang input, dengan tipe panjang output 128 sampai 512 bit.

 Efisiensi (efficiency): efisien menghitung h(x) untuk sebarang input

x

. Perhitungan bergantung pada panjang

x

.

 Satu arah (one-way): Secara perhitungan infisibel menginverskan suatu hash. Diberikan y, tidak dapat mencari nilai

x

sedemikian sehingga h(x) y.

 Tahan tumbukan lemah (weak collision resistance): diberikan

x

dan h(x), secara perhitungan infisibel untuk mencari sebarang

w

, dengan wx, sedemikian sehingga h(w)h(x).

 Tahan tumbukan kuat (strong collision resistance): secara perhitungan infisibel untuk mencari pasangan

x

dan

w

, dengan xw, sedemikian sehingga

) ( ) (x h w h  .

Definisi 1.12 (ANSI X9.62, 1998) Cryptographic Hash Function. Suatu fungsi

(25)

nilai-nilai yang berukuran lebih kecil (smaller range). Fungsi tersebut mempunyai sifat-sifat sebagai berikut:

 Secara komputasional yang tidak mungkin untuk memperoleh sembarang input yang dipetakan ke sembarang output yang ditentukan sebelumnya.

 Secara komputasional yang tidak mungkin untuk memperoleh sembarang dua input yang berbeda yang dipetakan ke sembarang output yang sama.

Secara umum, klasifikasi kriptografi fungsi hash adalah sebagai berikut:

Gambar 2 Klasifikasi sederhana dari kriptografi fungsi hash dan aplikasinya (Gambar 9.1, Handbook Applied of Cryptographi, Halaman 324)

2.3 Konstruksi Umum Fungsi Hash

Kebanyakan fungsi hash h didesain melalui proses iteratif yang menginputkan bitstring dengan panjang sembarang dan mengoutputkan bitstring dengan panjang tetap. Misalkan x adalah bitstring dengan panjang sembarang |x| = b; nilai hash h(x) adalah bitstring dengan panjang tetap |h(x)| = m dihitung melalui tahapan proses berikut ini: 1. Proses Penambahan Bit Ekstra (padding). Input x dibagi menjadi t blok,

x = x1x2x3…xt, unkeye d keyed modification detection (MDCs) other aplication other aplication message authenticati on (MACs) OWHF CRHF preimage 2nd preimage collision hash functions

(26)

yang setiap blok xi mempunyai panjang |xi| = r. Dalam hal b bukan kelipatan dari r,

dilakukan proses penambahan bit ekstra (padding) agar blok terakhir mempunyai panjang r: Sering juga ditambahkan blok ekstra xt+1 sebagai representasi biner rata

kanan dari b. Blok ini menyimpan informasi panjang x yang asli.

2. Proses Kompresi. Setiap blok xi akan bertindak sebagai input dari fungsi kompresi f

yang menghitung secara iteratif dengan rumusan

H0 = V I; Hi = f(Hi-1,xi); 1  i  t.

H0 adalah vektor inisial yang nilainya didefinisikan sebelumnya, Hi adalah nilai

berantai yang disebut variabel berantai (chainning variable) merupakan bitstring dengan panjang |Hi| = n. Output dari proses ini adalah Ht. Sebagai contoh: untuk t =

5, H1 = f(Ho, x1); H2 = f(H1, x2); H3 = f(H2, x3); H4 = f(H3, x4); dan H5 = f(H4, x5).

3. Proses Finalisasi. Proses ini sifatnya opsional, yaitu metransformasikan Ht oleh

fungsi g ke bitstring dengan panjang m, h(x) = g(Ht); |h(x)| = m

Jika proses ini tidak dilakukan berarti g adalah fungsi identitas, yaitu g(Ht) = Ht.

Pendefinisian komponen-komponen proses di atas, harus dipertimbangkan sifat keamanan dari h, yaitu sebagai fungsi satu arah dan tahan tumbukan. Misalnya, agar tahan terhadap serangan hari lahir (birthday attack), dianjurkan m cukup besar. Hal ini bisa dilakukan dengan mendefinisikan h(x) = Ht-1||Ht.

(27)

Gambar berikut adalah model/konstruksi umum suatu iterasi fungsi hash: input x

Gambar 3 Model umum suatu iterasi fungsi hash (Gambar 9.2.b, Handbook Applied of Cryptographi, Halaman 332)

Suatu fakta menyatakan bahwa fungsi kompresi yang tahan tumbukan dapat digunakan untuk mengonstruksi fungsi hash tahan tumbukan. Fakta ini dirinci dalam algoritme berikut.

Algoritme 1 (Merkle meta-method for hashing) (Menezes et al. 1996)

INPUT: Fungsi kompresi tahan tumbukan f yang memetakan string (n+r)-bit ke string n-bit.

OUTPUT: Fungsi hash h yang tahan tumbukan.

1. Dipecah x menjadi x = x1x2x3…xt dengan |xi| = r. Jika r b; lakukan padding pada

xt dengan bit-0 agar |xt| = r.

Preprocessing (sebelum proses) fungsi hash h

menambahkan bit ekstra

menambahkan panjang blok f format input x = x1x2…xt fungsi kompresi f xi Hi H o = VI g output h(x) = Ht proses iterasi Hi-1

(28)

2. Definisikan blok ekstra xt+1 = (b)2 sebagai representasi biner rata kanan (anggap

sebelumnya bahwa b < 2r).

3. Definisikan nilai hash n-bit sebagai h(x) = Ht+1 = f(Ht||xt+1)

dihitung dari

H0 = 0n; H

i = f(Hi-1||xi); 1  i  t + 1.

Catatan bahwa 0n adalah string n-bit yang semua simbolnya 0.

Metode padding diberikan dalam dua algoritme berikut.

Algoritme 2 (Metode Padding 1) (Menezes et al. 1996)

INPUT: Bitstring x dengan panjang bebas.

OUTPUT: Bitstring x’ dengan panjang kelipatan dari r.

1. Rangkaikan pada x dengan string bit-0 sehingga menjadi bitstring x’ dengan panjang kelipatan dari r.

Algoritme 3 (Metode Padding 2) (Menezes et al. 1996)

INPUT: Bitstring x dengan panjang bebas.

OUTPUT: Bitstring x’ dengan panjang kelipatan dari r. 1. Rangkaikan pada x dengan satu bit-1.

2. Kemudian, rangkaikan dengan string bit-0 sehingga menjadi bitstring x’ dengan panjang kelipatan dari r.

Metode padding 1 menimbulkan kerancuan karena batasan antara bitstring sebelum dan sesudah padding tidak bisa dibedakan kecuali kalau bitstring sebelum padding diketahui panjangnya. Hal ini tidak terjadi pada metode padding 2, bahkan ketika panjang dari x sudah merupakan kelipatan dari r, padding pada x menciptakan blok ekstra.

2.4. Deskripsi Umum MD5

MD5 (message digest five) adalah fungsi hash yang didesain oleh Ron Rivest sebagai versi penguatan dari MD4. Sejak pertama kali dipublikasikan telah ditemukan beberapa kelemahan. Pada penelitian ini akan dianalisis syarat cukup dipenuhinya karakteristik kriptanalisis diferensial dari salah satu serangan pada MD5 dari Artikel Xiaoyun Wang dan Hongbo Yu. Inti dari serangan ini adalah mencari pasangan (M0, M1) dan (M0’, M1) sehingga: ) ' ,' ,' ,' ,' ( 5 ) , , , , ( 5 ) ' , , , , ( 5 ) ' ,' ,' ,' ( ) , , , , ( 5 ) , , , ( 1 1 0 0 0 0 0 0 0 0 0 0 M d c b a MD M d c b a MD M d c b a MD d c b a M d c b a MD d c b a   

(29)

Sebelum membahas bagaimana serangan diferensial dilakukan pada MD5, akan dijelaskan dulu struktur MD5.

Secara umum, fungsi hash diiterasikan oleh fungsi kompresi X = f (Z) yang mengompres blok pesan Z berukuran l bit menjadi nilai hash X berukuran s bit, dengan s < l. Untuk MD5, nilai l = 512 bit dan s = 128 bit, dan metode iterasinya menggunakan Merkle-Damgard Meta Method.

Untuk suatu pesan yang telah dilipatkan (padded message) M, berarti mempunyai panjang kelipatan dari l, proses iterasinya dinyatakan sebagai:

,

, 0 1

1   

f H M i t

Hi i i

Dengan menggunakan fungsi Hi1f

Hi,Mi

;0it1, maka proses iterasinya:

1 1

2 2 3 1 1 2 1 , : , , ,       t t t o o M H f H M H f H M H f H M H f H

Dalam hal tersebut M

M0,M1,...,Mt1

dan H0 adalah nilai awal fungsi. Catatan bahwa sebelum proses iterasi dilakukan, terlebih dahulu dilakukan proses padding, yang pada tulisan ini tidak diberikan karena tidak mempengaruhi serangan.

Pada MD5, setiap blok pesan Mi berukuran 512 bit dibagi ke dalam 16 kata mj

berukuran 32 bit, yaitu:

m0,m1,...,m15

Mi

sehingga bisa ditulis sebagai berikut:

  

bit t bit bit bit o

M

M

M

M

M

512 1 512 2 512 1 512

...,

,

,

,

         15 2 1, ,..., ,m m m mo          15 2 1, ,..., ,m m m mo

) 32 ( 1 15 ) 32 ( 1 2 ) 32 ( 1 1 ) 32 ( 1

,...,

,

,

bit kata bit kata bit kata bit kata o

m

m

m

m

dst.

(30)

Output dari Mo adalah: a16,b16,c16,dand16 Untuk selanjutnya output ini adalah

nilai dari H1. Analog juga untuk blok pesan M1 dikompres dengan a16,b16,c16,dand16 sebagai nilai awal, sehingga output dari komputasi 16 langkah pada ke-4 ronde untuk memproses M1 adalah a32,b32,c32,dand32.

Untuk selanjutnya output ini adalah nilai awal dari H2. Dan H2 ini adalah nilai awal

dari H3. Demikian seterusnya untuk blok pesan M2, M3, ... , Mt-1.

Algoritme kompresi untuk Mi dilakukan dalam 4 ronde, masing-masing melibatkan

16 operasi. Operasi yang dilibatkan: "+" (jumlah modulo 232), "

" (disjungsi ekslusif atau Xor), operasi logika per bit ("" adalah operasi konjungsi, "" adalah operasi disjungsi inklusif, dan "" adalah negasi), "" (rotasi geser kiri putar). Berikut ini diberikan deskripsi lengkap untuk memproses M0.

 Diberikan nilai awal variabel rantai:

a = 0x67452301, b = 0xefcdab89, c = 0x98badcfe, d = 0x10325476  Menggunakan fungsi ronde tak linear dengan rumus:

Ket.: Pada buku Applied Cryptanalysis (Mark Stamp dan Richard M. Low, 2007), fungsi ronde tak linear ditulis:

X

Y

Z

F

,

,

X

Y

 

X

Z

, 0 i15

X

Y

Z

G

,

,

X

Z

 

Y

Z

, 16 i31

X

Y

Z

H

,

,

X

Y

Z

,

32

 i

47

X

Y

Z

I

,

,

Y

X

Z

, 48 i63

di mana: X,Y,Z adalah kata-kata 32 bit.  Komputasi 16 langkah pada Ronde-1:

X

Y

 

X

Z

,

0

i

15

X

Z

 

Y

Z

,

16

i

31

47 32 ,    Y Z i X

,

48

63

X

Z

i

Y

 i X,Y,Z

(31)

, , 0 1 22

17 242070 0 , , 12 756 7 8 0 , , 7 478 76 0 , , 3 3 2 2 1 1 0 0                             bdceee xc m a d c b c b db x m b a d c d c b c xe m c b a d a d aa xd m d c b a b a

, , 0 469501 22

17 8304613 0 , , 12 62 4787 0 , , 7 0 57 0 , , 7 7 6 6 5 5 4 4                             xfd m a d c b c b xa m b a d c d c a c x m c b a d a d faf c xf m d c b a b a

, , 0 895 7 22

17 1 5 0 , , 12 7 44 8 0 , , 7 8 698098 0 , , 11 11 10 10 9 9 8 8                             be cd x m a d c b c b bb xffff m b a d c d c af f b x m c b a d a d d x m d c b a b a

, , 0 49 40821 22

17 679438 0 , , 12 987193 0 , , 7 901122 6 0 , , 15 15 14 14 13 13 12 12                             b x m a d c b c b e xa m b a d c d c xfd m c b a d a d b x m d c b a b a

 Komputasi 16 langkah pada Ronde-2:

, , 0 9 6 7 20

14 51 5 265 0 , , 9 340 040 0 , , 5 2562 61 0 , , 0 19 11 18 6 17 1 16                             aa c b xe m a d c b c b a e x m b a d c d c b xc m c b a d a d e xf m d c b a b a

, , 0 7 3 8 20

14 681 1 8 0 , , 9 02441453 0 , , 5 105 62 0 , , 4 23 15 22 10 21 5 20                             fbc d xe m a d c b c b e a xd m b a d c d c x m c b a d a d d f xd m d c b a b a

, , 0 455 14 20

14 87 50 4 0 , , 9 6 33707 0 , , 5 6 1 21 0 , , 8 27 3 26 14 25 9 24                             ed a x m a d c b c b d d xf m b a d c d c d xc m c b a d a d cde e x m d c b a b a

, , 0 8 2 4 8 20

14 9 02 676 0 , , 9 8 3 0 , , 5 905 3 9 0 , , 12 31 7 30 2 29 13 28                             a c a d x m a d c b c b d f x m b a d c d c f xfcefa m c b a d a d e e xa m d c b a b a

(32)

 Komputasi 16 langkah pada Ronde-3:

, , 0 5380 23

16 6122 9 6 0 , , 11 681 8771 0 , , 4 23942 0 , , 14 35 11 34 8 33 5 32                             c xfde m a d c b c b d d x m b a d c d c f x m c b a d a d xfff m d c b a b a

, , 0 70 23

16 60 4 6 0 , , 11 9 4 0 , , 4 44 4 0 , , 10 39 7 38 4 37 1 36                             xbebfbc m a d c b c b b bb xf m b a d c d c bdecfa x m c b a d a d abeea x m d c b a b a

, , 0 04881 05 23

16 3085 4 0 , , 11 127 0 , , 4 6 7 289 0 , , 6 43 3 42 0 41 13 40                             d x m a d c b c b ef xd m b a d c d c fa xeaa m c b a d a d ec b x m d c b a b a

, , 0 4 5665 23

16 8 27 1 0 , , 11 5 99 6 0 , , 4 039 4 9 0 , , 2 47 15 46 12 45 8 44                             aac xc m a d c b c b cf fa x m b a d c d c e db xe m c b a d a d d d xd m d c b a b a

 Komputasi 16 langkah pada Ronde-4:

, , 0 93 039 21

15 7 9423 0 , , 10 97 432 0 , , 6 4292244 0 , , 5 51 14 50 7 49 0 48                             a xfc m a d c b c b a xab m b a d c d c aff x m c b a d a d xf m d c b a b a

, , 0 85845 21

15 47 0 , , 10 92 0 8 0 , , 6 3 59 655 0 , , 1 55 10 54 3 53 12 52                             dd x m a d c b c b d xffeff m b a d c d c ccc f x m c b a d a d c b x m d c b a b a

, , 0 4 0811 1 21

15 3014314 0 , , 10 0 6 2 0 , , 6 4 87 6 0 , , 13 59 6 58 15 57 8 56                             a e x m a d c b c b xa m b a d c d c e ce xfe m c b a d a d f e fa x m d c b a b a

(33)

, , 0 86 391 21

15 2 7 2 0 , , 10 235 3 0 , , 6 82 7537 0 , , 9 63 2 62 11 61 4 60                             d xeb m a d c b c b bb d ad x m b a d c d c af xbd m c b a d a d e xf m d c b a b a

Secara sama, blok pesan M1 dikompres dengan nilai a, b, c, dan d adalah output

dari kompresi blok pesan M0. Demikian seterusnya, untuk blok pesan M2, M3, ..., Mt-1.

2.5 Modular dan XOR

Operasi modular adalah operasi dengan menggunakan perpangkatan 2 atau operasi modulo. Di sisi lain untuk operasi exclusive or (Xor) atau biasa ditulis

"

"

sama artinya dengan operasi modulo 2 , di mana bernilai 1 jika dan hanya jika tepat satu dari kedua operand bernilai 1. Tabel nilai Xor:

A B A

B 0 0 1 1 0 1 0 1 0 1 1 0

Tabel 1 Tabel Xor operasi biner 2.6 Diferensial Modular dan Xor

Metode analisis terpenting untuk fungsi hash adalah serangan diferensial yang juga merupakan salah suatu metode terpenting untuk serangan sandi blok. Serangan diferensial pertama kali diperkenalkan oleh E. Biham dan A. Shamir untuk menganalisis DES-like dengan mengesploitasi karakteristik operasi Xor.

Definisi diferensial dalam tulisan ini adalah eksploitasi kombinasi dari beda (differences) dalam operasi substraksi intejer modular dan operasi Xor. Kombinasi yang demikian akan memberikan informasi lebih banyak dari pada eksploitasi yang dilakukan pada masing-masing operasi secara terpisah. Sebagai contoh, beda substraksi intejer modular X'X 26 untuk suatu nilai

X

, maka beda Xor

X

'

X

bisa mempunyai banyak kemungkinan yang dijelaskan sebagai berikut:

1. Beda 1 bit di posisi 7, berarti bit ke-7 dalam

X

'

adalah 1, bit ke-7 dalam

X

adalah 0, dan X'X 26. Dalam kasus modulo 232, banyaknya pasangan

X

, X

'

yang memenuhi X'X 26mod232 dan X'X 26 adalah 231.

(34)

2. Beda 2 bit di posisi 7 dan 8, berarti bit ke-7 dan ke-8 dalam

X

'

adalah 01, bit ke-7 dan ke-8 dalam

X

adalah 10, dan X'X 2726. Dalam kasus modulo 232, banyaknya pasangan

X

, X

'

yang memenuhi X'X 26mod232 dan

6 7 2 2 'X  

X adalah 230.

3. Beda 3 bit di posisi 7, 8, dan 9, berarti bit ke-7, ke-8 dan ke-9 dalam

X

'

adalah 001, bit ke-7, ke-8, dan ke-9 dalam

X

adalah 110, dan X'X 282726. Dalam kasus modulo 232, banyaknya pasangan

X

, X

'

yang memenuhi

32 6mod2 2 'X

X dan X'X 282726 adalah 229.

4. Secara umum, untuk beda

s

bit di posisi 7 sampai dengan

7

 s

1

, berarti

s

bit dalam

X

'

adalah 000...01 dan

s

bit dalam

X

adalah 111...10. Dalam kasus modulo 232, banyaknya pasangan

X

, X

'

yang memenuhi X'X 26mod232 dan

6 7 2 6 1 6 2 ... 2 2 2 'X  s  s    X adalah 232s, untuk

1

 s

26

.

5. Dalam kasus beda negatif, sebagai misal X'X 26, beda XOR

X

'

X

mempunyai nilai pola yang sama, yaitu dengan menukar pengurangan X  X'26, dalam hal ini

s

bit dalam

X

'

adalah 111...10 dan

s

bit dalam

X

adalah 000...01. Perhatikan bahwa: t t t X X X X' 2 mod232 ' 231230...212

Untuk menjelaskan serangan diferensial yang dilakukan pada MD5 mengacu pada beda modular di dalam jalur diferensial pada tabel.1. Tabel ini mendaftarkan kedua macam beda secara bersama-sama, menggunakan tanda positif dan negatif untuk intejer modulo 232 dan Xor. Beda Xor didaftarkan sebagai bit aktif beserta tandanya, bit-bit 0 dalam

X

diberikan tanpa tanda dan bit-bit 1 dalam

X

diberi tanda negatif. Sebagai contoh, beda:

7,8,9,...,22, 23

,

26

Menandakan substraksi intejer modular X'X 26 (dalam hal ini

X

X

'

) dengan beda XOR: 6 7 21 22 2 ... 2 2 2 'X      X ,

posisi bit ke-7 sampai dengan ke-22 adalah 0 dan ke-23 adalah 1 dalam

X

, sedangkan dalam

X

'

posisi bit ke-7 sampai dengan ke-22 adalah 1 dan ke-23 adalah 0.

(35)

Beda (difference) parameter untuk dua parameter X dan X’ didefinisikan sebagai beda modular

∆X = X’ – X

Sembarang dua pesan M dan M’ dengan panjang kelipatan l bit, dituliskan sebagai barisan blok dengan panjang l bit

M = (M0, M1, M2, ..., Mk-1)

M’ = (M

0’, M1’, M2’, ..., Mk-1’)

Diferensial penuh untuk suatu fungsi hash didefinisikan

  H

H

H H MM MM MM MkMk  0 0 1 1' 2, 2' 1, 1' 2 , 1 ' , 0 ...

dimana ∆H0 adalah beda nilai awal yang jelas sama dengan nol. ∆H merupakan beda

output dari dari dua pesan yang bersangkutan. ∆Hi = ∆VIi adalah beda output pada iterasi

ke-i yang juga merupakan beda inisial untuk iterasi berikutnya.

Jelas bahwa jika ∆H = 0 atau HiHi'Hi 0, maka terjadi tumbukan antara M dan M’. Diferensial yang menghasilkan tumbukan disebut tumbukan diferensial (collision differential).

Diberikan fungsi hash yang mempunyai 4 ronde, dan setiap ronde mempunyai 16 langkah, maka diferensial iterasi ke-i, Hi

Mi,Mi'

Hi1, dapat dirinci dalam 4 ronde sebagai berikut:

1 4 , 1 3 , 1 2 , 1 1 , 1 2 3 4 1              P i i i P i P i P i R R R R H H

dengan

0

 i

15

. Ri1,1 adalah langkah ke-i+1 ronde pertama, dan seterusnya. Diferensial ronde Rj PjRj

1 , untuk j = 1,2,3,4, dengan probabilitas Pj, dapat

dirinci ke dalam karakteristik diferensial 16 langkah sebagai berikut:

j P P P P j X X X R R j  j  j j   1 1 1 2 2 3 ... 16 16 di mana Xt PjtXt

1 , untuk t = 1,2,3,...,16, merupakan karakteristik diferensial dalam langkah ke-t pada ronde ke-j.

Probabilitas P dari diferensial

, '

1

        M M i i H H i i memenuhi: j j P P

4 1 dan Pj

tPjt 16 1

Ada dua macam modifikasi pesan untuk mengoptimalkan diferensial tumbukan: 1 Untuk sembarang pasangan blok pesan

M

i

,

M

i'

dan diferensial tak nol pada ronde

Gambar

Gambar 1 Contoh tumbukan (collision) dengan fungsi  f : A  B  di mana
Gambar 2 Klasifikasi sederhana dari kriptografi fungsi hash dan aplikasinya (Gambar 9.1,  Handbook Applied of Cryptographi, Halaman 324)
Gambar berikut adalah model/konstruksi umum suatu iterasi fungsi hash:
Tabel 1 Tabel Xor operasi biner  2.6 Diferensial  Modular  dan  Xor
+2

Referensi

Dokumen terkait

Peraturan Pemerintah Nomor 23 Tahun 2OOS tentang Pengelolaan Keuangan Badan Layanan Umum (Lembaran Negara Republik Indonesia Tahun 2005 Nomor 48, tambahan Lembaran

Babadoko (2016) melakukan penelitian terhadap pasien normal menunjukkan bahwa nilai rerata hitung hema- tokrit dan hitung jumlah leukosit menggunakan metode manual tidak

Studi yang bertujuan untuk menguji performa model WRF dalam melakukan prediksi cuaca pada saat kejadian banjir Jakarta tanggal 17 Januari 2013 diharapkan dapat menjadi

bayar pajak, belum adanya sistem yang dhujukan untuk wajib pajak yang ingin mengetahui informasi yang dibutuhkan wajib pajak mengenai pajak bumi dan bangunan serta urunan

Peserta Museum Keliling dibagi menjadi dua kelompok; sebagian menuju ruang OP untuk mengikuti ceramah, dongeng, dan menonton film, sebagian melakukan aktivitas di ruang pameran

Katup kerja tekanan rendah pada butterfly valve sering dilapisi dengan karet atau bahan lain, Badan butterfly valve dalam ukuran kecil secara langsung dipaksa keluar ke pipa

Hasil analisa perilaku produksi dan tekanan dari sumur-sumur yang berproduksi dari formasi produktif vulkanik jatibarang menyimpulkan bahwa distribusi zona produksi

Dalam hal ini perlu ada upaya guna mengintegrasikan lahan dari tiap pegaram dengan mengadopsi konsep “corporate farming” atau pembentukan kelompok atau usaha bersamamelalui