• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

Membagikan "II LANDASAN TEORI. Pada bagian ini akan dijelaskan mengenai fungsi secara umum, fungsi hash, deskripsi MD5 dan jenis-jenis serangan fungsi hash."

Copied!
25
0
0

Teks penuh

(1)

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.

(2)

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.

(3)

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).

(4)

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).

(5)

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 matematika yang memetakan nilai-nilai dari yang berukuran besar (large domain) ke

(6)

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

(7)

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

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.

(8)

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

(9)

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; Hi = 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   

(10)

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.

(11)

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

(12)

, , 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

(13)

 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

(14)

, , 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.

(15)

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 XX'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.

(16)

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

(17)

1 , 1 , '         M M i i R H i i i

M dapat dengan mudah dimodifikasi untuk menjamin bahwa diferensial pada ronde pertama tersebut mempunyai probabilitas

P

1

1

.

2 Dengan menggunakan teknik modifikasi multi-pesan, diferensial pada ronde pertama tidak hanya mempunyai probabilitas 1, tetapi juga dapat memperbesar probabilitas diferensial pada ronde kedua.

Untuk mengoptimalkan diferensial suatu fungsi hash, sebaiknya dipilih beda blok pesan yang menghasilkan diferensial dua ronde terakhir mempunyai probabilitas yang tinggi.

2.8 Penotasian Serangan Diferensial pada MD5

Sebelum menjelaskan bagaimana serangan diferensial dilakukan pada MD5, diperkenalkan terlebih dahulu notasi-notasi yang digunakan untuk memudahkan pembahasan.

1 M

m0,m1,...,m15

dan M'

m0,'m1',...,m15'

merepresentasikan dua blok pesan 512 bit. M

m0,m1,...,m15

menotasikan beda dua blok pesan yang bersangkutan.

2 ai,bi,ci,di secara berurutan menotasikan output langkah ke-

4

i

3

, ke-

4

i

2

, ke-

4

i

1

dan ke-

4

i

untuk mengompresi

M

, di mana

1

i

16

.

ai ,'bi ,'ci ,'di'

didefinisikan serupa.

3 ai,j,bi,j,ci,j,di,j secara berurutan merepresentasikan bit ke- j dari ai,bi,ci,di, di mana bit paling signifikan adalah bit ke-32 dan yang paling tidak signifikan adalah bit ke-1.

4 i,j adalah output bit ke- j dari fungsi i pada operasi langkah ke-

i

.

5 xi,jxi,j'xi,j 1 adalah beda bit yang dihasilkan dengan mengubah bit ke- j dari xi. Notasi xi

 

j dan xi

 

j ,

x

bisa berupa a,b,c,d atau , merupakan hasil

dari perubahan bit ke- j tersebut dari kata xi.xi

 

j diperoleh dari mengubah bit ke-j untuk xi dari bit 0 ke bit 1, xi

 

j diperoleh dari mengubah bit ke- j untuk xi

dari bit 1 ke bit 0.

6. xi

j1,j2,...,jt

xi

j1,j2,...,jt

xi adalah beda yang diperoleh dengan mengubah bit ke-

j

1, ke-

j

2, ..., ke- jt dari xi. Sedangkan, xi

j1,j2,...,jt

adalah hasil dari

(18)

pengubahan tersebut. Tanda ”+” (biasanya tidak dituliskan) adalah pengubahan dari bit 0 ke 1, sebaliknya tanda ”-” adalah pengubahan dari bit 1 ke 0.

2.9 Diferensial Tumbukan untuk MD5

Dalam tulisan ini dipilih diferensial tumbukan dengan dua iterasi sebagai berikut:

   , '

0

1 ' , 0

0

0

1

1

H

M M

H

M M

H

di mana

0,0,0,0,2 ,0,0,0,0,0,0,2 ,0,0,2 ,0

' 31 15 31 0 0 0    M M M

0,0,0,0,2 ,0,0,0,0,0,0, 2 ,0,0,2 ,0

