Anda di halaman 1dari 8

Pendahuluan

Keamanan sekarang ini merupakan sesuatu kebutuhan yang sangat


mendasar dan penting. Hal ini dapat terjadi karena seiring berkembangnya
teknologi. Kecepatan internet dan banyaknya data yang terus meningkat
menimbulkan ancaman terjadinya pencurian dan sabotase data. Karena adanya
ancaman tersebut bidang kriptografi semakin berkembang. Salah satu metode
untuk menjaga kerahasiaan dan keamanan data adalah dengan menggunakan
tanda tangan digital yang ditempelkan pada file atau data yang ingin dilindungi.
Untuk membuat tanda tangan biasanya menggunakan nilai hash dari data atau file
tersebut. Nilai hash tersebut yang akan menjaga konsistensi data dan keamanan
data. Saat penerima menerima suatu data atau file, tanda tangan digital akan
diverifikasi untuk memastikan bahwa pengirim file atau data itu adalah orang
yang benar. Kemudian dengan memproses tanda tangan digital yang ada pada data
atau file tersebut akan didapatkan nilai hash yang dapat dipakai untuk mengecek
apakah file atau data tersebut rusak atau telah diubah oleh pihak lain selama
proses pengiriman. Umumnya penggunaan fungsi hash diterapkan pada data atau
file secara utuh kemudian nilai hash tersebut dipakai untuk menandatangani file
atau data tersebut. Kadang penggunaan metode ini tidak optimal, seperti pada
transmisi data. Pada suatu transmisi data, data yang terlalu besar akan dibagi-bagi
menjadi beberapa fragmen agar bandwidth yang dipakai untuk pengiriman
mencukupi. Hal ini mengakibatkan verifikasi yang akan dilakukan akan tertunda
karena penerima harus menunggu seluruh fragmen sampai terlebih dahulu.
Setelah semua fragmen diterima, harus melalui proses penggabungan paket
terlebih dahulu sebelum akhirnya diverifikasi. Seringkali proses fragmentasi dan
penggabungan data dalam transmisi data ini menyebabkan data rusak. Apabila
suatu data rusak, penerima tidak mengetahui bagian mana yang rusak sehingga
harus dilakukan pengiriman file secara utuh kembali dari awal. Hal ini terntunya
sangat menguras waktu apalagi kalau data atau file yang dikirimkan berukuran
cukup besar. Sehingga dalam makalah ini akan dipaparkan suatu metode untuk
melakukan otentikasi atau tanda tangan digital pada setiap fragmen data yang ada.
Penggunaan fungsi hash juga dapat diterapkan untuk mengurangi
kemungkinan terjadinya kolisi yang seringkali terjadi pada fungsi – fungsi hash
tertentu.

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

o Verifikasi watermark dilakukan untuk membuktikan status


kepemilikan citra digital yang disengketakan. Verifikasi watermark
terdiri atas dua sub-proses, yaitu ekstraksi watermark dan
pembandingan.
o Sub-proses ekstraksi watermark disebut juga decoding, bertujuan
mengungkap watermark dari dalam citra. Decoding dapat
mengikutsertakan citra asal (yang belum diberi watermark) atau tidak
sama sekali, karena beberapa skema watermarking memang
menggunakan citra asal dalam proses decoding untuk meningkatkan
unjuk kerja yang lebih baik [HEN03]
o Sub-proses pembandingan bertujuan membandingkan watermark yang
diungkap dengan watermark asli dan memberi keputusan tentang
watermark tersebut.
D. Steganografi
Steganografi (steganography) adalah ilmu dan seni menyembunyikan
pesan rahasia (hiding message) sedemikian sehingga keberadaan (eksistensi)
pesan tidak terdeteksi oleh indera manusia. Kata steganorafi berasal dari
Bahaya Yunani yang berarti “tulisan tersembunyi” (covered writing).
Steganografi membutuhkan dua properti: wadah penampung dan data rahasia
yang akan disembunyikan. Steganografi digital menggunakan media digital
sebagai wadah penampung, misalnya citra, suara, teks, dan video. Data rahasia
yang disembunyikan juga dapat berupa citra, suara, teks, atau video.
Teknik Penyembunyian Data
• Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam
segmen citra dengan bit-bit data rahasia. Metode yang paling sederhana
adalah metode modifikasi LSB (Least Significant Bit Modification).
• Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang
paling berarti (most significant bit atau MSB) dan bit yang paling kurang
berarti (least significant bit atau LSB).
• Perhatikan contoh sebuah susunan bit pada sebuah byte:
• 11010010
LSB = Least Significant Bit

MSB = Most Significant Bit


MSB LSB

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:

00110010 10100011 1110001 01101111


• Untuk memperkuat teknik penyembunyian data, bit-bit data rahasia tidak
digunakan mengganti byte-byte yang berurutan, namun dipilih susunan
byte secara acak. Misalnya jika terdapat 50 byte dan 6 bit data yang akan
disembunyikan, maka maka byte yang diganti bit LSB-nya dipilih secara
acak, misalkan byte nomor 36, 5, 21, 10, 18, 49.
• Bilangan acak dapat dibangkitkan dengan program pseudorandom-
number-generator (PRNG). PRNG menggunakan kunci rahasia untuk
membangkitkan posisi pixel yang akan digunakan untuk
menyembunyikan bit-bit.
• PRNG dibangun dalam sejumlah cara, salah satunya dengan
menggunakan algoritma kriptografi berbasis blok (block cipher). Tujuan
dari enkripsi adalah menghasilkan sekumpulan bilangan acak yang sama
untuk setiap kunci enkripsi yang sama. Bilangan acak dihasilkan dengan
cara memilih bit-bit dari sebuah blok data hasil enkripsi.

D. ElGama Algorithm

Algoritma ElGamal ditemukan oleh ilmuwan Mesir, yaitu Taher


ElGamal pada tahun 1985, merupakan algoritma kriptografi kunci publik.
Algoritma ElGamal terdiri atas tiga proses, yaitu proses pembentukan
kunci, enkripsi, dan dekripsi. Algoritma ElGamal mendasarkan kekuatannya
pada fakta matematis kesulitan menghitung logaritma diskret.

Enkripsi :

Penerapan Algoritma Kriptografi ElGamal untuk Pengaman File Citra

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.

Anda mungkin juga menyukai