• Tidak ada hasil yang ditemukan

MAKALAH DASAR-DASAR PENDIDIKAN MIPA “FUNGSI HASH”

N/A
N/A
M S K

Academic year: 2024

Membagikan "MAKALAH DASAR-DASAR PENDIDIKAN MIPA “FUNGSI HASH” "

Copied!
30
0
0

Teks penuh

(1)

MAKALAH DASAR-DASAR PENDIDIKAN MIPA

“FUNGSI HASH”

Dosen Pengampu : Dr. H. Abd. Basir A, M.Si

Disusun Oleh :

Maya Sandi Komala (1705045022) Erva Aprilinda (2005046041) Ananda Maria Ulfa Sabila (2005046052) Suci Ade Fitrah Ramadhan (2005046059) Ami Fatikarani (2005046064) Shahibatun Nadiyah (2005046073)

PROGRAM STUDI PENDIDIKAN MATEMATIKA FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN

UNIVERSITAS MULAWARMAN SAMARINDA

2022

(2)

KATA PENGANTAR

Puji syukur kehadirat Tuhan Yang Maha Esa atas limpahan rahmat dan karunia-Nya, sehingga makalah yang berjudul “Fungsi Hash” ini dapat disusun dan disajikan sesuai dengan waktu yang telah ditetapkan.

Adapun tujuan dari penyusunan makalah ini, yaitu memenuhi tugas mata kuliah Matematika Diskrit. Selain daripada itu semoga pembuatan makalah ini juga dapat membantu rekan-rekan mahasiwa lain untuk dapat digunakan sebagai literatur tambahan.

Kami mengucapkan terima kasih kepada Bapak Dr. H. Abd. Basir A, M.Si selaku dosen mata kuliah Matematika Diskrit yang telah memberikan tugas ini sehingga dapat menambah pengetahuan dan wawasan sesuai dengan bidang studi yang kami tekuni. Kami juga mengucapkan terima kasih kepada semua pihak yang telah membagi sebagian pengetahuannya sehingga kami dapat menyelesaikan makalah ini.

Kami menyadari bahwa dalam pembuatan makalah ini masih jauh dari kata sempurna. Oleh karena itu, kami mengharapkan kritik dan saran yang membangun dari pembaca sekalian, demi tercapainya makalah yang lebih baik untuk waktu yang akan datang. Semoga makalah ini dapat memberikan manfaat dari berbagai pihak sebagaimana yang diharapkan oleh penyusun.

Samarinda, Oktober 2022

Tim Penyusun

(3)

DAFTAR ISI

KATA PENGANTAR ... ii

DAFTAR ISI ... iii

BAB I PENDAHULUAN ... 1

A. Latar Belakang... 1

B. Rumusan Masalah ... 1

C. Tujuan ... 2

BAB II PEMBAHASAN ... 3

A. Sejarah Fungsi Hash ... 3

B. Pengertian Fungsi Hash ... 3

C. Manfaat Fungsi Hash ... 4

D. Sifat-sifat Fungsi Hash ... 5

E. Kelebihan dan Kekurangan Fungsi Hash ... 7

F. Macam-macam Fungsi Hash ... 8

G. Macam-macam Algoritma Fungsi Hash ... 12

H. Aplikasi Fungsi Hash Dalam Kehidupan Sehari-hari ... 21

BAB III PENUTUP ... 24

A. Kesimpulan ... 24

B. Saran ... 25

DAFTAR PUSTAKA ... 26

(4)

BAB I PENDAHULUAN

A. Latar Belakang

Perkembangan teknologi dan informasi yang begitu pesat membawa dampak positif, seperti kemudahan dalam berbagi informasi melalui jaringan komputer.

Namun, pada waktu yang bersamaan juga menimbulkan dampak negatif, yaitu informasai yang dimiliki dapat diakses oleh pihak yang tidak bertanggung jawab sebagai tindak kejahatan. Sehingga dibutuhkan suatu mekanisme pengamanan informasi atau data pada suatu sistem. Dan suatu sistem tersebut perlu mengimplementasikan layanan keamanan. Seperti otentikasi, enkripsi, akses kontrol, pengelolaan pengguna, dan perizinannya.

Salah satu mekanisme pengamanan yang dapat dilakukan yaitu dengan menggunakan akses kontrol. Akses kontrol ini seringkali dilakukan dengan mengombinasikan user id dan password. Penggunaan password yang statis dapat memungkinkan terjadinya pencurian password atau Hacker, maka dibutuhkan suatu mekanisme pengamanan password yang dapat dilakukan dengan menerapkan ilmu kriptografi di dalamnya. Kriptografi terdiri dari 2 proses, yaitu proses mentransformasikan plaintext menjadi chipertext atau yang biasa disebut dengan enkripsi dan proses mentransformasikan kembali chipertext menjadi plaintext yang disebut dekripsi.

Dalam enkripsi data dikenal suatu fungsi yang disebut dengan Hashing.

Fungsi Hash adalah fungsi yang menerima masukan string yang panjangnya sembarang dan dikonversikan menjadi string dengan keluaran yang panjangnya tetap.

B. Rumusan Masalah

Berdasarkan latar belakang tersebut, maka dapat dibuat rumusan masalah

(5)

1. Bagaimana sejarah fungsi hash?

2. Apa pengertian fungsi hash?

3. Apa saja manfaat dari fungsi hash?

4. Bagaimana sifat-sifat dari fungsi hash?

5. Apa saja kelebihan dan kekurangan dari fungsi hash?

6. Apa saja macam-macam fungsi hash?

7. Apa saja macam-macam dari algoritma fungsi hash?

8. Bagaimana bentuk aplikasi fungsi hash dalam kehidupan sehari-hari?

C. Tujuan

Berdasarkan rumusan masalah tersebut, maka tujuan dari penyusunan makalah ini adalah sebagai berikut.

