Makalah Keamanan Komputer - Fungsi Hash Pada Keamanan Komputer

23  54  Download (0)

Teks penuh

(1)

MAKALAH KEAMANAN KOMPUTER 

MAKALAH KEAMANAN KOMPUTER 

FUNGSI HASH PADA KEAMANAN KOMPUTER 

FUNGSI HASH PADA KEAMANAN KOMPUTER 

Di Susun Oleh : Di Susun Oleh : Junaedi Pratama Junaedi Pratama 200643500072 200643500072 Teknik Informatika Teknik Informatika

FAKULTAS TEKNIK, MATEMATIKA DAN ILMU PENGETAHUAN ALAM FAKULTAS TEKNIK, MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS INDRAPRASTA PGRI

UNIVERSITAS INDRAPRASTA PGRI

(2)

KATA PENGANTAR KATA PENGANTAR

Puji syukur penulis panjatkan atas kehadirat Allah SWT dan junjungan besar Nabi Puji syukur penulis panjatkan atas kehadirat Allah SWT dan junjungan besar Nabi Muhammad

Muhammad SAW, karena SAW, karena atas atas Rahmat dan Rahmat dan Hidayah-Nya sehingga Hidayah-Nya sehingga penulis penulis dapatdapat menyelesaikan makalah ini tepat waktu.

menyelesaikan makalah ini tepat waktu.

Melalui makalah ini, penulis ingin mengucapkan terima kasih yang Melalui makalah ini, penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada pembimbing mata kuliah (Dosen) dan semua pihak yang terlibat dalam besarnya kepada pembimbing mata kuliah (Dosen) dan semua pihak yang terlibat dalam penyelesaian makalah ini.

penyelesaian makalah ini.

Penulis menyadari dalam makalah ini masih terdapat banyak kekurangan, oleh Penulis menyadari dalam makalah ini masih terdapat banyak kekurangan, oleh karena itu penulis sangat mengharapkan saran dan kritik yang tentunya bersifat karena itu penulis sangat mengharapkan saran dan kritik yang tentunya bersifat membangun demi kesempurnaan makalah ini.

membangun demi kesempurnaan makalah ini.

Depok,

Depok, 9 9 Desember Desember 20092009 Penulis

(3)

DAFTAR ISI DAFTAR ISI KATA

KATA PENGANTARPENGANTAR ... i... i DAFTAR

DAFTAR ISI...ISI... ii... ii BAB

BAB I I PENDAHULUANPENDAHULUAN ... ... 11 A.

A. Latar Latar Belakang...Belakang... 1... 1 B.

B. Rumusan Rumusan Masalah...Masalah... 2... 2 C.

C. Tujuan Tujuan Penulisan...Penulisan... 3... 3 BAB

BAB II II PEMBAHASANPEMBAHASAN ... ... 44 A.

A. PengertiaPengertian n KriptografKriptografii ... 4... 4 B.

B. Konsep Konsep PenggunaPenggunaan an Kriptografi... Kriptografi... 44 1.

1. KerahasiaKerahasiaan an (Confidenti(Confidentiality)...ality)... 4... 4 2.

2. IntegritaIntegritas s (Integrity(Integrity)) ... 4... 4 3.

3. PenghindPenghindaran aran Penolakan Penolakan (Non-repu(Non-repuditation)... ditation)... 44 4.

4. AutentikaAutentikasi si (Authentic(Authentication)... 4ation)... 4 5.

5. Tanda Tanda Tangan Tangan Data Data (Data (Data Signature)Signature) ... ... 44 6.

6. Kontrol Kontrol Akses Akses (Access (Access Control)Control) ... ... 44 C.

C. PengertiaPengertian n Fungsi Fungsi HashHash ... 4... 4 D.

D. Metode Metode yang yang Digunakan Digunakan Dalam Dalam Fungsi Fungsi HashHash ... ... 66 1.

1. Metode Metode Pembagian... 6Pembagian... 6 2.

2. Metode Metode PerkalianPerkalian ... ... 66 E.

E. Macam-MacMacam-Macam am Fungsi Fungsi HashHash ... 6... 6 1.

1. Metode Metode Pembagian Pembagian Bersisa Bersisa (division-(division-remainder remainder method)... method)... 66 2.

2. Melipat Melipat (folding)...(folding)... 6... 6 3.

3. TransforTransformasi masi Radiks Radiks (radix (radix transformtransformation)... ation)... 77 4.

4. PengaturaPengaturan n Ulang Ulang Digit Digit Radiks Radiks (radix (radix transfortransformation)mation)... ... 77 F.

F. Bentrokan Bentrokan Pada Pada Fungsi Fungsi HashHash... 7... 7 1.

1. KebijakaKebijakan n Resolusi Resolusi BentrokaBentrokan n di di Luar Luar TableTable... ... 77 2.

2. KebijakaKebijakan n Resolusi Resolusi BentrokaBentrokan n di di Dalam Dalam Table...Table... ... 88 a.

a. Linear Linear ProbingProbing ... ... 99 b.

b. Quadratic Quadratic probing probing / / squared squared probingprobing ... ... 99 c.

c. Double Double hashinghashing ... ... 99 3.

3. PerbandingPerbandingan aan antara ntara metode metode chaining chaining dan odan open apen addressing... ddressing... 99 4.

4. Metode-MMetode-Metode etode LainLain ... ... 1010 a.

a. Coalesced Coalesced hashing... 10hashing... 10 b.

b. Perfect Perfect hashing...hashing... 10... 10 c.

c. Probabilistic Probabilistic hashing...hashing... 1... 100 d.

d. Robin Robin Hood Hood hashinghashing ... 11... 11 G.

G. PengertiaPengertian n MD5MD5... 11... 11 H.

H. Langkah-LLangkah-Langkah angkah Pembuatan Pembuatan MDMD ... ... 1111 1.

1. PenambahaPenambahan n Bit-bit Bit-bit PengganPengganjaljal... ... 1111 2.

2. PenambahaPenambahan n Nilai Nilai Panjang Panjang Pesan.Pesan... ... 1111 3.

3. InisialisInisialisai ai Penyangga Penyangga MDMD ... 11... 11 4.

(4)

I.

I. Cara Cara Kerja Kerja MD5...MD5... 13... 13 J.

J. Proses Proses MD5 MD5 dengan dengan Berbagai Berbagai Macam Macam MasukanMasukan... ... 1414 1.

1. Proses Proses MD5 MD5 Dengan Dengan Masukan Masukan Berupa Berupa StringString ... ... 1414 2.

2. Proses Proses MD5 MD5 Dengan Dengan Masukan Masukan Berupa Berupa File...File... ... 1515 3.

3. Proses Proses MD5 MD5 Sebagai Sebagai Test Test Suite....Suite... ... 1515 K.

K. Analisis Analisis KecepataKecepatan n MD5MD5 ... 15... 15 BAB

BAB III PENUTUP...III PENUTUP... 16... 16 A. Kesimp

A. Kesimpulanulan ... ... 1616 B. Sa

B. Saranran ... ... 1616 DAFTAR

(5)

BAB I BAB I

PENDAHULUAN PENDAHULUAN

A.

A. Latar Latar BelakangBelakang

Keamanan dan kerahasian data pada jaringan komputer saat ini menjadi isu Keamanan dan kerahasian data pada jaringan komputer saat ini menjadi isu yang sangat penting dan terus berkembang. Beberapa kasus menyangkut keamanan yang sangat penting dan terus berkembang. Beberapa kasus menyangkut keamanan   jaringan komputer saat ini menjadi suatu pekerjaan yang membutuhkan biaya   jaringan komputer saat ini menjadi suatu pekerjaan yang membutuhkan biaya penanganan dan pengamanan yang sedemikian besar. Sistem-sistem vital, seperti penanganan dan pengamanan yang sedemikian besar. Sistem-sistem vital, seperti sistem pertahanan, sistem perbankan, sistem bandara udara dan sistem-sistem yang sistem pertahanan, sistem perbankan, sistem bandara udara dan sistem-sistem yang lain setingkat itu, membutuhkan tingkat keamanan yang sedemikian tinggi. Hal ini lain setingkat itu, membutuhkan tingkat keamanan yang sedemikian tinggi. Hal ini lebih disebabkan karena kemajuan bidang jaringan komputer dengan konsep open lebih disebabkan karena kemajuan bidang jaringan komputer dengan konsep open system-nya sehingga siapapun, di mananapun dan kapanpun, mempunyai kesempatan system-nya sehingga siapapun, di mananapun dan kapanpun, mempunyai kesempatan untuk mengakses kawasan-kawasan vital tersebut. Untuk menjaga keamanan dan untuk mengakses kawasan-kawasan vital tersebut. Untuk menjaga keamanan dan kerahasiaan pesan, data, atau informasi dalam suatu jaringan komputer maka kerahasiaan pesan, data, atau informasi dalam suatu jaringan komputer maka diperlukan beberapa enkripsi guna membuat pesan, data, atau informasi agar tidak diperlukan beberapa enkripsi guna membuat pesan, data, atau informasi agar tidak dapat dibaca atau dimengerti oleh sembarang orang, kecuali oleh penerima yang dapat dibaca atau dimengerti oleh sembarang orang, kecuali oleh penerima yang berhak. Pengamanan pesan, data, atau informasi tersebut selain bertujuan untuk berhak. Pengamanan pesan, data, atau informasi tersebut selain bertujuan untuk meningkatkan keamanan, juga berfungsi untuk:

