Hash Function (kripto series-part3,hash1)
curhat:
Beberapa waktu lalu coba belajar hash,tapi gw jadi bingung, asli ini sistem beda banget dengan RSA yang deterministik, secara rumus tetap punya aroma
block cipher (karena mungkin hash yang dulu2 itu juga ada yang dari block cipher)…..
Ada 3 hal yang gw inget dan amati
pertama, Iterasi (katanya sih ada juga yang gak iterasi tapi gw belum pernah baca), nih aroma blocknya
kedua, Padding, cuma ditambah nol berderet…hmmph sepertinya mereka cukup yakin dengan skema padding sesederhana ini tidak mempengaruhi keamanan
sistem secara umum
ketiga, Fungsi Compress, ini yang gw paling ngga habis pikir, mereka claim bahwa fungsi compress yang memetakan barisan bit pesan dengan panjang m+n
ke barisan bit digest dengan panjang m adalah collision resistant, dan fungsi compress itu adalah fungsi yang injection.
Hmmph gw gak habis pikir bagaimana caranya pemetaan dari ruang yang lebih besar ke ruang yang lebih kecil bisa gak collision…
Gw tanya sama orang matematika tapi gambaran yang diberikan masih kurang jelas (ato gw nya ya yg payah)
ricek:
En abis baca di wiki tentang injection, sepertinya ada pertolongan nih, ternyata dalam fungsi injection itu gak boleh ada anggota himpunan asal yang punya
pasangan yang sama di daerah tujuan….Cuma mesti di trace lagi nih….apakah ruang asal itu lebih besar atau lebih kecil dari ruang tujuan…kan dalam
injection tiap-tiap anggota harus punya pasangan di daerah tujuannya, Bagaimana membuktikan bahwa fungsi compressnya bener2 injection???
anyway:
Hash itu salah satu fungsi one-way (bener gak?), one-way itu gampang dihitung tapi susah dibalikin (susah operasi inversnya), but sepertinya memang lebih
gampang menghitung lurus (ke arah maju) daripada ke arah sebaliknya
contoh :
-menghitung perkalian kan lebih mudah daripada pembagian (walaupun statement ini gak sepenuhnya bener kalo di perkalian/pembagian dengan 2)
tapi itu kan ruang asalnya sama dengan ruang tujuannya…
misalkan kita punya fungsi bahwa bilangan bulatnya dikali 2, ditulis,
f(a)= 2*a, nah kan ini emang ga ada collision, coba ada gak angka
selain 3 yang jika
dikalikan 2 hasilnya akan 6…
-menghitung pangkat kan lebih gampang daripada menghitung akar (nah klo statement ini emang agak lebih valid)
last:
udah ah mau sarapan dulu
mohon maaf buat pakar kripto mungkin tulisan ini terlalu cupu…
"Hash (one-way tepatnya) itu analoginya kayak ‘Punya Anak’ ya, relatif mudah waktu ngebuatnya tapi susah setangah mati klo mau balikinnya"
March 5th, 2008 at 10:56 pm
coba komen atu-atu ah
PADDING
awalnya padding dipake buat genepin input agar dapat diproses ke f kompresi, so dibuat pading 0’s. tapi padding kan ga boleh bersifat ambigu (unik untuk setiap input) jadi ditambahkanlah 1 + 0’s.
ternyata kriptogaper ga puas, padding harus tahan terhadap attack terlepas dari kekuatan f kompresinya (\font BOLD) karna ada attack yang mengeksploitasi fungsi hash tanpa melakukan attack langsung ke f kompresi (jelas bahwa attack tidak melulu f kompresinya, bahkan ada attack yg mengekploitasi kelemahan struktur MD, soo kreatip), ex : long message attack dan fixed-point attack (googling ajah).
slh satu solusinya adalah dengan menambahkan panjang input (1 + 0’s + length) yg disebut MD strengthening (sgt terkenal sampe2 dipake MD dan SHA family… secara rivest ama nist gitu loch). padding ini akan mencegah attack diatas (orang2 gila itu ga perlu memodifikasi f kompresi untuk mencegah attack tsb, cukup menambahkan length pada padding… kan main !!?) .
tentunya ada banyak jenis-jenis padding lainnya yg diusulkan dan digunakan oleh kriptograper lainnya dng kelebihan dan kekurangan masing2 ex :
- padding HAIFA (Biham)
- padding whitening …bla bla (lupa…orang cina)
(gua blm tau kaya gimana cara kerja persisnya googling lagi ajah).
ampe skrg gua blm baca2 ttg padding lagi, apakah pada MD strengthening msh ada kelemahan (strong but weak ?? sounds like paradox ;D)
sekian, CMIIW
==================================
jbs of BOTS
March 5th, 2008 at 11:52 pm
coba komen atu-atu lagi ah
F KOMPRESI
March 5th, 2008 at 11:59 pm
nyambungin diatas ah