Menyimpan password Preprocessing LANDASAN TEORI

23

2.6 Fungsi Hash

Fungsi hash berhubungan dengan keamanan data. Fungsi hash juga dapat digunakan untuk autentikasi dan integritas data. Fungsi hash secara efisien akan mengubah string input dengan panjang yang tak hingga menjadi string output dengan panjang tetap yang disebut dengan nilai hash. Hash juga termasuk salah satu bentuk teknik kriptografi. Saat ini penerapan fungsi hash dapat di jumpai pada website-website yang menyediakan layanan untuk download file ataupun program secara resmi. Hash umumnya digunakan untuk mengecek integritas dari sebuah pesan atau file. File atau pesan yang sudah berubah akan memiliki nilai hash yang berbeda. Sebagai contoh, dengan sebuah algoritma hash, pesanhello akan memberikan nilai hash 12345 sedangkan pesan hallo memiliki nilai hash 83746. Dengan kata lain output hash dari kata hello tidak akan sama dengan hallo. Seperti yang kita ketahui bahwa kedua pesan tersebut hanya memiliki perbedaan sedikit saja yaitu satu huruf namun nilai hash yang dimiliki oleh kedua pesan tersebut sangat jauh berbeda. Fungsi hash dapat digunakan sebagai :

a. Menyimpan password

Password didalam sebuah sistem dianjurkan untuk disimpan dengan menggunakan fungsi hash. Dengan demikian administrator sistem tersebut sekalipun tidak akan dapat melihat atau menggunakan password user yang telah menjadi membernya. Hal ini akan memberikan impact yang baik kepada user bahwa baik sistem maupun administrator sangat menghargai privasi dari anggotanya. Selain itu pula, jika database password pengguna, dengan cara tertentu dapat diakses oleh publik, maka siapapun tetap tidak langsung dapat menggunakan password tersebut.

b. Message Fingerprint

24 Penggunaan Hash sebagai sidik jari pesan message fingerprint digunakan untuk mengecek apakah file yang kita simpan masih sesuai dengan file asli ketika hash file tersebut dibuat dan belum berubah. Jika terdeteksi adanya file yang tidak memiliki hash yang sama dengan yang telah dibuat sebelumnya, maka dapat dipastikan bahwa file tersebut telah berubah. Fungsi hash sangat sensitif terhadap perubahan pada text asli pesan, jika pesan berubah 1 bit maka nilai hash akan berubah signifikan dengan begitu, fungsi hash menjadi bagian yang sangat penting dan perlu diterapkan pada sistem keamanan data.

2.6.1 Sifat-sifat Fungsi Hash Pada Kriptografi

Berikut ini merupakan sifat-sifat yang dimiliki oleh fungsi hash sekaligus kelebihan dari fungsi hash :

1. Tahan Preimej preimage resistand : bila diketahui nilai hash h maka sulit untuk

mendapatkan m dimana h=hashm.

2. Tahan Preimej kedua second preimage resistand : bila diketahui input

m1 maka sulit mencari input m2 tidak sama dengan m1 yang menyebabkan hash m1 = hash m2 3. Tahan Tumbukan collision resistand : sulit mencari dua inpur berbeda yaitu m1 dan m2 yang menyebabkan hash m1 = hash m2

2.6.2 Fungsi Hash Satu Arah One Way Hash Fungction

Fungsi hash merupakan fungsi yang secara efisien merubah string input M dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash h. sedangkan fungsi satu arah One Way Fungction adalah fungsi yang relatif mudah untuk menghitung tapi sulit untuk dihitung kebalikannya nilai reverse. Jadi One Way Hash 25 Fungction artinya mudah untuk menghitung nilai hash dari input string yang diberikan, tapi sulit untuk menghasilkan string yang nilai hash nya sudah diketahui. Fungsi hash bersifat collision free, artinya bahwa tidak akan mungkin menemukan 2 message berbeda dengan menggunakan kode hash yang sama, terdapat banyak fungsi yang memasukan input berhingga dan mengembalikan output dengan nilai tetap, tapi ada beberapa karakteristik yang dimiliki oleh one way hash fungction yaitu : I. Jika diketahui nilai M, maka akan mudah untuk menghitung nilai hash h. II. Jika diketahui nilai hash h, maka sulit untuk mengetahui nilai M. III. Jika diketahui M, maka akan sulit untuk menemukan message lain M’ seperti HM = HM’ Berikut gambaran ilustrasi dari one way hash fungction Pada one way hash fungction yaitu bahwa mudah untuk mengetahui nilai output, tetapi sulit untuk mengetahui nilai input, selain itu tingkat keamanannya juga sudah tinggi sebab fungsi hash ini menggunakan sepenuhnya bilangan random.

2.6.3 Kegunaan One Way Hash Fungction

1. Challenge hash autentification, merupakan cara sederhana untuk melindungi password pada saat login. 2. One time password Gambar 2.15 Ilustrasi One Way Hash Fungction 26 3. Data integrity dan message authentication code 4. Enkripsi password

2.6.4 Kelebihan dan Kekurangan Fungsi Hash

Menurut Pitry, 2010 kelebihan dan kekurangan pada fungsi hash adalah :

1. Kelebihan :

1. Hasil dari funsi hash panjangnya tetap, panjang masukan tidak akan mempengaruhi panjang nilai hash. 2. Karena tidak merubah data asli maka tidak diperlukan proses dekripsi 3. Perubahan sekecil apapun pada data asli akan membuat nilai hash yang sangat jauh berbeda avalanche effect. Sehingga cukup mudah untuk memeriksa keaslian.