' 31 15 31 1 1 1     M M M

31 31 25 31 25 31 25

1  2 ,2 2 ,2 2 ,2 2 H

Isian tak-nol dari M0 dan

M

1 dilokasikan pada posisi 5, 12 dan 15.

a

b

c

d

H

1

,

,

,

adalah beda 4 nilai berantai

a

,

b

,

c

,

d

setelah iterasi pertama.

Dalam tulisan ini juga dipilih M0 untuk menjamin bahwa diferensial pada ronde 3-4 terjadi dengan probabilitas tinggi.

M

1 dipilih tidak hanya untuk menjamin bahwa diferensial pada ronde 3-4 terjadi dengan probabilitas tinggi, tetapi juga menghasilkan beda output yang bisa dibatalkan dengan beda output

H

1.

2.10 Langkah-langkah untuk Syarat Cukup Dipenuhinya Karakteristik Diferensial pada MD5

Pengerjaan langkah-langkah ini mengacu pada karakteristik diferensial iterasi pada Lampiran 1. Target hasil yang diharapkan seperti pada Lampiran 2 (bisa jadi nilai-nilainya berbeda).

Sebagai contoh penentuan syarat cukup pada langkah ke-5, Lampiran 1.

Diketahui s4 = 7,

w

4

m

4

'

m

4= 231,

a

2

a

2

'

a

2 = -26, dan

]

7

...,

,

22

,

23

[

2

a

yang menandakan beda tanda perubahan bit. Dengan

menggunakan iterasi langkah ke-2 pada ronde pertama,

] ' ,' ,' ,' [ ' ] ' ,' ,' ,' [ ' ] , , , [ ] , , , [ 1 1 2 1 1 , 2 ' 1 1 1 1 1 1 1 2 1 1 , 2 1 1 1 1 1 4 4 c b a d R d c b a R c b a d R d c b a R m m         dan

(19)

                   4 7 0 57 0 , , 1 1 4 1 4 1 1 2 K faf c xf m d c b a b a       dan W4 =

a

1

4

(

b

1

,

c

1

,

d

1

)

t

4

sehingga a2 dan a2’ dapat ditulis,

) 7 ' ( ' ) 7 ( 4 1 2 4 1 2       K b a K b a Karena 31 4 2

w maka w4,32 1 dan m4,im4,i' untuk 1 ≤ i ≤ 31.

Syarat cukup agar

a

2

[

23

,

22

,

...,

7

]

terjadi, maka

a

2

b

1

(

K

4



7

)

maka

))

7

(

(

1 4 2



a

b

K

.

Penentuan posisi bitnya, yaitu

Posisi bit b1 32 ... 24 23 22 ... 8 7 6 ... 1

Posisi bit K4<<<7 25 ... 17 16 15 ... 1 32 31 ... 26

sehingga, posisi bit a2 sama dengan b1 dan m4 sama dengan K4.

Karena b1 = b1’ dan

m

4 = 231 menyebabkan K4, 26-31 = K4’,26-31, maka pengambilan

sebarang m4, 26-31 dijamin tidak menyebabkan perubahan bit pada a2, 1-6. Hasil

penghitungan ini mengandung nilai bawaan pada bit ke-7 untuk a2 dinotasikan dengan s7.

Dalam kasus ini s7’ = s7.

Untuk pengambilan pasangan

m4,32,m'4,32

dengan w4,32 1 dijamin menyebabkan perubahan bit pada a2,7, karena b1 = b1’ dan w4,32 1 menyebabkan K4,32 1. Agar terjadi perubahan bit dari a2,7 = 0 ke a2,7’ = 1, maka b1,7K4,32s7 0. Dan disubstitusi s7 =0 dan s7 = 1 untuk memperoleh nilai s8 dan s8’.

Kemudian penentuan posisi bit ke-8 sampai dengan ke-23 untuk a2, yaitu

Posisi bit 23 22 21 … 8

a2’ 0 1 1 … 1

a2 1 0 0 … 0

di mana syarat cukup terjadinya perubahan bit adalah

16 15 8 16 1 , 4 23 8 , 1 

K

s

2

mod

2

b

dan b1’ = b1

(20)

16 15 8 16 1 , 4 ' 23 8 , 1 ' '(2 1)mod2   K s b

Karena

b

'1,823

K

'4,116

b1,823K4,116, maka haruslah s8’ = s8

1 dan pada kondisi

ini menghasilkan s24 = s24’.

Perubahan posisi bit dijamin terpenuhi jika: 1). s7 0,b1,7 1,s8 1,danK4,32 1

atau, 2). s7 1,b1,7 0,s8 1,danK4,32 1.