meningkatkan keamanan, juga berfungsi untuk: 1.

1. Melindungi pesan, data, atau informasi agar tidak dapat dibaca oleh orang-Melindungi pesan, data, atau informasi agar tidak dapat dibaca oleh orang-orang yang tidak berhak.

orang yang tidak berhak. 2.

2. Mencegah agar orang-orang yang tidak berhak, menyisipkan atauMencegah agar orang-orang yang tidak berhak, menyisipkan atau menghapus pesan, data dan atau informasi. Salah satu hal yang penting menghapus pesan, data dan atau informasi. Salah satu hal yang penting dalam komunikasi menggunakan komputer dan dalam jaringan komputer dalam komunikasi menggunakan komputer dan dalam jaringan komputer untuk menjamin kerahasiaan pesan, data, ataupun informasi adalah enkripsi untuk menjamin kerahasiaan pesan, data, ataupun informasi adalah enkripsi .. Salah satu dari bagian kriptografi adalah fungsi hash satu arah. Fungsi hash satu Salah satu dari bagian kriptografi adalah fungsi hash satu arah. Fungsi hash satu arah adalah dimana kita dengan mudah melakukan enkripsi untuk mendapatkan arah adalah dimana kita dengan mudah melakukan enkripsi untuk mendapatkan cipher-nya tetapi sangat sulit untuk mendapatkan plaintext-nya. Salah satu fungsi cipher-nya tetapi sangat sulit untuk mendapatkan plaintext-nya. Salah satu fungsi hash y

hash yang paling ang paling banyak digunakan banyak digunakan adalah Message adalah Message Digest 5 Digest 5 (MD-5). MD-5(MD-5). MD-5 merupakan fungsi hash satu arah yang diciptakan oleh Ron Rivest pada tahun 1991 merupakan fungsi hash satu arah yang diciptakan oleh Ron Rivest pada tahun 1991 untuk menggantikan hashfunction

untuk menggantikan hashfunction sebelumnya. MD-5 adalah salah satu aplikasi yangsebelumnya. MD-5 adalah salah satu aplikasi yang digunakan untuk mengetahui bahwa pesan yang dikirim tidak ada perubahan sewaktu digunakan untuk mengetahui bahwa pesan yang dikirim tidak ada perubahan sewaktu berada di jaringan. Algoritma MD-5 secara garis besar adalah mengambil pesan yang 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 variabel diubah menjadi ‘sidik jari’ atau ‘intisari pesan’ yang mempunyai panjang tetap yaitu 128 bit. ‘Sidik jari’ ini tidak dapat dibalik untuk 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 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 ‘sidik jari’ MD-5. Message digest atau intisari pesan harus mempunyai tiga sifat penting, yaitu :

penting, yaitu : 1.

1. Bila P diketahui, maka MD(P) akan dengan mudah dapat dihitung.Bila P diketahui, maka MD(P) akan dengan mudah dapat dihitung. 2.

2. Bila MD(P) diketahui, maka tidak mungkin menghitung P.Bila MD(P) diketahui, maka tidak mungkin menghitung P. 3.

3. Tidak seorang pun dapat memberi dua pesan yang mempunyai intisari pesanTidak seorang pun dapat memberi dua pesan yang mempunyai intisari pesan yang sama. H(M) H(M’) .

(6)

Keamanan komputer adalah menjamin data atau informasi tidak dibaca, tidak Keamanan komputer adalah menjamin data atau informasi tidak dibaca, tidak dimodifikasi oleh orang lain yang tidak diberi otorisasi. Keamanan sistem dibagi dimodifikasi oleh orang lain yang tidak diberi otorisasi. Keamanan sistem dibagi menjadi tiga bagian :

menjadi tiga bagian : 1.

1. Keamanan EksternalKeamanan Eksternal

Keamanan eksternal berkaitan dengan fasilitas komputer dari penyusup dan Keamanan eksternal berkaitan dengan fasilitas komputer dari penyusup dan bencana seperti kebakaran atau bencana alam.

bencana seperti kebakaran atau bencana alam. 2.

2. Keamanan Interface PamakaiKeamanan Interface Pamakai

Keamanan interface pemakai yang berkaitan dengan identifikasi pemakai Keamanan interface pemakai yang berkaitan dengan identifikasi pemakai sebelum pemakai diizinkan mengakses data atau program.

sebelum pemakai diizinkan mengakses data atau program. 3.

3. Keamanan InternalKeamanan Internal

Keamanan internal berkaitan dengan beragam kendali yang dibangun pada Keamanan internal berkaitan dengan beragam kendali yang dibangun pada perangkat keras dan perangkat lunak yang menjamin operasi yang handal perangkat keras dan perangkat lunak yang menjamin operasi yang handal dan tidak terganngu untuk menjaga integritas data.

dan tidak terganngu untuk menjaga integritas data.

Sementara itu kebutuhan keamanan sistem komputer dapat dikategorikan Sementara itu kebutuhan keamanan sistem komputer dapat dikategorikan menjadi aspek-aspek sebagai berikut :

menjadi aspek-aspek sebagai berikut : 1.

1. Privacy Privacy / / ConfidentiConfidentialityality

Inti utama aspek privacy atau confidentiality adalah usaha untuk menjaga Inti utama aspek privacy atau confidentiality adalah usaha untuk menjaga informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah data-data yang sifatnya privat sedangkan confidentiality biasanya data-data yang sifatnya privat sedangkan confidentiality biasanya berhubungan dengan data yang diberikan ke pihak lain untuk berhubungan dengan data yang diberikan ke pihak lain untuk keperluantertentu (misalnya sebagai bagian dari pendaftaran sebuah servis) keperluantertentu (misalnya sebagai bagian dari pendaftaran sebuah servis) dan hanya diperbolehkan untuk keperluan tertentu tersebut.

dan hanya diperbolehkan untuk keperluan tertentu tersebut. 2. Integrity

2. Integrity

Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa seijin Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa seijin pemilik informasi. Adanya virus, trojan horse, atau pemakai lain yang pemilik informasi. Adanya virus, trojan horse, atau pemakai lain yang mengubah informasi tanpa ijin merupakan contoh masalah yang harus mengubah informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah e-mail dapat saja “ditangkap” (intercept) di tengah jalan, dihadapi. Sebuah e-mail dapat saja “ditangkap” (intercept) di tengah jalan, diubah isinya (altered, tampered, modified), kemudian diteruskan ke alamat diubah isinya (altered, tampered, modified), kemudian diteruskan ke alamat yang dituju. Dengan kata lain, integritas dari informasi sudah tidak terjaga. yang dituju. Dengan kata lain, integritas dari informasi sudah tidak terjaga. Penggunaan encryption dan digital signature, misalnya, dapat mengatasi Penggunaan encryption dan digital signature, misalnya, dapat mengatasi masalah ini.

masalah ini. 3.

3. AuthenticationAuthentication

Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul server yang asli.

betul-betul server yang asli. 4. Availability

4. Availability

Aspek availability atau ketersediaan berhubungan dengan ketersediaan Aspek availability atau ketersediaan berhubungan dengan ketersediaan informasi ketika dibutuhkan. Sistem informasi yang diserang atau dijebol informasi ketika dibutuhkan. Sistem informasi yang diserang atau dijebol dapat menghambat atau meniadakan akses ke informasi.

dapat menghambat atau meniadakan akses ke informasi. B.

B. Rumusan Rumusan MasalahMasalah

Pada makalah ini penulis akan membahas tentang masalah keamanan file yang Pada makalah ini penulis akan membahas tentang masalah keamanan file yang dikirim melalui jaringan komputer agar orang yang tidak berhak tidak dapat dikirim melalui jaringan komputer agar orang yang tidak berhak tidak dapat

(7)

membuka ataupun membaca file yang telah dikirim. Beberapa pembahasan tersebut membuka ataupun membaca file yang telah dikirim. Beberapa pembahasan tersebut meliputi :

meliputi : 1.

1. Pengertian kriptografi.Pengertian kriptografi. 2.

2. Konsep Penggunaan Kriptografi.Konsep Penggunaan Kriptografi. 3.

3. Pengertian Fungsi Hash.Pengertian Fungsi Hash. 4.

4. Metode yang Digunakan Dalam Fungsi Hash.Metode yang Digunakan Dalam Fungsi Hash. 5.

5. Macam-Macam Fungsi Hash.Macam-Macam Fungsi Hash. 6.

6. Bentrokan pada Fungsi Hash.Bentrokan pada Fungsi Hash. 7.

7. Pengertian MD5.Pengertian MD5. 8.

8. Langkah-Langkah Pembuatan MD.Langkah-Langkah Pembuatan MD. 9.

9. Cara Kerja MD5.Cara Kerja MD5. 10.

10. Proses MD5 dengan Berbagai Macam Masukan.Proses MD5 dengan Berbagai Macam Masukan. 11.

11. Analisis Kecepatan MD5.Analisis Kecepatan MD5.

C.

C. Tujuan Tujuan PenulisanPenulisan

Dengan adanya makalah ini, maka dapat diketahui bagaimana cara Dengan adanya makalah ini, maka dapat diketahui bagaimana cara mengamankan file dari para pelaku yang tidak bertanggung jawab, yang tidak mengamankan file dari para pelaku yang tidak bertanggung jawab, yang tidak mempunyai hak untuk mengakses apalagi untuk mengambil data yang bukan haknya. mempunyai hak untuk mengakses apalagi untuk mengambil data yang bukan haknya. Dalam makalah ini lebih rinci lagi akan membahas tentang cara mengamankan file Dalam makalah ini lebih rinci lagi akan membahas tentang cara mengamankan file dengan menggunakan MD5, karena MD5 merupakan salah satu jenis dari fungsi hash dengan menggunakan MD5, karena MD5 merupakan salah satu jenis dari fungsi hash yang paling banyak digunakan.

(8)

BAB II BAB II

PEMBAHASAN PEMBAHASAN

A.

A. Pengertian Pengertian KriptografiKriptografi

Kriptografi berasal dari bahasa yunani yang terdiri dari kata kryptos yang berarti Kriptografi berasal dari bahasa yunani yang terdiri dari kata kryptos yang berarti tersembunyi dan grafo yang berarti tulis. Kriptografi secara umum adalah ilmu dan tersembunyi dan grafo yang berarti tulis. Kriptografi secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut kriptografi juga seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut kriptografi juga merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integri dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integri tas data, serta autentikasi data.

tas data, serta autentikasi data.

Kriptografi memungkinkan beberapa operasi atau proses terhadap data. Dua Kriptografi memungkinkan beberapa operasi atau proses terhadap data. Dua buah operasi dasar adalah enkripsi (dengan dekripsi sebagai proses balikannya) dan buah operasi dasar adalah enkripsi (dengan dekripsi sebagai proses balikannya) dan signing (dengan verifikasi dari signature sebagai proses balikannya). Enkripsi analog signing (dengan verifikasi dari signature sebagai proses balikannya). Enkripsi analog dengan memasukkan surat kedalam sebuah amplop sedangkan dekripsi analog dengan memasukkan surat kedalam sebuah amplop sedangkan dekripsi analog dengan membuang amplop dan mengambil data. Signature analog dengan pemberian dengan membuang amplop dan mengambil data. Signature analog dengan pemberian tanda-tangan terhadap sebuah dokumen dan penanda bahwa dokumen tersebut tidak tanda-tangan terhadap sebuah dokumen dan penanda bahwa dokumen tersebut tidak berubah dari aslinya.

berubah dari aslinya. B.

B. Konsep Konsep Penggunaan Penggunaan KriptografiKriptografi

Konsep penggunaan kriptografi antara lain: Konsep penggunaan kriptografi antara lain: 1.

1. Kerahasiaan Kerahasiaan (Confidenti(Confidentiality).ality).

Sederhananya, kerahasiaan adalah proses penyembunyian data dari orang-orang Sederhananya, kerahasiaan adalah proses penyembunyian data dari orang-orang yang tidak punya otoritas.

yang tidak punya otoritas. 2.

2. Integritas Integritas (Integrity)(Integrity)

Proses untuk menjaga agar sebuah data tidak dirubah-rubah sewaktu ditransfer Proses untuk menjaga agar sebuah data tidak dirubah-rubah sewaktu ditransfer atau disimpan.

atau disimpan. 3.

3. Penghindaran Penghindaran Penolakan Penolakan (Non-repuditati(Non-repuditation)on)

Proses untuk menjaga bukti-bukti bahwa suatu data berasal dari seseorang. Proses untuk menjaga bukti-bukti bahwa suatu data berasal dari seseorang. Seseorang yang ingin menyangkal bahwa data tersebut bukan berasal darinya, Seseorang yang ingin menyangkal bahwa data tersebut bukan berasal darinya, dapat saja melenyapkan bukti-bukti yang ada. Karenanya diperlukan teknik dapat saja melenyapkan bukti-bukti yang ada. Karenanya diperlukan teknik untuk melindungi data-data tersebut.

untuk melindungi data-data tersebut. 4.

4. Autentikasi Autentikasi (Authenticati(Authentication)on)

Proses untuk menjamin keaslian suatu data. Proses untuk menjamin keaslian suatu data. 5.

5. Tanda Tanda Tangan Tangan Data Data (Data (Data Signature)Signature)

Dapat disebut juga sebagai tanda tangan digital. Berguna untuk menandatangi Dapat disebut juga sebagai tanda tangan digital. Berguna untuk menandatangi data digital. Contohnya adalah Digital Signature Algorithm (DSA)

data digital. Contohnya adalah Digital Signature Algorithm (DSA) 6.

6. Kontrol Kontrol Akses Akses (Access (Access Control)Control)

Untuk mengontrol akses terhadap suatu entity. Untuk mengontrol akses terhadap suatu entity.

Contoh penggunaan kriptografi di dunia internet antara lain: Secure Shell Contoh penggunaan kriptografi di dunia internet antara lain: Secure Shell (SSH), SSL (Secure Socket Layer), Secure Hypertext Transfer Protocol (SSH), SSL (Secure Socket Layer), Secure Hypertext Transfer Protocol (HTTP), dan lain lain.

(9)

C.

C. Pengertian Pengertian Fungsi Fungsi HashHash

Hash function atau fungsi hash adalah suatu cara menciptakan “fingerprint” dari Hash function atau fungsi hash adalah suatu cara menciptakan “fingerprint” dari berbagai data masukan. Hash function akan mengganti atau mentranspose-kan data berbagai data masukan. Hash function akan mengganti atau mentranspose-kan data tersebut untuk menciptakan fingerprint, yang biasa disebut hash value. Hash value tersebut untuk menciptakan fingerprint, yang biasa disebut hash value. Hash value biasanya digambarkan sebagai suatu string pendek yang terdiri atas huruf dan angka biasanya digambarkan sebagai suatu string pendek yang terdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasi heksadesimal). Suatu hash yang terlihat random (data biner yang ditulis dalam notasi heksadesimal). Suatu hash function adalah sebuah fungsi matematika, yang mengambil sebuah panjang variabel function adalah sebuah fungsi matematika, yang mengambil sebuah panjang variabel string input, yang disebut pre-image dan mengkonversikannya ke sebuah string string input, yang disebut pre-image dan mengkonversikannya ke sebuah string output dengan panjang yang tetap dan biasanya lebih kecil, yang disebut message output dengan panjang yang tetap dan biasanya lebih kecil, yang disebut message digest5. Hash function digunakan untuk melakukan fingerprint pada pre-image, yaitu digest5. Hash function digunakan untuk melakukan fingerprint pada pre-image, yaitu menghasilkan sebuah nilai yang dapat menandai (mewakili) pre-image sesungguhnya. menghasilkan sebuah nilai yang dapat menandai (mewakili) pre-image sesungguhnya. Fungsi hash satu arah (one-way hash function) adalah hash function yang bekerja satu Fungsi hash satu arah (one-way hash function) adalah hash function yang bekerja satu arah, yaitu suatu hash function yang dengan mudah dapat menghitung hash value dari arah, yaitu suatu hash function yang dengan mudah dapat menghitung hash value dari pre-image, tetapi sangat sukar untuk menghitung pre-image dari hash value. Sebuah pre-image, tetapi sangat sukar untuk menghitung pre-image dari hash value. Sebuah fungsi hash satu arah, H(M), beroperasi pada suatu pre-image pesan M dengan fungsi hash satu arah, H(M), beroperasi pada suatu pre-image pesan M dengan panjang sembarang, dan mengembalikan nilai hash h yang memiliki panjang tetap. panjang sembarang, dan mengembalikan nilai hash h yang memiliki panjang tetap. Dalam notasi matematika fungsi hash satu arah dapat ditulis sebagai:

Dalam notasi matematika fungsi hash satu arah dapat ditulis sebagai: h = H(M), dengan h memiliki panjang b

h = H(M), dengan h memiliki panjang b

Ada banyak fungsi yang mampu menerima input dengan panjang sembarang Ada banyak fungsi yang mampu menerima input dengan panjang sembarang dan menghasilkan output dengan panjang tetap, tetapi fungsi hash satu arah memiliki dan menghasilkan output dengan panjang tetap, tetapi fungsi hash satu arah memiliki karakteristik tambahan yang membuatnya satu arah :

karakteristik tambahan yang membuatnya satu arah : Diberikan M, mudah menghitung h.

Diberikan M, mudah menghitung h.

Diberikan h, sulit menghitung M agar H(M) = h. Diberikan h, sulit menghitung M agar H(M) = h.

