Fungsi Hash
Makalah Keamanan Komputer
Oleh :
SITTI NURHAERATY (60200105042)
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI MAKASSAR 2008
-1-
Fungsi Hash
KATA PENGANTAR Puji syukur penulis panjatkan atas kehadirat Allah SWT dan junjungan besar Nabi Nabi Muhammad Muhammad SAW, karena karena atas Rahmat Rahmat dan Hidayah-N Hidayah-Nya ya sehingga sehingga penulis penulis dapat menyelesaikan menyelesaikan makalah ini tepat waktu. Melalui makalah ini, penulis ingin mengucapkan terima kasih yang sebesarbesarnya kepada pembimbing mata kuliah (Dosen) dan semua pihak yang terlibat dalam penyelesaian makalah ini. Penulis menyadari dalam makalah ini masih terdapat banyak kekurangan, oleh karena itu penulis sangat mengharapkan saran dan kritik yang tentunya bersifat membangun demi kesempurnaan makalah ini.
Makassar, Juni 2008 Penulis
-2-
Fungsi Hash
DAFTAR ISI KATA PENGANTAR.............................. PENGANTAR..................................................... .............................................. ...................................... ............... i DAFTAR ISI................. I SI......................................... ............................................... ................................................................ ......................................... ii BAB I PENDAHUL PENDAHULUAN.. UAN....... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... ............ ............... ........ 1 A. Latar Belakang........................... Belakang.................................................. .............................................. ................................ ......... 1 B. Rumusan Rumusan Masalah. Masalah...... .......... .......... .......... .......... ......... ......... .......... .......... ............ ................... ....................... ............. 2 C. Tujuan Penulisan.......................... Penulisan................................................. ............................................. ............................. ....... 3 BAB II PEMBAHASAN............................. PEMBAHASAN.................................................... .............................................. ................................. .......... 4 A. Pengertian Kriptografi...................................... Kriptografi...................................................................... ................................ 4 B. Konsep Konsep Pengguna Penggunaan an Kriptografi. Kriptografi...... .......... .......... .......... .......... ............. ................... .................... ......... 4 1. Kerahasia Kerahasiaan an (Confidential (Confidentiality).. ity)...... ......... .......... .......... ............ ................... ....................... ............. 4 2. Integritas Integritas (Integrity) (Integrity)..... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... ........ ... 4 3. Penghind Penghindaran aran Penolak Penolakan an (Non-repud (Non-repuditati itation)... on)......... ................. .................... ......... 4 4. Autentika Autentikasi si (Authentic (Authenticatio ation).... n)......... ......... ......... .......... .......... ........... ................. .................... ......... 4 5. Tanda Tangan Data (Data Signature)......................................... Signature)......................................... 4 6. Kontrol Kontrol Akses (Access Control).... Control)......... .......... .......... ......... ......... .......... .......... .......... ........... ...... 4 C. Pengertian Fungsi Hash.................................. Hash.................................................................... .................................. 4 D. Metode yang Digunakan Digunakan Dalam Fungsi Hash.................................. Hash.................................. 6 1. Metode Metode Pembagia Pembagian... n........ .......... .......... .......... .......... .......... .......... .......... .......... ............ ................... ................ 6 2. Metode Perkalian............................... Perkalian...................................................... ......................................... .................. 6 E. Macam-Macam Fungsi Hash.................................. Hash............................................................ .......................... 6 1. Metode Metode Pembag Pembagian ian Bersis Bersisaa (divisio (division-rem n-remaind ainder er method) method)....... ........... 6 2. Melipat Melipat (folding). (folding)...... .......... .......... .......... .......... .......... .......... .......... ............ ................... ....................... ............. 6 3. Transform Transformasi asi Radiks Radiks (radix (radix transform transformation) ation)..... .............. .................... ................ ..... 7 4. Pengatura Pengaturann Ulang Digit Digit Radiks Radiks (radix (radix transform transformation) ation)..... .......... ......... .... 7 F. Bentrokan Pada Fungsi Hash................................ Hash....................................................... ............................ ..... 7 1. Kebijaka Kebijakann Resolusi Resolusi Bentrok Bentrokan an di Luar Luar Table... Table.............. ...................... .............. ... 7 2. Kebijaka Kebijakann Resolusi Resolusi Bentrok Bentrokan an di Dalam Dalam Table.. Table............. ....................... ............ 8 a. Linear Linear Probing.. Probing....... ......... ......... .......... .......... .......... .......... .......... .......... .......... .......... ................. ................ 9 b. Quadratic Quadratic probing probing / squared squared probing.. probing....... .......... .......... .......... ............. .............. ...... 9 c. Double Double hashing. hashing...... .......... ......... ......... .......... .......... .......... .......... .......... .......... .......... ............. .............. ...... 9 3. Perbandin Perbandingan gan antara antara metode metode chainin chainingg dan open addre addressin ssing..... g....... 9 4. Metode-Me Metode-Metode tode Lain..... Lain.......... .......... .......... .......... .......... .......... .......... .......... .......... ................ ................ ..... 10 a. Coalesce Coalescedd hashing. hashing...... .......... .......... .......... .......... .......... .......... .......... .............. .................... .............. ... 10 b. Perfect Perfect hashing. hashing...... .......... .......... .......... .......... .......... .......... .......... ............. ................... .................... ......... 10 c. Probabilis Probabilistic tic hashing.... hashing......... .......... .......... .......... .......... .............. .................... ...................... ........... 10 d. Robin Hood hashing............................. hashing............................................................. ................................ 11 G. Pengertian MD5.................................... MD5........................................................... ............................................ ..................... 11 H. Langkah-Langkah Langkah-Langkah Pembuatan MD...................................... MD................................................... ............. 11 1. Penambah Penambahan an Bit-bit Pengganj Pengganjal... al........ .......... .......... ............ ................... ....................... ............. 11 2. Penambah Penambahan an Nilai Panjang Panjang Pesan... Pesan........ .......... ........... ................. ...................... ................ ..... 11 3. Inisialisa Inisialisaii Penyangg Penyanggaa MD....... MD........... ......... .......... .......... .......... .......... .......... .......... .......... .......... ........ ... 11 4. Pengolah Pengolahan an Pesan Pesan dalam dalam Blok Blok Berukur Berukuran an 512 512 bit........... bit..................... .......... 12 I. Cara Kerja MD5....... MD5............ .......... .......... .......... .......... .......... .......... .......... .......... .......... ............... ..................... ............. 13 J. Proses Proses MD5 dengan dengan Berbagai Berbagai Macam Macam Masukan.. Masukan....... .......... .......... .......... .......... ........ ... 14 1. Proses Proses MD5 Dengan Dengan Masukan Masukan Berupa Berupa String.. String....... .......... .......... ............ ........... .... 14 2. Proses Proses MD5 Dengan Dengan Masukan Masukan Berupa Berupa File....... File.................. ....................... .............. 15 3. Proses Proses MD5 Sebagai Sebagai Test Test Suite..... Suite.......... .......... .......... ............... ...................... ................... ....... 15 K. Analisis Kecepatan MD5........................................ MD5.................................................................. .......................... 15 -3-
Fungsi Hash
BAB III PENUTUP............................... PENUTUP...................................................... ............................................................... ........................................ 16 A. Kesimpulan.............................. Kesimpulan..................................................... .............................................. .................................. ........... 16 B. Saran................................... Saran.......................................................... .............................................. .................................... ................ ... 16 DAFTAR PUSTAKA................................ PUSTAKA....................................................... .............................................. ..................................... .............. 17
-4-
Fungsi Hash
BAB I PENDAHULUAN A. Latar Belakang Keam Keaman anan an dan dan kera keraha hasi sian an data data pada pada jarin jaringa gann komp komput uter er saat saat ini ini menj menjad adii isu isu yang yang sang sangat at pent pentin ingg dan dan teru teruss berk berkem emba bang ng.. Bebe Bebera rapa pa kasu kasuss menyangkut keamanan jaringan komputer saat ini menjadi suatu pekerjaan yang membutuhkan biaya penanganan dan pengamanan yang sedemikian besar. Sistemsistem vital, seperti sistem pertahanan, sistem perbankan, sistem bandara udara dan sistem-sistem yang lain setingkat itu, membutuhkan tingkat keamanan yang sedemikian tinggi. Hal ini lebih disebabkan karena kemajuan bidang jaringan komputer dengan konsep open system-nya sehingga siapapun, di mananapun dan kapanpun kapanpun,, mempunya mempunyaii kesempat kesempatan an untuk untuk mengakse mengaksess kawasankawasan-kawa kawasan san vital vital tersebut. Untuk menjaga keamanan dan kerahasiaan pesan, data, atau informasi dalam suatu jaringan komputer maka diperlukan beberapa enkripsi guna membuat pes pesan an,, data data,, atau atau info inform rmas asii agar agar tida tidakk dapa dapatt diba dibaca ca atau atau dime dimeng nger erti ti oleh oleh sembarang orang, kecuali oleh penerima yang berhak. Pengamanan pesan, data, atau informasi informasi tersebut tersebut selain selain bertujuan bertujuan untuk meningkatkan meningkatkan keamanan keamanan,, juga berfungsi untuk: 1. Melind Melindung ungii pesan, pesan, data, data, atau informas informasii agar agar tidak tidak dapat dapat dibac dibacaa oleh oleh orangorangorang yang tidak berhak. 2. Mencega Mencegahh agar orang-oran orang-orangg yang tidak tidak berhak, berhak, menyisipka menyisipkann atau menghapus menghapus pesan, data dan atau informasi. Salah satu hal yang penting dalam komunikasi mengg mengguna unakan kan komput komputer er dan dan dalam dalam jaring jaringan an komput komputer er untuk untuk menja menjamin min kerahasiaan kerahasiaan pesan, data, ataupun informasi adalah enkripsi . Salah satu dari bagian kriptografi adalah fungsi hash satu arah. Fungsi hash hash satu satu arah arah adalah adalah diman dimanaa kita kita dengan dengan mudah mudah melaku melakukan kan enkrip enkripsi si untuk untuk mendapat mendapatkan kan cipher-nya cipher-nya tetapi tetapi sangat sangat sulit sulit untuk untuk mendapat mendapatkan kan plaintex plaintext-nya. t-nya. Salah Salah satu fungsi hash yang paling paling banyak digunaka digunakann adalah Message Message Digest Digest 5 (MD-5). MD-5 merupakan fungsi hash satu arah yang diciptakan oleh Ron Rivest pada pada tahun 1991 untuk menggant menggantikan ikan hashfunct hashfunction ion sebelumnya. 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 variabel 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. Message digest atau intisari pesan harus mempunyai tiga sifat penting, yaitu : 1. Bila P diketa diketahui, hui, maka maka MD(P) MD(P) akan akan dengan dengan mudah mudah dapat dapat dihitun dihitung. g. 2. Bila MD(P) MD(P) diketa diketahui, hui, maka maka tidak tidak mungk mungkin in menghit menghitung ung P. 3. Tidak Tidak seorang seorang pun dapat dapat memberi memberi dua dua pesan pesan yang mempun mempunyai yai intisari intisari pesan pesan yang sama. H(M) H(M’) . Keama Keamanan nan komput komputer er adala adalahh menja menjamin min data data atau atau inform informasi asi tidak tidak dibaca, tidak dimodifikasi oleh orang lain yang tidak diberi otorisasi. Keamanan sistem dibagi menjadi tiga bagian : 1. Keam Keaman anan an Ekst Ekster erna nall Keamanan eksternal berkaitan dengan fasilitas komputer dari penyusup dan bencana seperti kebakaran atau bencana alam.
-5-
Fungsi Hash
2. Keaman Keamanan an Interf Interfac acee Pam Pamaka akaii Keamanan Keamanan interface interface pemakai pemakai yang berkaitan berkaitan dengan dengan identifik identifikasi asi pemakai pemakai sebelum pemakai diizinkan mengakses data atau program. 3. Keam Keaman anan an Inte Intern rnal al Keamanan internal berkaitan dengan beragam kendali yang dibangun pada perangkat keras dan perangkat lunak yang menjamin operasi yang handal dan tidak terganngu untuk menjaga integritas data. Seme Sement ntaara itu itu kebutu butuhhan keam eamana anan sist sisteem kompu ompute terr dapa dapatt dikategorikan menjadi aspek-aspek sebagai berikut : 1. Priv Privac acyy / Confi Confide dent ntia iali lity ty Inti Inti utama utama aspek aspek privac privacyy atau atau confi confiden dentia tiality lity adalah adalah usaha usaha untuk untuk menja menjaga ga informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah datadata yang sifatnya sifatnya privat privat sedangka sedangkann confiden confidentialit tialityy biasanya biasanya berhubun berhubungan gan dengan data yang diberikan ke pihak lain untuk keperluantertentu (misalnya sebagai bagian dari pendaftaran sebuah servis) dan hanya diperbolehkan untuk keperluan tertentu tersebut. 2. Integrity Aspek Aspek ini meneka menekanka nkann bahwa bahwa inform informasi asi tidak tidak boleh boleh diubah diubah tanpa tanpa seijin seijin pem pemil ilik ik info inform rmas asi. i. Adan Adanya ya viru virus, s, troj trojan an hors horse, e, atau atau pema pemaka kaii lain lain yang yang mengu menguba bahh inform informas asii tanpa tanpa ijin ijin merupa merupakan kan conto contohh masal masalah ah yang yang harus harus dihadapi. Sebuah e-mail dapat saja “ditangkap” (intercept) di tengah jalan, diubah diubah isinya isinya (altered, (altered, tampered tampered,, modified), modified), kemudian kemudian diteruska diteruskann ke alamat alamat yang dituju. Dengan kata lain, integritas dari informasi sudah tidak terjaga. Penggu Penggunaa naann encryp encryptio tionn dan dan digita digitall signa signatur ture, e, misaln misalnya, ya, dapat dapat mengat mengatasi asi masalah ini. 3. Auth Authen enti tica cati tion on Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul betul server yang asli. 4. Availability Aspek Aspek availa availabili bility ty atau atau keters ketersed ediaa iaann berhu berhubun bungan gan dengan dengan keter ketersed sediaa iaann informasi informasi ketika ketika dibutuhka dibutuhkan. n. Sistem Sistem informasi informasi yang diserang atau dijebol dijebol dapat menghambat atau meniadakan akses ke informasi.
B. Rumu Rumusa sann Mas Masal alah ah Pada makalah ini penulis akan membahas tentang masalah keamanan file yang dikirim melalui jaringan komputer agar orang yang tidak berhak tidak dapat membuka ataupun membaca file yang telah dikirim. Beberapa pembahasan tersebut meliputi : 1. Peng Penger erti tian an krip kripto togr graf afi. i. 2. Konse Konsepp Pengg Pengguna unaan an Krip Kriptog tograf rafi. i. 3. Peng Penger erti tian an Fun Fungs gsii Hash Hash.. 4. Metode Metode yang yang Digun Digunaka akann Dalam Dalam Fungsi Fungsi Hash. Hash. 5. Maca Macam-M m-Mac acam am Fung Fungsi si Hash Hash.. 6. Bentr Bentroka okann pad padaa Fung Fungsi si Hash. Hash. 7. Peng Penger erti tian an MD5. MD5. 8. Langk Langkah ah-La -Langk ngkah ah Pemb Pembua uatan tan MD. 9. Cara Kerj Kerjaa MD5 MD5.. -6-
Fungsi Hash
10. Proses MD5 dengan dengan Berbagai Berbagai Macam Masukan. Masukan. 11. Analisis Analisis Kecepata Kecepatann MD5.
C. Tujuan Penulisan Dengan adanya makalah ini, maka dapat diketahui bagaimana cara mengamankan file dari para pelaku yang tidak bertanggung jawab, yang tidak mempunyai hak untuk mengakses apalagi untuk mengambil data yang bukan hakn haknya ya.. Dala Dalam m maka makala lahh ini ini lebi lebihh rinc rincii lagi lagi akan akan memb membah ahas as tent tentan angg cara cara mengamankan file dengan menggunakan MD5, karena MD5 merupakan salah satu jenis dari fungsi hash yang paling banyak digunakan.
-7-
Fungsi Hash
BAB II PEMBAHASAN A. Pengertian Kriptografi Kriptograf Kriptografii berasal berasal dari bahasa bahasa yunani yang terdiri terdiri dari kata kryptos kryptos yang berarti tersembunyi tersembunyi dan grafo yang berarti tulis. Kriptograf Kriptografii secara secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut kriptograf kriptografii juga merupakan merupakan ilmu yang mempelaj mempelajari ari teknik-tek teknik-teknik nik matematik matematikaa yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integri tas data, serta autentikasi data. Kriptografi memungkinkan beberapa operasi atau proses terhadap data. Dua Dua buah buah oper operas asii dasa dasarr adal adalah ah enkr enkrip ipsi si (den (denga gann dekr dekrip ipsi si seba sebaga gaii pros proses es bal balik ikan anny nya) a) dan dan sign signin ingg (den (denga gann veri verifi fika kasi si dari dari sign signat atur uree seba sebaga gaii pros proses es balikannya). Enkripsi analog dengan memasukkan surat kedalam sebuah amplop sedang sedangka kann dekrip dekripsi si analog analog dengan dengan membu membuang ang amplop amplop dan dan mengam mengambil bil data. data. Signature analog dengan pemberian tanda-tangan terhadap sebuah dokumen dan penanda bahwa dokumen tersebut tidak berubah dari aslinya.
B. Konsep Konsep Pengguna Penggunaan an Kriptogra Kriptografi fi Konsep penggunaan kriptografi antara lain: 1. Kerahasiaan (Confidentiality). Sederhana Sederhananya, nya, kerahasi kerahasiaan aan adalah adalah proses proses penyembu penyembunyia nyiann data dari orang-orang yang tidak punya otoritas. 2. Integritas (Integrity) Proses untuk menjaga agar sebuah data tidak dirubah-rubah sewaktu ditransfer atau disimpan. 3. Penghinda Penghindaran ran Penolaka Penolakann (Non-repud (Non-repuditati itation) on) Proses Proses untuk untuk menja menjaga ga bukti-b bukti-bukt uktii bahwa bahwa suatu suatu data data beras berasal al dari dari sese seseora orang. ng. Seseor Seseorang ang yang yang ingin ingin menya menyangk ngkal al bahwa bahwa data data terseb tersebut ut bukan bukan berasal berasal darinya, darinya, dapat dapat saja melenyapkan melenyapkan bukti-bukt bukti-buktii yang ada. Karenanya Karenanya diperlukan teknik untuk melindungi data-data tersebut. 4. Autentikasi (Authentication) Proses untuk menjamin keaslian suatu data. 5. Tanda Tangan Data (Data Signature) Dapa Dapatt dise disebu butt juga juga seba sebaga gaii tand tandaa tang tangan an digi digita tal. l. Berg Bergun unaa untu untuk k menan menandat datang angii data data digita digital. l. Contoh Contohnya nya adala adalahh Digita Digitall Signat Signature ure Algori Algorithm thm (DSA) 6. Kontrol Akses (Access Control) Untuk mengontrol akses terhadap suatu entity. Contoh penggunaan kriptografi di dunia internet antara lain: Secure Shell (SSH), SSL (Secure Socket Layer), Secure Hypertext Transfer Protocol (HTTP), dan lain lain.
C. Penger Pengertia tiann Fungsi Fungsi Has Hashh Hash Hash func functi tion on atau atau fung fungsi si hash hash adal adalah ah suat suatuu cara cara menc mencip ipta taka kann “fingerpri “fingerprint” nt” dari berbagai berbagai data masukan. masukan. Hash function akan menggant menggantii atau mentranspose-kan data tersebut untuk menciptakan fingerprint, yang biasa disebut -8-
Fungsi Hash
hash value. Hash value value biasanya biasanya digambar digambarkan kan sebagai sebagai suatu suatu string string pendek pendek yang terdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasi heksadesimal). Suatu hash function adalah sebuah fungsi matematika, yang mengam mengambil bil sebuah sebuah panja panjang ng variab variabel el string string input, input, yang yang diseb disebut ut pre-im pre-image age dan mengkonversikannya ke sebuah string output dengan panjang yang tetap dan bias biasany anyaa lebih lebih kecil kecil,, yang yang diseb disebut ut messa message ge diges digest5. t5. Hash Hash functi function on diguna digunakan kan untuk melakukan melakukan fingerprin fingerprintt pada pre-image, pre-image, yaitu menghasilkan menghasilkan sebuah nilai nilai yang dapat menandai (mewakili) pre-image sesungguhnya. Fungsi hash satu arah (one-way hash function) adalah hash function yang bekerja satu arah, yaitu suatu hash function function yang dengan mudah dapat dapat menghitun menghitungg hash value dari pre-image, pre-image, tetapi tetapi sangat sangat sukar sukar untuk menghitung menghitung pre-image dari hash value. Sebuah fungsi fungsi hash satu arah, arah, H(M), beroperasi beroperasi pada suatu suatu pre-image pre-image pesan M dengan dengan panjang panjang sembarang, dan mengembalikan nilai hash h yang memiliki panjang tetap. Dalam notasi matematika fungsi hash satu arah dapat ditulis sebagai: h = H(M), dengan h memiliki panjang b Ada banya banyakk fungsi fungsi yang yang mampu mampu meneri menerima ma input input dengan dengan panja panjang ng sembarang dan menghasilkan output dengan panjang tetap, tetapi fungsi hash satu arah memiliki karakteristik tambahan yang membuatnya satu arah : Diberikan M, mudah menghitung h. Diberikan h, sulit menghitung M agar H(M) = h. Diberikan M, sulit menemukan pesan lain, M', agar H(M) = H(M'). Dalam dunia nyata, nyata, fungsi fungsi hash satu arah dikembangka dikembangkann berdasar berdasarkan kan ide ide sebu sebuah ah fung fungsi si komp kompre resi si.. Fung Fungsi si satu satu arah arah ini ini meng mengha hasi silk lkan an nila nilaii hash hash berukuran n bila diberikan input berukuran b. Input untuk fungsi kompresi adalah suatu suatu blok pesan dan hasil hasil blok teks sebelumny sebelumnya. a. Sehingga Sehingga hash suatu suatu blok M, adalah hi = f(Mi,hi-1) dengan hi = hash value saat ini. Mi = blok pesan saat ini. hi-1 = hash value blok teks sebelumnya. Mi One-way hash function
hi
hi-1 Fungsi hash satu arah Fungsi hash sangat berguna untuk menjaga integritas sebuah data. Sudah banyak algoritma hash function yang diciptakan, namun hash function yang umum umum diguna digunakan kan saat saat ini adala adalahh MD5 dan SHA (Secur (Securee Hash Hash Algori Algorithm thm). ). Algo Algori ritm tmaa hash hash func functi tion on yang yang baik baik adal adalah ah yang yang meng mengha hasi silk lkan an sedi sediki kitt hash hash collision.
-9-
Fungsi Hash
D. Metode Metode yang yang Digunakan Digunakan Dalam Dalam Fungs Fungsii Hash 1. Meto Metode de Pemb Pembag agia iann Pada metode pembagian ini, kita memetakan suatu kunci k ke dalam salah satu slot dari m buah slot dengan mengambil sisa dari k dibagi oleh m. Maka, fungsi Hash ini adalah:
h(k) = k mod m
dimana : h(k) = fungsi Hash k = kunci yang akan dihitung/di-hash, m = jumlah keseluruhan slot. 2. Meto Metode de Perk Perkal alia iann Metoda perkalian untuk memperoleh fungsi Hash dilakukan melalui dua langkah. Langkah pertama, kita mengalikan kunci dengan suatu konstanta didalam range 0 < A < 1 dan mengambil nilai fraksional dari kA. Kemudian, kita mengalikan nilai ini dengan m dan dapat diperoleh hasilnya. Singkatnya, fungsi Hash ini adalah
h(k) = └m (k A mod 1) ┘,
dimana: A » (Ö5 - 1)/2 = 0,6180339887... 0,6180339887... (Golden (Golden Number), “k A mod 1” artinya adalah nilai fraksional dari kA, atau kA – └ kA kA ┘.
E. MacamMacam-Mac Macam am Fung Fungsi si Hash Hash Fungsi Hash (dilambangkan dengan h(k)) bertugas untuk mengubah k (key) menjadi suatu nilai dalam interval [0....X], dimana "X" adalah jumlah maks maksim imum um dari dari reco record rd-re -reco cord rd yang yang dapa dapatt dita ditamp mpun ungg dala dalam m tabe tabel. l. Juml Jumlah ah maksimum ini bergantung pada ruang memori yang tersedia. Fungsi Hash yang ideal adalah mudah dihitung dan bersifat random, agar dapat menyebarkan semua key. Dengan key yang tersebar, tersebar, berarti berarti data dapat terdistrib terdistribusi usi secara secara seragam seragam ben bentro troka kann dapa dapatt dice dicega gah. h. Sehi Sehing ngga ga komp komple leks ksit itas as wakt waktuu mode modell Hash Hash dapa dapatt mencapai O(1), di mana kompleksitas tersebut tidak ditemukan pada struktur model lain. Ada beberapa macam fungsi hash yang relative sederhana yang dapat digunakan dalam penyimpanan penyimpanan database: 1. Metode Metode Pembag Pembagian ian Bersisa Bersisa (Divis (Division-R ion-Remai emainder nder Metho Method) d) Jumlah lokasi memori yang tersedi dihitung, kemudian jumlah tersebut digunakan sebagai pembagi untuk membagi nilai yang asli dan menghasilkan sisa. Sisa tersebut adalah nilai hashnya. Secara umum, rumusnya h(k)= k mod m. Dalam hal ini m adalah jumlah lokasi memori yang tersedia pada array. Fungsi hash tersebut menempatkan record dengan kunci k pada suatu lokasi memori yang beralamat h(k). Metode ini sering menghasilkan nilai hash yang sama dari dua atau lebih nilai aslinya atau disebut dengan bentrokan. Karena itu, dibutuhkan mekanisme khusus untuk menangani bentrokan yang disebut kebijakan resolusi bentrokan. 2. Melipat (Folding) Metode ini membagi nilai asli ke dalam beberapa bagian, kemudian menambahkan nilai-nilai tersebut, dan mengambil beberapa angka terakhir sebagai nilai hashnya.
- 10 -
Fungsi Hash
3. Transformasi Radiks (Radix Transformation) Karena nilai dalam bentuk digital, basis angka atau radiks dapat diganti sehingga menghasilkan urutan angka-angka yang berbeda. Contohnya nilai desimal (basis 10) bisa ditransformasikan kedalam heksadesimal (basis 16). Digit atas hasilnya bisa dibuang agar panjang nilai hash dapat seragam. 4. Pengaturan Ulang Digit Radiks Radiks (Radix Transformation) Metode ini mengubah urutan digit dengan pola tertentu. Contohnya meng mengam ambi bill digi digitt ke tiga tiga samp sampai ai ke enam enam dari dari nila nilaii aslin aslinya ya,, kemu kemudi dian an memba membalik likan an urutan urutannya nya dan menggu mengguna nakan kan digit digit yang yang teruru terurutt terbal terbalik ik itu sebagai nilai hash. Fung Fungsi si hash hash yang yang beke bekerj rjaa deng dengan an baik baik untu untukk peny penyim impa pana nann pada pada database belum tentu bekerja dengan baik untuk keperluan kriptografi atau pengece pengecekan kan kesalaha kesalahan. n. Ada beberapa beberapa fungsi fungsi hash terkenal terkenal yang digunakan digunakan untuk keperluan kriptografi. Diantaranya adalah fungsi hash message-diggest, contohny contohnyaa MD2, MD4, dan MD5, digunakan digunakan untuk untuk menghasi menghasilkan lkan nilai hash dari tanda tangan digital yang disebut message-diggest. Ada pula Secure Hash Algorithm Algorithm (SHA), (SHA), sebuah sebuah algoritma algoritma standar standar yang menghasil menghasilkan kan messagemessagediggest yang lebih besar (60- bit) dan serupa dengan MD4.
F. Bentro Bentrokan kan Pada Pada Fungs Fungsii Hash Hash Fungsi Fungsi hash bukan merupakan merupakan fungsi fungsi satu-ke-sa satu-ke-satu, tu, artinya artinya beberapa beberapa record yang berbeda dapat menghasilkan nilai hash yang sama / terjadi bentrokan. Dengan fungsi hash yang baik, hal seperti ini akan sangat jarang terjadi, tapi pasti akan akan terj terjad adi. i. Jika Jika hal hal sepe sepert rtii ini ini terj terjad adi, i, reco record rd-re -reco cord rd ters terseb ebut ut tida tidakk bisa bisa menempati lokasi yang sama. Ada dua macam kebijakan resolusi bentrokan pada tabel hash, yaitu kebijakan resolusi bentrokan di luar tabel dan kebijakan resolusi bentroka bentrokann di dalam dalam tabel. tabel. Harus Harus diperhati diperhatikan kan juga teknik-teknik teknik-teknik penempat penempatan an record agar mudah dicari jika dibutuhkan. 1. Kebijaka Kebijakann Resolu Resolusi si Bentro Bentrokan kan di Luar Table Table Artinya tabel hash bukan lagi menjadi array of records, tetapi menjadi array array of pointe pointers. rs. Setiap Setiap pointer menunjuk ke senarai berkait yang berisi reco record rd ters terseb ebut ut.. Meto Metode de sepe seperti rti ini ini dina dinama maka kann chai chaini ning ng.. Dala Dalam m bent bentuk uk sederhana sederhananya nya berupa berupa senarai senarai berkait berkait dari recordrec recordrecord ord yang menghasi menghasilkan lkan nilai hash yang sama. Penambahan record dapat dilakukan dengan menambah senarai berisi record tersebut. Untuk pencarian pada tabel, pertama-tama dicari nilai nilai hash hash terleb terlebih ih dahulu dahulu,, kemudi kemudian an dilaku dilakukan kan pencar pencarian ian dalam dalam senara senaraii berkait yang bersangkutan. Untuk menghapus suatu record, hanya menghapus senarainya saja.
- 11 -
Fungsi Hash
Resolusi bentrokan dengan Chaining Kele Kelebbiha ihan dari ari metod tode chainin iningg ini ini cha chainin iningg ini ini adala dalahh pros prosees pengh penghap apusa usann yang yang relari relariff mudah mudah dan penamb penambah ahan an ukuran ukuran tabel tabel hash hash bisa bisa ditunda untuk waktu yang lebih lama karena penurunan kinerjanya berbanding lurus meskipun seluruh lokasi pada table sudah penuh. Bahkan, penambahan ukuran tabel bias saja tidak perlu dilakukan sama sekali karena penurunan kinerjanya yang linier. Misalnya, table yang berisi record sebanyak dua kali lipat kapasitas yang direkomendasikan hanya akan lebih lambat dua kali lipat dibanding yang berisi sebanyak kapasitas yang direkomendasikan. Kekuranga Kekurangann dari metode chaining chaining ini sama dengan kekurangan kekurangan dari senarai senarai berkait. berkait. Operasi Operasi traversal traversal pada senarai berkait memiliki memiliki performa performa cache yang buruk. Struktur data lain dapat digunakan sebagai pengganti senarai berkait. Misa Misaln lnya ya deng dengan an poho pohonn seim seimba bang ng,, komp komple leks ksit itas as wakt waktuu terb terbur uruk uk bisa bisa diturunkan menjadi O(log n) dari yang sebelumnya O(n). Namun demikian, karena setiap senarai diharapkan untuk tidak panjang, struktur data pohon ini kuran kurangg efisie efisienn kecua kecuali li tabel tabel hash hash terse tersebut but meman memangg didesa didesain in untuk untuk jumlah jumlah record record yang banyak atau kemungkin kemungkinan an terjadi terjadi bentroka bentrokann sangat sangat besar besar yang mungkin terjadi karena masukan memang disengaja agar terjadi bentrokan. 2. Kebijaka Kebijakann Resolu Resolusi si Bentrok Bentrokan an di di Dalam Dalam Table Table Berbe Berbeda da denga dengann kebij kebijaka akann resolu resolusi si bentro bentrokan kan di luar luar tabel, tabel, pada pada kebijakan resolusi di dalam tabel data disimpan di dalam hash tabel tersebut, bukan dalam senarai berkait yang bisa bertambah terus menerus. Dengan demik demikian ian data data yang yang disimp disimpan an tidak tidak mungk mungkin in bisa bisa lebih lebih banyak banyak daripa daripada da jumlah ruang pada table hash. Jika Jika suatu suatu record record akan akan dimasu dimasukka kkann ke dalam dalam table table hash hash pada pada lokas lokasii sesuai sesuai nilai nilai hash-nya hash-nya dan ternyata ternyata lokasi tersebut tersebut sudah sudah diisi dengan record lain maka harus dicari lokasi alternatif yang masih belum terisi dengan cara tertentu. Cara ini disebut Open Addressing. Ada bebera beberapa pa metode metode untuk untuk menemu menemuka kann lokasi lokasi baru baru yang yang masih masih kosong. Dalam proses menemukan lokasi baru ini harus menggunakan pola tert terten entu tu agar agar reco record rd yang yang disi disimp mpan an teta tetapp bisa bisa dica dicari ri deng dengan an muda mudahh saat saat dibutuhkan kemudian. Metode-metode yang sering digunakan adalah:
- 12 -
Fungsi Hash
a. Linear Probing Dengan menambahkan suatu interval pada hasil yang diperoleh dari fungsi hash sampai ditemukan lokasi yang belum terisi. Interval yang biasa digunakan adalah 1.
Resolusi bentrokan dengan Linear Probing b. Quadra Quadratic tic Probi Probing ng / Squar Squared ed Probi Probing ng Hampir sama dengan linear probing, hanya saja pada quadratic pro probi bing ng,, hasi hasill yang yang dipe dipero role lehh dari dari fung fungsi si hash hash dita ditamb mbah ahka kann deng dengan an kuadrat dari interval yang digunakan. c. Double Hashing Pada metode double hashing, hashing, jika lokasi lokasi yang diperoleh diperoleh dengan dengan fun fungsi hash ash sudah dah teri terisi si,, maka dila dilaku kuka kann pro proses hash hash lag lagi samp sampaai ditemukan lokasi yang belum terisi. 3. Perbandi Perbandingan ngan Antara Antara Metode Metode Chaining Chaining dan dan Open Open Addressi Addressing ng Keunggulan metode chaining dibanding open addressing: a. Lebih mudah diimplementas tasikan dengan efektif dan hanya membutuhkan struktur data dasar. b. Metode Metode chaini chaining ng tidak rawan rawan terhad terhadap ap data-dat data-dataa yang yang berkumpu berkumpull di daerah daerah terten tertentu. tu. Metode Metode open open addres addressin singg membu membutuh tuhkan kan algori algoritma tma hash hash yang lebih baik untuk menghindari pengumpulan data di sekitar lokasi tertentu. c. Perfo Perform rmaa menu menuru runn seca secara ra lini linier er.. Mesk Meskip ipun un sema semaki kinn bany banyak ak reco record rd yang dimasukkan maka semakin panjang senarai berantai, tabel hash tidak akan penuh dan tidak akan menimbulkan peningkatan waktu pencarian record record yang tibatiba meningkat meningkat yang terjadi bila mengguna menggunakan kan metode metode open addressing. d. Jika Jika record record yang dimasu dimasukka kkann panja panjang, ng, memori memori yang diguna digunakan kan akan akan lebih sedikit dibandingkan dengan metode open addressing.
- 13 -
Fungsi Hash
Perbandingan waktu yang diperlukan untuk melakukan pencarian. Saat tabel mencapai 80% terisi, kinerja pada linear probing(open addressing)menurun drastis. Untuk ukuran record record yang kecil, keunggul keunggulan an metode metode open addressing addressing dibandingkan dibandingkan dengan chaining diantaranya a. Ruang Ruang yang diguna digunakan kan lebih lebih efisien efisien karena karena tidak tidak perlu menyimp menyimpan an pointer pointer atau mengalokasi tempat tambahan di luar tabel hash. b. Tidak Tidak ada waktu waktu tambahan tambahan untuk pengalok pengalokasia asiann memori memori karena metode open addressing tidak memerlukan pengalokasian memori. c. Tidak memerlukan pointer. Sebenarny Sebenarnya, a, pengguna penggunaan an algoritma algoritma apapun apapun pada table table hash biasanya biasanya cukup cepat, dan persentase kalkulasi yang dilakukan pada tabel hash rendah. Penggunaan Penggunaan memori juga jarang berlebihan. Oleh karena itu, pada kebanyakan kebanyakan kasus, perbedaan perbedaan antar algoritma ini tidak signifikan. 4. Meto Metode de-M -Met etod odee Lain Lain Sela Selain in meto metode de-me -meto tode de yang yang suda sudahh dise disebu butk tkan an di atas atas,, ada ada juga juga beberapa metode lain. a. Coalesced Hashing Gabungan Gabungan dari chaining chaining dan openaddre openaddressing ssing.. Coalesce Coalescedd hashing hashing menghubungkan ke tabel itu sendiri. Seperti open addressing, metode ini memili memiliki ki keung keunggul gulan an pada pada pengg pengguna unaan an tempa tempatt dan cache cache diban dibandin dingg meto metode de chai chaini ning ng.. Sepe Seperti rti chai chaini ning ng,, meto metode de ini ini meng mengha hasi silk lkan an loka lokasi si penyimpa penyimpanan nan yang lebih lebih menyeba menyebar, r, tetapi tetapi pada metode ini record record yang disimpan tidak mungkin lebih banyak daripada ruang yang disediakan tabel. b. Perfect Hashing Jika record yang akan digunakan sudah diketahui sebelumnya, dan jumlahn jumlahnya ya tidak melebihi melebihi jumlah jumlah ruang ruang pada tabel hash, hash, perfect perfect hashing hashing bisa bisa diguna digunaka kann untuk untuk membua membuatt tabel tabel hash hash yang yang sempur sempurna, na, tanpa tanpa ada bentrokan. c. Probabilistic Hashing Kemungkinan solusi paling sederhana untuk mengatasi bentrokan adalah dengan dengan engganti record yang yang sudah disimpan disimpan dengan record yang yang baru, baru, atau atau membua membuang ng record record yang yang baru baru akan akan dimas dimasukk ukkan. an. Hal ini bisa bisa
- 14 -
Fungsi Hash
berdampa berdampakk tidak tidak ditemuka ditemukannya nnya record record pada saat pencaria pencarian. n. Metode Metode ini digunakan untuk keperluan tertentu saja. d. Robin Hood Hashing Salah Salah satu satu varias variasii dari dari resolu resolusi si bentr bentroka okann double double hashi hashing. ng. Ide dasarnya dasarnya adalah sebuah sebuah record record yang sudah dimasukka dimasukkann bisa digantika digantikann dengan record yang baru jika nilai pencariannya (probe count – bertambah setiap menemukan termpat yang sudah terisi) lebih besar daripada nilai pencarian dari record yang sudah dimasukkan. Efeknya adalah mengurangi kasus terburuk waktu yang diperlukan untuk pencarian.
G. Pengertian MD5 Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada pada aplika aplikasi si keaman keamanan, an, dan MD5 juga juga umum umum digunk digunkan an untuk untuk melak melakuka ukann pengujian integritas sebuah file. MD5 MD5 di desain sain oleh leh Rona Ronald ld Rive ivest pad pada tah tahun 1991 991 untu untuk k mengga mengganti ntikan kan hash hash functi function on sebelu sebelumny mnya, a, MD4. MD4. Pada Pada tahun tahun 1996, 1996, sebua sebuahh kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna kriptograf kriptografii mulai menganju menganjurkan rkan mengguna menggunakan kan algoritma algoritma lain, seperti seperti SHA-1 (kla (klaim im terb terbar aruu meny menyat atak akan an bahw bahwaa SHA-1 SHA-1 juga juga caca cacat). t). Pada Pada tahu tahunn 2004 2004,, kecacata kecacatan-kec n-kecacat acatan an yang lebih lebih serius serius ditemukan ditemukan menyeba menyebabkan bkan pengguna penggunaan an algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan. dipertanyakan.
H. Langkah-Langkah Langkah-Langkah Pembuatan Pembuatan MD 1. Penambahan Penambahan Bit-bit Pengganjal Pengganjal a. Pesan Pesan ditambah ditambah dengan dengan sejuml sejumlah ah bit penggan pengganjal jal sedemik sedemikian ian sehingga sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. b. Jika panjan panjangg pesan pesan 448 bit, bit, maka pesan pesan tersebu tersebutt ditambah ditambah dengan dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512. c. Bit-bit Bit-bit pengganj pengganjal al terdiri terdiri dari sebua sebuahh bit 1 diikuti diikuti dengan dengan sisanya sisanya bit 0. 0. 2. Penamb Penambaha ahann Nilai Nilai Panj Panjang ang Pesan Pesan a. Pesan Pesan yang telah diberi diberi bit-bi bit-bitt pengg penggan anjal jal selanj selanjutn utnya ya ditambah ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. b. Jika panja panjang ng pesan pesan > 264 maka maka yang diambil diambil adalah adalah panjan panjangnya gnya dalam dalam modulo 264. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang ditambahkan menyatakan K modulo 264. c. Sete Setela lahh dita ditamb mbah ah deng dengan an 64 bit, bit, panj panjan angg pesa pesann seka sekara rang ng menj menjad adii kelipatan 512 bit. 3. Inis Inisia iali lisa saii Penya Penyang ngga ga MD MD a. MD5 membu membutuh tuhkan kan 4 buah buah penya penyangg nggaa (buffe (buffer) r) yang masingmasing-mas masing ing panjangnya 32 bit. Total panjang penyangga adalah 4 × 32 = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir. b. Keempat Keempat penyan penyangga gga ini diberi diberi nama nama A, B, C, dan dan D. Setiap Setiap penyan penyangga gga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut: A = 01234567 B = 89ABCDEF - 15 -
Fungsi Hash
C = FEDCBA98 D = 76543210 4. Pengolahan Pesan dalam Blok Berukuran 512 bit a. Pesan Pesan dibagi dibagi menjadi menjadi L buah buah blok blok yang masingmasing-mas masing ing panja panjangn ngnya ya 512 bit (Y0 sampai YL – 1). b. Setiap Setiap blok 512-bit 512-bit diprose diprosess bersama bersama dengan dengan penyan penyangga gga MD menjad menjadii keluaran 128-bit, dan ini disebut proses HMD5. Gambaran proses HMD5 diperlihatkan pada Gambar 13.3. Y q M 5
1
q
D
2
ABCD ← f F ( ABCD, Y q , T [1..16])
A
B
C
D
ABCD ← f G ( ABCD, Y q , T [17..32])
A
B
D
C
ABCD ← f H ( ABCD, Y q , T [33..48])
A
B
C
D
ABCD ← f I ( ABCD, Y q , T [49..64])
+
+
+
1
M
q
2
D
+
8
1+
c. Pada Gamba Gambarr 13.3, Yq Yq menyata menyatakan kan blok blok 512-bit 512-bit ke-q dari pesan pesan yang yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. d. MDq adalah adalah nilai nilai messag messagee digest digest 128-bit 128-bit dari dari proses proses HMD5 ke-q. ke-q. Pada Pada awal proses, MDq berisi nilai inisialisasi penyangga MD. e. Proses Proses HMD5 HMD5 terdiri terdiri dari 4 buah buah putaran, putaran, dan masing masing-ma -masin singg putaran putaran melakukan operasi dasar MD5 sebanyak 16 kali dan setiap operasi dasar memakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen Tabel T. f. Fungsi Fungsi-fu -fungs ngsii fF, fG, fH, dan fI masingmasing-mas masing ing beris berisii 16 kali operas operasii dasar terhadap terhadap masukan, setiap operasi operasi dasar menggunakan menggunakan elemen Tabel Tabel T. - 16 -
Fungsi Hash
g. Operasi Operasi dasar dasar MD5 diperl diperlihatk ihatkan an pada pada Gamba Gambarr 13.4. 13.4. a
b
c
d
g
+
+
X [ k ]
+
T [ i ]
C
Ls
S
+
h. Karena Karena ada 16 kali kali operasi operasi dasar, dasar, maka maka setiap setiap kali selesa selesaii satu operasi operasi dasar, penyangga-penyangga penyangga-penyangga itu digeser ke kanan secara sirkuler dengan cara pertukaran sebagai berikut: temp ← d d ←c c ←b b ← a a ← temp a
b
+
X [k ]
+
T [i]
+
c
d
c
d
g
CLSs
+
a
b
I. Cara Kerja MD5 MD5 mengolah blok 512 bit, dibagi kedalam 16 subblok berukuran 32 bit. Keluaran algoritma diset menjadi 4 blok yang masing-masing berukuran 32 bit yang setelah digabungkan akan membentuk membentuk nilai hash 128 bit.
- 17 -
Fungsi Hash
Algoritma MD5 Pesan diberi tambahan sedemikian sehingga panjang menjadi k-bit, dimana k = 512n – 64 bit. n merupakan blok masukan. Tambahan ini diperlukan hingga pesan menjadi k bit. Kemudian 64 bit yang masing kosong, dibagian akhir, diisi diisi panja panjang ng pesan. pesan. Inisia Inisiasi si 4 variab variabel el denga dengann panja panjang ng 32 bit yaitu yaitu a,b,c, a,b,c,d. d. Variabel a,b,c,d dikopikan ke variabel a,b,c,d yang kemudian diolah melalui 4 tahapan yang sangat serupa. Setiap tahapan menggunakan 16 kali operasi berbeda, menj menjal alan anka kann fung fungsi si nonl nonlin inea earr pada pada tiga tiga vari variab abel el a,b, a,b,c, c, atau atau d. Hasi Hasiln lnya ya ditambahkan ke variabel keempat, subblok pesan dan suatu konstanta. Kemudian dirotasi kekiri beberapa bit yang kemudian ditambahkan ke salah satu dari a,b,c, atau d. Kemudian nilai a,b,c, dan d menggantikan nilai a,b,c, dan d. Kemudian dikeluarkan output yang merupakan gabungan dari a,b,c, dan d. Fungsi kompresi yang digunakan oleh algoritma md5 adalah sebagai berikut : a ← b + (( a + g ( b,c,d) + X[k] + T[i] <<< s ), dimana g adalah salah fungsi primitif F,G,H,I seperti dibawah ini :
dan operasi XOR, AND, OR, dan NOT adalah sebagai berikut :
J. Proses MD5 dengan dengan Berbagai Macam Masukan 1. Proses MD5 Dengan Masukan Berupa String Proses Proses MD5 denga dengann masuka masukann berupa berupa string string adalah adalah proses proses yang yang masukannya berupa karakter yang dimasukan melalui keyboard.
- 18 -
Fungsi Hash
2. Proses Proses MD5 MD5 Denga Dengann Masuka Masukann Berupa Berupa File File Proses MD5 dengan masukan berupa file adalah proses MD5 yang masukannya memanggil file yang kenmudian dihitung berapa panjang bitnya, dalam keadaan ini file diperlakukan sebagai bit memori sehingga masukannya tidak terpengaruh pada ekstensinya. Kemudian dilakukan proses MD5. 3. Proses Proses MD5 Sebag Sebagai ai Test Test Suite Suite Test suite dilakukan untuk mengetahui apakah program yang dibuat ini sudah udah bena benarr atau atauka kahh masi masihh terd terdap apat at kesa kesala laha hann-ke kesa sala laha han. n. Seba Sebaga gaii perbandi perbandingan ngannya nya digunaka digunakann hasil yang sudah sudah didapatk didapatkan an oleh Ron Rivest Rivest yang sudah didefinisikan pada RFC 1321. Pada gambar 3.3 dapat dilihat bahwa masukan dari MD5 sudah ditentukan sehinnga hanya membandingkan hasil pada layar dengan yang tercantum pada RFC 1321.
K . Analisis Kecepatan MD5 Analisi Analisi kecepata kecepatann disini disini adalah adalah analisis analisis tentang tentang kecepata kecepatann aplikasi aplikasi dalam mengenkrip file untuk mencari nilai hash. Analisis dilakukan untuk mencari kecepatan apliksi dengan masukan yang file yang mempunyai perbedaan dalam hal ukuran. Pengujian dilakukan dengan cara mengenkrip file sebanyak 31 (tiga puluh satu) buah file dengan besar file yang berbeda-beda. Setiap file dilakukan penga pengambi mbilan lan waktu waktu eksek eksekusi usi sebany sebanyak ak55 kali kali kemud kemudian ian mencar mencarii waktu waktu ratarataratanya.
- 19 -
Fungsi Hash
BAB III PENUTUP A. Kesi Kesimp mpul ulan an Kriptografi adalah ilmu yang berguna untuk mengacak (kata yang lebih tepat adalah masking) data sedemikian rupa sehingga tidak bisa dibaca oleh pihak ketiga. ketiga. Tentu Tentu saja data yang diacak diacak harus bisa dikembal dikembalikan ikan ke bentuk bentuk semula semula oleh pihak yang berwenang. Data yang ingin diacak biasanya disebut Plain Teks (Plain Text). Data diac diacak ak deng dengan an meng menggu guna naka kann Kunc Kuncii Enkr Enkrip ipsi si (Enc (Encry rypt ptio ionn Key) Key).. Pros Proses es pengacakan pengacakan itu sendiri disebut Enkripsi (Encryption). Plain Teks yang telah diacak disebu disebutt Cipher Cipher Teks Teks (Chipe (Chiperr Text) Text).. Kemudi Kemudian an proses proses untuk untuk menge mengemba mbalik likan an Cipher Teks ke Plain Teks disebut Dekripsi (Decryption). Kunci yang digunakan pada tahap Dekripsi disebut Kunci Dekripsi (Decryption Key). Pada prakteknya, selain pihak yang berwenang ada pihak ketiga yang sela selalu lu beru berusa saha ha untu untukk meng mengem emba bali lika kann Ciph Cipher er Teks Teks ke Plai Plainn Teks Teks atau atau memecahkan Kunci Dekripsi. Usaha oleh pihak ketiga ini disebut Kriptanalisis (Cryptanalysis). Fungsi Hash adalah suatu cara menciptakan “fingerprint” dari berbagai data masukan. Fungsi Hash akan mengganti atau mentranspose-kan data tersebut untu untukk menc mencip ipta taka kann fing finger erpr prin int, t, yang yang bias biasaa dise disebu butt hash hash valu value. e. Hash Hash valu valuee biasanya digambarkan sebagai suatu string pendek yang terdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasi heksadesimal). Algoritma fungsi hash yang baik adalah yang menghasilkan sedikit hash collision. Sudah Sudah banyak banyak algoritma algoritma fungsi fungsi hash yang diciptaka diciptakan, n, namun namun fungsi fungsi hash yang umum digunakan saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Kedua algo lgoritm ritmaa ters terseebut but dide idesain ain untu untukk pro prosesor sor 32 bit, bit, dan tida tidakk dap dapat diimplementasikan diimplementasikan untuk prosesor 64 bit. Fungsi hash yang paling banyak digunakan dalam keamanan jaringan komputer dan internet adalah MD5 yang dirancang oleh Ron Rivest yang juga merupa merupakan kan salah salah satu satu pengem pengemba bang ng algori algoritma tma RSA pada pada tahun tahun 1991. 1991. MD5 merupakan kelanjutan daru MD4 yang dirancang dengan tujuan keamanan. Secara perhitungan matetamatis tidak dimungkinkan untuk mendapatkan dua pesan yang memi memili liki ki hash hash yang yang sama sama.. Tida Tidakk ada ada sera serang ngan an yang yang lebi lebihh efis efisie ienn untu untuk k membongkar/mengetahui membongkar/mengetahui hash suatu pesan selain brute-force.
B. Saran Makala Makalahh ini sanga sangatt jauh jauh dari dari kesem kesempur purnan nan,, maka maka dari dari itu penuli penuliss sangat mengharapkan kritik dan saran untuk makalah ini yang tentunya sangat bermanfaat bagi penulis dalam menyempurnakan menyempurnakan makalah ini. Semoga Semoga makala makalahh ini bisa bisa menja menjadi di salah salah satu satu acuan acuan dalam dalam pembua pembuatan tan makalah selanjutnya. selanjutnya.
- 20 -
Fungsi Hash
Daftar Pustaka http://www.budi.insan.co.id http://www.elektro.undip.ac.idtransmisijun0 http://www.elektro.und ip.ac.idtransmisijun065_aghus_ab 65_aghus_abp.pdf p.pdf www.handoko.web.id www.ilmukomputer.com http://www.informatika.org~rinaldiMatdis2007-2008Maka http://www.informatika.org~rinald iMatdis2007-2008MakalahMakalahIF2153 lahMakalahIF2153-0708-0708061.pdf http://www.om4gus.blogspot.com/2008/0 http://www.om4gus.blo gspot.com/2008/02/java-enkripsi-md5.htm 2/java-enkripsi-md5.htmll http://www.stream.plasa.com http://www.telkom.net/kamus_internet_detail.p http://www.telkom.net/kam us_internet_detail.php?cid=2&id=431 hp?cid=2&id=431
- 21 -
Fungsi Hash
LAMPIRAN PROGRAM import java.io.UnsupportedEncodin java.io.UnsupportedEncodingException; gException; import java.security.MessageDiges java.security.MessageDigest; t; import java.io.BufferedReader; java.io.BufferedReader; import java.io.IOException; java.io.IOException; import java.io.InputStreamReader; java.io.InputStreamReader; import java.security.NoSuchAlgorithmExc java.security.NoSuchAlgorithmException; eption; public class AeSimpleMD5 { private static String convertToHex(byte[] data) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < data.length; i++) { int halfbyte = (data[i] >>> 4) & 0x0F; int two_halfs = 0; do { if ((0 <= halfbyte) && (halfbyte <= 9)) buf.append((char) buf.append((char) ('0' + halfbyte)); else buf.append((char) buf.append((char) ('a' + (halfbyte - 10))); halfbyte = data[i] & 0x0F; } while(two_halfs++ < 1); } return buf.toString(); } public static String MD5(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException UnsupportedEncodingException { MessageDigest MessageDigest md; md = MessageDigest.getInstance("MD5"); MessageDigest.getInstance("MD5"); byte[] md5hash = new byte[32]; md.update(text.getBytes("iso-8859-1"), md.update(text.getBytes("iso-8859-1"), 0, text.length()); md5hash = md.digest(); return convertToHex(md5hash); convertToHex(md5hash); } public static void main(String[] args) throws IOException { BufferedReader BufferedReader userInput = new BufferedReader (new InputStreamReader(System.in)); System.out.print("Enter System.out.print("Enter string:"); String rawString = userInput.readLine(); try { System.out.println("MD5 System.out.println("MD5 hash of string: " + AeSimpleMD5.MD5(rawStrin AeSimpleMD5.MD5(rawString)); g)); } catch (NoSuchAlgorithmException e) { - 22 -
Fungsi Hash
// TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } Berikut adalah output dari program diatas :
- 23 -