Dari K4,32 1 diperoleh persamaan, W4,32m4,32r32 1 

1 32 32 , 4 32 , 4 32 , 1 32 , 4 a  tr

m di mana r32 adalah simpanan dari penghitungan

K4, 26-31.

Dari persamaan

b

1,823

K

4,116

s

8

2

15

mod

2

16 diperoleh

16 16 1 , 4 23 8 , 1 15 16 1 , 4 

[

2

b

W

1

]

mod

2

m

.

Karena s24 = s24’ dan b1’ = b1 dan semua operand penyusun K4,17-25 sama maka pada

posisi bit ke-24 sampai bit ke-32 untuk a2 dijamin tidak terjadi perubahan bit apapun

pilihan m4, 17-25.

Secara umum langkah-langkah syarat cukupnya adalah sebagai berikut:

m m mt

M  0, 1,...., → t m m m m H H H H 0 1 2 ...t 2 1 0

,' ,'..., '

' m0 m1 mt M  → ' ' ' ' ... ' ' 2 ' 1 ' 0 0 0 1 2 t m m m m H H H H H     t , 0 ' 0 0 0    H H H

H

1

H

1

'

H

1

,

H

2

H

2

'

H

2

,

... , HtHt'Ht

Jelas bahwa jika ∆H = 0 atau HiHi'Hi 0, maka terjadi tumbukan antara M dan

M’.

Langkah selanjutnya H0 diproses,

a0,b0,c0,d0



m0

d0,a1,b0,c0



m1

c0,d1,a1,b0



2 m

1 1 1 0,c,d,a b



m3

1 1 1 1

,

b

,

c

,

d

a

m4

1 1 2 1

,

a

,

b

,

c

d

, ... Jadi, H1 =

a

1

,

b

1

,

c

1

,

d

1

dan seterusnya.

Untuk M0 dan M1, proses iterasinya:

H

H

H

M



0



M1

1 0

Untuk m0, m1, m2, ..., m127, dengan proses iterasinya:

H H H H H H H H m m m m  m m m 127 1 65 15 2 1 0 0 1 2 ... 15 ... 65 64 ... 127 Untuk m0’, m1’, m2’, ..., m127’, dengan proses iterasinya:

(21)

' ' ... ' ' ... ' ... ' ' ' ' ' 127 1 65 ' ' 15 ' ' 2 ' 1 ' 0 0 H 1 H 2 15 H 16 65 H H 64 127 H H H m m m m m m m m Sehingga: 127 ,..., 2 , 1 , 0 , '   Hi Hi Hi i Untuk M0 dan M0’:

0 1 15

0 m ,m ,...,m M

,' ',..., '

' 0 1 15 0 m m m M

0 0 1 1 15 15

0 m ' m ,m ' m ,...,m ' m M      =

0,0,0,0,231,0,0,0,0,0,0,215,0,0,231,0

Untuk selanjutnya, penentuan syarat cukup ini mengikuti urutan pada tabel, seperti yang ditunjukkan pada Lampiran 1 dan Lampiran 2. Hal pertama yang dilakukan adalah menunjukkan jaminan bahwa

R

1

0

. Berikutnya, b1, a2, dan d2. Untuk syarat cukup selanjutnya mengacu pada syarat yang sudah diperoleh Wang.

