Kriptografi berasak dari bahasa Yunani, crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Cukup banyak algoritma yang sering dipakai untuk meng-enkripsikan suatu informasi atau data. Untuk kesempatan ini, mungkin hanya menjelaskan tentang Hash function.
Data yang disimpan di dalam memori komputer perlu ditempatkan dalam suatu cara sedemikian sehingga pencariannya dapat dilakukan dengan cepat. Setiap data yang berupa record mempunyai field kunci yang unik yang membedakan suatu record dengan record yang lainnya. Fungsi Hash digunakan untuk menempatkan suatu record yang mempunyai nilai kunci k. fungsi hash yang paling umum berbentuk.
h(k) = k mod m
yang dalam hal ini m adalah jumlah lokasi memori yang tersedia (misalkan memori bebentuk sel-sel yang diberi indeks 0 sampai m -1). Fungsi h diatas menempatkan record dengan kunci k pada suatu lokasi memori yang berlamat h(k).
Selanjutnya saya akan menjelaskan algoritma MD-5 dan SHA yang merupakan pengembangan varian dari fungsi hash.
MD-5
Merupakan fungsi Hash yang sering digunakan untuk mengamankan suatu jaringan komputer dan internet yang sengaja dirancang untuk tujuan sebagai berikut:
1. Keamanan : Hal ini tidak bisa dielakkan karena tidak satupun sistem algoritma yang tidak dapat bisa dipecahkan. Serangan yang sering digunakan untuk menjebol algoritma Hash adalah dengan menggunakan serangan brute force
2. Kecepatan : Software yang digunakan mempunyai kecepatan yang tinggi karena didasarkan sekumpulan manipulasi operan 32 bit.
3. Simple : Tanpa menggunakan struktur data yang kompleks
MD5 digunakan untuk pengkodean password pada sistem operasi. MD5 mengolah masukan yang berbentuk blok 512 bit yang dibagi dalam 16 bentuk subblok yang masing-masing berukuran 32 bit, sedangkan keluaran terdiri dari 4 blok berukuran 32 bit, dari 4 blok keluaran digabungkan menjadi 128 bit.
MD-5 adalah salah satu aplikasi yang digunakan untuk mengetahui bahwa pesan yang dikirim tidak ada perubahan sewaktu berada di jaringan. Algoritma MD-5 secara garis besar adalah mengambil pesan yang mempunyai panjang variable diubah menjadi ‘sidik jari’ atau ‘intisari pesan’ yang mempunyai panjang tetap yaitu 128 bit. ‘Sidik jari’ ini tidak dapat dibalik untuk mendapatkan pesan, dengan kata lain tidak ada orang yang dapat melihat pesan dari ‘sidik jari’ MD-5
Langkah-langkah pembuatan message digest secara garis besar:
1. Penambahan bit-bit pengganjal (padding bits).
2. Penambahan nilai panjang pesan semula.
3. Inisialisasi penyangga (buffer) MD.
4. Pengolahan pesan dalam blok berukuran 512 bit.
berikut contoh hasil MD5 :
Plain teks:
ini merupakan contoh hash MD5Cipher teksnya menjadi :
13 D6 8B 6C EC 35 8D AE D8 29 21 64 BC 38 C5 8Fmungkin hanya sampai disini pembahasan dasar mengenai MD5, selanjutnya saya akan menjelaskan algoritma SHA.
SHA
SHA adalah serangkaian fungsi cryptographic hash yang dirancang oleh National Security Agency (NSA) dan diterbitkan oleh NIST sebagai US Federal Information Processing Standard.SHA adalah Secure Hash Algoritma. Jenis-jenis SHA yaitu SHA-0, SHA-1, dan SHA-2.
Untuk SHA-2 menggunakan algoritma yang identik dengan ringkasan ukuran variabel yang terkenal sebagai SHA-224, SHA-256, SHA-384, dan SHA-512. SHA-1 merupakan yang sering digunakan dalam mengamankan protokol pengiriman.
Berikut kelebihan dari SHA 1:
a. validate a password (memvalidasi password); nilai hash dari password akan disimpan, kemudian ketika password diotentikasi, maka password yang dimasukkan oleh user akan dihitung hashnya dan jika hashnya sesuai maka password dinyatakan valid. Namun untuk mendapatkan password yang asli tidak dapat diperoleh dari hash yang telah disimpan.
b. Challenge handshake authentication; untuk menghindari kesalahan pengiriman password dalam kondisi “clear”, client dapat mengirim nilai hash sebuah password melalui internet untuk divalidasi oleh server tanpa beresiko disadapnya password yang asli.
c. Anti-tamper ; untuk memastikan data tidak berubah selama ditransmisikan. Penerima akan menghitung nilai hash dan mencocokkan dengan hash yang dikirimkan, apabila nilainya sama berarti data yang dikirimkan tidak berubah.
d. digital signatures; dilakukan dengan cara mengenkrip nilai hash sebuah dokumen dengan menggunakan private key, sehingga menghasilkan tanda tangan digital untuk dokumen tersebut. Orang lain dapat mengecek otentikasi dokumen tersebut dengan cara mendekrip tanda tangan tersebut menggunakanpublic key untuk mendapatkan nilai hash yang asli dan membandingkannya dengan nilai hash dari teks.
berikut contoh menggunakan SHA-1 (160 bit):
Plain teks :
ini merupakan contoh hash MD5Cipher teksnya :
F5 75 6F 4F 26 9F 51 BB B3 55 5F 04 7A 2E E8 FE B0 F9