1. Untuk mengetahui sejarah fungsi hash.

2. Untuk mengetahui pengertian fungsi hash.

3. Untuk mengetahui manfaat dari fungsi hash.

4. Untuk mengetahui sifat-sifat dari fungsi hash.

5. Untuk mengetahui kelebihan dan kekurangan dari fungsi hash.

6. Untuk mengetahui macam-macam fungsi hash.

7. Untuk mengetahui macam-macam algoritma fungsi hash.

8. Untuk mengetahui aplikasi fungsi hash dalam kehidupan sehari-hari.

(6)

BAB II PEMBAHASAN

A. Sejarah Fungsi Hash

Istilah "hash" menawarkan analogi alami dengan makna non-teknisnya (untuk "memotong" atau "membuat berantakan" sesuatu), mengingat bagaimana fungsi hash mengacak data input mereka untuk mendapatkan outputnya. Menurut bahasanya, hash juga berarti memenggal dan kemudian menggabungkan.

Dalam penelitiannya untuk asal usul istilah yang tepat, Donald Knuth mencatat bahwa, Hans Peter Luhn dari IBM tampaknya adalah orang pertama yang menggunakan konsep fungsi hash dalam sebuah memo tertanggal Januari 1953, istilah itu sendiri akan hanya muncul dalam literatur yang diterbitkan pada akhir 1960-an, tentang Prinsip Sistem Komputer Digital Herbert Hellerman, meskipun jargon itu sudah tersebar luas saat itu.

Hashing sendiri digunakan sebagai metode untuk menyimpan data dalam sebuah array agar penyimpanan data, pencarian data, penambahan data, dan penghapusan data dapat dilakukan dengan cepat.

B. Pengertian Fungsi Hash

Di dalam kriptografi terdapat sebuah fungsi yang sesuai untuk aplikasi keamanan seperti otentikasi dan integrasi pesan. Fungsi tersebut adalah fungsi hash, yaitu fungsi yang menerima string dengan panjang sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed).

Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed). Fungsi hash yang dihasilkan biasanya dituliskan dalam notasi persamaan sebagai berikut :

𝒉 = 𝑯(𝑴)

(7)

Keluaran fungsi hash disebut juga nilai hash (hash-value) atau pesan ringkas (message digest). Pada persamaan di atas, h adalah message digest dari fungsi H untuk masukan M. Dengan kata lain, fungsi hash mengkompresi sembarang pesan yang berukuran berapa saja menjadi message digest yang selalu tetap.

C. Manfaat Fungsi Hash

Ada banyak manfaat dari fungsi hash, berikut beberapa manfaat fungsi hash:

1. Menjaga integritas data

a. Fungsi hash sangat peka terhadap perubahan 1 bit pada pesan b. Pesan berubah 1 bit, nilai hash berubah sangat signifikan

c. Bandingkan nilai hash baru dengan nilai hash lama. Jika sama, pesan masih asli. Jika tidak sama, pesan sudah dimodifikasi

2. Menghemat waktu pengiriman

a. Misal untuk memverifikasi sebuah salinan arsip dengan arsip asli b. Salinan dokumen berada d tempat yang jauh dari basis data arsip asli c. Daripada mengirim salinan arsip tersebut secara keseluruhan ke komputer

pusat (yang membutuhkan waktu transmisi lama), lebih singkat mengirimkan message digest-nya

d. Jika message digest salinan arsip sama dengan message digest arsip asli, berarti salinan arsip tersebut sama dengan arsip master

3. Menormalkan panjang data yang beraneka ragam

a. Misalkan password panjangnya bebas (minimal 8 karakter)

b. Password dismpan di komputer host (server) untuk keperluan otentikasi pemakai komputer

c. Password disimpan di dalam basis data

d. Untuk menyeragamkan panjang field password di dalam basis data, password disimpan dalam bentuk nilai hash (panjang nilai hash tetap).

(8)

D. Sifat-sifat Fungsi Hash

Seperti yang sudah disinggung sebelumnya, bahwa fungsi hash kriptografi ini sudah lama ada dan dianggap sebagai kriptografi primitif. Fungsi hash adalah fungsi matematika dengan tiga sifat berikut ini:

1. Input bisa dari berbagai macam ukuran string 2. Menghasilkan output dengan ukuran yang tetap

3. Efisien dalam komputasi. Hal ini berarti, setiap ada masukan input string, bisa mengkonfigurasi output fungsi hash dalam jumlah waktu yang wajar.

Teknisnya, komputasi hash pada sebuah string n-bit harus mempunyai timing waktu, yakni O (n) (Notasi big 0)

Sifat-sifat tersebut menggambarkan fungsi hash secara umum. Dan bisa digunakan untuk membangun struktur data seperti halnya tabel hash. Agar Fungsi hash bisa menjadi kriptografi yang aman, maka perlu ditambahkan beberapa sifat tambahan, yakni:

1. Sifat collision-resistance 2. Sifat hiding

3. Sifat puzzle-friendliness

Berikut adalah detail masing-masing sifat tambahan tersebut untuk mengetahui mengapa itu diperlukan.

1. Sifat Collision-resistance

Sifat pertama yang dibutuhkan adalah Collision-Resistance. Secara harfiah, collision-resistance ini berarti resistansi saat terjadi benturan atau bertabrakan. Collision atau benturan ini terjadi jika dua input yang berbeda dan terpisah menghasilkan output yang sama. Fungsi hash H (.) menjadi collision-resistance, jika tidak ada yang menemukan collision.

Collision-resistance: Sebuah fungsi hash H dikatakan collision resistant, jika tidak bisa untuk menemukan dua nilai, x dan y, sehingga x ≠ y, namun H (x) = H (y).

(9)