2.11 Modifikasi Algoritme Fungsi Hash MD5

Pada modifikasi algoritme ini akan dianalisis syarat cukup sampai pada c2, selebihnya mengacu pada Lampiran 1 sampai dengan Lampiran 4. Berdasarkan syarat cukup tersebut, akan dianalisis mengapa serangan diferensial berhasil untuk menyerang MD5. Setelah analisis tersebut, konstanta jumlah akan dibuat merambat, fungsi boolean tak linear akan dimodifikasi, konstanta putaran akan dibuat merambat, dan permutasi pesan juga akan dimodifikasi. Keempat elemen inilah yang dianggap merupakan kelemahan dari algoritma fungsi hash MD5.

Implementasi dari modifikasi ini adalah merekonstruksi algoritme MD5 (membaharui algoritme MD5), dengan kata lain mengimplementasikan fungsi iterasi dari MD5 dan hasil modifikasi MD5.

2.12 Jenis-jenis Serangan Fungsi Hash

Untuk memahami keamanan fungsi hash lebih mendalam dapat diperoleh melalui beberapa strategi serangan umum. Ketahanan dari suatu fungsi hash khusus untuk mengetahui serangan umum memberikan suatu (bagian) ukuran dari keamanan.

1 Serangan ‘Birthday’

Serangan-serangan algoritme independen adalah yang dapat diaplikasikan ke sebarang fungsi hash, yang diperlakukan sebagai sebuah kotak-hitam yang mempunyai karakteristik signifikan keluaran dengan panjang bit n (dan panjang bit kunci MAC untuk

(22)

MACs), dan running time untuk satu operasi hash. Tipe ini mengasumsikan aproksimasi output hash sebagai suatu variabel acak seragam.

(i). Serangan ‘Yuval birthday’ pada fungsi hash

Serangan ’Yuval birthday’ adalah satu dari bagian pertama (dan mungkin yang paling baik) dari banyak aplikasi kriptografi dari paradoks ’birthday’ distribusi klasik: ketika mengambil elemen-elemen secara random, dengan penempatan, dari suatu himpunan N elemen., dengan probabilitas tinggi suatu elemen bisa terambil berulang maka akan kembali lagi setelah pemilihan O( N ). Dengan demikian serangannya disebut serangan-serangan akar kuadrat. Relevansi ke fungsi hash adalah bahwa lebih mudah mencari tumbukan untuk fungsi hash satu-arah daripada mencari preimage atau second preimage untuk nilai-nilai hash spesifik. Sebagai hasilnya, skema tanda tangan yang mana bekerja untuk fungsi hash satu-arah yang mungkin diserang. Serangan dapat diaplikasikan ke semua fungsi hash tak berkunci, dengan running time O(2m/2) dengan panjang bit m untuk nilai hash.

Algoritma 4. (Yuval birthday)(Menezes, 1996)

INPUT: Pesan sah

x

1; pesan curang

x

2; fungsi hash

h

satu-arah m-bit.

OUTPUT:

x

1

,'

x

2

'

hasil dari modifikasi minor

x

1

,

x

2 dengan

h

   

x

1

'

h

x

2

'

(jadi tanda tangan pada

x

1

'

memberikan tanda tangan yang sah pada

x

2

'

).

1. Bangkitkan t2m/2 modifikasi minor

'

1

x

dari

x

1.

2. Hash yang lain sehingga pesan termodifikasi, dan simpan nilai hash (dikelompokkan dengan menghubungkan pesan) sedemikian sehingga dapat dicari pada nilai hash.

3. Bangkitkan modifikasi minor

x

2

'

dari

x

2, menghitung

h

 

x

2

'

untuk yang lain dan mengecek pasangan dengan sebarang

x

1

'

yang di atas; lanjutkan sampai pasangan didapat.

(ii). Variasi tanpa memori dari ‘birthday attack’).