Diberikan M, sulit menemukan pesan lain, M', agar H(M) = H(M'). Diberikan M, sulit menemukan pesan lain, M', agar H(M) = H(M').

Dalam dunia nyata, fungsi hash satu arah dikembangkan berdasarkan ide sebuah Dalam dunia nyata, fungsi hash satu arah dikembangkan berdasarkan ide sebuah fungsi kompresi. Fungsi satu arah ini menghasilkan nilai hash berukuran n bila 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 diberikan input berukuran b. Input untuk fungsi kompresi adalah suatu blok pesan dan hasil blok teks sebelumnya. Sehingga hash suatu blok M, adalah :

hasil blok teks sebelumnya. Sehingga hash suatu blok M, adalah : hi

hi = = f(Mi,hi-1)f(Mi,hi-1) dengan dengan hi

hi = = hash hash value value saat saat ini.ini. Mi

Mi = = blok blok pesan pesan saat saat ini.ini. hi-1

hi-1 = = hash hash value value blok teks blok teks sebelumnya.sebelumnya.

Fungsi hash satu arah Fungsi hash satu arah One-way hash function One-way hash function Mi Mi hi-1 hi-1 hi hi

(10)

Fungsi hash sangat berguna untuk menjaga integritas sebuah data. Sudah Fungsi hash sangat berguna untuk menjaga integritas sebuah data. Sudah banyak algoritma hash function yang diciptakan, namun hash function yang umum banyak algoritma hash function yang diciptakan, namun hash function yang umum digunakan saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Algoritma hash digunakan saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Algoritma hash function yang baik adalah yang menghasilkan sedikit hash collision.

function yang baik adalah yang menghasilkan sedikit hash collision. D.

D. Metode yang Metode yang Digunakan Dalam Digunakan Dalam Fungsi HashFungsi Hash 1.

1. Metode PembagianMetode Pembagian

Pada metode pembagian ini, kita memetakan suatu kunci k ke dalam salah satu 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 slot dari m buah slot dengan mengambil sisa dari k dibagi oleh m. Maka, fungsi Hash ini adalah:

Hash ini adalah:

h(k) = k mod m h(k) = k mod m

dimana : h(k) = fungsi Hash dimana : h(k) = fungsi Hash

k = kunci yang akan dihitung/di-hash, k = kunci yang akan dihitung/di-hash, m = jumlah keseluruhan slot.

m = jumlah keseluruhan slot. 2.

2. Metode Metode PerkalianPerkalian

Metoda perkalian untuk memperoleh fungsi Hash dilakukan melalui dua Metoda perkalian untuk memperoleh fungsi Hash dilakukan melalui dua langkah. Langkah pertama, kita mengalikan kunci dengan suatu konstanta langkah. Langkah pertama, kita mengalikan kunci dengan suatu konstanta didalam range 0 < A < 1 dan mengambil nilai fraksional dari kA. Kemudian, didalam range 0 < A < 1 dan mengambil nilai fraksional dari kA. Kemudian, kita mengalikan nilai ini dengan m dan dapat diperoleh hasilnya. Singkatnya, kita mengalikan nilai ini dengan m dan dapat diperoleh hasilnya. Singkatnya, fungsi Hash ini adalah :

fungsi Hash ini adalah : h(k) =

h(k) = └ └ m (k A mod 1)m (k A mod 1) ┘ ┘,,

dimana : A » (Ö5 - 1)/2 = 0,6180339887... (Golden Number), dimana : A » (Ö5 - 1)/2 = 0,6180339887... (Golden Number), “k A mod 1” artinya adalah nilai fraksional dari kA, atau kA –

“k A mod 1” artinya adalah nilai fraksional dari kA, atau kA – └ └ kAkA ┘ ┘..

E.

E. Macam-Macam Macam-Macam Fungsi Fungsi HashHash

Fungsi Hash (dilambangkan dengan h(k)) bertugas untuk mengubah k (key) Fungsi Hash (dilambangkan dengan h(k)) bertugas untuk mengubah k (key) menjadi suatu nilai dalam interval [0....X],

menjadi suatu nilai dalam interval [0....X], dimana "X" adalah jumlah maksimum dimana "X" adalah jumlah maksimum daridari record-record yang dapat ditampung dalam tabel. Jumlah maksimum ini bergantung record-record yang dapat ditampung dalam tabel. Jumlah maksimum ini bergantung pada ruang memori yang tersedia. Fungsi Hash yang ideal adalah mudah dihitung dan pada ruang memori yang tersedia. Fungsi Hash yang ideal adalah mudah dihitung dan bersifat random, agar dapat menyebarkan semua key. Dengan key yang tersebar, bersifat random, agar dapat menyebarkan semua key. Dengan key yang tersebar, berarti data dapat terdistribusi secara seragam bentrokan dapat dicegah. Sehingga berarti data dapat terdistribusi secara seragam bentrokan dapat dicegah. Sehingga kompleksitas waktu model Hash dapat mencapai O(1), di mana kompleksitas tersebut kompleksitas waktu model Hash dapat mencapai O(1), di mana kompleksitas tersebut tidak ditemukan pada struktur model lain.

tidak ditemukan pada struktur model lain.

Ada beberapa macam fungsi hash yang relative sederhana yang dapat digunakan Ada beberapa macam fungsi hash yang relative sederhana yang dapat digunakan dalam penyimpanan database:

dalam penyimpanan database: 1.

1. Metode Pembagian Bersisa (Division-Remainder Method)Metode Pembagian Bersisa (Division-Remainder Method)

Jumlah lokasi memori yang tersedi dihitung, kemudian jumlah tersebut Jumlah lokasi memori yang tersedi dihitung, kemudian jumlah tersebut digunakan sebagai pembagi untuk membagi nilai yang asli dan menghasilkan digunakan sebagai pembagi untuk membagi nilai yang asli dan menghasilkan sisa. Sisa tersebut adalah nilai hashnya. Secara umum, rumusnya h(k)= k mod 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. m. Dalam hal ini m adalah jumlah lokasi memori yang tersedia pada array. Fungsi hash tersebut menempatkan record dengan kunci k pada suatu lokasi Fungsi hash tersebut menempatkan record dengan kunci k pada suatu lokasi memori yang beralamat h(k). Metode ini sering menghasilkan nilai hash yang memori yang beralamat h(k). Metode ini sering menghasilkan nilai hash yang

(11)

sama dari dua atau lebih nilai aslinya atau disebut dengan bentrokan. Karena itu, sama dari dua atau lebih nilai aslinya atau disebut dengan bentrokan. Karena itu, dibutuhkan mekanisme khusus untuk menangani bentrokan yang disebut dibutuhkan mekanisme khusus untuk menangani bentrokan yang disebut kebijakan resolusi bentrokan.

kebijakan resolusi bentrokan. 2.

2. Melipat Melipat (Folding)(Folding)

Metode ini membagi nilai asli ke dalam beberapa bagian, kemudian Metode ini membagi nilai asli ke dalam beberapa bagian, kemudian menambahkan nilai-nilai tersebut, dan mengambil beberapa angka terakhir menambahkan nilai-nilai tersebut, dan mengambil beberapa angka terakhir sebagai nilai hashnya.

sebagai nilai hashnya. 3.

3. Transformasi Transformasi Radiks Radiks (Radix (Radix Transformation)Transformation)

Karena nilai dalam bentuk digital, basis angka atau radiks dapat diganti Karena nilai dalam bentuk digital, basis angka atau radiks dapat diganti sehingga menghasilkan urutan angka-angka yang berbeda. Contohnya nilai sehingga menghasilkan urutan angka-angka yang berbeda. Contohnya nilai desimal (basis 10) bisa ditransformasikan kedalam heksadesimal (basis 16). desimal (basis 10) bisa ditransformasikan kedalam heksadesimal (basis 16). Digit atas hasilnya bisa dibuang agar panjang nilai hash

Digit atas hasilnya bisa dibuang agar panjang nilai hash dapat seragam.dapat seragam. 4.

4. Pengaturan Pengaturan Ulang Ulang Digit Digit Radiks Radiks (Radix (Radix Transformation)Transformation)

Metode ini mengubah urutan digit dengan pola tertentu. Contohnya mengambil Metode ini mengubah urutan digit dengan pola tertentu. Contohnya mengambil digit ke tiga sampai ke enam dari nilai aslinya, kemudian membalikan digit ke tiga sampai ke enam dari nilai aslinya, kemudian membalikan urutannya dan menggunakan digit yang terurut terbalik itu sebagai nilai hash. urutannya dan menggunakan digit yang terurut terbalik itu sebagai nilai hash. Fungsi hash yang bekerja dengan baik untuk penyimpanan pada database belum Fungsi hash yang bekerja dengan baik untuk penyimpanan pada database belum tentu bekerja dengan baik untuk keperluan kriptografi atau pengecekan kesalahan. tentu bekerja dengan baik untuk keperluan kriptografi atau pengecekan kesalahan. Ada beberapa fungsi hash terkenal yang digunakan untuk keperluan kriptografi. Ada beberapa fungsi hash terkenal yang digunakan untuk keperluan kriptografi. Diantaranya adalah fungsi hash message-diggest, contohnya MD2, MD4, dan MD5, Diantaranya adalah fungsi hash message-diggest, contohnya MD2, MD4, dan MD5, digunakan untuk menghasilkan nilai hash dari tanda tangan digital yang disebut digunakan untuk menghasilkan nilai hash dari tanda tangan digital yang disebut message-diggest. Ada pula Secure Hash Algorithm (SHA), sebuah algoritma standar message-diggest. Ada pula Secure Hash Algorithm (SHA), sebuah algoritma standar yang menghasilkan message-diggest yang lebih besar (60- bit) dan serupa dengan yang menghasilkan message-diggest yang lebih besar (60- bit) dan serupa dengan MD4.

