Pembahasan
A. Fungsi Hash
Fungsi hash adalah fungsi yang menerima masukan sebuah string yang
panjangnya sembarang dan menghasilkan sebuah string lain yang panjangnya
tetap untuk berapapun panjang string masukannya. Hasil keluaran fungsi hash
selanjutnya kita sebut message digest. Fungsi bersifat satu arah karena kita
tidak bisa mengembalikan message digest ke string awal.
Fungsi hash dalam kriptografi dapat digunakan untuk menjaga keaslian
data dengan cara menhitung nilai hash sebuah data. Jika data berubah, maka
nilai hashnya juga akan berubah. Perubahan sedikit saja dalam data dapat
mengakibatkan nilai hash yang berubah drastis.
Dalam kriptografi, dikenal beberapa fungsi hash antara lain MD2, MD4,
MD5, SHA-1, RIPEMD, WHIRLPOOL, dan lain-lain.
Penerapan Fungsi Hash MD5 :
Dalam kriptografi, MD5 (Message-Digest algorithm 5) ialah fungsi hash
kriptografik yang digunakan secara luas dengan nilai hash 128-bit. Pada
standard Internet (RFC 1321). MD5 telah dimanfaatkan secara bermacam –
macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk
melakukan pengujian integritas sebuah file.
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.
B. Digital Signature (Tanda Tangan Digital)
Merupakan metode untuk otentikasi pada data digital. Tanda tangan
digital berbeda bergantung pada isi pesan, berbeda dengan tanda tangan
dokumen cetak yang selalu sama. Terdapat dua cara dalam menandatangani
pesan digital, yaitu dengan enkripsi pesan dan menggunakan kombinasi antara
fungsi hash dan kriptografi kunci publik.
Penerapan Tanda tangan Digital Pada Fragmen Data saat Transmisi
Dalam transmisi data, data yang akan dikirimkan biasanya akan dibagi –
bagi menjadi beberapa datagram agar bandwidth mencukupi atau sesuai
protokol komunikasi. Selanjutnya tidak menutup kemungkinan dari datagram
– datagram yang dikirimkan di tengah transmisi dibagi lagi menjadi beberapa
fragmen data.
Penerima di tengah ataupun di akhir transmisi harus dapat memverifikasi
keaslian dan integritas dari semua fragmen yang diterima. Mekanisme
fragmentasi tradisional, seperti menghitung nilai hash dari semua isi pesan dan
menandatanganinya tidak optimal ketika pesan diharuskan difragmentasi.
Pada proses pengiriman data, pemberian tanda tangan digital diberikan
untuk sebuah data secara utuh. Data tersebut kemudian ditransmisikan melalui
jaringan komunikasi. Pada proses di tengah transmisi, sangat mungkin
dilakukan pembagian data menjadi beberapa fragmen agar bandwidth selama
transmisi mencukupi pengiriman data. Di sisi penerima, fragmen – fragmen
tersebut kemudian disatukan kembali menjadi data yang utuh. Untuk proses
otentikasi, tentu saja karena yang diotentikasi adalah sebuah data yang utuh,
penerima harus menunggu semua fragmen terkirim. Setelah fragmen –
fragmen data disatukan menjadi satu data yang utuh, maka proses verifikasi
dilakukan. Namun, jika terjadi kerusakan pada file selama proses transmisi,
tidak dapat diketahui dimana kerusakan file terjadi. Akibatnya, pengirim harus
mengirim kembali data yang sebelumnya ditransmisikan. Cara ini tentu akan
sangat mengganggu jika ukuran data besar.
Maka untuk menangani kasus ini dengan mengotentikasi semua
fragment data. Setiap fragmen data diberi tandatangan digital sendiri – sendiri.
Jadi, saat data difragmentasi, sebelum ditransmisikan, dihitung nilai hash
untuk setiap fragmen, kemudian nilai hasil hash yang dihasilkan dienkrip dan
ditempelkan pada setiap fragment.
C. Watermarking
Yang dimaksud dengan watermarking disini adalah digital
watermarking, yaitu watermarking yang dilakukan pada file-file digital.
Digital watermarking, secara umum berarti penyisipan informasi (yang
biasanya disebut watermark, dan dapat berupa apa saja, seperti gambar/citra,
audio, video, teks) ke dalam dokumen digital untuk berbagai tujuan, misalnya
perlindungan copyright/kepemilikan, fingerprinting, otentikasi (integritas
content), dsb.
Beberapa aplikasi watermarking yang umum sekarang ini, antara lain:
• Memberi label kepemilikan (ownership) pada karya digital
• Melindungi isi karya digital (copyright).
• Memeriksa integritas isi karya digital (tamper proofing) Data
authentication
• User authentication/fingerprinting: mengotentikasi pengguna spesifik.
Contoh: distribusi DVD •
• Aplikasi medis: foto sinar-X diberi watermark berupa ID pasien
(memudahkan identifikasi pasien).
• Covert communication: untuk sistem komunikasi di negara2 di mana
kriptografi tidak dibolehkan.
• Piracy protection: mencegah penggandaan yang tidak berizin.
Penyisipan Watermarking pada citra digital disebut encoding. Encoding
dapat disertai dengan pemasukan kunci atau tidak memerlukan kunci. Kunci
diperlukan agar watermarking hanya dapat diekstraksi oleh pihak yang sah.
Kunci juga dimaksudkan untuk mencegah watermark dihapus oleh pihak yang
tidak berhak.
Verifikasi Watermark
Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut
hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari
nilai sebelumnya. Misalkan byte tersebut menyatakan warna merah,
maka perubahan satu bit LSB tidak mengubah warna merah tersebut
secara berarti. Lagi pula, mata manusia tidak dapat membedakan
perubahan yang kecil.
• Misalkan segmen data citra sebelum perubahan:
00110011 10100010 11100010 01101111
Segmen data citra setelah ‘0 1 1 1 ‘ disembunyikan:
D. ElGama Algorithm
Enkripsi :
1. Proses Enkripsi
Langkah pertama yang harus dilakukan untuk menjalankan proses
enkripsi yaitu dengan memasukkan password, proses ini dilakukan untuk
mengambil nilai kunci publik (p, g, y) dari dalam basis data yang merupakan
hasil dari proses generate key. Langkah selanjutnya yaitu mengambil citra
plaintext dengan tipe bitmap, selanjutnya proses enkripsi dilakukan, ukuran
data gambar sebelum maupun sesudah mengalami proses enkripsi dalam satuan
byte dengan tipe data Este.
Dengan mengambil contoh suatu file citra yang memiliki format piksel
24bit, maka hasil dari pemrosesan menggunakan program Sistem Kriptografi
ElGamal akan dibandingkan dengan hasil pemrosesan dengan cara
perhitungan.
2. Proses Dekripsi
Langkah pertama yang harus dilakukan adalah mencari gambar yang akan
didekripsi, kemudian memasukkan nilai x, p, a. Apabila kita lupa dengan nilai
kunci pribadi, maka kita dapat melihatnya pada tabel kunci pribadi dengan cara
memasukkan password pada kolom daftar kunci. Menu proses akan berfungsi
apabila kata kunci yang kita masukkan telah sesuai. Setelah proses dekripsi
dilakukan maka akan menghasilkan gambar dengan tipe bitmap atau sesuai
dengan data sebelum dilakukan proses enkripsi.