JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI
MAKASSAR
2008
KATA PENGANTAR
Puji syukur penulis panjatkan atas kehadirat Allah SWT dan junjungan besar NabiMuhammad SAW, karena atas Rahmat dan Hidayah-Nya sehingga penulis dapatmenyelesaikan makalah ini tepat waktu.
Melalui makalah ini, penulis ingin mengucapkan terima kasih yang sebesar-
besarnya
kepada
pembimbing
mata
kuliah
(Dosen)
dan
semua pihak yang terlibat dalam penyelesaian makalah ini.
Penulis menyadari dalam makalah ini masih terdapat banyak kekurangan, olehkarena itu penulis sangat mengharapkan saran dan kritik yang tentunya bersifatmembangun demi kesempurnaan makalah ini.
Makassar, Juni 2008
Penulis
DAFTAR ISI
KATA PENGANTAR............................................................................................ i
DAFTAR ISI.......................................................................................................... ii
BAB I PENDAHULUAN.................................................................................. 1A. Latar Belakang.................................................................................. 1B. Rumusan Masalah............................................................................ 2C. Tujuan Penulisan.............................................................................. 3
BAB II PEMBAHASAN..................................................................................... 4
A. Pengertian Kriptografi...................................................................... 4
B. Konsep Penggunaan Kriptografi...................................................... 41. Kerahasiaan (Confidentiality).................................................... 42. Integritas (Integrity).................................................................... 43. Penghindaran Penolakan (Non-repuditation)............................. 44. Autentikasi (Authentication)...................................................... 45. Tanda Tangan Data (Data Signature).......................................... 46. Kontrol Akses (Access Control)................................................. 4
C. Pengertian Fungsi Hash.................................................................... 4
D. Metode yang Digunakan Dalam Fungsi Hash.................................. 61. Metode Pembagian..................................................................... 62. Metode Perkalian........................................................................ 6
E. Macam-Macam Fungsi Hash............................................................ 61. Metode Pembagian Bersisa (division-remainder method)......... 62. Melipat (folding)........................................................................ 63. Transformasi Radiks (radix transformation).............................. 74. Pengaturan Ulang Digit Radiks (radix transformation).............. 7
F.Bentrokan Pada Fungsi Hash............................................................ 7
1.Kebijakan Resolusi Bentrokan di Luar Table............................. 7
2. Kebijakan Resolusi Bentrokan di Dalam Table.......................... 8a. Linear Probing...................................................................... 9b. Quadratic probing / squared probing.................................... 9c. Double hashing..................................................................... 9
3.Perbandingan antara metode chaining dan open addressing...... 9
G. Pengertian MD5................................................................................ 11
H. Langkah-Langkah Pembuatan MD................................................... 111. Penambahan Bit-bit Pengganjal................................................. 112. Penambahan Nilai Panjang Pesan.............................................. 113. Inisialisai Penyangga MD........................................................... 114. Pengolahan Pesan dalam Blok Berukuran 512 bit..................... 12
I.Cara Kerja MD5............................................................................... 13
J.Proses MD5 dengan Berbagai Macam Masukan.............................. 14
1.Proses MD5 Dengan Masukan Berupa String............................ 14
2.Proses MD5 Dengan Masukan Berupa File............................... 15
3.Proses MD5 Sebagai Test Suite.................................................. 15
K.Analisis Kecepatan MD5.................................................................. 15
BAB III PENUTUP.............................................................................................. 16A. Kesimpulan....................................................................................... 16B. Saran................................................................................................. 16
DAFTAR PUSTAKA............................................................................................ 17
BABI
PENDAHULUAN
A. Latar Belakang
Keamanan dan kerahasian data pada jaringan komputer saat ini menjadiisu yang sangat penting dan terus berkembang. Beberapa kasus menyangkutkeamanan jaringan komputer saat ini menjadi suatu pekerjaan yang membutuhkanbiaya penanganan dan pengamanan yang sedemikian besar. Sistem-sistem vital,seperti sistem pertahanan, sistem perbankan, sistem bandara udara dan sistem-sistemyang lain setingkat itu, membutuhkan tingkat keamanan yang sedemikian tinggi. Halini lebih disebabkan karena kemajuan bidang jaringan komputer dengan konsep opensystem-nya sehingga siapapun, di mananapun dan kapanpun, mempunyai kesempatanuntuk mengakses kawasan-kawasan vital tersebut. Untuk menjaga keamanan dankerahasiaan pesan, data, atau informasi dalam suatu jaringan komputer makadiperlukan beberapa enkripsi guna membuat pesan, data, atau informasi agar tidakdapat dibaca atau dimengerti oleh sembarang orang, kecuali oleh penerima yangberhak. Pengamanan pesan, data, atau informasi tersebut selain bertujuan untukmeningkatkan keamanan, juga berfungsi untuk:
1.Melindungi pesan, data, atau informasi agar tidak dapat dibaca oleh orang-orang
yang tidak berhak.
2. Mencegah agar orang-orang yang tidak berhak, menyisipkan atau menghapuspesan, data dan atau informasi. Salah satu hal yang penting dalam komunikasimenggunakan komputer dan dalam jaringan komputer untuk menjaminkerahasiaan pesan, data, ataupun informasi adalah enkripsi.
Salah satu dari bagian kriptografi adalah fungsi hash satu arah. Fungsihash satu arah adalah dimana kita dengan mudah melakukan enkripsi untukmendapatkan cipher-nya tetapi sangat sulit untuk mendapatkan plaintext-nya. Salahsatu fungsi hash yang paling banyak digunakan adalah Message Digest 5 (MD-5).MD-5 merupakan fungsi hash satu arah yang diciptakan oleh Ron Rivest pada tahun1991 untuk menggantikan hashfunction sebelumnya. MD-5 adalah salah satu aplikasiyang digunakan untuk mengetahui bahwa pesan yang dikirim tidak ada perubahansewaktu berada di jaringan. Algoritma MD-5 secara garis besar adalah mengambilpesan yang mempunyai panjang variabel diubah menjadi ‘sidik jari’ atau ‘intisaripesan’ yang mempunyai panjang tetap yaitu 128 bit. ‘Sidik jari’ ini tidak dapat dibalikuntuk mendapatkan pesan, dengan kata lain tidak ada orang yang dapat melihat pesandari ‘sidik jari’ MD-5. Message digest atau intisari pesan harus mempunyai tiga sifatpenting, yaitu :
1.Bila P diketahui, maka MD(P) akan dengan mudah dapat dihitung.
2.Bila MD(P) diketahui, maka tidak mungkin menghitung P.
3.Tidak seorang pun dapat memberi dua pesan yang mempunyai intisari pesan yang
sama. H(M) H(M’) .
Keamanan komputer adalah menjamin data atau informasi tidak dibaca,tidak dimodifikasi oleh orang lain yang tidak diberi otorisasi. Keamanan sistemdibagi menjadi tiga bagian :
1. Keamanan Eksternal
Keamanan eksternal berkaitan dengan fasilitas komputer dari penyusup dan
bencana seperti kebakaran atau bencana alam.
2. Keamanan Interface Pamakai
Keamanan interface pemakai yang berkaitan dengan identifikasi pemakai sebelum
pemakai diizinkan mengakses data atau program.
3. Keamanan Internal
Keamanan internal berkaitan dengan beragam kendali yang dibangun padaperangkat keras dan perangkat lunak yang menjamin operasi yang handal dantidak terganngu untuk menjaga integritas data.
Sementara itu kebutuhan keamanan sistem komputer dapat dikategorikan
menjadi aspek-aspek sebagai berikut :
1.
Privacy / Confidentiality
Inti utama aspek privacy atau confidentiality adalah usaha untuk menjagainformasi dari orang yang tidak berhak mengakses. Privacy lebih kearah data-datayang sifatnya privat sedangkan confidentiality biasanya berhubungan dengan datayang diberikan ke pihak lain untuk keperluantertentu (misalnya sebagai bagiandari pendaftaran sebuah servis) dan hanya diperbolehkan untuk keperluan tertentutersebut.
2. Integrity
Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa seijin pemilikinformasi. Adanya virus, trojan horse, atau pemakai lain yang mengubahinformasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah e-mail dapat saja “ditangkap” (intercept) di tengah jalan, diubah isinya (altered,tampered, modified), kemudian diteruskan ke alamat yang dituju. Dengan katalain, integritas dari informasi sudah tidak terjaga. Penggunaan encryption dandigital signature, misalnya, dapat mengatasi masalah ini.
3. Authentication
Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betulorang yang dimaksud, atau server yang kita hubungi adalah betul-betul serveryang asli.
4. Availability
Aspek availability atau ketersediaan berhubungan dengan ketersediaan informasiketika dibutuhkan. Sistem informasi yang diserang atau dijebol dapatmenghambat atau meniadakan akses ke informasi.
B. Rumusan Masalah
Pada makalah ini penulis akan membahas tentang masalah keamananfile yang dikirim melalui jaringan komputer agar orang yang tidak berhak tidak dapatmembuka ataupun membaca file yang telah dikirim. Beberapa pembahasan tersebutmeliputi :
1. Pengertian kriptografi.
2. Konsep Penggunaan Kriptografi.
3. Pengertian Fungsi Hash.
4.Metode yang Digunakan Dalam Fungsi Hash.
5. Macam-Macam Fungsi Hash.6. Bentrokan pada Fungsi Hash.7. Pengertian MD5.
8. Langkah-Langkah Pembuatan MD.
9.Cara Kerja MD5.
10. Proses MD5 dengan Berbagai Macam Masukan.
11. Analisis Kecepatan MD5.
C. Tujuan Penulisan
Dengan adanya makalah ini, maka dapat diketahui bagaimana caramengamankan file dari para pelaku yang tidak bertanggung jawab, yang tidakmempunyai hak untuk mengakses apalagi untuk mengambil data yang bukan haknya.Dalam makalah ini lebih rinci lagi akan membahas tentang cara mengamankan filedengan menggunakan MD5, karena MD5 merupakan salah satu jenis dari fungsi hashyang paling banyak digunakan.
BAB II
PEMBAHASAN
A. Pengertian Kriptografi
Kriptografi berasal dari bahasa yunani yang terdiri dari kata kryptos yangberarti tersembunyi dan grafo yang berarti tulis. Kriptografi secara umum adalah ilmudan seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut kriptografi jugamerupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungandengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas 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). Enkripsianalog dengan memasukkan surat kedalam sebuah amplop sedangkan dekripsi analogdengan membuang amplop dan mengambil data. Signature analog dengan pemberiantanda-tangan terhadap sebuah dokumen dan penanda bahwa dokumen tersebut tidakberubah dari aslinya.
B. Konsep Penggunaan Kriptografi
Konsep penggunaan kriptografi antara lain:
1. Kerahasiaan (Confidentiality).
Sederhananya, kerahasiaan adalah proses penyembunyian data dari orang-
orang yang tidak punya otoritas.
2. Integritas (Integrity)
Proses untuk menjaga agar sebuah data tidak dirubah-rubah sewaktu
ditransfer atau disimpan.
3. Penghindaran Penolakan (Non-repuditation)
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 untukmelindungi data-data tersebut.
4. Autentikasi (Authentication)
Proses untuk menjamin keaslian suatu data.
5.Tanda Tangan Data (Data Signature)
Dapat disebut juga sebagai tanda tangan digital. Berguna untuk
menandatangi data digital. Contohnya adalah Digital Signature Algorithm (DSA)
6. Kontrol Akses (Access Control)
Untuk mengontrol akses terhadap suatu entity.
Contoh penggunaan kriptografi di dunia internet antara lain: SecureShell (SSH), SSL (Secure Socket Layer), Secure Hypertext Transfer Protocol(HTTP), dan lain lain.
C. Pengertian Fungsi Hash
Hash function atau fungsi hash adalah suatu cara menciptakan“fingerprint” dari berbagai data masukan. Hash function akan mengganti ataumentranspose-kan data tersebut untuk menciptakan fingerprint, yang biasa disebuthash value. Hash value biasanya digambarkan sebagai suatu string pendek yangterdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasiheksadesimal). Suatu hash function adalah sebuah fungsi matematika, yangmengambil sebuah panjang variabel string input, yang disebut pre-image danmengkonversikannya ke sebuah string output dengan panjang yang tetap dan biasanyalebih kecil, yang disebut message digest5. Hash function digunakan untuk melakukanfingerprint pada pre-image, yaitu menghasilkan sebuah nilai yang dapat menandai(mewakili) pre-image sesungguhnya. Fungsi hash satu arah (one-way hash function)adalah hash function yang bekerja satu arah, yaitu suatu hash function yang denganmudah dapat menghitung hash value dari pre-image, tetapi sangat sukar untukmenghitung pre-image dari hash value. Sebuah fungsi hash satu arah, H(M),beroperasi pada suatu pre-image pesan M dengan panjang sembarang, danmengembalikan nilai hash h yang memiliki panjang tetap. Dalam notasi matematikafungsi hash satu arah dapat ditulis sebagai:
h = H(M), dengan h memiliki panjang b
Ada banyak fungsi yang mampu menerima input dengan panjang
sembarang dan menghasilkan output dengan panjang tetap, tetapi fungsi hash satu
arah memiliki karakteristik tambahan yang membuatnya satu arah :
Diberikan M, mudah menghitung h.
Diberikan h, sulit menghitung M agar H(M) = h.
Diberikan M, sulit menemukan pesan lain, M', agar H(M) = H(M').
Dalam dunia nyata, fungsi hash satu arah dikembangkan berdasarkan idesebuah fungsi kompresi. Fungsi satu arah ini menghasilkan nilai hash berukuran nbila diberikan input berukuran b. Input untuk fungsi kompresi adalah suatu blokpesan 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.
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
One-way hash function
Mi
hi-1
hi
digunakan saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Algoritma hash
function yang baik adalah yang menghasilkan sedikit hash collision.
D.Metode yang Digunakan Dalam Fungsi Hash
1. Metode Pembagian
Pada metode pembagian ini, kita memetakan suatu kunci k ke dalam salahsatu 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. Metode Perkalian
Metoda perkalian untuk memperoleh fungsi Hash dilakukan melalui dualangkah. Langkah pertama, kita mengalikan kunci dengan suatu konstantadidalam range 0 < A < 1 dan mengambil nilai fraksional dari kA. Kemudian, kitamengalikan nilai ini dengan m dan dapat diperoleh hasilnya. Singkatnya, fungsiHash ini adalah
“k A mod 1” artinya adalah nilai fraksional dari kA, atau kA –└kA┘.
E. Macam-Macam Fungsi Hash
Fungsi Hash (dilambangkan dengan h(k)) bertugas untuk mengubah k(key) menjadi suatu nilai dalam interval [0....X], dimana "X" adalah jumlahmaksimum dari record-record yang dapat ditampung dalam tabel. Jumlah maksimumini bergantung pada ruang memori yang tersedia. Fungsi Hash yang ideal adalahmudah dihitung dan bersifat random, agar dapat menyebarkan semua key. Dengankey yang tersebar, berarti data dapat terdistribusi secara seragam bentrokan dapatdicegah. Sehingga kompleksitas waktu model Hash dapat mencapai O(1), di manakompleksitas tersebut tidak ditemukan pada struktur model lain.
Ada beberapa macam fungsi hash yang relative sederhana yang dapat
Jumlah lokasi memori yang tersedi dihitung, kemudian jumlah tersebutdigunakan 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. Fungsihash tersebut menempatkan record dengan kunci k pada suatu lokasi memori yangberalamat h(k). Metode ini sering menghasilkan nilai hash yang sama dari duaatau lebih nilai aslinya atau disebut dengan bentrokan. Karena itu, dibutuhkanmekanisme khusus untuk menangani bentrokan yang disebut kebijakan resolusibentrokan.
2. Melipat (Folding)
Metode ini membagi nilai asli ke dalam beberapa bagian, kemudianmenambahkan nilai-nilai tersebut, dan mengambil beberapa angka terakhirsebagai nilai hashnya.
3.Transformasi Radiks (Radix Transformation)
Karena nilai dalam bentuk digital, basis angka atau radiks dapat digantisehingga menghasilkan urutan angka-angka yang berbeda. Contohnya nilaidesimal (basis 10) bisa ditransformasikan kedalam heksadesimal (basis 16). Digitatas hasilnya bisa dibuang agar panjang nilai hash dapat seragam.
4.Pengaturan Ulang Digit Radiks (Radix Transformation)
Metode ini mengubah urutan digit dengan pola tertentu. Contohnyamengambil digit ke tiga sampai ke enam dari nilai aslinya, kemudian membalikanurutannya dan menggunakan digit yang terurut terbalik itu sebagai nilai hash.
Fungsi hash yang bekerja dengan baik untuk penyimpanan pada databasebelum tentu bekerja dengan baik untuk keperluan kriptografi atau pengecekankesalahan. Ada beberapa fungsi hash terkenal yang digunakan untuk keperluankriptografi. Diantaranya adalah fungsi hash message-diggest, contohnya MD2,MD4, dan MD5, digunakan untuk menghasilkan nilai hash dari tanda tangandigital yang disebut 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.Bentrokan Pada Fungsi Hash
Fungsi hash bukan merupakan fungsi satu-ke-satu, artinya beberapa recordyang berbeda dapat menghasilkan nilai hash yang sama / terjadi bentrokan. Denganfungsi hash yang baik, hal seperti ini akan sangat jarang terjadi, tapi pasti akanterjadi. Jika hal seperti ini terjadi, record-record tersebut tidak bisa menempati lokasiyang sama. Ada dua macam kebijakan resolusi bentrokan pada tabel hash, yaitukebijakan resolusi bentrokan di luar tabel dan kebijakan resolusi bentrokan di dalamtabel. Harus diperhatikan juga teknik-teknik penempatan record agar mudah dicarijika dibutuhkan.
1.Kebijakan Resolusi Bentrokan di Luar Table
Artinya tabel hash bukan lagi menjadi array of records, tetapi menjadiarray of pointers. Setiap pointer menunjuk ke senarai berkait yang berisi recordtersebut. Metode seperti ini dinamakan chaining. Dalam bentuk sederhananyaberupa senarai berkait dari recordrecord yang menghasilkan nilai hash yang sama.Penambahan record dapat dilakukan dengan menambah senarai berisi recordtersebut. Untuk pencarian pada tabel, pertama-tama dicari nilai hash terlebihdahulu, kemudian dilakukan pencarian dalam senarai berkait yang bersangkutan.Untuk menghapus suatu record, hanya menghapus senarainya saja.
Resolusi bentrokan dengan Chaining
Kelebihan dari metode chaining ini chaining ini adalah prosespenghapusan yang relarif mudah dan penambahan ukuran tabel hash bisa ditundauntuk waktu yang lebih lama karena penurunan kinerjanya berbanding lurusmeskipun seluruh lokasi pada table sudah penuh. Bahkan, penambahan ukurantabel bias saja tidak perlu dilakukan sama sekali karena penurunan kinerjanyayang linier. Misalnya, table yang berisi record sebanyak dua kali lipat kapasitasyang direkomendasikan hanya akan lebih lambat dua kali lipat dibanding yangberisi sebanyak kapasitas yang direkomendasikan.
Kekurangan dari metode chaining ini sama dengan kekurangan darisenarai berkait. Operasi traversal pada senarai berkait memiliki performa cacheyang buruk.
Struktur data lain dapat digunakan sebagai pengganti senarai berkait.Misalnya dengan pohon seimbang, kompleksitas waktu terburuk bisa diturunkanmenjadi O(log n) dari yang sebelumnya O(n). Namun demikian, karena setiapsenarai diharapkan untuk tidak panjang, struktur data pohon ini kurang efisienkecuali tabel hash tersebut memang didesain untuk jumlah record yang banyakatau kemungkinan terjadi bentrokan sangat besar yang mungkin terjadi karenamasukan memang disengaja agar terjadi bentrokan.
2.Kebijakan Resolusi Bentrokan di Dalam Table
Berbeda dengan kebijakan resolusi bentrokan di luar tabel, pada kebijakanresolusi di dalam tabel data disimpan di dalam hash tabel tersebut, bukan dalamsenarai berkait yang bisa bertambah terus menerus. Dengan demikian data yangdisimpan tidak mungkin bisa lebih banyak daripada jumlah ruang pada table hash.
Jika suatu record akan dimasukkan ke dalam table hash pada lokasi sesuainilai hash-nya dan ternyata lokasi tersebut sudah diisi dengan record lain makaharus dicari lokasi alternatif yang masih belum terisi dengan cara tertentu. Caraini 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 kemudian.
Metode-metode yang sering digunakan adalah:
a. Linear Probing
Dengan menambahkan suatu interval pada hasil yang diperoleh darifungsi hash sampai ditemukan lokasi yang belum terisi. Interval yang biasadigunakan adalah 1.
Resolusi bentrokan dengan Linear Probing
b.Quadratic Probing / Squared Probing
Hampir sama dengan linear probing, hanya saja pada quadraticprobing, hasil yang diperoleh dari fungsi hash ditambahkan dengan kuadratdari interval yang digunakan.
c. Double Hashing
Pada metode double hashing, jika lokasi yang diperoleh dengan fungsihash sudah terisi, maka dilakukan proses hash lagi sampai ditemukan lokasiyang belum terisi.
3.Perbandingan Antara Metode Chaining dan Open Addressing
Keunggulan metode chaining dibanding open addressing:
a.Lebih mudah diimplementasikan dengan efektif dan hanya membutuhkan
struktur data dasar.
b. Metode chaining tidak rawan terhadap data-data yang berkumpul di daerahtertentu. Metode open addressing membutuhkan algoritma hash yang lebihbaik untuk menghindari pengumpulan data di sekitar lokasi tertentu.
c. Performa menurun secara linier. Meskipun semakin banyak record yangdimasukkan maka semakin panjang senarai berantai, tabel hash tidak akanpenuh dan tidak akan menimbulkan peningkatan waktu pencarian record yangtibatiba meningkat yang terjadi bila menggunakan metode open addressing.
d.Jika record yang dimasukkan panjang, memori yang digunakan akan lebih
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.
Untuk ukuran record yang kecil, keunggulan metode open addressing
dibandingkan dengan chaining diantaranya
a.Ruang yang digunakan lebih efisien karena tidak perlu menyimpan 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.
Sebenarnya, penggunaan algoritma apapun pada table hash biasanyacukup cepat, dan persentase kalkulasi yang dilakukan pada tabel hash rendah.Penggunaan memori juga jarang berlebihan. Oleh karena itu, pada kebanyakankasus, perbedaan antar algoritma ini tidak signifikan.
4. Metode-Metode Lain
Selain metode-metode yang sudah disebutkan di atas, ada juga beberapa
metode lain.
a. Coalesced Hashing
Gabungan dari chaining dan openaddressing. Coalesced hashingmenghubungkan ke tabel itu sendiri. Seperti open addressing, metode inimemiliki keunggulan pada penggunaan tempat dan cache dibanding metodechaining. Seperti chaining, metode ini menghasilkan lokasi penyimpanan yanglebih menyebar, tetapi pada metode ini record yang disimpan tidak mungkinlebih banyak daripada ruang yang disediakan tabel.
b. Perfect Hashing
Jika record yang akan digunakan sudah diketahui sebelumnya, danjumlahnya tidak melebihi jumlah ruang pada tabel hash, perfect hashing bisadigunakan untuk membuat tabel hash yang sempurna, tanpa ada bentrokan.
c. Probabilistic Hashing
Kemungkinan solusi paling sederhana untuk mengatasi bentrokan
adalah denganengganti record yang sudah disimpan dengan record yang
baru, atau membuang record yang baru akan dimasukkan. Hal ini bisaberdampak tidak ditemukannya record pada saat pencarian. Metode inidigunakan untuk keperluan tertentu saja.
d.Robin Hood Hashing
Salah satu variasi dari resolusi bentrokan double hashing. Ide dasarnyaadalah sebuah record yang sudah dimasukkan bisa digantikan dengan recordyang baru jika nilai pencariannya (probe count – bertambah setiapmenemukan termpat yang sudah terisi) lebih besar daripada nilai pencariandari record yang sudah dimasukkan. Efeknya adalah mengurangi kasusterburuk waktu yang diperlukan untuk pencarian.
G. Pengertian MD5
Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hashkriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standartInternet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam padaaplikasi keamanan, dan MD5 juga umum digunkan untuk melakukan pengujianintegritas sebuah file.
MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikanhash function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukandalam desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulaimenganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbarumenyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yanglebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuanuntuk keamanan jadi makin dipertanyakan.
H.Langkah-Langkah Pembuatan MD
1. Penambahan Bit-bit Pengganjal
a.Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang
pesan (dalam satuan bit) kongruen dengan 448 modulo 512.
b.Jika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit
menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512.
c.Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.
2.Penambahan Nilai Panjang Pesan
a.Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan
64 bit yang menyatakan panjang pesan semula.
b. Jika panjang pesan > 264 maka yang diambil adalah panjangnya dalammodulo 264. Dengan kata lain, jika panjang pesan semula adalahK bit, maka64 bit yang ditambahkan menyatakanK modulo 264.
c.Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan
512 bit.
3. Inisialisai Penyangga MD
a. MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masingpanjangnya 32 bit. Total panjang penyangga adalah 4× 32 = 128 bit. Keempatpenyangga ini menampung hasil antara dan hasil akhir.
])
16
..
1
[
,
,
(
T
Y
ABCD
f
ABCD
q
F
←
])
32
..
17
[
,
,
(
T
Y
ABCD
f
ABCD
q
G
←
])
48
..
33
[
,
,
(
T
Y
ABCD
f
ABCD
q
H
←
])
64
..
49
[
,
,
(
T
Y
ABCD
f
ABCD
q
I
←
A
B
C
D
A
B
C
D
A
B
C
D
+
+
+
+
MDq
MDq +1
128
Yq
512
b.Keempat penyangga ini diberi nama A, B, C, dan D. Setiap penyangga
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 dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit
(Y0 sampai YL – 1).
b. Setiap blok 512-bit diproses bersama dengan penyangga MD menjadikeluaran 128-bit, dan ini disebut proses HMD5. Gambaran proses HMD5diperlihatkan pada Gambar 13.3.
c.Pada 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 semula.
d.MDq adalah nilai message digest 128-bit dari proses HMD5 ke-q. Pada awal
proses, MDq berisi nilai inisialisasi penyangga MD.
a
b
c
d
g
+++
CLSs
+
X[ k]
T[ i]
a
b
c
d
g
+++
CLSs
+
X[k]
T[i]
a
b
c
d
e. Proses HMD5 terdiri dari 4 buah putaran, dan masing-masing putaranmelakukan operasi dasar MD5 sebanyak 16 kali dan setiap operasi dasarmemakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen Tabel T.
f.Fungsi-fungsi fF, fG, fH, dan fI masing-masing berisi 16 kali operasi dasar
terhadap masukan, setiap operasi dasarmenggunakan elemen Tabel T.
g.Operasi dasar MD5 diperlihatkan pada Gambar 13.4.
h.Karena ada 16 kali operasi dasar, maka setiap kali selesai satu operasi dasar,
penyangga-penyangga itu digeser ke kanan secara sirkuler dengan cara
pertukaran sebagai berikut:
temp← d
d← cc← bb← a
a← temp
I. Cara Kerja MD5
MD5 mengolah blok 512 bit, dibagi kedalam 16 subblok berukuran 32 bit.Keluaran algoritma diset menjadi 4 blok yang masing-masing berukuran 32 bit yangsetelah digabungkan akan membentuk nilai hash 128 bit.
Algoritma MD5
Pesan diberi tambahan sedemikian sehingga panjang menjadi k-bit,dimana k = 512n – 64 bit. n merupakan blok masukan. Tambahan ini diperlukanhingga 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. Variabela,b,c,d dikopikan ke variabel a,b,c,d yang kemudian diolah melalui 4 tahapan yangsangat serupa. Setiap tahapan menggunakan 16 kali operasi berbeda, menjalankanfungsi nonlinear pada tiga variabel a,b,c, atau d. Hasilnya ditambahkan ke variabelkeempat, subblok pesan dan suatu konstanta. Kemudian dirotasi kekiri beberapa bityang 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 merupakangabungan dari a,b,c, dan d. Fungsi kompresi yang digunakan oleh algoritma md5adalah sebagai berikut :
a ← b + (( a + g ( b,c,d) + X[k] + T[i] <<< s ), dimana g adalah salah fungsi primitif
F,G,H,I seperti dibawah ini :
dan operasi XOR, AND, OR, dan NOT adalah sebagai berikut :
J.Proses MD5 dengan Berbagai Macam Masukan
1.Proses MD5 Dengan Masukan Berupa String
Proses MD5 dengan masukan berupa string adalah proses yang
masukannya berupa karakter yang dimasukan melalui keyboard.
2.Proses MD5 Dengan Masukan Berupa File
Proses MD5 dengan masukan berupa file adalah proses MD5 yangmasukannya memanggil file yang kenmudian dihitung berapa panjang bitnya,dalam keadaan ini file diperlakukan sebagai bit memori sehingga masukannyatidak terpengaruh pada ekstensinya. Kemudian dilakukan proses MD5.
3.Proses MD5 Sebagai Test Suite
Test suite dilakukan untuk mengetahui apakah program yang dibuat inisudah benar ataukah masih terdapat kesalahan-kesalahan. Sebagaiperbandingannya digunakan hasil yang sudah didapatkan oleh Ron Rivest yangsudah didefinisikan pada RFC 1321. Pada gambar 3.3 dapat dilihat bahwamasukan dari MD5 sudah ditentukan sehinnga hanya membandingkan hasil padalayar dengan yang tercantum pada RFC 1321.
K. Analisis Kecepatan MD5
Analisi kecepatan disini adalah analisis tentang kecepatan aplikasi dalammengenkrip file untuk mencari nilai hash. Analisis dilakukan untuk mencarikecepatan apliksi dengan masukan yang file yang mempunyai perbedaan dalam halukuran. Pengujian dilakukan dengan cara mengenkrip file sebanyak 31 (tiga puluhsatu) buah file dengan besar file yang berbeda-beda. Setiap file dilakukanpengambilan waktu eksekusi sebanyak5 kali kemudian mencari waktu rata-ratanya.
BAB III
PENUTUP
A. Kesimpulan
Kriptografi adalah ilmu yang berguna untuk mengacak (kata yang lebihtepat adalah masking) data sedemikian rupa sehingga tidak bisa dibaca oleh pihakketiga. Tentu saja data yang diacak harus bisa dikembalikan ke bentuk semula olehpihak yang berwenang.
Data yang ingin diacak biasanya disebut Plain Teks (Plain Text). Datadiacak dengan menggunakan Kunci Enkripsi (Encryption Key). Proses pengacakanitu sendiri disebut Enkripsi (Encryption). Plain Teks yang telah diacak disebut CipherTeks (Chiper Text). Kemudian proses untuk mengembalikan Cipher Teks ke PlainTeks disebut Dekripsi (Decryption). Kunci yang digunakan pada tahap Dekripsidisebut Kunci Dekripsi (Decryption Key).
Pada prakteknya, selain pihak yang berwenang ada pihak ketiga yangselalu berusaha untuk mengembalikan Cipher Teks ke Plain Teks atau memecahkanKunci Dekripsi. Usaha oleh pihak ketiga ini disebut Kriptanalisis (Cryptanalysis).
Fungsi Hash adalah suatu cara menciptakan “fingerprint” dari berbagaidata masukan. Fungsi Hash akan mengganti atau mentranspose-kan data tersebutuntuk menciptakan fingerprint, yang biasa disebut hash value. Hash value biasanyadigambarkan sebagai suatu string pendek yang terdiri atas huruf dan angka yangterlihat random (data biner yang ditulis dalam notasi heksadesimal). Algoritma fungsihash yang baik adalah yang menghasilkan sedikit hash collision. Sudah banyakalgoritma fungsi hash yang diciptakan, namun fungsi hash yang umum digunakansaat ini adalah MD5 dan SHA (Secure Hash Algorithm). Kedua algoritma tersebutdidesain untuk prosesor 32 bit, dan tidak dapat diimplementasikan untuk prosesor 64bit.
Fungsi hash yang paling banyak digunakan dalam keamanan jaringankomputer dan internet adalah MD5 yang dirancang oleh Ron Rivest yang jugamerupakan salah satu pengembang algoritma RSA pada tahun 1991. MD5 merupakankelanjutan daru MD4 yang dirancang dengan tujuan keamanan. Secara perhitunganmatetamatis tidak dimungkinkan untuk mendapatkan dua pesan yang memiliki hashyang sama. Tidak ada serangan yang lebih efisien untuk membongkar/mengetahuihash suatu pesan selain brute-force.
B. Saran
Makalah ini sangat jauh dari kesempurnan, maka dari itu penulissangat mengharapkan kritik dan saran untuk makalah ini yang tentunya sangatbermanfaat bagi penulis dalam menyempurnakan makalah ini.
Semoga makalah ini bisa menjadi salah satu acuan dalam pembuatan makalah
You will receive email notifications regarding your account activity. You can manage these notifications in your account settings. We promise to respect your privacy.
Bottom of Form
Why Sign up?
Discover and connect with people of similar interests.
Publish your documents quickly and easily.
Share your reading interests on Scribd and social sites.
Tidak ada komentar:
Posting Komentar