MD4. F.

F. Bentrokan Bentrokan Pada Pada Fungsi Fungsi HashHash

Fungsi hash bukan merupakan fungsi satu-ke-satu, artinya beberapa record yang Fungsi hash bukan merupakan fungsi satu-ke-satu, artinya beberapa record yang berbeda dapat menghasilkan nilai hash yang sama / terjadi bentrokan. Dengan fungsi berbeda dapat menghasilkan nilai hash yang sama / terjadi bentrokan. Dengan fungsi hash yang baik, hal seperti ini akan sangat jarang terjadi, tapi pasti akan terjadi. Jika hash yang baik, hal seperti ini akan sangat jarang terjadi, tapi pasti akan terjadi. Jika hal seperti ini terjadi, record-record tersebut tidak bisa menempati lokasi yang sama. hal seperti ini terjadi, record-record tersebut tidak bisa menempati lokasi yang sama. Ada dua macam kebijakan resolusi bentrokan pada tabel hash, yaitu kebijakan Ada dua macam kebijakan resolusi bentrokan pada tabel hash, yaitu kebijakan resolusi bentrokan di luar tabel dan kebijakan resolusi bentrokan di dalam tabel. resolusi bentrokan di luar tabel dan kebijakan resolusi bentrokan di dalam tabel. Harus diperhatikan juga teknik-teknik penempatan record agar mudah dicari jika Harus diperhatikan juga teknik-teknik penempatan record agar mudah dicari jika dibutuhkan.

dibutuhkan. 1.

1. Kebijakan Resolusi Bentrokan di Luar TableKebijakan Resolusi Bentrokan di Luar Table

Artinya tabel hash bukan lagi menjadi array of records, tetapi menjadi array of  Artinya tabel hash bukan lagi menjadi array of records, tetapi menjadi array of  pointers. Setiap

pointers. Setiap pointer menunjuk ke senarai berkait yang berisi record tersebut.pointer menunjuk ke senarai berkait yang berisi record tersebut. Metode seperti ini dinamakan chaining. Dalam bentuk sederhananya berupa Metode seperti ini dinamakan chaining. Dalam bentuk sederhananya berupa senarai berkait dari recordrecord yang menghasilkan nilai hash yang sama. senarai berkait dari recordrecord yang menghasilkan nilai hash yang sama. Penambahan record dapat dilakukan dengan menambah senarai berisi record Penambahan record dapat dilakukan dengan menambah senarai berisi record tersebut. Untuk pencarian pada tabel, pertama-tama dicari nilai hash terlebih tersebut. Untuk pencarian pada tabel, pertama-tama dicari nilai hash terlebih dahulu, kemudian dilakukan pencarian dalam senarai berkait yang dahulu, kemudian dilakukan pencarian dalam senarai berkait yang bersangkutan. Untuk menghapus suatu record, hanya menghapus senarainya bersangkutan. Untuk menghapus suatu record, hanya menghapus senarainya saja.

(12)

 Resolusi bentrokan dengan Chaining  Resolusi bentrokan dengan Chaining

Kelebihan dari metode chaining ini chaining ini adalah proses Kelebihan dari metode chaining ini chaining ini adalah proses penghapusan yang relarif mudah dan penambahan ukuran tabel hash bisa penghapusan yang relarif mudah dan penambahan ukuran tabel hash bisa ditunda untuk waktu yang lebih lama karena penurunan kinerjanya berbanding ditunda untuk waktu yang lebih lama karena penurunan kinerjanya berbanding lurus meskipun seluruh lokasi pada table sudah penuh. Bahkan, penambahan lurus meskipun seluruh lokasi pada table sudah penuh. Bahkan, penambahan ukuran tabel bias saja tidak perlu dilakukan sama sekali karena penurunan ukuran tabel bias saja tidak perlu dilakukan sama sekali karena penurunan kinerjanya yang linier. Misalnya, table yang berisi record sebanyak dua kali kinerjanya yang linier. Misalnya, table yang berisi record sebanyak dua kali lipat kapasitas yang direkomendasikan hanya akan lebih lambat dua kali lipat lipat kapasitas yang direkomendasikan hanya akan lebih lambat dua kali lipat dibanding yang berisi sebanyak kapasitas yang direkomendasikan.

dibanding yang berisi sebanyak kapasitas yang direkomendasikan.

Kekurangan dari metode chaining ini sama dengan kekurangan dari Kekurangan dari metode chaining ini sama dengan kekurangan dari senarai berkait. Operasi traversal pada senarai berkait memiliki performa cache senarai berkait. Operasi traversal pada senarai berkait memiliki performa cache yang buruk.

yang buruk.

Struktur data lain dapat digunakan sebagai pengganti senarai berkait. Struktur data lain dapat digunakan sebagai pengganti senarai berkait. Misalnya dengan pohon seimbang, kompleksitas waktu terburuk bisa diturunkan Misalnya dengan pohon seimbang, kompleksitas waktu terburuk bisa diturunkan menjadi O(log n) dari yang sebelumnya O(n). Namun demikian, karena setiap menjadi O(log n) dari yang sebelumnya O(n). Namun demikian, karena setiap senarai diharapkan untuk tidak panjang, struktur data pohon ini kurang efisien senarai diharapkan untuk tidak panjang, struktur data pohon ini kurang efisien kecuali tabel hash tersebut memang didesain untuk jumlah record yang banyak kecuali tabel hash tersebut memang didesain untuk jumlah record yang banyak atau kemungkinan terjadi bentrokan sangat besar yang mungkin terjadi karena atau kemungkinan terjadi bentrokan sangat besar yang mungkin terjadi karena masukan memang disengaja agar terjadi bentrokan.

masukan memang disengaja agar terjadi bentrokan. 2.

2. Kebijakan Resolusi Bentrokan di Dalam TableKebijakan Resolusi Bentrokan di Dalam Table

Berbeda dengan kebijakan resolusi bentrokan di luar tabel, pada kebijakan Berbeda dengan kebijakan resolusi bentrokan di luar tabel, pada kebijakan resolusi di dalam tabel data disimpan di dalam hash tabel tersebut, bukan dalam resolusi di dalam tabel data disimpan di dalam hash tabel tersebut, bukan dalam senarai berkait yang bisa bertambah terus menerus. Dengan demikian data yang senarai berkait yang bisa bertambah terus menerus. Dengan demikian data yang disimpan tidak mungkin bisa lebih banyak daripada jumlah ruang pada table disimpan tidak mungkin bisa lebih banyak daripada jumlah ruang pada table hash.

hash.

Jika suatu record akan dimasukkan ke dalam table hash pada lokasi sesuai 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 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 harus dicari lokasi alternatif yang masih belum terisi dengan cara tertentu. Cara ini disebut Open Addressing.

(13)

Ada beberapa metode untuk menemukan lokasi baru yang masih kosong. Ada beberapa metode untuk menemukan lokasi baru yang masih kosong. Dalam proses menemukan lokasi baru ini harus menggunakan pola tertentu agar Dalam proses menemukan lokasi baru ini harus menggunakan pola tertentu agar record yang disimpan tetap bisa dicari dengan mudah saat dibutuhkan record yang disimpan tetap bisa dicari dengan mudah saat dibutuhkan kemudian. Metode-metode yang sering digunakan adalah:

kemudian. Metode-metode yang sering digunakan adalah: a.

a. Linear ProbingLinear Probing

Dengan menambahkan suatu interval pada hasil yang diperoleh dari fungsi Dengan menambahkan suatu interval pada hasil yang diperoleh dari fungsi hash sampai ditemukan lokasi yang belum terisi. Interval yang biasa hash sampai ditemukan lokasi yang belum terisi. Interval yang biasa digunakan adalah 1.

digunakan adalah 1.

 Resolusi bentrokan dengan Linear Probing  Resolusi bentrokan dengan Linear Probing b.

b. Quadratic Probing Quadratic Probing / / Squared Squared ProbingProbing

Hampir sama dengan linear probing, hanya saja pada quadratic probing, Hampir sama dengan linear probing, hanya saja pada quadratic probing, hasil yang diperoleh dari fungsi hash ditambahkan dengan kuadrat dari hasil yang diperoleh dari fungsi hash ditambahkan dengan kuadrat dari interval yang digunakan.

interval yang digunakan. c.

c. Double HashingDouble Hashing

