Twitter

Penjelasan Mengenai HASH

Diposting oleh Touya Blog on

Maros-saya mempunyai sedikit penjelasan mengenai HASH, untuk penjelasannya kita pakai rainbow table, jadi rainbow table itu adalah sebuah alat untuk membantu kita mendekripsi sebuah hash...
Walapun tidak mirip tapi penjelasannya hampir sama nah rainbow table bisa dijelaskan seperti ini:

1. Diketahui cleartext 111 jika di hash menghasilkan AAA
2. Dari asumsi di atas maka dilakukan langkah ini:
a. AAA direduksi kemudian dihash kembali, dan menghasilkan BBBB

b. BBBB direduksi menjadi BBB kemudian dihash dan menghasilkan CCCC
c. CCCC direduksi menjadi CCC kemudian dihash dan menghasilkan DDDD
d. Dan seterusnya hingga mendapatkan ZZZZ yang merupakan hasil dari YYY
e. ZZZZ direduksi menjadi ZZZ kemudian dihash dan menghasilkan AAAA
3. Nah berangkat dari sini, jika rainbow tablenya hanya akan menyimpan 2 titik (awal dan akhir), maka yang disimpan adalah 111 yang menghasilkan AAA, dan YYY yang menghasilkan ZZZ.
4. Jika dikemudian hari ada hash yang ingin direverse menjadi cleartext, misalnya KKK, maka rainbow table bisa dimanfaatkan untuk menelurusi, cleartext mana yang di antara AAA dan ZZZ yang menghasilkan KKK.

Kurang lebih begitu, hal ini berdasar kepada prinsip bahwa hash bersifat rotasi, dalam artian reduksi dari suatu hash jika terus menerus direduksi+hash maka akan kembali ke titik awal. jadi jika ingin mencari cleartext dari suatu hash, pengguna tinggal menemukan titik mana yang menghasilkan collision yang sama dengan cleartext tersebut
Nah, salt bertujuan untuk meningkatkan kompleksitas dan keacakan karakter dari cleartext sehingga hash yang dihasilkannya tidak mudah untuk direverse. Selain itu, biasanya salt efektif untuk melindungi reverse cleartext dari serangan dictionary based. Logika aja, jika password anda adalah skateboard, maka password tersebut sangat rentan thd dict-based attack (skateboard kan kata yang umum2 amit??). Tetapi bandingkan jika password tersebut ditambahkan salt ^$# pada akhir frase sehingga password anda yang akan dienkripsi/hash adalah skateboard^$#. Dict-based di sini kayaknya hasil encrypt hash akan sangat sulit di bongkar (saya tidak bilang tidak bisa, tapi sulit di bongkar)
mungkin ada pertanyaan seperti ini :
jadi basisnya sampai dia kembali lagi ke awal pertama kali dia di-hash??
apakah itu pasti kembali lagi ke awalnya?? kalau tidak kembali berarti dia nanti akan me rekursif tanpa basis dong??

nah, Kalau ketemu ujung pangkalnya maka chainnya berhenti di situ, kalo tidak ketemu bisa dibatasi hingga chain keberapa yang di inginkan.

di sini saya sedikit meluruskan.

Hash adalah:
A one-way algorithm which maps or translates one set of bits into another (generally smaller) in such a way that the algorithm yields the same hash results every time for the same message, and it is computationally infeasible for a message to be reconstituted from the hash result. ...
http://www.infosec.gov.hk/english/general/glossary_gj.htm

Artinya cari di kamus yah, atau google translate, supaya ada sedikit usaha... he..he..he...

Dari sini bisa kita ketahui, karena sifatnya satu arah, maka tidak ada metode yang bisa digunakan untuk merekonstruksi kembali suatu data berdasarkan hash. Dengan kata lain, hash tidak bisa di dekripsi, karena hash memang bukan enkripsi.
Pada enkripsi seluruh data diubah menjadi bentuk lain sehingga data aslinya tersembunyi. Karena sifatnya seperti ini, maka ciphertext (teks hasil enkripsi) dapat direkonstruksi kembali menjadi bentuk aslinya (baca: dekripsi).
nah, jika ada orang yang mengatakan kalau dia dia punya script untuk melakukan Decrypt Md5, itu sebenarnya salah kaprah karena Hash memang tidak bisa diDekripsi tetapi bisa dibuat collision. Hal ini berdasarkan fakta, bahwa digest (hasil hash) memiliki panjang tertentu, contoh digest MD5 memiliki panjang 128 bit (16 byte).
seperti ini :
128 bit = 2 ^ 128 = 3,4028236692093846346337460743177e+38 kemungkinan variasi digest

Jumlah variasi yang banyak memang. Tetapi meskipun banyak, variasinya tetap terbatas sementara variasi data yang sebenarnya mungkin terjadi adalah tidak terhingga. Berdasarkan fakta ini, maka ada kemungkinan 2 atau lebih data menghasilkan digest yang sama. Inilah yang disebut dengan collision

mengenai rainbow :
Rainbow table adalah suatu alat bantu/tool/metoda/you-name-it-lah yang bisa dimanfaatkan untuk mencari collision dari suatu digest. bagaimana menghindari? (baca: mempersulit pencarian collision) maka yang harus di gunakan adalah gunakanlah salt. di atas sudah di jelaskan, kalau belum ngerti baca saja berulang-ulang sampai paham.
maaf kalau penjelasan ini masih belum sempurna, karena saya tidak kuasai yang satu ini (serius)

kalau masih mau serius, saya memberikan referensi saja buat di baca di rumah :
1. Pengantar dan Serangan Kriptografi
2. Landasan Matematika
3. Algoritma Kriptografi Klasik dan MOdern
4. Stream Cipher dan Block Cipher
5. Kriptografi Public Key
6. Pembangkit Bilangan Acak
7. Fungsi Hash one way & Mac
8. Digital Signature
9. Protokol
10.Public Key Infrastruktur
11.Manajemen Kunci
12.Steganografi & Watermarking

Saran : Jangan Langsung Baca Semuanya, nanti bisa Gila, Bertahap Aja yah...

thank's to jasakomer's Makassar, Presiden, Coolkid




Free Signature Generator

Free Signature Generator

Diposting oleh Touya Blog on Senin, 25 Mei 2009

{ 0 komentar... read them below or add one }