Pada gambar tersebut kita lihat, x dan y adalah nilai yang berbeda dan terpisah, namun ketika dimasukkan kedalam fungsi hash H, mereka menghasilkan output yang sama.

2. Sifat Hiding

Sifat kedua dari fungsi hash yang kita bahas adalah Hiding. Sifat hiding ini menjelaskan bahwa jika kita diberi output dari fungsi hash y = H (x), tidak ada cara yang bisa dipakai untuk mencari tahu input x itu. Karena sifat ini tidak mungkin menghasilkan nilai “true” meski dalam bentuk lain.

Hiding: Sebuah fungsi hash H bersifat tersembunyi atau hiding. Jika nilai tersembunyi dari r dipilih dari pendistribusian kemungkinan yang memiliki nilai min-entropy tinggi, kemudian diberi 𝐻 (𝑟 ‖ 𝑥). Sehingga tidak bisa untuk menemukan x.

Perhatikan contoh sederhana berikut: Misalkan kita melempar sebuah koin. Jika hasil dari lemparan koin itu menunjukkan kepala, kita akan mengumumkan hash dari string “kepala”. Jika hasilnya adalah ekor, kita akan mengumumkan hash dari string “ekor”.

Selanjutnya kita meminta kepada seseorang yang tidak melihat saat koin dilempar. Hanya melihat hasil lemparan koin saja. Kemudian memintanya untuk mencari hash stringnya. Hasilnya, orang tersebut akan menghitung dan mengkalkulasi kedua string hash “kepala, dan juga “ekor”.

Setelah itu baru orang itu bisa melihat inputnya.

Seorang yang berniat buruk bisa menebak string karena hanya terdapat dua kemungkinan nilai x. Dan dengan mudah bagi orang itu untuk mencoba menguji dua kemungkinan itu. Maka, agar bisa mencapai sifat hiding ini, dibutuhkan dalam kasus seperti ini untuk menyembunyikan nilai

H(x) = H(y) x

y

(10)

kemungkinan x. Artinya, nilai x harus dipilih dari satu set kemungkinan yang paling banyak keluar. Jika nilai x sudah dipilih dari set tersebut, maka dengan metode ini mencoba agar beberapa nilai baru x yang cenderung tidak bisa berjalan.

3. Sifat Puzzle-Friendliness

Sifat tambahan selanjutnya adalah Puzzle‐Friendliness. Teknisnya kita akan mencari tahu persyaratan apa yang dibutuhkan agar bisa dipergunakan.

Selanjutnya memberikan ilustrasi mengapa sifat puzzle-friendliness ini cukup berguna.

Puzzle‐friendliness: Sebuah fungsi hash H dikatakan memiliki sifat puzzle-friendliness jika setiap kemungkinan output n-bit bernilai y, dan jika k dipilih dari distribusi dengan min-entropi tinggi, maka tidak bisa untuk menemukan x, sehingga 𝐻 (𝑘 ‖ 𝑥) = 𝑦 pada waktu yang secara signifikan kurang dari 2n.

Artinya adalah, jika seseorang ingin menargetkan fungsi hash agar bisa keluar di beberapa nilai output tertentu y, maka ada bagian dari input yang dipilih dengan acak itu menjadi sangat sulit untuk bisa menemukan nilai lain yang bisa sama persis seperti target.

E. Kelebihan dan Kekurangan Fungsi Hash

Kelebihan fungsi hash dibandingkan fungsi enkripsi pada umumnya:

1. Hasil dari fungsi hash panjangnya tetap, panjang masukkan tidak akan mempengaruhi panjang nilai hash.

2. Karena tidak merubah data asli, tidak diperlukan proses deskripsi.

3. Perubahan sekecil apapun pada data asli akan membuat nilai hash yang sangat jauh berbeda, sehingga cukup mudah untuk memeriksa keaslian data.

Selain kelebihan, tentunya fungsi hash juga masih memiliki kekurangan yaitu:

(11)

1. Memiliki kemungkinan untuk terjadi bentrokan. Hal ini tidak dapat dihindari untuk semua fungsi hash, namun ada beberapa fungsi hash dibuat khusus untuk menghindari terjadinya bentrokan.

2. Fungsi hash adalah fungsi satu arah, jadi jika kita hanya mendapat sebuah nilai hash, kita tidak bisa mengembalikannya menjadi data yang asli. Hal ini dipersulit dengan kemungkinan terjadinya bentrokan.

3. Tingkat keamanan suatu fungsi hash dinilai berdasarkan jumlah kemungkinan nilai hash, yaitu 2𝑛, denga 𝑛 adalah panjang nilai hash dalam bit. Jadi semakin panjang nilai hash semakin aman.

F. Macam-macam Fungsi Hash

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

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

1. Fungsi Modulo

Jumlah lokasi memori yang tersedia dihitung, kemudian jumlah tersebut digunakan sebagai pembagi untuk membagi nilai yang asli dan menghasilkan sisa. Sisa tersebut adalah nilai hashnya. Secara umum, rumusnya

ℎ(𝑘) = 𝑘 𝑚𝑜𝑑 𝑝

(12)

Dalam hal ini p adalah jumlah lokasi memori yang tersedia pada array.

Fungsi hash tersebut menempatkan record dengan kunci k pada suatu lokasi memori yang beralamat h(k). Metode ini sering menghasilkan nilai hash yang sama dari dua atau lebih nilai aslinya atau disebut dengan bentrokan. Karena itu, dibutuhkan mekanisme khusus untuk menangani bentroka yang disebut kebijakan resolusi bentrokan.

Home address dicari dengan cara mencari sisa hasil bagi nilai key dengan suatu nilai tertentu.

Fungsi: 𝑓(𝑘𝑒𝑦) = 𝑘𝑒𝑦 𝑚𝑜𝑑 𝑛