Pada metode double hashing, jika lokasi yang diperoleh dengan fungsi Pada metode double hashing, jika lokasi yang diperoleh dengan fungsi hash sudah terisi, maka dilakukan proses hash lagi sampai ditemukan hash sudah terisi, maka dilakukan proses hash lagi sampai ditemukan lokasi yang belum terisi.

lokasi yang belum terisi. 3.

3. Perbandingan Antara Metode Chaining dan Open AddressingPerbandingan Antara Metode Chaining dan Open Addressing Keunggulan metode chaining dibanding open addressing : Keunggulan metode chaining dibanding open addressing : a.

a. Lebih mudah diimplementasikan dengan efektif dan hanya membutuhkanLebih mudah diimplementasikan dengan efektif dan hanya membutuhkan struktur data dasar.

struktur data dasar. b.

b. Metode chaining tidak rawan terhadap data-data yang berkumpul diMetode chaining tidak rawan terhadap data-data yang berkumpul di daerah tertentu. Metode open addressing membutuhkan algoritma hash daerah tertentu. Metode open addressing membutuhkan algoritma hash yang lebih baik untuk menghindari pengumpulan data di sekitar lokasi yang lebih baik untuk menghindari pengumpulan data di sekitar lokasi tertentu.

tertentu. c.

c. Performa menurun secara linier. Meskipun semakin banyak record yangPerforma menurun secara linier. Meskipun semakin banyak record yang dimasukkan maka semakin panjang senarai berantai, tabel hash tidak akan dimasukkan maka semakin panjang senarai berantai, tabel hash tidak akan penuh dan tidak akan menimbulkan peningkatan waktu pencarian record penuh dan tidak akan menimbulkan peningkatan waktu pencarian record

(14)

yang tibatiba meningkat yang terjadi bila menggunakan metode open yang tibatiba meningkat yang terjadi bila menggunakan metode open addressing.

addressing. d.

d. Jika record yang dimasukkan panjang, memori yang digunakan akan lebihJika record yang dimasukkan panjang, memori yang digunakan akan lebih sedikit dibandingkan dengan metode open addressing.

sedikit dibandingkan dengan metode open addressing.

Perbandingan waktu yang diperlukan untuk melakukan pencarian. Saat  Perbandingan waktu yang diperlukan untuk melakukan pencarian. Saat  tabel mencapai 80% terisi, kinerja pada linear probing(open addressing) tabel mencapai 80% terisi, kinerja pada linear probing(open addressing)

menurun drastis. menurun drastis.

Untuk ukuran record yang kecil, keunggulan metode open addressing Untuk ukuran record yang kecil, keunggulan metode open addressing dibandingkan dengan chaining diantaranya

dibandingkan dengan chaining diantaranya a.

a. Ruang yang Ruang yang digunakan digunakan lebih lebih efisien efisien karena karena tidak tidak perlu perlu menyimpan menyimpan pointerpointer atau mengalokasi tempat tambahan di luar tabel hash.

atau mengalokasi tempat tambahan di luar tabel hash. b.

b. Tidak Tidak ada ada waktu waktu tambahan tambahan untuk untuk pengalokasian pengalokasian memori memori karena karena metodemetode open addressing tidak memerlukan pengalokasian memori.

open addressing tidak memerlukan pengalokasian memori. c.

c. Tidak Tidak memerlukan memerlukan pointer.pointer.

Sebenarnya, penggunaan algoritma apapun pada table hash biasanya cukup Sebenarnya, penggunaan algoritma apapun pada table hash biasanya cukup cepat, dan persentase kalkulasi yang dilakukan pada tabel hash rendah. cepat, dan persentase kalkulasi yang dilakukan pada tabel hash rendah. Penggunaan memori juga jarang berlebihan. Oleh karena itu, pada kebanyakan Penggunaan memori juga jarang berlebihan. Oleh karena itu, pada kebanyakan kasus, perbedaan antar algoritma ini tidak signifikan.

kasus, perbedaan antar algoritma ini tidak signifikan. 4.

4. Metode-Metode LainMetode-Metode Lain

Selain metode-metode yang sudah disebutkan di atas, ada juga beberapa metode Selain metode-metode yang sudah disebutkan di atas, ada juga beberapa metode lain.

lain. a.

a. Coalesced HashingCoalesced Hashing

Gabungan dari chaining dan openaddressing. Coalesced hashing Gabungan dari chaining dan openaddressing. Coalesced hashing menghubungkan ke tabel itu sendiri. Seperti open addressing, metode ini menghubungkan ke tabel itu sendiri. Seperti open addressing, metode ini memiliki keunggulan pada penggunaan tempat dan cache dibanding memiliki keunggulan pada penggunaan tempat dan cache dibanding metode chaining. Seperti chaining, metode ini menghasilkan lokasi metode chaining. Seperti chaining, metode ini menghasilkan lokasi penyimpanan yang lebih menyebar, tetapi pada metode ini record yang penyimpanan yang lebih menyebar, tetapi pada metode ini record yang disimpan tidak mungkin lebih banyak daripada ruang yang disediakan disimpan tidak mungkin lebih banyak daripada ruang yang disediakan tabel.

(15)

b.

b. Perfect HashingPerfect Hashing

Jika record yang akan digunakan sudah diketahui sebelumnya, dan Jika record yang akan digunakan sudah diketahui sebelumnya, dan   jumlahnya tidak melebihi jumlah ruang pada tabel hash, perfect hashing   jumlahnya tidak melebihi jumlah ruang pada tabel hash, perfect hashing bisa digunakan untuk membuat tabel hash yang sempurna, tanpa ada bisa digunakan untuk membuat tabel hash yang sempurna, tanpa ada bentrokan.

bentrokan. c.

c. Probabilistic Probabilistic HashingHashing

Kemungkinan solusi paling sederhana untuk mengatasi bentrokan adalah Kemungkinan solusi paling sederhana untuk mengatasi bentrokan adalah dengan

dengan engganti record yengganti record yang sudah ang sudah disimpan dengan record disimpan dengan record yang baru,yang baru, atau membuang record yang baru akan dimasukkan. Hal ini bisa atau membuang record yang baru akan dimasukkan. Hal ini bisa berdampak tidak ditemukannya record pada saat pencarian. Metode ini berdampak tidak ditemukannya record pada saat pencarian. Metode ini digunakan untuk keperluan tertentu saja.

digunakan untuk keperluan tertentu saja. d.

d. Robin Hood Robin Hood HashingHashing

Salah satu variasi dari resolusi bentrokan double hashing. Ide dasarnya Salah satu variasi dari resolusi bentrokan double hashing. Ide dasarnya adalah sebuah record yang sudah dimasukkan bisa digantikan dengan adalah sebuah record yang sudah dimasukkan bisa digantikan dengan record yang baru jika nilai pencariannya (probe count – bertambah setiap record yang baru jika nilai pencariannya (probe count – bertambah setiap menemukan termpat yang sudah terisi) lebih besar daripada nilai menemukan termpat yang sudah terisi) lebih besar daripada nilai pencarian dari record yang sudah dimasukkan. Efeknya adalah pencarian dari record yang sudah dimasukkan. Efeknya adalah mengurangi kasus terburuk waktu yang diperlukan untuk pencarian.

mengurangi kasus terburuk waktu yang diperlukan untuk pencarian. G. Pengertian MD5

G. Pengertian MD5

Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunkan untuk melakukan pengujian aplikasi keamanan, dan MD5 juga umum digunkan untuk melakukan pengujian integritas sebuah file.

integritas sebuah file.

MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti 1 (klaim terbaru menyatakan bahwa menggunakan algoritma lain, seperti 1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan 1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.

makin dipertanyakan. H.

H. Langkah-Langkah Pembuatan Langkah-Langkah Pembuatan MDMD 1.

1. Penambahan Penambahan Bit-bit Bit-bit PengganjalPengganjal a.

a. Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehinggaPesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512.

panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. b.

b. Jika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bitJika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512.

512. c.

c. Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0. 2.

2. Penambahan Nilai Panjang PesanPenambahan Nilai Panjang Pesan a.

a. Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagiPesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula.

(16)

]) ]) 16 16 .... 11 [[ ,, ,, (( ABCD ABCD Y Y  T T   f   f   ABCD  ABCD←← qq ]) ]) 32 32 .... 17 17 [[ ,, ,, (( ABCD ABCD Y Y  T T   f   f   ABCD  ABCD←← GG qq ]) ]) 48 48 .... 33 33 [[ ,, ,, (( ABCD ABCD Y Y  T T   f   f   ABCD  ABCD←←  H  H  qq ]) ]) 64 64 .... 49 49 [[ ,, ,, (( ABCD ABCD Y Y  T T   f 

 f   ABCD

 ABCD←←  I  I  qq  A  A BB CC DD  A  A  B B C C   D D  A  A  B B C C   D D + + ++ ++ ++  MD  MDqq  MD  MDq +q +11 128 128 Y  Y qq 512 512 b.

b. Jika panjang pesan > 264 maka yang diambil adalah panjangnya dalamJika panjang pesan > 264 maka yang diambil adalah panjangnya dalam modulo 264. Dengan kata lain, jika panjang pesan semula adalah

modulo 264. Dengan kata lain, jika panjang pesan semula adalah K K bit,bit, maka 64 bit yang ditambahkan menyatakan

maka 64 bit yang ditambahkan menyatakan K K modulo 264.modulo 264. c.

c. Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatanSetelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit.

512 bit. 3.

3. Inisialisai Penyangga MDInisialisai Penyangga MD a.

a. MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masingMD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 4

panjangnya 32 bit. Total panjang penyangga adalah 4 ×× 32 = 128 bit.32 = 128 bit.

Keempat penyangga ini menampung hasil antara dan hasil akhir. Keempat penyangga ini menampung hasil antara dan hasil akhir. b.

b. Keempat penyangga ini diberi nama A, B, C, dan D. Setiap penyanggaKeempat penyangga ini diberi nama A, B, C, dan D. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut:

diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut: A = 01234567 A = 01234567 B = 89ABCDEF B = 89ABCDEF C = FEDCBA98 C = FEDCBA98 D = 76543210 D = 76543210 4.

4. Pengolahan Pengolahan Pesan Pesan dalam dalam Blok Blok Berukuran Berukuran 512 512 bitbit a.

a. Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0 sampai YL – 1).

bit (Y0 sampai YL – 1). b.

b. Setiap blok 512-bit diproses bersama dengan penyangga MD menjadiSetiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini disebut proses HMD5. Gambaran proses HMD5 keluaran 128-bit, dan ini disebut proses HMD5. Gambaran proses HMD5 diperlihatkan pada Gambar 13.3.

(17)

a b c d   a b c d   g g + + + + + + CLS CLSss + +  X   X [[k k ]] T  T [[ii]] a b c d   a b c d   g g + + + + + + CLS CLSss + +  X   X [[k k ]] T  T [[ii]] a b c d   a b c d   c.

c. Pada Gambar 13.3, Yq menyatakan blok 512-bit ke-q dari pesan yangPada Gambar 13.3, Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula.

semula. d.

d. MDq adalah nilai message digest 128-bit dari proses HMD5 ke-q. PadaMDq adalah nilai message digest 128-bit dari proses HMD5 ke-q. Pada awal proses, MDq berisi nilai inisialisasi penyangga MD.

awal proses, MDq berisi nilai inisialisasi penyangga MD. e.

e. Proses HMD5 terdiri dari 4 buah putaran, dan masing-masing putaranProses HMD5 terdiri dari 4 buah putaran, dan masing-masing putaran melakukan operasi dasar MD5 sebanyak 16 kali dan setiap operasi dasar melakukan operasi dasar MD5 sebanyak 16 kali dan setiap operasi dasar memakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen Tabel memakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen Tabel T.

T. f.

f. Fungsi-fungsi fF, fG, fH, dan fI masing-masing berisi 16 kali operasi dasarFungsi-fungsi fF, fG, fH, dan fI masing-masing berisi 16 kali operasi dasar terhadap masukan, setiap

terhadap masukan, setiap operasi dasar operasi dasar menggunakan elemen Tabel menggunakan elemen Tabel T.T. g.

g. Operasi dasar MD5 diperlihatkan pada Gambar 13.4.Operasi dasar MD5 diperlihatkan pada Gambar 13.4.

h.

h. Karena ada 16 kali operasi dasar, maka setiap kali selesai satu operasiKarena ada 16 kali operasi dasar, maka setiap kali selesai satu operasi dasar, penyangga-penyangga itu digeser ke kanan secara sirkuler dengan dasar, penyangga-penyangga itu digeser ke kanan secara sirkuler dengan cara pertukaran sebagai berikut:

cara pertukaran sebagai berikut: temp temp ←←dd dd←← cc cc←←bb bb←← aa aa←←temptemp

(18)

I.

I. Cara Cara Kerja Kerja MD5MD5

MD5 mengolah blok 512 bit, dibagi kedalam 16 subblok berukuran 32 bit. 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 Keluaran algoritma diset menjadi 4 blok yang masing-masing berukuran 32 bit yang setelah digabungkan akan membentuk nilai hash 128 bit.

setelah digabungkan akan membentuk nilai hash 128 bit.

Algoritma MD5 Algoritma MD5

Pesan diberi tambahan sedemikian sehingga panjang menjadi k-bit, dimana k = Pesan diberi tambahan sedemikian sehingga panjang menjadi k-bit, dimana k = 512n – 64 bit. n merupakan blok masukan. Tambahan ini diperlukan hingga pesan 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 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 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 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 serupa. Setiap tahapan menggunakan 16 kali operasi berbeda, menjalankan fungsi nonlinear pada tiga variabel a,b,c, atau d. Hasilnya ditambahkan ke variabel keempat, 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 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 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 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 gabungan dari a,b,c, dan d. Fungsi kompresi yang digunakan oleh algoritma md5 adalah sebagai berikut :

adalah sebagai berikut :

aa ←←b + (( a + g ( b,c,d) + X[k] + T[i] <<< s ), dimana g adalah salah fungsi primitif b + (( a + g ( b,c,d) + X[k] + T[i] <<< s ), dimana g adalah salah fungsi primitif 

F,G,H,I seperti dibawah ini : F,G,H,I seperti dibawah ini :

(19)

dan operasi XOR, AND, OR, dan NOT adalah sebagai berikut : dan operasi XOR, AND, OR, dan NOT adalah sebagai berikut :

J.

J. Proses Proses MD5 MD5 dengan dengan Berbagai Berbagai Macam Macam MasukanMasukan 1.

1. Proses Proses MD5 MD5 Dengan Dengan Masukan Masukan Berupa Berupa StringString

Proses MD5 dengan masukan berupa string adalah proses yang masukannya Proses MD5 dengan masukan berupa string adalah proses yang masukannya berupa karakter yang dimasukan melalui keyboard.

berupa karakter yang dimasukan melalui keyboard. 2.

2. Proses MD5 Dengan Masukan Berupa FileProses MD5 Dengan Masukan Berupa File

Proses MD5 dengan masukan berupa file adalah proses MD5 yang masukannya Proses MD5 dengan masukan berupa file adalah proses MD5 yang masukannya memanggil file yang kenmudian dihitung berapa panjang bitnya, dalam keadaan memanggil file yang kenmudian dihitung berapa panjang bitnya, dalam keadaan ini file diperlakukan sebagai bit memori sehingga masukannya tidak ini file diperlakukan sebagai bit memori sehingga masukannya tidak terpengaruh pada ekstensinya. Kemudian dilakukan proses MD5.

terpengaruh pada ekstensinya. Kemudian dilakukan proses MD5. 3.

3. Proses MD5 Sebagai Test SuiteProses MD5 Sebagai Test Suite

Test suite dilakukan untuk mengetahui apakah program yang dibuat ini sudah Test suite dilakukan untuk mengetahui apakah program yang dibuat ini sudah benar ataukah masih terdapat kesalahan-kesalahan. Sebagai perbandingannya benar ataukah masih terdapat kesalahan-kesalahan. Sebagai perbandingannya digunakan hasil yang sudah didapatkan oleh Ron Rivest yang sudah digunakan hasil yang sudah didapatkan oleh Ron Rivest yang sudah didefinisikan pada RFC 1321. Pada gambar 3.3 dapat dilihat bahwa masukan didefinisikan pada RFC 1321. Pada gambar 3.3 dapat dilihat bahwa masukan dari MD5 sudah ditentukan sehinnga hanya membandingkan hasil pada layar dari MD5 sudah ditentukan sehinnga hanya membandingkan hasil pada layar dengan yang tercantum pada RFC 1321.

dengan yang tercantum pada RFC 1321. K

K.. Analisis Kecepatan MD5Analisis Kecepatan MD5

Analisi kecepatan disini adalah analisis tentang kecepatan aplikasi dalam Analisi kecepatan disini adalah analisis tentang kecepatan aplikasi dalam mengenkrip file untuk mencari nilai hash. Analisis dilakukan untuk mencari mengenkrip file untuk mencari nilai hash. Analisis dilakukan untuk mencari kecepatan apliksi dengan masukan yang file yang mempunyai perbedaan dalam hal kecepatan apliksi dengan masukan yang file yang mempunyai perbedaan dalam hal ukuran. Pengujian dilakukan dengan cara mengenkrip file sebanyak 31 (tiga puluh ukuran. Pengujian dilakukan dengan cara mengenkrip file sebanyak 31 (tiga puluh satu) buah file dengan besar file yang berbeda-beda. Setiap file dilakukan satu) buah file dengan besar file yang berbeda-beda. Setiap file dilakukan pengambilan waktu eksekusi sebanyak5 kali kemudian mencari waktu rata-ratanya. pengambilan waktu eksekusi sebanyak5 kali kemudian mencari waktu rata-ratanya.

(20)

BAB III BAB III PENUTUP PENUTUP A. Kesimpulan A. Kesimpulan

Kriptografi adalah ilmu yang berguna untuk mengacak (kata yang lebih tepat Kriptografi adalah ilmu yang berguna untuk mengacak (kata yang lebih tepat adalah masking) data sedemikian rupa sehingga tidak bisa dibaca oleh pihak ketiga. 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 Tentu saja data yang diacak harus bisa dikembalikan ke bentuk semula oleh pihak yang berwenang.

yang berwenang.

Data yang ingin diacak biasanya disebut Plain Teks (Plain Text). Data diacak Data yang ingin diacak biasanya disebut Plain Teks (Plain Text). Data diacak dengan menggunakan Kunci Enkripsi (Encryption Key). Proses pengacakan itu dengan menggunakan Kunci Enkripsi (Encryption Key). Proses pengacakan itu sendiri disebut Enkripsi (Encryption). Plain Teks yang telah diacak disebut Cipher sendiri disebut Enkripsi (Encryption). Plain Teks yang telah diacak disebut Cipher Teks (Chiper Text). Kemudian proses untuk mengembalikan Cipher Teks ke Plain Teks (Chiper Text). Kemudian proses untuk mengembalikan Cipher Teks ke Plain Teks disebut Dekripsi (Decryption). Kunci yang digunakan pada tahap Dekripsi Teks disebut Dekripsi (Decryption). Kunci yang digunakan pada tahap Dekripsi disebut Kunci Dekripsi (Decryption Key).

disebut Kunci Dekripsi (Decryption Key).

Pada prakteknya, selain pihak yang berwenang ada pihak ketiga yang selalu Pada prakteknya, selain pihak yang berwenang ada pihak ketiga yang selalu berusaha untuk mengembalikan Cipher Teks ke Plain Teks atau memecahkan Kunci berusaha untuk mengembalikan Cipher Teks ke Plain Teks atau memecahkan Kunci Dekripsi. Usaha oleh pihak ketiga ini disebut Kriptanalisis (Cryptanalysis).

Dekripsi. Usaha oleh pihak ketiga ini disebut Kriptanalisis (Cryptanalysis).

Fungsi Hash adalah suatu cara menciptakan “fingerprint” dari berbagai data Fungsi Hash adalah suatu cara menciptakan “fingerprint” dari berbagai data masukan. Fungsi Hash akan mengganti atau mentranspose-kan data tersebut untuk masukan. Fungsi Hash akan mengganti atau mentranspose-kan data tersebut untuk menciptakan fingerprint, yang biasa disebut hash value. Hash value biasanya menciptakan fingerprint, yang biasa disebut hash value. Hash value biasanya digambarkan sebagai suatu string pendek yang terdiri atas huruf dan angka yang digambarkan sebagai suatu string pendek yang terdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasi heksadesimal). Algoritma fungsi terlihat random (data biner yang ditulis dalam notasi heksadesimal). Algoritma fungsi hash yang baik adalah yang menghasilkan sedikit hash collision. Sudah banyak hash yang baik adalah yang menghasilkan sedikit hash collision. Sudah banyak algoritma fungsi hash yang diciptakan, namun fungsi hash yang umum digunakan algoritma fungsi hash yang diciptakan, namun fungsi hash yang umum digunakan saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Kedua algoritma tersebut saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Kedua algoritma tersebut didesain untuk prosesor 32 bit, dan tidak dapat diimplementasikan untuk prosesor 64 didesain untuk prosesor 32 bit, dan tidak dapat diimplementasikan untuk prosesor 64 bit.

bit.

Fungsi hash yang paling banyak digunakan dalam keamanan jaringan komputer Fungsi hash yang paling banyak digunakan dalam keamanan jaringan komputer dan internet adalah MD5 yang dirancang oleh Ron Rivest yang juga merupakan salah dan internet adalah MD5 yang dirancang oleh Ron Rivest yang juga merupakan salah satu pengembang algoritma RSA pada tahun 1991. MD5 merupakan kelanjutan daru satu pengembang algoritma RSA pada tahun 1991. MD5 merupakan kelanjutan daru MD4 yang dirancang dengan tujuan keamanan. Secara perhitungan matetamatis tidak MD4 yang dirancang dengan tujuan keamanan. Secara perhitungan matetamatis tidak dimungkinkan untuk mendapatkan dua pesan yang memiliki hash yang sama. Tidak dimungkinkan untuk mendapatkan dua pesan yang memiliki hash yang sama. Tidak ada serangan yang lebih efisien untuk membongkar/mengetahui hash suatu pesan ada serangan yang lebih efisien untuk membongkar/mengetahui hash suatu pesan selain brute-force.

selain brute-force. B. Saran

B. Saran

Makalah ini sangat jauh dari kesempurnan, maka dari itu penulis sangat Makalah ini sangat jauh dari kesempurnan, maka dari itu penulis sangat mengharapkan kritik dan saran untuk makalah ini yang tentunya sangat bermanfaat mengharapkan kritik dan saran untuk makalah ini yang tentunya sangat bermanfaat bagi penulis dalam menyempurnakan makalah ini.

bagi penulis dalam menyempurnakan makalah ini.

Semoga makalah ini bisa menjadi salah satu acuan dalam pembuatan makalah Semoga makalah ini bisa menjadi salah satu acuan dalam pembuatan makalah selanjutnya.

(21)

DAFTAR PUSTAKA DAFTAR PUSTAKA http://www.budi.insan.co.id http://www.budi.insan.co.id http://www.elektro.undip.ac.idtransmisijun065_aghus_abp.pdf  http://www.elektro.undip.ac.idtransmisijun065_aghus_abp.pdf  www.handoko.web.id www.handoko.web.id www.ilmukomputer.com www.ilmukomputer.com http://www.informatika.org~rinaldiMatdis2007-2008MakalahMakalahIF2153-0708-061.pdf  061.pdf  http://www.om4gus.blogspot.com/2008/02/java-enkripsi-md5.html http://www.om4gus.blogspot.com/2008/02/java-enkripsi-md5.html http://www.stream.plasa.com http://www.stream.plasa.com http://www.telkom.net/kamus_internet_detail.php?cid=2&id=431 http://www.telkom.net/kamus_internet_detail.php?cid=2&id=431

(22)

LAMPIRAN LAMPIRAN PROGRAM PROGRAM import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.MessageDigest; import java.io.BufferedReader; import java.io.BufferedReader; import java.io.IOException; import java.io.IOException; import java.io.InputStreamReader; import java.io.InputStreamReader; import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException; public class AeSimpleMD5 {

public class AeSimpleMD5 {

private static String convertToHex(byte[] data) { private static String convertToHex(byte[] data) { StringBuffer buf = new StringBuffer();

StringBuffer buf = new StringBuffer(); for (int i = 0; i < data.length; i++) { for (int i = 0; i < data.length; i++) { int halfbyte = (data[i] >>> 4) & 0x0F; int halfbyte = (data[i] >>> 4) & 0x0F; int two_halfs = 0;

int two_halfs = 0; do {

do {

if ((0 <= halfbyte) && (halfbyte <= 9)) if ((0 <= halfbyte) && (halfbyte <= 9)) buf.append((char) ('0' + halfbyte)); buf.append((char) ('0' + halfbyte)); else

else

buf.append((char) ('a' + (halfbyte - 10))); buf.append((char) ('a' + (halfbyte - 10))); halfbyte = data[i] & 0x0F;

halfbyte = data[i] & 0x0F; } while(two_halfs++ < 1); } while(two_halfs++ < 1); }} return buf.toString(); return buf.toString(); }}

public static String MD5(String text) public static String MD5(String text)

throws NoSuchAlgorithmException, UnsupportedEncodingException { throws NoSuchAlgorithmException, UnsupportedEncodingException { MessageDigest md;

MessageDigest md;

md = MessageDigest.getInstance("MD5"); md = MessageDigest.getInstance("MD5"); byte[] md5hash = new byte[32];

byte[] md5hash = new byte[32];

md.update(text.getBytes("iso-8859-1"), 0, text.length()); md.update(text.getBytes("iso-8859-1"), 0, text.length()); md5hash = md.digest(); md5hash = md.digest(); return convertToHex(md5hash); return convertToHex(md5hash); }}

public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {

BufferedReader userInput = new BufferedReader (new InputStreamReader(System.in)); BufferedReader userInput = new BufferedReader (new InputStreamReader(System.in)); System.out.p

System.out.print("Enter rint("Enter string:");string:");

String rawString = userInput.readLine(); String rawString = userInput.readLine(); try {

try {

System.out.println("MD5 hash of string: " + AeSimpleMD5.MD5(rawString)); System.out.println("MD5 hash of string: " + AeSimpleMD5.MD5(rawString));

(23)

} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {  // TODO Auto-generated catch block  // TODO Auto-generated catch block

e.printStackTrace(); e.printStackTrace();

} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {  // TODO Auto-generated catch block

 // TODO Auto-generated catch block e.printStackTrace();

e.printStackTrace(); }}

}} }}

Berikut adalah output dari program diatas : Berikut adalah output dari program diatas :

Figur

Memperbarui...

Referensi

Memperbarui...