Makalah Keamanan Komputer
Oleh :
SITTI NURHAERATY (60200105042)
JURUSAN TEKNIK INFORMATIKA INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI MAKASSAR 2008
KATA PENGANTAR Puji syukur penulis panjatkan atas kehadirat Allah SWT dan junjungan besar Nabi Muhamma Muhammadd SAW SAW, karena karena atas Rahmat Rahmat dan Hidaya Hidayah-Ny h-Nyaa sehing sehingga ga penulis penulis dapat menyelesaikan makalah ini tepat waktu. Melalu Melaluii makalah makalah ini, ini, penulis penulis ingin ingin menguca mengucapka pkann terima terima kasih kasih yang yang sebesa sebesarrbesarnya 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 karena itu itu penul penulis is sanga sangatt mengh menghara arapka pkann saran saran dan kriti kritikk yang yang tent tentuny unyaa bersi bersifa fatt membangun demi kesempurnaan makalah ini.
Makassar, Juni 2008 Penulis
DAFTAR ISI KAT KATA PENGANTAR.......................................................... PENGANTAR................................................................................ ............................. ............ ..... i DAFTAR ISI.......................................................................................................... ii BAB I PENDAHULUAN. PENDAHULUAN........ ............. ............. .............. ............. ............. .............. .............. ............. ............. ..................... .............. 1 A. Latar Belakang..... Belakang........... ............. .............. ............. ............. .............. .............. ............. ............. .............. .............. .......... ... 1 B. Rumusan Masalah.... Masalah........... .............. ............. ............. .............. .............. ................................ ............................... ...... 2 C. Tujuan Tujuan Penulisan.... Penulisan........... .............. ............. ............. .............. .............. ............. ................................. ........................... 3 BAB II PEMBAHASAN............................................................... PEMBAHASAN..................................................................................... ...................... 4 A. Pengertian Pengertian Kriptografi Kriptografi....... ............. ............. .............. .............. ............. ............. .............. ....................... ................ 4 B. Konsep Penggunaan Penggunaan Kriptog Kriptografi.. rafi........ ............. .............. ............. ................................ .......................... 4 1. Kerahasiaan Kerahasiaan (Confidential (Confidentiality) ity)....... .............. .............. ................................ ............................... ...... 4 2. Integritas Integritas (Integrity)...... (Integrity)............. .............. ............. ............. .............. .............. ............. ............. ............... ........ 4 3. Penghindaran Penghindaran Penolakan Penolakan (Non-repuditat (Non-repuditation). ion)................ ............................ ............. 4 4. Autentikasi Autentikasi (Authenticat (Authentication).. ion)......... ............. ............. .............. ................................ ......................... 4 5. Tanda Tangan Data Data (Data Signature)...................................... Signature).......................................... .... 4 6. Kontrol Akses (Access (Access Control). Control)........ .............. .............. ............. ............. ..................... .............. 4 C. Pengertian Pengertian Fungsi Hash......... Hash................ .............. ............. ............. .............. .............. ............. .................. ............ 4 D. Metode Metode yang Digunakan Digunakan Dalam Fungsi Fungsi Hash......... Hash................ .............. .................. ........... 6 1. Metode Pembagian.... Pembagian........... .............. .............. ............. ............. .............. .................. ........................ ............. 6 2. Metode Perkalian................................................... Perkalian..................................................................... ..................... ... 6 E. Macam-Macam Macam-Macam Fungsi Hash.......... Hash................ ............. .............. ............. ............. .............. ................. .......... 6 1. Metode Metode Pembagi Pembagian an Bersisa Bersisa (divisio (division-re n-remai mainde nderr method)......... method)......... 6 2. Melipat Melipat (folding) (folding)....... .............. ............. ............. .............. .............. ................................ ............................... ...... 6 3. Transformasi Transformasi Radiks (radix transformati transformation).... on).............................. .......................... 7 4. Pengaturan Pengaturan Ulang Ulang Digit Digit Radiks Radiks (radix (radix transform transformation) ation)...... .............. ........ 7 F. Bentrokan Bentrokan Pada Fungsi Hash........ Hash............... .............. .............. ............. ............. .............. ............. ........... ..... 7 1. Kebijakan Kebijakan Resolusi Resolusi Bentrokan Bentrokan di di Luar Table......... able................ .................... ............. 7 2. Kebijakan Kebijakan Resolusi Resolusi Bentrokan Bentrokan di di Dalam Table........ able............... .................. ........... 8 a. Linear Probing...... Probing............. .............. .............. ............. ............. .............. .............. ....................... ................ 9 b. Quadratic Quadratic probing probing / squared squared probing...... probing............. .............. ....................... ................ 9 c. Double hashing...... hashing............ ............. .............. .............. ............. ............. .............. ....................... ................ 9 3. Perbandi Perbandingan ngan antara antara metod metodee chaining chaining dan dan open address addressing ing...... ...... 9 4. Metode-Metode Metode-Metode Lain........ Lain............... .............. .............. ............. ............. .............. ........................ ................. 10 a. Coalesced Coalesced hashing...... hashing............. ............. ............. .............. .............. ............................... ........................ 10 b. Perfect hashing...... hashing............. .............. .............. ............. ............. .............................. ............................. ...... 10 c. Probabilisti Probabilisticc hashing...... hashing............. .............. ............. ..................... .................................. ................... 10 d. Robin Hood hashing............................................ hashing..................................................... ................ ......... 11 G. Pengertian Pengertian MD5......... MD5................ .............. ............. ............. .............. .............. ............. ............. .............. .............. .......... ... 11 H. Langkah-Langkah Langkah-Langkah Pembuatan MD.............. MD..................... .............. ............. ............. .............. .......... ... 11 1. Penambahan Penambahan Bit-bit Bit-bit Penggan Pengganjal... jal.......... .............. .......................... ................................ ............. 11 11 2. Penambahan Penambahan Nilai Panjang Pesan......... Pesan................ ..................................... .............................. 11 3. Inisialisai Inisialisai Penyangga Penyangga MD.............. MD..................... .............. ............. ............. .............. ............. ........... ..... 11 4. Pengolahan Pengolahan Pesan dalam Blok Berukuran Berukuran 512 512 bit..................... bit..................... 12 I. Cara Kerja MD5.......... MD5................ ............. .............. .............. ............. ............. .............. ............................. ...................... 13 J. Proses MD5 dengan Berbagai Macam Masukan....... Masukan............. ............. .............. .......... ... 14
1. Proses MD5 Dengan Dengan Masukan Berupa String........ String.............. .................... .............. 14 2. Proses MD5 Dengan Masukan Berupa File......................... File............................... ...... 15 3. Proses MD5 Sebagai Sebagai Test Test Suite.... Suite........... .............. ............. ............. .............. ................... ............ 15 K. Analisis Analisis Kecepatan Kecepatan MD5......... MD5................ ............. ............. .............. ............. ............. .............. ................. .......... 15 BAB III PENUTUP.............................................................................................. 16 A. Kesimpulan.. Kesimpulan........ ............. .............. ............. ............. .............. .............. ............. ............. .............. .............. .................. ........... 16 B. Saran......... Saran................ ............. ............. .............. ............. ............. .............. .............. ............. ............. ............... ..................... ............. 16 DAFTAR PUSTAKA............................................................................................ 17
BAB I PENDAHULUAN A. Latar Belakang Keamanan dan kerahasian data pada jaringan komputer saat ini menjadi isu isu yang yang sang sangat at pent pentin ingg dan terus terus berkem berkemban bang. g. Bebe Beberap rapaa kasus kasus meny menyan angk gkut ut keamanan jaringan komputer saat ini menjadi suatu pekerjaan yang membutuhkan biaya biaya penanga penanganan nan dan pengama pengamanan nan yang yang sedemik sedemikian ian besar besar. Sistem Sistem-si -siste stem m vital, vital, seperti sistem pertahanan, pertahanan, sistem perbankan, perbankan, sistem bandara udara dan sistem-sistem 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, mempunyai kesempatan untuk mengakses kawasan-kawasan vital tersebut. Untuk menjaga keamanan dan keraha kerahasi siaa aann pesan pesan,, data, data, atau atau info inform rmasi asi dalam dalam suatu suatu jari jaring ngan an komp komput uter er maka maka diperlukan beberapa enkripsi guna membuat pesan, data, atau informasi agar tidak dapat dibaca atau dimengerti oleh sembarang orang, kecuali oleh penerima yang berhak. berhak. Pengama Pengamanan nan pesan, pesan, data, data, atau atau informa informasi si tersebu tersebutt selain selain bertuju bertujuan an untuk untuk meningkatkan keamanan, juga berfungsi untuk: 1. Melind Melindungi ungi pesan, pesan, data, atau informa informasi si agar tidak dapat dapat dibaca oleh orang-or orang-orang ang yang tidak berhak. 2. Menc Menceg egah ah agar agar orang orang-or -oran angg yang yang tida tidakk berha berhak, k, meny menyis isip ipka kann atau atau meng menghap hapus us pesan, data dan atau informasi. Salah satu hal yang penting dalam komunikasi meng menggu guna naka kann komp komput uter er dan dan dala dalam m jari jaring ngan an komp komput uter er untu untukk menj menjam amin in kerahasiaan pesan, data, ataupun informasi adalah enkripsi. Salah satu dari bagian kriptografi adalah fungsi hash satu arah. Fungsi hash hash satu satu arah arah adal adalah ah dima dimana na kita kita denga dengann muda mudahh mela melaku kukan kan enkri enkripsi psi untu untuk k mendapatkan cipher-nya tetapi sangat sulit untuk mendapatkan plaintext-nya. Salah satu fungsi hash hash yang paling banyak banyak digunakan adalah adalah Message Digest Digest 5 (MD-5). MD-5 merupakan fungsi hash satu arah yang diciptakan diciptakan oleh Ron Rivest pada tahun 1991 untuk menggantikan hashfunction 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 yang mempunyai mempun yai 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 diketahu diketahui, i, maka maka MD(P) MD(P) akan dengan mudah mudah dapat dapat dihitung. dihitung. 2. Bila MD(P) diketah diketahui, ui, maka maka tidak tidak mungkin mungkin menghitu menghitung ng P. P. 3. Tidak Tidak seorang seorang pun dapat dapat memberi memberi dua pesan pesan yang yang mempunyai mempunyai intisar intisarii pesan yang yang sama. H(M) H(M’) . Keamanan komputer adalah menjamin data atau informasi tidak dibaca, tidak tidak dimodi dimodifik fikasi asi oleh oleh orang orang lain lain yang yang tidak tidak diberi diberi otoris otorisasi asi.. Keaman Keamanan an sistem sistem dibagi menjadi tiga bagian : 1. Keam Keaman anan an Ekst Ekster erna nall
Keamanan Keamanan eksterna eksternall berkait berkaitan an dengan dengan fasili fasilitas tas kompute komputerr dari penyusup penyusup dan bencana seperti kebakaran atau bencana alam. 2. Keam Keamana anann Interf Interfac acee Pamak Pamakai ai Keamanan interface pemakai yang berkaitan dengan identifikasi pemakai sebelum pemakai diizinkan mengakses data atau program. 3. Keam Keaman anan an Inte Intern rnal al Keamanan Keamanan interna internall berkait berkaitan an dengan dengan beragam beragam kendal kendalii yang yang dibang dibangun un pada perangkat keras dan perangkat lunak yang menjamin operasi yang handal dan tidak terganngu untuk menjaga integritas data. Sementara Sementara itu kebutuhan keamanan sistem komputer dapat dikategorika dikategorikann menjadi aspek-aspek sebagai berikut : 1. Privacy / Confidentiality Inti Inti utam utamaa aspe aspekk priv privac acyy atau atau conf confid iden enti tial alit ityy adal adalah ah usah usahaa untu untukk menj menjag agaa informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah data-data yang sifatnya privat sedangkan confidentiality biasanya berhubungan 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 ini menekankan bahwa informasi tidak boleh diubah tanpa seijin pemilik info informa rmasi si.. Adany Adanyaa viru virus, s, troj trojan an horse horse,, atau atau pemak pemakai ai lain lain yang yang meng menguba ubahh informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah email dapat saja “ditangkap” (intercept) di tengah jalan, diubah isinya (altered, tampered, modified), kemudian diteruskan ke alamat yang dituju. Dengan kata lain, lain, integri integritas tas dari informa informasi si sudah sudah tidak tidak terjag terjaga. a. Pengguna Penggunaan an encryp encryptio tionn dan digital signature, misalnya, misalnya, dapat mengatasi mengatasi 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 availability atau ketersediaan berhubungan dengan ketersediaan informasi keti ketika ka dibu dibutu tuhk hkan an.. Sist Sistem em info inform rmas asii yang ang dise disera rang ng atau atau dije dijebo boll dapa dapatt menghambat atau meniadakan akses ke informasi.
B. Rumu Rumusa sann Masa Masala lahh 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. Penge Pengert rtia iann krip kripto togr graf afi. i. 2. Konsep Konsep Penggun Penggunaan aan Kripto Kriptograf grafi. i. 3. Penge Pengert rtia iann Fung Fungsi si Hash. Hash.
4. Metode Metode yang yang Diguna Digunakan kan Dala Dalam m Fungsi Fungsi Hash. Hash. 5. Macam Macam-M -Mac acam am Fung Fungsi si Hash Hash.. 6. Bent Bentro rokan kan pada pada Fung Fungsi si Has Hash. h. 7. Peng Penger erti tian an MD MD5. 8. Lang Langkah kah-La -Lang ngkah kah Pemb Pembua uata tann MD. 9. Cara Cara Kerj Kerjaa MD5 MD5.. 10. Proses MD5 dengan dengan Berbagai Macam Macam Masukan. Masukan. 11. Analisis Analisis Kecepatan Kecepatan MD5. MD5.
C. Tujuan Penulisan Dengan adanya makalah ini, maka dapat diketahui bagaimana cara mengam mengamanka ankann file file dari para pelaku pelaku yang yang tidak tidak bertangg bertanggung ung jawab, jawab, yang yang tidak tidak mempunyai hak untuk mengakses apalagi untuk mengambil data yang bukan haknya. Dalam makalah ini lebih rinci lagi akan membahas tentang cara mengamankan file dengan menggunakan MD5, karena MD5 merupakan salah satu jenis dari fungsi hash yang paling banyak digunakan.
BAB II PEMBAHASAN A. Pengertian Kriptografi Kriptografi Kriptografi berasal dari bahasa yunani yang terdiri dari kata kryptos yang berarti tersembunyi dan grafo yang berarti tulis. Kriptografi secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut kriptografi juga merupak merupakan an ilmu ilmu yang yang mempel mempelaja ajari ri teknik teknik-te -tekni knikk matema matematik tikaa yang yang berhubun berhubungan gan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integri tas data, serta autentikasi data. Kriptografi memungkinkan beberapa operasi atau proses terhadap data. Dua buah operasi dasar adalah enkripsi (dengan dekripsi sebagai proses balikannya) dan signing (dengan verifikasi dari signature sebagai proses balikannya). Enkripsi analog dengan memasukkan surat kedalam sebuah amplop sedangkan dekripsi analog dengan membuang amplop dan mengambil data. Signature analog dengan pemberian tanda-tangan terhadap sebuah dokumen dan penanda bahwa dokumen tersebut tidak berubah dari aslinya.
B. Konsep Konsep Pengg Pengguna unaan an Kript Kriptogr ografi afi Konsep penggunaan kriptografi antara lain: 1. Kerahasiaan (Confidentiality). Sederhananya, kerahasiaan adalah proses penyembunyian data dari orangorang yang tidak punya otoritas. 2. Integritas (Integrity) Proses Proses untuk untuk menjag menjagaa agar sebuah sebuah data data tidak tidak dirubah dirubah-rub -rubah ah sewakt sewaktuu ditransfer atau disimpan. 3. Penghi Penghindar ndaran an Penolak Penolakan an (Non-rep (Non-repudit uditati ation) on) Proses untuk menjaga bukti-bukti bahwa suatu data berasal dari seseorang. Seseorang yang ingin menyangkal bahwa data tersebut bukan berasal darinya, dapat saja melenyapkan bukti-bukti yang ada. 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 menandatangi data digital. Contohnya adalah ada lah Digital Signature Algorithm (DSA) 6. Kontrol Akses (Access Control) Untuk mengontrol akses terhadap suatu entity. Contoh penggunaan kriptografi di dunia internet antara lain: Secure Shell Shell (SSH (SSH), ), SSL (Secu (Secure re Sock Socket et Layer) Layer),, Secu Secure re Hype Hyperte rtext xt Transf ransfer er Prot Protoc ocol ol (HTTP), dan lain lain.
C. Pengert Pengertian ian Fungsi Fungsi Hash Hash Hash Hash func functi tion on atau atau fung fungsi si hash hash adal adalah ah suat suatuu cara cara menci encipt ptak akan an “fin “finge gerpr rprin int” t” dari dari berba berbagai gai data data masuk masukan. an. Hash Hash funct functio ionn akan akan mengg menggan anti ti atau atau mentranspose-ka mentranspose-kann data tersebut untuk menciptakan fingerprint, fingerprint, yang biasa disebut hash value. value. Hash Hash value value biasany biasanyaa digamb digambarka arkann sebagai sebagai suatu suatu string string pendek pendek yang yang terdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasi heks heksad ades esim imal al). ). Suat Suatuu hash hash func functi tion on adal adalah ah sebu sebuah ah fung fungsi si mate matema mati tika ka,, yang ang menga mengamb mbil il sebua sebuahh panj panjan angg varia variabel bel stri string ng inpu input, t, yang yang diseb disebut ut pre-im pre-image age dan dan mengkonversikannya ke sebuah string output dengan panjang yang tetap dan biasanya lebih kecil, yang disebut message digest5. Hash function digunakan untuk melakukan fingerprint fingerprint pada pre-image, pre-image, yaitu menghasilkan menghasilkan sebuah nilai yang dapat menandai menandai (mewakili) (mewakili) pre-image sesungguhnya. sesungguhnya. Fungsi hash satu arah (one-way hash function) adalah hash function yang bekerja satu arah, yaitu suatu hash function yang dengan muda mudahh dapat dapat meng menghi hitu tung ng hash hash value value dari dari pre-i pre-ima mage, ge, teta tetapi pi sanga sangatt suka sukarr untuk untuk meng menghi hittung ung prepre-iimage mage dari dari hash hash valu value. e. Sebu Sebuah ah fungs ungsii hash hash sat satu arah arah,, H(M H(M), ber berop oper eras asii pada pada suat suatuu prepre-im imag agee pesa pesann M deng dengan an panj panjan angg semb sembar aran ang, g, dan dan mengembalikan mengembalikan nilai hash h yang memiliki memiliki panjang panjang tetap. tetap. Dalam notasi matematika matematika fungsi hash satu arah dapat ditulis sebagai: h = H(M), dengan h memiliki panjang b Ada Ada bany banyak ak fung fungsi si yang yang mamp mampuu mener menerim imaa inpu inputt denga dengann panj panjan angg sembarang sembarang dan menghasilkan 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, fungsi hash satu arah dikembangkan berdasarkan ide sebuah fungsi kompresi. Fungsi satu arah ini menghasilkan nilai hash berukuran n bila diberikan input berukuran b. Input untuk fungsi kompresi adalah suatu blok pesan dan hasil blok teks sebelumnya. Sehingga hash 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
digunakan saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Algoritma hash function yang baik adalah yang menghasilkan sedikit hash collision.
D. Metode yang Digunak Digunakan an Dalam Dalam Fungsi Fungsi 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 langk langkah ah.. Lang Langkah kah pert pertam ama, a, kita kita menga mengali likan kan kunci kunci denga dengann suat suatuu konst konstan anta ta 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... (Golden Number), “k A mod 1” artinya adalah nilai fraksional frak sional dari kA, atau kA – └ kA kA ┘.
E. MacamMacam-Mac Macam am Fungsi Fungsi Hash Hash Fungsi Fungsi Hash (dilamb (dilambangk angkan an dengan dengan h(k)) h(k)) bertuga bertugass untuk untuk menguba mengubahh k (key) (key) menj menjadi adi suatu suatu nila nilaii dala dalam m inte interva rvall [0... [0....X .X], ], dima dimana na "X" "X" adal adalah ah jumla jumlahh maksimum dari record-record yang dapat ditampung dalam tabel. Jumlah maksimum ini bergantun bergantungg pada ruang memori memori yang yang tersedi tersedia. a. Fungsi Fungsi Hash Hash yang yang ideal ideal adalah adalah mudah dihitung dihitung dan bersifat bersifat random, agar dapat menyebarkan menyebarkan semua key. Dengan key yang tersebar, tersebar, berarti data dapat terdistribusi terdistribusi secara seragam bentrokan bentrokan dapat dicegah. dicegah. Sehingga Sehingga kompleksitas kompleksitas waktu model Hash dapat mencapai mencapai O(1), di mana kompleksitas tersebut tidak ditemukan pada struktur model lain. Ada beberapa beberapa macam fungsi fungsi hash yang relati relative ve sederha sederhana na yang yang dapat dapat digunakan dalam penyimpanan database: 1. Metode Metode Pembagi Pembagian an Bersisa (Division-Rem (Division-Remainder ainder Method) Method) 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 beralamat h(k). Metode ini sering menghasilkan 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 Metode ini membagi membagi nilai nilai asli asli ke dalam dalam beberap beberapaa bagian, bagian, kemudi kemudian an menamb menambahka ahkann nilainilai-nil nilai ai tersebu tersebut, t, dan mengamb mengambil il beberapa beberapa angka angka terakhi terakhir r sebagai nilai hashnya. 3. Transformasi Radiks (Radix Transformation) Karena nilai dalam bentuk digital, basis angka atau radiks dapat diganti sehingga sehingga menghas menghasilk ilkan an urutan urutan angka-an angka-angka gka yang yang berbeda. berbeda. Contoh Contohnya nya nilai nilai desimal (basis 10) bisa ditransformasikan kedalam heksadesimal (basis 16). Digit atas hasilnya bisa dibuang agar panjang nilai hash dapat seragam. 4. Pengaturan Ulang Ulang Digit Radiks (Radix Transformation) Metode Metode ini menguba mengubahh urutan urutan digit digit dengan dengan pola pola terten tertentu. tu. Contoh Contohnya nya mengambil digit ke tiga sampai ke enam dari nilai aslinya, kemudian membalikan urutannya dan menggunakan digit yang terurut terbalik itu sebagai nilai hash. Fungsi hash yang bekerja dengan baik untuk penyimpanan pada database belum tentu bekerja dengan baik untuk keperluan kriptografi atau pengecekan kesalahan. kesalahan. Ada beberapa fungsi hash terkenal terkenal yang digunakan untuk keperluan kriptografi. kriptografi. Diantaranya Diantaranya adalah fungsi hash message-digge message-diggest, st, contohnya contohnya MD2, MD4, MD4, dan MD5, MD5, digunak digunakan an untuk untuk menghas menghasilk ilkan an nilai nilai hash dari tanda tanda tangan tangan digital digital yang disebut message-diggest. message-diggest. Ada pula Secure Hash Algorithm (SHA), sebuah algoritma standar yang menghasilkan message-diggest yang lebih besar (60- bit) dan serupa dengan MD4.
F. Bentro Bentrokan kan Pada Fungsi Fungsi Hash Hash Fungsi hash bukan merupakan fungsi satu-ke-satu, artinya beberapa record yang berbeda dapat menghasilkan nilai hash yang sama / terjadi bentrokan. Dengan fungsi fungsi hash yang yang baik, baik, hal seperti seperti ini akan sangat sangat jarang jarang terjad terjadi, i, tapi tapi pasti pasti akan akan terjadi. Jika hal seperti ini terjadi, record-record tersebut tidak bisa menempati lokasi yang yang sama. sama. Ada dua macam macam kebijak kebijakan an resolu resolusi si bentrok bentrokan an pada tabel hash, hash, yaitu yaitu kebijakan kebijakan resolusi bentrokan di luar tabel dan kebijakan kebijakan resolusi bentrokan di dalam tabel. Harus diperhatikan diperhatikan juga teknik-teknik teknik-teknik penempatan record agar mudah dicari jika dibutuhkan. 1. Kebija Kebijakan kan Resol Resolusi usi Bentro Bentrokan kan di Luar Luar Tabl Tablee Artiny Artinyaa tabel tabel hash bukan lagi lagi menjadi menjadi array of records, records, tetapi menjadi menjadi array of pointers. Setiap pointer menunjuk ke senarai berkait yang berisi record tersebu tersebut. t. Metode Metode sepert sepertii ini dinamak dinamakan an chainin chaining. g. Dalam Dalam bentuk bentuk sederhan sederhanany anyaa berupa senarai berkait dari recordrecord yang menghasilkan nilai hash yang sama. Penamba Penambahan han record record dapat dapat dilakuk dilakukan an dengan dengan menamba menambahh senarai senarai berisi berisi record record tersebu tersebut. t. Untuk Untuk pencaria pencariann pada tabel, tabel, pertamapertama-tam tamaa dicari dicari nilai nilai hash terleb terlebih ih dahulu, dahulu, kemudian kemudian dilakukan dilakukan pencarian dalam senarai berkait yang bersangkutan. bersangkutan. Untuk menghapus suatu record, hanya menghapus senarainya saja.
Resolusi bentrokan dengan Chaining Kelebihan dari metode chaining ini chaining ini adalah proses penghapusan penghapusan yang relarif relarif mudah dan penambahan ukuran tabel hash bisa ditunda ditunda untuk waktu yang lebih lama karena penurunan kinerjanya berbanding lurus meskipun 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. Kekur Kekuran angan gan dari dari metod metodee chain chainin ingg ini ini sama sama denga dengann kekura kekurang ngan an dari dari senarai berkait. Operasi traversal pada senarai berkait memiliki performa cache yang buruk. Strukt Struktur ur data data lain lain dapat dapat digunak digunakan an sebagai sebagai penggant penggantii senarai senarai berkait berkait.. Misalnya Misalnya dengan pohon seimbang, kompleksitas kompleksitas waktu terburuk bisa diturunkan diturunkan menjadi O(log n) dari yang sebelumnya O(n). Namun demikian, karena setiap senarai diharapkan untuk tidak panjang, struktur data pohon ini kurang efisien kecuali kecuali tabel hash tersebu tersebutt memang memang didesai didesainn untuk untuk jumlah jumlah record record yang yang banyak banyak atau kemungkinan terjadi bentrokan sangat besar yang mungkin terjadi karena masukan memang disengaja agar terjadi bentrokan. 2. Kebija Kebijakan kan Resolu Resolusi si Bentroka Bentrokann di Dalam Tabl Tablee Berbeda dengan kebijakan resolusi bentrokan di luar tabel, pada kebijakan resolusi di dalam tabel data disimpan di dalam hash tabel tersebut, bukan dalam senarai berkait yang bisa bertambah terus menerus. Dengan demikian data yang disimpan tidak mungkin bisa lebih banyak daripada jumlah ruang pada table hash. Jika suatu record akan dimasukkan ke dalam table hash pada lokasi sesuai nilai hash-nya dan ternyata lokasi tersebut sudah diisi dengan record lain maka harus dicari lokasi alternatif yang masih belum terisi dengan cara tertentu. Cara ini disebut Open Addressing. Ada beberapa metode untuk menemukan lokasi baru yang masih kosong. Dalam proses menemukan lokasi baru ini harus menggunakan pola tertentu agar
record yang disimpan tetap bisa dicari dengan mudah saat dibutuhkan dibutuhkan kemudian. kemudian. Metode-metode yang sering digunakan adalah: 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. Quadrati Quadraticc Probi Probing ng / Squared Squared Probing Probing Hampi Hampirr sama sama deng dengan an line linear ar probi probing, ng, hany hanyaa saja saja pada pada quadr quadrat atic ic probing, probing, hasil yang diperoleh diperoleh dari fungsi hash ditambahkan ditambahkan dengan kuadrat dari interval yang digunakan. c. Double Hashing Pada metode double hashing, jika lokasi yang diperoleh dengan fungsi hash sudah terisi, maka dilakukan proses hash lagi sampai ditemukan lokasi yang belum terisi. 3. Perbandingan Perbandingan Antara Metode Chaining Chaining dan Open Addressing Addressing Keunggulan metode chaining dibanding open addressing: a. Lebih Lebih mudah mudah diim diimpl pleme ement ntasi asikan kan denga dengann efekt efektif if dan dan hany hanyaa membu membutu tuhka hkann struktur data dasar. b. Metode Metode chainin chainingg tidak rawan rawan terhadap terhadap data-dat data-dataa yang berkumpu berkumpull di daerah daerah tertent tertentu. u. Metode Metode open address addressing ing membut membutuhka uhkann algori algoritma tma hash yang yang lebih lebih baik untuk menghindari pengumpulan data di sekitar lokasi tertentu. c. Perf Perfor orma ma menu menuru runn seca secara ra lini linier er.. Mesk Meskip ipun un sema semaki kinn bany banyak ak reco record rd yang ang dimasuk dimasukkan kan maka maka semakin semakin panjang panjang senarai senarai beranta berantai, i, tabel tabel hash tidak tidak akan akan penuh dan tidak akan menimbulkan peningkatan waktu pencarian record yang tibatiba meningkat yang terjadi bila menggunakan metode open addressing. d. Jika Jika record record yang dimasuk dimasukkan kan panjan panjang, g, memo memori ri yang yang digu digunak nakan an akan akan lebi lebihh sedikit dibandingkan dengan metode open addressing.
Perbandingan waktu yang diperlukan untuk melakukan pencarian. Saat tabel mencapai 80% terisi, kinerja pada linear probing(open addressing)menurun drastis. Untu Untukk ukura ukurann record record yang yang keci kecil, l, keung keunggul gulan an meto metode de open open addre addressi ssing ng dibandingkan dengan chaining diantaranya a. Ruang Ruang yang digunakan digunakan lebih lebih efisien efisien karena karena tidak perlu perlu menyimpa menyimpann pointer pointer atau mengalokasi tempat tambahan di luar tabel hash. b. Tidak ada waktu tambahan untuk pengalokasian memori karena metode open addressing tidak memerlukan pengalokasian memori. c. Tidak memerlukan pointer. Seben Sebenarn arnya ya,, pengg pengguna unaan an algor algorit itma ma apapu apapunn pada pada tabl tablee hash hash biasa biasany nyaa cukup cukup cepat, cepat, dan persent persentase ase kalkul kalkulasi asi yang yang dilakuk dilakukan an pada pada tabel tabel hash rendah. rendah. Penggunaan memori juga jarang berlebihan. Oleh karena itu, pada kebanyakan kasus, perbedaan antar algoritma ini tidak signifikan. 4. Meto Metode de-M -Met etod odee Lain Lain Selain metode-metode yang sudah disebutkan di atas, ada juga beberapa metode lain. a. Coalesced Hashing Gabu Gabung ngan an dari dari chai chaini ning ng dan dan open openad addr dres essi sing ng.. Coal Coales esce cedd hash hashin ingg menghub menghubungk ungkan an ke tabel tabel itu sendiri sendiri.. Seperti Seperti open addressi addressing, ng, metode metode ini memiliki keunggulan pada penggunaan tempat dan cache dibanding metode chaining. Seperti chaining, metode ini menghasilkan lokasi penyimpanan yang lebih menyebar, tetapi pada metode ini record yang disimpan tidak mungkin lebih banyak daripada ruang yang disediakan tabel. b. Perfect Hashing Jika Jika record record yang yang akan akan digunak digunakan an sudah sudah diketa diketahui hui sebelum sebelumnya nya,, dan jumlahnya tidak melebihi jumlah ruang pada tabel hash, perfect hashing bisa digunakan untuk membuat tabel hash yang sempurna, tanpa ada bentrokan. c. Probabilistic Hashing Kemungk Kemungkina inann solusi solusi paling paling sederha sederhana na untuk untuk mengat mengatasi asi bentroka bentrokann adalah adalah dengan dengan enggant enggantii record yang sudah sudah disimpan disimpan dengan record record yang
baru baru,, atau atau memb membua uang ng recor recordd yang yang baru baru akan akan dima dimasu sukka kkan. n. Hal Hal ini ini bisa bisa berd berdamp ampak ak tidak tidak ditem ditemuk ukan anny nyaa record record pada pada saat saat pencar pencaria ian. n. Meto Metode de ini ini digunakan untuk keperluan tertentu saja. d. Robin Hood Hashing Salah satu variasi dari resolusi bentrokan double hashing. Ide dasarnya adalah sebuah record yang sudah dimasukkan bisa digantikan dengan record yang ang baru baru jika ika nil nilai penc pencar aria iann nnyya (pro (probe be coun countt – bert bertam amba bahh seti setiap ap menemukan termpat yang sudah terisi) lebih besar daripada nilai pencarian dari dari record record yang yang sudah sudah dimasu dimasukk kkan. an. Efek Efekny nyaa adala adalahh mengu menguran rangi gi kasus 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 Interne Internett (RFC (RFC 1321), 1321), MD5 telah telah dimanf dimanfaat aatkan kan secara secara bermacam bermacam-ma -macam cam pada aplika aplikasi si keamanan keamanan,, dan MD5 juga juga umum umum digunka digunkann untuk untuk melaku melakukan kan penguj pengujian ian integritas sebuah file. MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam dalam desai desainny nnya, a, wala walauu buka bukann kele kelema maha hann fata fatal, l, peng penggun gunaa krip kripto togr graf afii mula mulaii meng mengan anju jurk rkan an meng menggu guna naka kann algo algori ritm tmaa lain lain,, sepe sepert rtii SHASHA-11 (kla (klaim im terb terbar aruu menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.
H. Langkah-Langkah Pembuatan MD 1. Penambahan Bit-bit Pengganjal a. Pesan ditamba ditambahh dengan sejumlah sejumlah bit bit pengganjal pengganjal sedemikian sedemikian sehingga sehingga panjang panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. b. b. Jika Jika panja panjang ng pesan pesan 448 bit, bit, maka pesan pesan terse tersebut but ditam ditamba bahh denga dengann 512 512 bit bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512. c. Bit-bit Bit-bit pengganjal pengganjal terdiri terdiri dari dari sebuah sebuah bit 1 diikut diikutii dengan sisany sisanyaa bit 0. 2. Penamba Penambahan han Nilai Nilai Panjan Panjangg Pesa Pesann a. Pesan Pesan yang yang telah diberi diberi bit-bit bit-bit pengganj pengganjal al selanju selanjutny tnyaa ditamba ditambahh lagi dengan dengan 64 bit yang menyatakan panjang pesan semula. bb.. Jika Jika panj panjan angg pesa pesann > 264 264 maka maka yang yang diam diambi bill adal adalah ah panj panjan angn gnyya dala dalam m modulo 264. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang ditambahkan menyatakan K modulo 264. c. Setelah Setelah ditamba ditambahh dengan 64 bit, panjan panjangg pesan sekarang sekarang menjad menjadii kelipata kelipatann 512 bit. 3. Inis Inisial ialis isai ai Peny Penyang angga ga MD MD a. MD5 MD5 memb membut utuh uhka kann 4 buah buah peny penyan angg ggaa (buf (buffe fer) r) yang yang masi masing ng-m -mas asin ingg panjangnya 32 bit. Total panjang penyangga adalah 4 × 32 = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir.
b. b. Keem Keempa patt peny penyan angg ggaa ini ini dibe diberi ri nama nama A, B, C, dan dan D. Seti Setiap ap peny penyan angg ggaa diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut: A = 01234567 B = 89ABCDEF C = FEDCBA98 D = 76543210 4. Pengolahan Pesan dalam Blok Berukuran 512 bit a. Pesan Pesan dibagi menja menjadi di L buah buah blok yang yang masing-ma masing-masin singg panjangny panjangnyaa 512 bit (Y0 sampai YL – 1). b. b. Seti Setiap ap blok blok 512512-bi bitt dipr dipros oses es bers bersam amaa deng dengan an peny penyan angg ggaa MD menj menjad adii keluara keluarann 128-bi 128-bit, t, dan ini disebut disebut proses proses HMD5. HMD5. Gambaran Gambaran proses HMD5 HMD5 diperlihatkan pada Gambar 13.3. Y q M D
q
512
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])
+
+
+
+
128
M D
q + 1
c. Pada Gambar Gambar 13.3, 13.3, Yq Yq menyatak menyatakan an blok 512-bit 512-bit ke-q 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 message message digest digest 128-bit 128-bit dari proses proses HMD5 HMD5 ke-q. Pada awal awal proses, MDq berisi nilai inisialisasi penyangga MD.
e. Pros Proses es HMD5 HMD5 terd terdir irii dari dari 4 buah buah puta putara ran, n, dan dan masi masing ng-m -mas asin ingg puta putara rann melakuk melakukan an operasi operasi dasar MD5 sebanyak sebanyak 16 kali kali dan setiap setiap operasi operasi dasar memakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen Tabel T. f. Fungsi Fungsi-f -fun ungsi gsi fF, fG, fH, dan fI masi masing ng-ma -masi sing ng berisi berisi 16 kali kali opera operasi si dasar dasar terhadap masukan, setiap operasi dasar menggunakan elemen Tabel Tabel T. g. Operasi Operasi dasar dasar MD5 MD5 diperli diperlihat hatkan kan pada pada Gambar Gambar 13.4. 13.4. a
b
c
d
g
+
+
X [ k ]
+
T [ i ]
C L S
s
+
h. Karena ada 16 kali operasi dasar dasar,, maka setiap setiap kali kali selesai selesai satu satu operasi dasar, dasar, 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 Keluaran algoritma diset menjadi 4 blok yang masing-masing masing-masing berukuran 32 bit yang setelah digabungkan akan membentuk nilai hash 128 bit.
Algoritma MD5 Pesan Pesan diber diberii tamb tambaha ahann sedem sedemik ikia iann sehin sehingg ggaa panj panjan angg menj menjadi adi k-bit 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 panjang pesan. Inisiasi 4 variabel dengan panjang 32 bit yaitu a,b,c,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, menjalankan fungsi nonlinear pada tiga variabel a,b,c, atau d. Hasilnya 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 dimana g adalah salah salah fungsi primitif primitif F,G,H,I seperti dibawah ini :
dan operasi XOR, AND, OR, dan NOT adalah sebagai s ebagai berikut :
J. Proses MD5 dengan Berbagai Berbagai Macam Masukan 1. Proses MD5 Dengan Masukan Berupa String Pros Proses es MD5 MD5 deng dengan an masu masuka kann beru berupa pa stri string ng adal adalah ah pros proses es yang yang masukannya berupa karakter yang dimasukan melalui keyboard. 2. Proses Proses MD5 MD5 Denga Dengann Masuka Masukann Berupa Berupa File File Prose Prosess MD5 MD5 denga dengann masuk masukan an berup berupaa file file adal adalah ah pros proses es MD5 MD5 yang 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 MD5 Seba Sebagai gai Test Suite Suite Test suite dilakukan dilakukan untuk mengetahui mengetahui apakah program yang dibuat ini sudah dah ben benar atauka ukah masih sih terdap dapat kesala alahan-k an-keesala alahan han. Sebagai gai perbandingannya digunakan hasil yang sudah didapatkan oleh Ron Rivest yang sudah sudah didef didefin inis isik ikan an pada pada RFC RFC 1321. 1321. Pada Pada gamba gambarr 3.3 3.3 dapat dapat dilih dilihat at bahwa bahwa masukan masukan dari MD5 sudah ditentukan ditentukan sehinnga sehinnga hanya membandingkan membandingkan hasil pada layar dengan yang tercantum pada RFC 1321.
K . Analisis Kecepatan MD5 Analisi Analisi kecepatan kecepatan disini adalah analisis tentang kecepatan aplikasi dalam menge mengenk nkri ripp file file untu untukk menc mencari ari nila nilaii hash. hash. Anal Analis isis is dila dilaku kukan kan untu untukk menc mencari ari kecepatan apliksi dengan masukan yang file yang mempunyai perbedaan dalam hal ukuran. Pengujian dilakukan dengan cara mengenkrip file sebanyak 31 (tiga puluh satu satu)) buah buah file file deng dengan an besa besarr file file yang ang berb berbed edaa-be beda da.. Seti Setiap ap file file dila dilaku kuka kann pengambilan waktu eksekusi sebanyak5 kali kemudian mencari waktu rata-ratanya.
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. Tentu saja data yang diacak harus bisa dikembalikan ke bentuk semula oleh pihak yang berwenang. Data yang ingin diacak biasanya disebut Plain Teks (Plain Text). Data diacak dengan menggunakan Kunci Enkripsi (Encryption Key). Proses pengacakan itu sendiri disebut Enkripsi (Encryption). Plain Teks yang telah diacak disebut Cipher Teks (Chiper Text). Kemudian proses untuk mengembalikan Cipher Teks ke Plain Teks disebut disebut Dekrip Dekripsi si (Decryp (Decryptio tion). n). Kunci Kunci yang yang digunak digunakan an pada pada tahap tahap Dekrips Dekripsii disebut Kunci Dekripsi (Decryption Key). Pada prakteknya, selain pihak yang berwenang ada pihak ketiga yang selalu berusaha untuk mengembalikan Cipher Teks ke Plain Teks atau memecahkan Kunci Dekripsi. Usaha oleh pihak ketiga ini disebut Kriptanalisis (Cryptanalysis). Fungsi Fungsi Hash Hash adalah adalah suatu suatu cara mencipt menciptakan akan “finge “fingerpri rprint” nt” dari dari berbagai berbagai data data masukan masukan.. Fungsi Fungsi Hash akan menggan mengganti ti atau atau mentra mentranspo nspose-k se-kan an data data tersebu tersebutt untuk menciptakan fingerprint, yang biasa disebut hash value. Hash value 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 yang baik baik adalah adalah yang yang menghas menghasilk ilkan an sedikit sedikit hash collis collision. ion. Sudah banyak banyak algorit algoritma ma fungsi fungsi hash yang yang dicipt diciptakan akan,, namun namun fungsi fungsi hash yang umum umum digunak digunakan an saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Kedua algoritma tersebut didesain untuk prosesor 32 bit, dan tidak dapat 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 merupakan salah satu pengembang algoritma RSA pada tahun 1991. MD5 merupakan kelanjutan daru MD4 yang dirancang dengan tujuan keamanan. Secara perhitungan matetamatis matetamatis tidak dimungkinkan untuk mendapatkan dua pesan yang memiliki memiliki hash yang sama. Tidak ada serangan yang lebih efisien untuk membongkar/mengetahui hash suatu pesan selain brute-force.
B. Saran Makalah ini sangat jauh dari kesempurnan, maka dari itu penulis sangat sangat menghar mengharapka apkann kritik kritik dan saran saran untuk untuk makala makalahh ini yang yang tentun tentunya ya sangat sangat bermanfaat bagi penulis dalam menyempurnakan makalah ini. Semoga makalah ini bisa menjadi salah satu acuan dalam pembuatan makalah selanjutnya.
Daftar Pustaka http://www.budi.insan.co.id http://www.elektro.undip.ac.idtransmisijun065_aghus_abp.pdf www.handoko.web.id www.ilmukomputer.com http://www.informatika.org~rinaldiMatdis2007-2008MakalahMakalahIF2153-0708061.pdf http://www.om4gus.blogspot.com/2008/02/java-enkripsi-md5.html http://www.stream.plasa.com http://www.telkom.net/kamus_internet_detail.php?cid=2&id=431
LAMPIRAN PROGRAM import java.io.UnsupportedEncodingException; import java.security java.secu rity.MessageDigest; .MessageDigest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.security java.secu rity.NoSuchAlgorithmException; .NoSuchAlgorithmException; 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) ('0' + halfbyte)); else 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 { MessageDigest md; md = MessageDigest.getInstance("MD5"); byte[] md5hash = new byte[32]; md.update(text.getBytes("iso-8859-1"), 0, text.length()); md5hash = md.digest(); return convertToHex(md5hash); } public static void main(String[] args) throws IOException { BufferedReader userInput = new BufferedReader (new InputStreamReader(System.in)); System.out.print("Enter string:"); String rawString = userInput.readLine(); try { System.out.println("MD5 hash of string: " + AeSimpleMD5.MD5(rawString)); } catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } Berikut adalah output dari program diatas :