Dengan n yaitu banyaknya ruang alamat yang tersedia atau bilangan prima terdekat yang berada di atas nilai banyak data, setelah itu banyaknya ruang alamat disesuaikan dengan n.

2. Fungsi Pemotongan

Home address dicari dengan memotong nilai key ke jumlah digit tertentu yang lebih pendek, contohnya NIP yang awalnya 9 digit dipotong menjadi hanya 3 digit.

Contoh:

a. Nilai NIP yang awalnya 9 digit dipotong menjadi hanya 3 digit, dengan mengambil 3 nomor terakhir. Misalnya: NIP 132312090 akan memiliki home address 090 atau 90.

b. Nilai NIM yang awalnya 10 digit dipotong menjadi hanya 3 digit, dengan mengambil 3 nomor terakhir. Misalnya: NIM 2005046023 akan memiliki home address 023 atau 23.

3. Fungsi Pelipatan

Home address dicari dengan memotong nilai key ke jumlah digit tertentu yang lebih pendek, contohnya NIP yang awalnya 9 digit dipotong menjadi hanya 3 digit. Contoh:

Untuk kunci yang memiliki 9 digit

(13)

5 8 3 9 7 6 1 2 4 Gambar 1 kunci yang terdiri atas 9 digit

Yang ditulis pada selembar kertas. Batasan dimana lupatan akan ditandai garis dan hasil lipatan adalah sebagai berikut:

Gambar 2a dengan lipatan

5 8 3

9 7 6

1 2 4

Gambar 2b dengan pergeseran Penjumlahan dari susunan tersebut adalah:

3 8 5 9 7 6 4 2 1 + ...

Jika penjumlahan dilakukan dengan mengabaikan carry akan diperoleh alamat 672, sedangkan jika dengan carry maka hasilnya adalah 782

4. Fungsi Pengkuadratan

Home address dicari dengan mengkuadratkan setiap digit pembentuk key, lalu semua hasilnya dijumlahkan.

(14)

Contoh: 22002211, semua digit dikuadratkan dan dijumlah 22+ 22+ 02+ 02+ 22 + 22+ 12+ 12

= 4 + 4 + 0 + 0 + 4 + 4 + 1 + 1

= 18

5. Fungsi Sistem Penyandian ASCII (American Standard Code For Information Interchange)

ASCII digunakan untuk pengkodean huruf, angka dan karakter lain dengan menggunakan 128 kode (7bit)

Contoh:

a. Bagaimana sandi dari SMK dengan sistem 7 bit ASCII ?

Character S M K

7 bit ASCII 1010011 1001101 1001011

Jadi sandi dari SMK adalah (1010011 100110 1 1001011) b. Bagaimana sandi dari Negara dengan sistem 7 bit ASCII ?

Character N e g a r a

7 bit ASCII

1001110 1100101 1100111 1100001 1110010 1100001

Jadi sandi dari Negara adalah 1001110 1100101 1100111 1100001 1110010 1100001

(15)

G. Macam-macam Algoritma Fungsi Hash

Hash merupakan enkripsi satu arah, satu arah berarti tidak mempunyai fungsi untuk melakukan pengembalian nilai yang sudah di enkripsi. Beberapa Algoritma hashing yang telah berkembang adalah sebagai berikut:

1. Algoritma MD 2

Message-Digest algortihm 2 (MD2) adalah fungsi hash cryptographic yang dikembangkan oleh Ronald Rivest pada tahun 1989' Algoritma dioptimalkan untuk komputer 8-bit. MD2 yang ditetapkan dalam RFC 1319.

Meskipun algoritma lainnya telah diusulkan sejak dulu, seperti MD4, MD5 dan SHA, bahkan sampai dengan 2004 [update] MD2 tetap digunakan dalam infrastruktur kunci publik sebagai bagian dari sertifikat yang dihasilkan dengan MD2 dan RSA.

Algoritma MD2 menghasilkan nilai hash yang berukuran 128-bit dan menerima input pesan dengan panjang yang tidak ditentukan. Pesan yang akan dijadikan input untuk fungsi hash ini akan terlebih dahulu akan dipadding. Untuk kalkulasi yang sebenarnya. Misalkan kita memiliki

(16)

sejumlah b-byte pesan sebagai input, dan kita mengharapkan untuk dapat mendapatkan message digest dari pesan tersebut. Dalam hal ini, b merupakan suatu bilangan bulat sembarang yang bernilai positif, bisa juga nol, dan besarnya sembarang. Kita nyatakan bahwa byte dari pesan ditulis dalam bentuk: 𝑚_0 𝑚_1 . . . 𝑚_{𝑏 − 1}.

Di bawah ini akan dijelaskan 5 tahap proses untuk menghasilkan message digest untuk algoritma MD2.

a. Memasukkan Padding Byte

Pesan akan ditambahkan melalui proses padding sehingga panjang pesan tersebut kongruen dengan 0 modulo 16. Maka, pesan akan diperluas sehingga panjangnya merupakan kelipatan dari 16 byte. Proses padding ini selalu dilakukan meskipun panjang pesan awal sebelum dilakukan padding sudah kongruen dengan 0 modulo 16. Padding dilakukan dengan mengikuti: “i” byte dari nilai “i” akan ditambahkan pada pesan sehingga panjang pesan kongruen dengan 0 modulo 16. Maka ukuran padding byte paling sedikit 1 byte sampai 16 byte. Pada tahap ini pesan hasil padding memiliki panjang pesan kelipatan 16 byte. Kita bagi pesan menjadi 𝑀[0 . . . 𝑁 − 1] dimana N merupakan kelipatan 16.

b. Memasukkan Checksum

Sebanyak 16 byte checksum dari pesan akan ditambahkan pada hasil dari tahap sebelumnya. Pada langkah ini digunakan sebuah 256-byte yang dibangkitkan secara acak yang dibuat dengan nilai digit dari pi. Jika S[i]

