290 likes | 557 Views
Administrasi. Take-home assignments tugas 1 : essay ttg cryptographic attack tugas 2 : menguji kekuatan Vinegere code tugas 3 : perkalian dan pemangkatan Deadline etc lihat di http://www.cs.ui.ac.id/staf/wishnu.html Untuk protokol kriptografis : pelajari Bab 2 - 4 … semua!
E N D
Administrasi • Take-home assignments • tugas 1 : essay ttg cryptographic attack • tugas 2 : menguji kekuatan Vinegere code • tugas 3 : perkalian dan pemangkatan • Deadline etc lihat di http://www.cs.ui.ac.id/staf/wishnu.html • Untuk protokol kriptografis : pelajari Bab 2 - 4 … semua! • Ujian tidak open-book • Minggu depan quick test
Sekuriti Digital, Teori dan Praktek Beberapa contoh fungsi hash 18.1 - 18.5, 18.7, 18.12 - 18.14
Fungsi Hash Satu Arah (One-Way) • Input : text dengan panjang sembarang • Output : data dengan panjang tetap (32 bit, 64 bit, 160 bit, etc) • Syarat : • Untuk sebuah M yang diketahui, mudah untuk menghitung H(M) • Untuk sebuah h yang diketahui, sulit untuk menghitung M sedemikian h = H(M) • untuk sebuah M yang diketahui, sulit untuk mendapatkan M’ yang lain dari M sehingga H(M) = H(M’) • Collision free : • Sulit untuk mendapatkan dua text (random) M1 dan M2 sehingga H(M1) = H(M2) • Tidak mudak membuat fungsi yang one-way !
Compression Function H(M) = {h = 0 ; whileM <> empty do {x = get first block from M ; h = f(x,h) } } Mj One-way function f hj hj - 1 Contoh untuk M yang terdiri dr. 4 blok : M3 M0 M1 M2 f disebut compression function h 0
Memperkuan Fungsi HashMemperbesar Ukuran Hash Value 1. Hitung h0 = H(M) 2. Hitung h1 = H(M++h0) 3. Hash value dengan ukuran lebih besar dapat diperoleh dengan mengambil h0++h1 sebagai hash value dari M • Untuk mendapatkan ukuran hash value yang lebih besar lagi, langkah 1 - 3 diatas bisa diulangi berkali-kali.
Memperkuan Fungsi HashMD Strengthening • Untuk menyulitkan pembuatan text2 dengan panjang berbeda tapi menghasilkan hash value yang sama, orang sering mengappend encoding dari panjang text ke text tsb sebelum di hash. Jadi, hash dari M adalah : H(M++’encoding dari panjang M’) • Tehnik ini sering disebut MD strengthening.
SnefruRalph Merkle 1990 • Lebar hash value : 128 atau 256 bit • Ukuran blok : 512 - 128 atau 512 - 256 bit Take only the upper 128 bit E Mk (512 - 128) bit 512 bit hk-1 (128 bit)
The E-box in Snefru data byte 63 data byte 0 data byte 2 S-box 30 Output byte 0 ... data byte 29 data byte 30 data byte 31 S-box 30 Output byte 30 ... data byte 62 data byte 63 data byte 0 S-box 30 Output byte 63
Kekuatan dr. Snefru • Biham dan Shamir menemukan tehnik kripto-analisis yang disebut Kripto-analisis Diferensial yang bisa mem-break code dengan sangat efesien. (1993) Lihat 12.4. • Menggunakan metode ini, B&S berhasil membreak Snefru dengan 2 fase hanya dalam beberapa menit saja. • Attack ke 128-bit Snefru : • Bruteforce attack : 2128 operasi • Birthday attack : 264 operasi • Differential attack : 229 / 256 operasi • Rekomendasi (Merkle) Snefru dengan at least 8-pass
N-HashNippon Telephone and Telegraph (1990) • Hash value berukuran 128 bit • Ukuran unit blok text 128 bit (16 byte) h0 = random hi = g(Mi,hi-1) Mihi-1 • Fungsi g cukup rumit ...
Blok g Mi (128 bit) V= 10101010 ...(128 bit) Tukar 64 bit atas dengan 64 bit bawah vj = zeroAj1zeroAj2zeroAj3zeroAj4 zero = 0000… (24 bit) Ajk = 4*(j-1) + k (8 bit) dimana k = 1,2,3,4 hi-1 (128 bit) PS1 v1 PS2 v2 ... PS8 hi (128 bit) v8
PS (Processing Stage) dalam N-Hash • Input : X dan P, masing2 128 bit. • X dipecah menjadi 4 potong (32 bit) : X1 … X4 • P dipecah menjadi 4 potong (32 bit) : P1 … P4 • Output : Y, juga terdiri dari 4 potongan 32 bit : Y1 … Y4
Detil dr. PS X3 X4 X1 X2 + f P2 P1 f + + + Y3 Y4 + f P3 f P4 + Y1 + + Y2 Lihat lebih lanjut di 18.3
Kekuatan dari N-Hash • Mengenerate dua M dengan hash yang sama : • Birthday attack 264 operasi • Differential attack (Biham - Shamir) • 3-Hash (3 processing stage) : sangat efesien • 12-Hash : 256 operasi • 15-Hash : 272 operasi
MD 5 (Message Digest)Ron Rivest (92) • Ukuran hash value : 128 bit (terdiri dari 4 x unit 32 bit) • Unit block dari input text : 512 bit, dibagi menjadi 16 subblock berukuran 32 bit • Padding : input text di-pad dibelakang dengan '111…' sampai panjangnya n*512 - 64 bit • MD Strengthening : 64 bit terakhir diisi dengan encoding dari panjang dari input text asli.
Main Loop dari MD5 Mi(512 bit = 16 x 32 bit sub-block) a Round 1 Round 2 Round 3 Round 4 a b b hi(4 x 32 bit) c hi-1(4 x 32 bit) c d d Inisialisasi : h0 = (0x01234567, 0x89abcdef, 0xfedcba98, 0x76543210)
Round dalam MD5 • Round 1 menggunakan 16 x aplikasi fungsi FF, setiap kali dengan parameter yang berbeda. Round 2 menggunakan GG, Round 3 menggunakan HH, round 4 menggunakan II. • Definisi FF : FF(p,q,r,s,subBlock,shift,t) = {p = q + ((p + F(q,r,s) + subBlock + t) << shift) } • p,q,r,s diambil dari {a,b,c,d} • F(X,Y,Z) = (X Y) (X Z)
Kekuatan MD5 • Differential Attack telah dicoba untuk single-round MD5, dan sukses. Untuk full MD5 belum ada hasil. • Boer dan Bosselaers (93) berhasil menemukan collision untuk compression function yang digunakan MD5 • … be wary when using MD5...
Aplikasi Hash Function • Digital signature • bit commitment protocol • Time-stamping protocol (4.1) • Digital Cash (Stefan Brands)