Untuk memindahkan memori dari Algoritme 4, suatu mapping deterministic bisa digunakan yang mana mengaproximasi suatu arah random melalui ruang nilai-hash. Dengan paradox birthday, dalam arah random melalui suatu ruang dari 2m titik, satu

harapan untuk menghitung beberapa titik pada waktu kedua (yaitu: memperoleh suatu tumbukan) setelah O(2m/2) langkah, setelah berjalan akan berulang (membentuk circle). Teknik mencari circle tanpa memori umum dapat dipakai untuk mencari tumbukan ini. Algoritme 4 berikutnya, ambil g suatu fungsi sedemikian sehingga g(x1,H) = x1’ adalah

(23)

modifikasi minor, yang ditentukan dengan nilai-hash H, dari pesan x1. Jika x1 sudah fix,

maka g memetakan hasil-hash ke suatu pesan dan tepat untuk menulis 1

x

g (H) = x1’. Misal

g injektif sehingga hash-hash H menghasilkan perbedaan setiap x1’-nya. Maka,

pesan-pesan x1, x2 yang sudah fix dan menggunakan beberapa property mudah dibedakan.

Definisikan suatu pemetaan hasil-hasil fungsi hash sebagai berikut:

     ganjil H jika H x g h genap H jika H x g h H r )) ( 2 ( )) ( 1 ( ) ( ……… (1)

Teknik pencarian tumbukan tanpa memori digunakan untuk mencari 2 input r yang mana peta ke output yang sama (yaitu: collide).

(iii). Aplikasi ilustratif MD5

Aplikasi terbaru dari serangan umum di atas ke suatu fungsi hash meningkatkan teknik-teknik tambahan. Untuk mengilustrasikan bagaimana ini bisa dialamatkan, sehingga aplikasi sekarang diuji, dengan asumsi dan pilihan dibuat serinci mungkin. Misal h suatu iterasi fungsi hash memproses pesan dalam 512-bit blok dan menghasilkan 128-bit hash (yaitu: MD5, RIPEMD-128). Untuk meminimumkan biaya perhitungan, batasi r (seefektif g dan h) di persamaan (1) ke 512-bit blok tunggal dari xi, sedemikian

sehingga iterasi yang lain dari r melibatkan hanya fungsi kompresi f pada input satu blok pesan dan variabel berantai yang sekarang.

Fungsi untuk mencari tumbukan r untuk contoh spesifik ini (dihubungkan dengan persamaan umum (1)) maka:

     ganjil H jika H g c f genap H jika H g c f H r )) ( , 2 ( )) ( , 1 ( ) ( ……… (2)

Tumbukan untuk MD5 (dan menyerupai fungsi hash) dapat dicari dalam operasi O(264)

dan tanpa penyimpanan yang signifikan.

2 Serangan Pseudo-Collision dan Fungsi Kompresi

Nama lain dari preimage atau 2nd-preimage

serangan target; pseudo-preimage

serangan target free-start; tumbukan (fixed IV)  serangan tumbukan; tumbukan (random IV)  serangan tumbukan semi-free-start; pseudo-collision  serangan tumbukan free-start.

Mencari suatu tumbukan tidak lebih sulit dari suatu 2nd-preimage. Begitu juga untuk mencari suatu collision tidak lebih sulit dari mencari (dua perbedaan) pseudo-preimage.

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:

Referensi

Dokumen terkait

Terdapat beberapa penelitian terdahulu yang telah membuktikan bahwa independensi dan skeptisme profesional auditor mampu mempengaruhi tanggung jawab auditor dalam

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

Fungsi yang digunakan untuk menghasilkan nilai hash dari rangkaian gram dalam Algoritma Rabin-Karp adalah dengan menggunakan fungsi rolling hash. Apabila tidak di-hash, pencarian

bahwa berdasarkan Pancasila, Undang-Undang Dasar Negara Republik Indonesia Tahun 1945, Konvensi Mengenai Penghapusan Segala Bentuk Diskriminasi Terhadap Wanita Tahun 1979 (Convention

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

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

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