menotasikan untuk elemen ke-i pada tabel. Selanjutnya 16-byte checksum tersebut dimasukkan ke dalam pesan.

c. Inisialisasi PPenyangg

MD Sebuah 48-byte penyangga X digunakan uttuk menghasilkan message digest, nilai penyangga diinisialisasi dengan nol.

(17)

d. Proses pesan dalam blok 16-byte Langkah ini menggunakan angka hasil pemnbangkitan sebanya 256-byte yang sama yang dihasilkan pada proses 4.2.

2. Algoritma MD4

Message-Digest algortihm 4 (seri ke-4) yang dirancang oleh Profesor Ronald Rivest dari MIT pada tahun 1990. Panjangnya adalah 128 bit. MD4 juga digunakan untuk menghitung NT-hash ringkasan password pada Microsoft Windows NT, XP dan Vista. Hash sendiri merupakan algoritma yang mengubah data informasi berupa huruf, angka menjadi karakter terenkripsi dengan ukuran yang sama. Hash biasa digunakan untuk password hashing (menyembunyikan password). Algoritma hash yang umum digunakan yaitu pada metode MD5 dan SHA1.

MD4 didesain untuk sebagai algoritma fungsi hash yang memiliki kemangkusan dalam segi waktu. MD4 dibuat oleh Ronald Rivest pada Oktober 1990. Pertama-tama kita misalkan pesan memiliki sejumlah b-bit pesan sebagai input, dan kita menginginkan untuk menghasilkan message digest dari pesan tersebut. Dalam hal ini, b merupakan sebuah bilangan bulat positif, mungkin nol, dan bilangan tersebut harus kelipatan dari 8. Kita membagi pesan tersebut sebagai berikut: 𝑚_0 𝑚_1 . . . 𝑚_{𝑏 − 1} Di bawah ini akan dijelaskan lima tahap proses menghasilkan message digest untuk algoritma MD4.

a. Memasukkan Padding Bit

Pertama-tama dilakukan padding pada pesan awal sehingga panjangnya (dalam satuan bit) kongruen dengan 448 modulo 512. Maka pesan tersebut kekurangan 64 bit untuk mencapai kelipatan 512. Padding selalu dilakukan sehingga pesan tersebut kongruen dengan 512. Padding bit awal yaitu bit “1”, selanjutnya ditambahkan bit “0” sehingga pesan

(18)

tersebut memiliki panjang yang kongruen dengan 448 modulo 512. Jadi, panjang padding paling sedikit adalah satu bit hingga 512 bit.

b. Memasukkan Panjang Pesan

Sebuah 64-bit yang direpresentasikan oleh b (panjang pesan awal sebelum dilakukan padding bit) dimasukkan pada hasil pesan untuk tahap satu di atas. Panjang pesan yang digunakan selalu lebih kecil dari 264.

Bila panjang pesan melebihi 264, maka order terendah yang direpresentasikan oleh 264 yang akan digunakan. Oleh karena itu, setelah proses ini, pesan akan memiliki panjang kelipatan dari 512 bit. Dan pesan dibagi dalam kelipatan 32 bit dalam 𝑀[0 . . . 𝑁 − 1] yang menotasikan pesan, dimana 𝑁 adalah kelipatan dari 16.

c. Inisialisasi Penyangga

Ada empat peubah penyangga yang digunakan, yaitu A, B, C, D yang digunakan untuk menghasilkan message digest. Masing-masing variable ini merepresentasikan sebuah nilai 32- bit register. Register tersebut diinisialisasi dengan nilai dalam bentuk heksadesimal, dalam order terendah terlebih dahulu).

d. Proses Pesan Dalam Blok 32-bit

Untuk tahap ini pertama-tama definisikan terlebih dahulu fungsi- fungsi pelengkap yang dibutuhkan untuk menghasilkan message digest, Terdapat tiga fungsi pelengkap yang dalam hal ini tiap-tiap fungsi ini menerima input 32-bit dan menghasilkan output 32 bit juga.

Dalam tiap bit posisi F pada fungsi berlaku hubungan kondisional berikut:

if X then Y else Z. Fungsi F seharusnya didefinisikan menggunakan atau tanpa v selama XY dan not(X)Z tidak memiliki bit “1” pada posisi yang sama.

Dalam tiap bit posisi G berlaku hubungan berikut: jika paling tidak dua dari X, Y, Z sedang digunakan, maka G memiliki sebuah bit “1” dalam posisi tersebut, dan jika tidak G memilii sebuah bit “0”. Ini menarik untuk

(19)

diperhatikan bahwa jika bit-bit X, Y, dan Z saling bebas tidak saling mempengaruhi satu sama lain, tiap-tiap bit dari f (X, Y, Z) akan menjadi saling bebas pula. Fungsi H merupakan operasi bit XOR atau fungsi parity.

Dia memiliki atribut yang mirip dengan F dan G.

3. Algoritma MD5

MD5 ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value128-bit. Pada stantar Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file.

MD5 di desain oleh Ronal Rivest pada tahun 1991 untuk menggatikan hash function sebelumnya, yaitu MD4 yang berhasil diserang oleh kriptanalis.

Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan massage digest yang penjangnya 128 bit.

MD5 adalah salah satu aplikasi yang digunakan untuk mengetahui bahwa pesan yang dikirim tidak ada perubahan sewaktu berada di jaringan.

Algoritma MD5 secara garis besar adalah mengambil pesan yang mempunyai panjang variable diubah menjadi “sidik jari” atau “intisari pesan” yang mempunyai panjang tetap yaitu 128 bit. “sidik jari” ini tidak dapat dibalik untuk mendaapatkan pesan, dengan kata lain tidak ada orang yang dapat melihat pesan dari “sidik jari” MD5.