2. Kekurangan :

a. Memiliki kemungkinan untuk terjadi bentrokan. Hal ini dapat dihindari untuk semua fungsi hash yang dibuat khusus untuk menghindari terjadinya bentrokan. b. Fungsi hash adalah fungsi satu arah, jadi jika kita hanya mendapatkan sebuah nilai hash kita tidak bisa mengembalikan menjadi data asli. Hal ini dipersulit dengan kemungkinan terjadinya bentrokan. Tingkat keamanan suatu fungsi hash dinilai berdasarkan jumlah kemungkinan nilai hash yaitu 2 n . dengan n adalah panjang nilai hash dalam bit. Jadi semakin panjang nilai hash akan semakin aman. 27

2.6.5 Algoritma hash Fungction

Fungsi hash kriptografi adalah fungsi hash yang memiliki beberapa sifat keamanan sehingga dapat dipakai untuk tujuan kemanan data. Umumnya digunakan untuk keperluan autentikasi data, berikut beberapa algoritma fungsi hash: Dari beberapa algoritma fungsi hash pada gambar diatas, yang akan dipakai pada tugas akhir ini adalah algoritma fungsi hash SHA-1.

2.7 Secured Hash Algorithm Sha-1

SHA-1 merupakan salah satu algoritma hash fungction. Sebagaimana yang dikutip dari blog “Fungsi Hash MD5 dan SHA-1” yang ditulis oleh Kurniawan, 2012, dijelaskan bahwa SHA dibuat berdasarkan rancangan yang serupa dengan MD4 yang dibuat oleh Prof. Ronald L. Rivest dari MIT. Algoritma SHA menerima masukan berupa pesan dengan ukuran maksimum 264 bit 2.147.483.648 gigabyte menghasilkan message digest yang panjangnya 160 bit 20-byte dan 40 karakter enkripsi, lebih panjang dari message digest dengan algoritma MD5 yang hanya 128 bit. Gambaran umum pembuatan message digest dengan algoritma SHA-1 diperlihatkan pada gambar di bawah ini. Gambar 2.16 Algoritma-algoritma hash 28

2.7.1 Cara Kerja SHA-1

Secara umum, tahap pembuatan message digest dengan SHA-1 adalah sebagai berikut :

a. Preprocessing

Pada tahap preprocessing ini terdiri dari beberapa langkah, yaitu : 1. Penambahan padding bits. Pesan ditambah dengan sejumlah padding bits sedemikian sehingga panjang pesan setelah ditambahi padding bits adalah 64 bit kurang dari kelipatan 512. Panjang padding bits haruslah berada antara 1 hingga 512 bit. Hal tersebut menyebabkan pesan dengan panjang 448 tetap harus ditambahkan bit penyangga sehingga panjangnya akan menjadi 960 bit. padding bits sendiri terdiri dari sebuah bit 1 diikuti sisanya dengan bit 0. 2. Penambahan nilai panjang pesan semula. Pesan yang telah diberi padding bits selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Setelah ditambah dengan 64 bit, panjang pesan akan menjadi kelipatan 512 bit. Gambar 2.17 Message digest menggunakan SHA1 29 3. Inisialisasi penyangga buffer message digest. Algoritma SHA-1 dalam operasinya membutuhkan lima buah buffer yang masing-masing besarnya 32 bit sehingga nanti hasil akhirnya akan menjadi 160 bit. Kelima buffer tersebut dalam operasi SHA-1 ini akan berperan untuk menyimpan hasil antar putaran sekaligus untuk menyimpan hasil akhir. Kelima buffer tersebut memiliki nama A, B, C, D ,dan E. Buffer-buffer tersebut harus diinisialisasi dengan nilai-nilai sebagai berikut dalam notasi heksadesimal: A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0 B.Hashing Proses hashing dilakukan per blok dengan besar 512 bit tiap bloknya. Dalam pengolahan ini terdapat 4 putaran yang tiap putarannya dilakukan sebanyak 20 kali. Tiap putaran memiliki proses yang berbeda – beda. Sebelum putaran pertama dilakukan inisialisasi 5 buah variable dengan besar 32 bit yang menampung buffer inisialisasi. 30 Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit. Setiap blok 512-bit diproses bersama dengan buffer MD menjadi keluaran 128-bit. Proses tersebut disebut proses HSHA . Proses HSHA terdiri dari 80 buah putaran dengan setiap putarannya dilakukan hal seperti gambar di atas. Pada gambar, Yang menyatakan blok 512-bit ke-q dari pesan yang telah ditambah padding bits dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai message digest 160-bit dari proses HSHA ke-q. Pada awal proses, MDq berisi nilai inisialisasi buffer MD. Setiap putaran menggunakan operasi dasar yang sama dinyatakan sebagai fungsi f. Operasi dasar SHA yang diperlihatkan pada gambar diatas dapat ditulis dengan persamaan sebagai berikut: a, b, c, d, e = CLS 5 a + f t b, c, d + e + W t + K t , a, CLS 30 b, c, d Gambar 2.18 Proses hashing 31 yang dalam hal ini, a, b, c, d, e = lima buah pengubah penyangga 32-bit berisi nilai penyangga A, B, C, D, E t = putaran, 0 ≤ t ≤ 79 f t = fungsi logika CLS s = circular left shift sebanyak s bit W t = word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses K t = konstanta penambah + = operasi penjumlahan modulo 23 32 BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem