Anda di halaman 1dari 11

Integrasi Data

 Fungsi HASH
Fungsi hash Kriptografis adalah fungsi hash yang memiliki beberapa sifat keamanan tambahan
sehingga dapat dipakai untuk tujuan keamanan data [1]. Umumnya digunakan untuk keperluan
autentikasi dan integritas data. Fungsi hash adalah fungsi yang secara efisien mengubah string input
dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash.

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

1. Metode Pembagian Bersisa (division-remainder method)


Jumlah lokasi memori yang tersedi dihitung, kemudian jumlah tersebut digunakan
sebagai pembagi untuk membagi nilai yang asli dan menghasilkan sisa. Sisa tersebut adalah nilai
hashnya.
Secara umum, rumusnya h(k)= k mod m. Dalam hal ini m adalah jumlah lokasi memori
yang tersedia pada array. Fungsi hash tersebut menempatkan record dengan kunci k pada suatu
lokasi memori yang beralamat h(k).
Metode ini sering menghasilkan nilai hash yang sama dari dua atau lebih nilai aslinya atau
disebut dengan bentrokan. Karena itu, dibutuhkan mekanisme khusus untuk menangani
bentrokan yang disebut kebijakan resolusi bentrokan.

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

3. Transformasi Radiks (radix transformation)


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

4. Pengaturan ulang digit (digit rearrangement)


Metode ini mengubah urutan digit dengan pola tertentu. Contohnya mengambil
digit ke tiga sampai ke enam dari nilai aslinya, kemudian membalikan urutannya dan
menggunakan digit yang terurut terbalik itu sebagai nilai hash.

Fungsi hash yang bekerja dengan baik untuk penyimpanan pada database belum tentu bekerja dengan
baik untuk keperluan kriptografi atau pengecekan kesalahan. Ada beberapa fungsi hash terkenal yang
digunakan untuk keperluan kriptografi. Diantaranya adalah fungsi hash message-diggest, contohnya
MD2, MD4, dan MD5, digunakan untuk menghasilkan nilai hash dari tanda tangan digital 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.
 Modification Detection(MDC)
 MD5
MD5 adalah salah satu fungsi hash yang digunakan untuk keperluan kriptografi.
Dalam kriptografi, MD5 (Message-Digest algorithm 5) ialah fungsi hash kriptografik
yang digunakan secara luas dengan nilai hash 128-bit [4]. Pada standard Internet
(RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan,
dan MD5 juga umum digunkan untuk melakukan pengujian integritas sebuah file.
MD5 di desain oleh Ronald Rivest, salah satu pembuat algoritma RSA,
pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Pada tahun 1996,
sebuah kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna
kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru
menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang
lebih serius ditemukan menyebabkan penggunaan algoritma
tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.
Hash-hash MD5 sepanjang 128-bit (16-byte), yang dikenal juga sebagai ringkasan
pesan, secara tipikal ditampilkan dalam bilangan heksadesimal 32-digit. Berikut ini
merupakan contoh pesan ASCII sepanjang
43-byte sebagai masukan dan hash MD5 terkait:

MD5("The quick brown fox jumps over the lazy dog")


= 9e107d9d372bb6826bd81d3542a419d6
Bahkan perubahan yang kecil pada pesan akan (dengan probabilitas lebih)
menghasilkan hash yang benar-benar berbeda, misalnya pada kata "dog", huruf d diganti
menjadi c:

MD5("The quick brown fox jumps over the lazy cog")


= 1055d3e698d289f2af8663725127bd4b

Hash dari panjang-nol ialah:


MD5("") = d41d8cd98f00b204e9800998ecf8427e
 Message Authentication(MAC)
MAC (Message Authentication Code) adalah suatu metode pengamanan dengan
melakukan otentikasi pada suatu pesan dimana pengirim dan penerima pesan butuh untuk
memasukkan kunci untuk mengecek keotentikan dari pesan tersebut. Message Authentication
Code berfungsi untuk melakukan otentikasi dari pesan tersebut untuk mengecek apakah pesan
tersebut telah mengalami perubahan atau belum sehingga dapat dideteksi apabila ada yang
melakukan modifikasi (man in the middle attack) pada pesan tersebut. Dalam penerapannya
berbagai metode algoritma digunakan untuk Message Authentication Code. Dalam
pemecahannya banyak juga metode penyerangan (attack) yang dilakukan oleh orang-orang
yang ingin memperoleh isi pesan tersebut yang bersesuaian dengan algoritma Message
Authentication Code yang digunakan. Dalam penggunaannya Message Authentication Code
digunakan dalam berbagai aplikasi yang berkaitan dengan pengiriman pesan seperti email,
messenger, dan berbagai metode pengiriman pesan elektronik lainnya.
Message Authentication Code atau MAC adalah suatu fungsi pembangkitan nilai hash
dari suatu pesan yang panjangnya tetap ataupun penggunaan algoritma tertentu dengan
menggunakan suatu kunci rahasia yang akan digunakan untuk melakukan pengecekan pada pesan
tersebut. Atau dapat dirumuskan sebagai berikut:

MAC =Ck (M)

Dimana:
MAC = nilai hash untuk otentikasi pesan
C = fungsi hash atau algoritma MAC K = Kunci rahasia

M = Pesan yang akan dicari nilai hashnya

Atau dapat digambarkan sebagai berikut :


Dalam gambar diatas, seorang pengirim pesan melakukan pembangkitan suatu nilai Message
Authentication Code dengan menggunakan kunci tertentu pada suatu algoritma Message
Authentication Code. Lalu pesan tersebut dikirimkan pada seorang penerima. Setelah si penerima
menerima pesan tersebut, si penerima lalu melakukan pengecekan pada pesan tersebut.
Penerima akan membangkitkan suatu nilai Message Authentication Code dengan menggunakan
kunci yang sama pada algoritma Message Authentication Code yang sama seperti yang
digunakan oleh pihak pengirim pesan. Lalu pihak penerima akan mengecek kesamaan dari
Message Authentication Code yang telah dibangkitkan dengan Message Authentication Code
yang dikirimkan oleh pengirim untuk melakukan otentikasi pesan yang sikirimkan. Bila nilai
Message Authentication Code yang diperoleh sama maka pesan tersebut merupakan pesan asli
yang dikirimkan oleh si pengirim, jika nilainya berbeda maka pesan tersebut dicurigai telah
mengalami serangan tertentu dalam proses pengirimannya.
Dalam membuat Message Authentication Code ada beberapa metode algoritma yang
digunakan. Message Authentication Code dapat dibuat dari sebuah fungsi kriptografi hash yaitu
Message Authentication Code ataupun dengan algoritma block-cipher sepereti OMAC CBC-MAC
dan PMAC. Namun algoritma Message Authentication Code tercepat seperti UMAC dan VMAC
dikonstruksi berdasarkan universal hashing.

A. Message Authentication Code dengan fungsi hash


Pada bagian ini kita akan membahas tentang pembangkitan nilai Message Authentication
Code dari suatu pesan dengan menggunakan fungsi hash satu arah dengan kombinasi
suatu kunci rahasia tertentu. Pada algoritma ini digunakan fungsi pembangkit nilai
hash seperti SHA-1 dan MD5 untuk memperoleh nilai HMAC dari suatu pesan. Sebagai
contoh dari pembangkitan Message Authentication Code dengan fungsi hash dapat
dijelaskan melalui rumus berikut :

HMAC= H((K ⊕ opad ) || H(K ⊕ ipad) || m )


Dimana :
H = fungsi hash satu arah

K = kunci rahasia

M = Pesan yang akan dicari nilai HMACnya

Ipad = inner padding (0x5c5c5c…5c5c, hexadecimal konstan dengan panjang satu


blok)
Opad = outer padding (0x363636…3636, hexadecimal konstan dengan panjang satu
blok)

Atau dapat digambarkan sebagai berikut :

B. Message Authentication Code dengan Blok-Cipher


Algoritma Message Authentication Code ini disusun dengan menggunakan block-cipher.
Blok- cipher merupakan cipher dengan kunci simetris yang bekerja dalam sekumpulan bit dengan
panjang yang tetap yang disebut sebagai blok. Untuk pesan yang lebih panjang dari blok tersebut
pesan akan dibagi menjadi blok-blok dengan panjang sama dan akan dienkripsi setiap bloknya
secara terpisah. Beberapa contoh algoritma penyusun Message Authentication Code dengan
menggunakan block-cipher adalah PMAC (Parrallelizable Message Authentication Code),
OMAC(One-key Message Authentication Code), dan CBC-MAC (Cipher Block Chaining Message
Authentication Code). Sebagai contoh pada bagian ini kita akan membahas tentang CBC-MAC.
CBC-MAC melakukan enkripsi pada pesan dengan menggunakan algoritma block cipher dalam
mode CBC untuk membentuk serangkaian blok-blok dimana enkripsi pada tiap tahap disusun
berdasarkan enkripsi tahap sebelumnya. Proses enkripsi dan dekripsi pada CBC apat dijelaskan
melalui gambar berikut:

C. Message Authentication Code dengan Universal Hash


Beberapa Message Authentication Code yang tercepat berasal dari metode universal hashing.
Universal hashing adalah pemilihan sebuah fungsi hash secara acak dari sekumpulan fungsi
hash dengan fungsi matematis tertentu. Hal ini mengakibatkan jumlah kolisi yang lebih sedikit.
Andaikan himpunan fungsi hash yang terdiri dari fungsi hash h yang dipilih secara acak yang
memetakan suatu himpunan kunci m pada n = {1,2,3,...,n}. H dapat dikatakan universal apabila
semua x dan y ϵ m dimana x tidak sama dengan y, peluang nilai h(x) sama dengan nilai h(y) ,lebih
kecil 1/|n|, dirumuskan sebagai :

Pr
h<=H [h (x) = h (y)] ≤ 1/n

Dari persamaan diatas jika h adalah fungsi hash universal, maka untuk setiap s himpunan
bagian dari m, untuk setiap x anggota m dengan nilai h angka kolisi yang diharapkan antara x
dengan elemen dari s adalah |s|n. Fungsi |s| universal dikatakan kuat jika x,x‟ pada M dan y,y‟
pada n:

Pr
h<=H [h (x) = h (y) dan h (x‟) = h (y‟)] ≤ 1/n 2

Anda mungkin juga menyukai