Message Digest (MD5) adalah salah satu penggunaan fungsi hash arah yang paling banyak digunakan. MD5 merupakan fungsi hash kelima yang dirancang oleh Ron Rivest dan didefinisikan pada RCF 1321. MD5 merupakan pengemabngan dari MD4 dimana terdaji penambahn satu ronde.

MD5 memproses teks masukan ke dalam blok-blok bit sebanyak 512 bit, kemudian dibagi ke dalam 32 bit sub blok sebanyak 16 buah. Keluarkan dari MD5 berupa 4 buah blok yang masing-masing 32 bit yang mana akan menjadi 128 bit yang biasa disebut nilai hash. Simpul utama MD5 mempunyai blok pesan dengan panjang 521 bit yang masuk ke dalam 4 bauh ronde. Hasil

(20)

keluaran dari MD5 aladah berupa 128 bit dari byte terendah A dan tertinggi byte D.

Langkah-langkah pembuatan message digest dengan algoritma MD5 adalah sebagai berikut:

a. Penambahan Bit-Bit Pengganjal

1) Pesan ditambahkan dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512.

2) Jika panjang pesan 448 bit, maka pesan tersebut ditambahkan dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512.

3) Bit-bit pengganjal terdiri dari sebuah bit 1 dilakukan dengan sisanya bit 0.

b. Penambahan Nilai Panjang Pesan Semula

1) Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambahkan lagi dengan 64 bit yang menyatakan panjang pesan semula.

2) Jika panjang pesan > 262 maka akan diambil adalah panjangnya dalam modulo 264. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang diytambahkan menyatakan K modulo 264.

3) Setelah ditambahkan dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit.

c. Inisialisai Penyanggan MD

MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 4 x 32 = 128 bit.

Keempat penyangga ini menampung hasil antara dari hasil akhir.

Algoritma SHA (Secure Hash Algorithm)

Secure Hash Algorithm (SHA) adalah fungsi hash satu arah yang dibuat oleh NIST (National Institute of Standard and Technology). SHA dinyatakan

(21)

sebagai standar fungsi hash satu arah. SHA dapat dianggap sebagai kelanjutan pendahulunya MD5.

4. Algoritma MD6

Algoritma ini menerima masukan berupa sebuah pesan M dengan panjang positif m dan panjang keluaran d yang berkisar antara 1 sampai dengan 512 bit. Ada pula masukan opsional yakni key K, parameter mode L, dan jumlah ronde operasi r. Secara garis besar, algoritmanya mengikuti langkah berikut:

a. Inisialisasi nilai l = 0, M0 = M, dan m0 = m. l merupakan current level b. Untuk setiap level lakukan proses berikut:

1) Jika l = L+1, panggil fungsi SEQ(M l-1, d, K, L, r) sebagai keluaran fungsi hash

2) Panggil fungsi PAR (Ml-1, d, K, L, r, l) dan masukkan hasilnya kedalam Ml.

3) Kemudian, jika panjang Ml sama dengan c word, kembalikan d bit terakhir dari Ml sebagai keluaran funsgi hash. Secara default, nilai c adalah 16 word. Perlu diperhatikan bahwa jika fungsi SEQ dipanggil, maka fungsi PAR tidak akan dipanggil

5. Algoritma RIPEMD

Algoritma RIPEMD (RIPE Message Digest) adalah algoritma kriptografi hash yang ditujukan untuk implementasi software pada mesin berarsitektur 32 bit. Algoritma ini terdiri dari beberapa varian, diantaranya adalah RIPEMD- 128 dan RIPEMD-160. Algoritma RIPEMD-160 adalah algoritma peningkatan dari RIPEMD-128. Peningkatan dan pengembangan ini dilakukan karena telah banyak usaha-usaha kriptanalisis yang telah dilakukan terhadap RIPEMD-128, dan berdasarkan informasi yang didapat maka diciptakanlah RIPEMD-160.

6. Algoritma SHA 0

SHA-0 memiliki ukuran isi pesan 160-bit (nilai hash) dan merupakan versi pertama dari algoritma ini. Nilai hash SHA-0 adalah 40 digit. Itu

(22)

diterbitkan dengan nama “SHA” pada tahun 1993 tetapi tidak digunakan dalam banyak aplikasi karena dengan cepat diganti dengan SHA-1 pada tahun 1995 karena cacat keamanan.

7. Algoritma SHA 1

SHA dikembangkan oleh National Institute of Standards and Technology (NIST) dan dipublikasikan sebagai Federal Information Processing Standards (FIPS 180) pada tahun 1993. Secure Hash Standards (SHS) menspesifikasikan SHA-1 untuk menghitung nilai hash dari sebuah pesan atau file. SHA-1 memiliki panjang pesan maksimal 264 bits dan memiliki keluaran sebesar 160 bits yang dinamakan Message Digest atau Hash Code. Message Digest tersebut dapat digunakan sebagai masukan untuk Digital Signatur Algorithm (DSA), yang digunakan untuk menghasilkan signature untuk memverifikasi pesan tersebut.

Algoritma SHA-1 merupakan revisi teknis dari algoritma SHA.

Algoritma SHA-1 dapat dikatakan aman karena proses penghitungannya tidak memungkinkan untuk menemukan pesan yang sebenarnya dari Message Digest yang dihasilkan. Setiap perubahan yang terjadi pada pesan saat perjalanan akan menghasilkan message digest yang berbeda. SHA-1 dan MD5 itu dikembangkan dari MD4.

8. Algoritma SHA 2

SHA-2 dipublikasikan pertama kali oleh Institusi Nasional Umum dan Teknogi (INUK) sebagai standar federasi Amerika Serikat (FIPS). Keluarga algoritma SHA-2 dipatenkan di hak paten Amerika serikat nomor 6829355.

Pemerintah Amerika Serikat mengeluarkan paten ini dibawah lisensi bebas pajak (royalty-free).

SHA-2 adalah sebuah fungsi kriptografik hash yang didisain oleh Badan Keamanan Nasional (BKN) Amerika Serikat dan pertama kali dipublikasikan pada tahun 2001. Set ini dibangun menggunakan Konstruksi Merkle–

(23)

Damgård, fungsi kompresi satu arahnya dibangun dengan menggunakan struktur Davies–Meyer dari block chipher yang dispesialisasikan.

SHA-2 memasukkan perubahan signifikan dibanding pendahulunya, SHA-1. Keluarga SHA-2 terdiri dari enam fungsi hash dengan perpendekan (nilai hash) yang berupa bita 224, 256, 384 atau 512: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256. SHA-256 dan SHA-512 merupakan fungsi hash yang diprogram dengan delapan kata 32-bit dan 64- bit. Pengkodean ini menggunakan jumlah pergeseran dan konstanta penambahan yang berbeda, tetapi strukturnya sebenarnya hampir identik, hanya berbeda dalam jumlah rentetan pengkodean. SHA-224 dan SHA-384 merupakan versi terpotong dari SHA-256 dan SHA-512, dikodekan dengan nilai inisial berbeda. SHA-512/224 dan SHA-512/256 juga merupakan versi terpotong dari SHA-512, namun nilai inisialnya dihasilkan menggunakan metode yang dideskripsikan di Federal Information Processing Standards (FIPS) PUB 180-4.

9. Algoritma SHA 3

National Institute of Standars and Technology (NITS) mengadakan sebuah kompetensi yang bernama NIST Hash dunction competition di tahun 2006 untuk membuat standar hash baru yang bernama SHA 3. SHA 3 tidak ditujukan untuk menggantikan SHA 2. Hal ini disebabkan tidak ada serangan yang signifikan terhadap algoritma SHA 2. Pembuatan SHA 3 bertujuan memberikan alternatif, dikarenakan kekhawatiran terhadap algoritma sebelumnya yang berhasil ditembus seperti MD5, SHA 0, SHA 1.

10. WHIRLPOOL

Vicent Rijmen (co-crator dari Advanced Encription Standard) dan Paulo S. L. M. Barreto mendesain fungsi hash whirlpool pada tahun 2000. fungsi hash ini telah direkomendasikan oleh NESSIE (New European Schemes for Signatures, Integrity and Encryption) dan diadopsi oleh Internasional Organization for Standarization (ISO) dan International Electrotechnical

(24)

Commission (IEC) sebagai bagian dari ISO/IEC 101 18-3. Penamaan algoritma ini diambil dari nama galaxi whirlpool di Canes Venatici.

Fungsi hash whirlpool merupakan fungsi hash satu arah yang menghasilkan 512 bit message digest dan bisa menerima pesan yang panjangnya kurang dari 2^256bit. Shirai dan Shibutani menemukan sebuah kelemahan dalam matriks difusi dari whirlpool, selain itu belum ada ditemukan kelemahan yang lain. Dalam mengimplementasikan whirlpool dapat dilakukan pada platform yang berbeda, dengan optimasi yang berbeda dan tradeoff yang berbeda pula.

H. Aplikasi Fungsi Hash Dalam Kehidupan Sehari-hari

Fungsi hash pada dasarnya telah banyak digunakan di dalam kehidupan sehari-hari dalam berbagai aplikasinya seperti autentikasi password, autentikasi keaslian file, tanda tangan digital, autentikasi email dan sebaginya. Kebanyakan fungsi hash ini digunakan sebagi autentikasi, dan pada dasarnya auntentifikasi itu merupakan file penting atau rahasia, sehingga pada dasarnya fungsi hash yang ada haruslah benar-benar memiliki tingkat keamana yang tinggi.

1. Sistem Autentikasi

Sistem autentikasi ini terdiri dari 2 entitas yaitu generator (client) dan server. Client akan menerima Serial number, dan PIN yang kemudian akan digunakan untuk menghasilkan kode hash. Sedangkan server bertugas dalam peroses pengiriman challenge yang berupa bilangan random, menghitung nilai dari bilangan random tersebut, dan meakukan autentikasi terhadap client.

Keamanan sistem One Way Hash Function yaitu fungsi hash yang dihasilkan tidak bisa dibalikkan (non-invertability). Oleh sebab itu, baik client maupun server harus menggunakan algoritma yang sama untuk beroperasi.

(25)

Berikut ini gambar yang menjelaskan tentang autentikasi dari sisi client dan juga sisi server. Gambar ini juga menjelaskan tentang sistem Challenge-Response esponse yang akan menghasilkan nilai hash yang iteratif.

Pertama kali user melakukan “koneksi”, yaitu dengan proses login.

Setelah user memasukkan nama login user, maka server akan mencari user pada basis data, dan mengirimkan challenge 6 digit. Setelah pengiriman challenge yang dikirimkan. User menghitung challenge tersebut dan mengirimkan hasilnya. Dengan arti lain user mengirimkan response dan server juga menghitung nilai hash atas bilangan random tersebut. Selah di

(26)

dapat responese user dan memberikan jawaban kepada client tentang benar/tidaknya response yang dikirimkan. Setelah proses pemeriksaan, maka terdapat evaluasi tentang akses/tidaknya user yang berdasarkan pada autentikasi server.

2. Sidik Jari

Tanda tangan sering digunakan untuk menentukan keotentikan suatu data, sehingga bentuk tanda tangan seseorang dibuat selalu sama agar orang lain dapat menentukan apakah data dan orang yang memberi tandatangan tersebut sah. Sidik digital mempunyai tujuan yang hampir sama dengan tanda tangan biasa, tetapi bentuk tanda tangan digital (sidik digital) dibuat tergantung pada data atau pesan yang ditandatangani, bukan siapa yang membuat tanda tangan. Dengan sidik digital, integritas data dapat dijamin, disamping itu ia juga digunakan untuk membuktikan asal pesan.

3. Penyimpanan data pada sel komputer

Data yang disimpan di dalam memori komputer perlu ditempatkan dalam suatu cara sedemikian, sehingga pencariannya dapat dilakukan dengan cepat.

Setiap data yang berupa record mempunyai field kunci yang unik yang membedakan suatu record dengan record yang lainnya. Fungsi hash digunakan untu menempatkan suatu record yang mempunyai nilai kunci k.

Fungsi hash yang paling umum berbentuk:

𝐻(𝑘) = 𝑘 𝑚𝑜𝑑 𝑚

Yang dalam hal ini m adalah jumlah lokasi memori yang tersedia (misalkan memori berbentu sel-sel yang diberi indeks 0 sampai m – 1). Fungsi h diatas menempatkan record dengan kunci k pada suatu lokasi memori yang beralamat h(k).

(27)

BAB III PENUTUP

A. Kesimpulan

Berdasarkan pembahasan diatas, maka dapat disimpulkan:

1. Istilah "hash" menawarkan analogi alami dengan makna non-teknisnya (untuk

"memotong" atau "membuat berantakan" sesuatu) sedangkan menurut bahasanya, hash juga berarti memenggal dan kemudian menggabungkan.

2. Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed).

3. Manfaat fungsi hash yaitu, menjaga integritas data, menghemat waktu pengiriman, dan menormalkan panjang data yang beraneka ragam.

4. Fungsi hash adalah fungsi matematika dengan tiga sifat yaitu, input bisa dari berbagai macam ukuran string, menghasilkan output dengan ukuran yang tetap, dan efisien dalam komputasi. Dengan sifat tambahan yaitu, sifat collision-resistance, sifat hiding, dan sifat puzzle-friendliness

5. Kelebihan fungsi hash

a. Hasil dari fungsi hash panjangnya tetap

b. Karena tidak merubah data asli, tidak diperlukan proses deskripsi.

c. Perubahan sekecil apapun pada data asli akan membuat nilai hash yang sangat jauh berbeda

Kekurangan fungsi hash

a. Memiliki kemungkinan untuk terjadi bentrokan.

b. Kita tidak bisa mengembalikannya menjadi data yang asli.

c. Tingkat keamanan suatu fungsi hash dinilai berdasarkan jumlah kemungkinan nilai hash

(28)

6. Beberapa macam fungsi hash yang relative sederhana yang dapat digunakan dalam penyimpanan database yaitu, metode pembagian bersisa, melipat, tarnsformasi radiaks, dan pengaturan ulang digit

7. Beberapa macam fungsi hash yaitu, Algoritma MD2, Algoritma MD4, Algoritma MD4, Algoritma SHA 0, Algoritma SHA 1, Algoritma SHA 2, dan Whirlpool.

8. Aplikasi fungsi hash dalam kehidupan sehari-hari

B. Saran

Setelah menyusun makalah terkait pendidikan matematika, penulis menyarankan agar seluruh pihak tidak meremehkan matematika. Penulis menyadari bahwa penulisan makalah ini masih kurang sempurna, maka dari itu penulis sangat mengharapkan kritik dan saran untuk makalah ini yang tentunya sangat bermanfaat bagi penulis dalam menyempurnakan makalah ini.

Semoga makalah ini bisa membantu pembaca dalam memahami seputar tentang fungsi hash.

(29)

DAFTAR PUSTAKA

Angga, C. 2011. Analisis Cara Kerja Beragam Fungsi Hash Yang Ada. Jurnal Teknologi Bandung. Diakses dari https://docplayer.info.

https://sslindonesia.com/apa-perbedaan-enkripsi-pada-sha-1-sha-2-dan-sha-256-ssl- indonesia/. Diakses pada

Huda W, Muharram. 2009. Perkembangan Enkripsi Fungsi Hash pada SHA (Secure Hashing Algoritmh). Jurnal Ilmu Komputer dan Teknologi Informasi. 3(2):

https://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2009-2010/Makalah 0910/MakalahStrukdis0910-095.pdf

IMPLEMENTASI ALGORITMA TEA DAN FUNGSI HASH MD4 UNTUK ENKRIPSI DAN DEKRIPSI DATA Oleh : Nurdin Program Studi Teknik Informatika Fakultas Teknik Universitas Malikussaleh, Aceh E-Mail:

[email protected] 97

Maryanto, B. (2008). PENGGUNAAN FUNGSI HASH SATU-ARAH UNTUK ENKRIPSI DATA. Media Informatika, 7, 138.

Mulia, Firdi. 2010. Studi dan Implementasi Fungsi Hash Whirlpool. Bandung: Institut Teknologi Bandung

PERBANDINGAN ALGORITMA MD2, MD4, DAN MD5 Muhammad Bahari Ilmy – NIM : 13504062 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Perbandingan Algoritma MD4 dan MD5 serta Implementasinya dalam Kehidupan Sehari-hari M. Pasca Nugraha (13507033) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl.

Ganesha 10 Bandung 40132, Indonesia

Sari, Dewi, Sinta, Yohana. 2010. Autentikasi Dengan Medote MD5 One Way Hash Function Challenge-Response Pada Web-Based Transaction. Yogyakarta:

Universitas Dharma. Diakses dari http://repository.usd.ac.id.

(30)

Sulastri, Santi,. dkk. 2018. Implementasi Enkripsi Data Secure Hash Algoritmh dan Message Digest Algoritmh pada Proses Pengamanan Kata Sandi. Jurnal Teknik Elektro. 10(2): https://journal.unnes.ac.id/

Gambar

Gambar 2a dengan lipatan
Gambar 2b dengan pergeseran  Penjumlahan dari susunan tersebut adalah:

Referensi

Dokumen terkait