Algoritma Enkripsi dan Dekripsi
1. Apa Itu Algoritma Enkripsi dan
Dekripsi.
Algoritma Enkripsi adalah proses mengacak data sehingga
tidak dapat dibaca oleh pihak lain. Oleh sebab itu enkripsi disebut sebagai sebuah proses menjadikan pesan yang dapat dibaca (plaintext)
menjadi pesan acak yang tidak dapat dibaca (ciphertext). Contoh enkripsi yang
digunakan oleh Julius Caesar, yaitu dengan mengganti masing-masing huruf dengan
3 huruf selanjutnya (disebut juga Additive/Substitution Cipher) yakni kata
plaintext “Hello , Bye” diubah menjadi chipertext “khoos , ebh”. Dan
didalam melakukan proses enkripsi
tersebut harus diperlukan sebuah algoritma dan key, dan dari contoh enkripsi
yang digunakan Julius Caesar tadi adalah mengkonversikan huruf menjadi angka,
kemudian masing-masing angka yang diperoleh dijumlahkan dengan $n, $n ini
sendiri adalah key yang dapat ditentukan sendiri jika key yang kita gunakan
adalah 1, maka algoritma tersebut akan mengubah huruf “A” menjadi “B”, “B”
menjadi “C”. Dan kemudian dikonversikan kembali angka yang diperoleh tersebut
menjadi huruf kembali.
Algoritma Dekripsi
merupakan proses kebalikan dari enkripsi dimana proses ini akan mengubah
ciphertext menjadi plaintext dengan menggunakan algoritma ‘pembalik’ dan key
yang sama untuk melakukan dekripsi ini, algoritma yang digunakan tentu saja
berbeda dengan algoritma enkripsi, namun pada dasarnya adalah ‘membalik’
algoritma enkripsi dan jika diperhatikan, baik algoritma enkripsi maupun
dekripsi tidak jauh berbeda, yang berbeda hanyalah ktika memasukkan unsur
kedalam algoritma tersebut, dimana enkripsi menggunakan proses penjumlahan
sedangkan dekripsi menggunakan pengurangan.
Ilmu yang mempelajari
teknik enkripsi disebut kriptografi, kriptografi sendiri berasal dari kata
cryptography diadopsi dari bahasa Yunani untuk merujuk kepada “ Secret-writing”.
Ilmu ini banyak digunakan terutama dalam bidang pertahanan dan keamanan. Juga umum
diaplikasikan untuk segala aktivitas yang berhubungan dengan teknologi
informasi, dan dasar dari pengembangannya menggunakan model matematika.
Ada 3 Elemen Sistem
Kriptografi
·
Plaintext: yakni pesan sumber yang
sediakalanya pertama kali dibuat oleh user, dapat dibaca oleh orang umumnya.
· Chiphertext : ini adalah bentuk setelah
pesan dalam plaintext telah diubah bentuknya menjadi lebih aman dan tidak data dibaca.
Proses mengubah plaintext menjadi ciphertext disebut encryption, dan proses membaliknya
kembali disebut decryption.
· Cryptographic algorithm : yaitu
mekanisme / tahapan yang digunakan berdasarkan operasi matematika untuk
mengubah plaintext menjadi ciphertext.
Ada empat tujuan mendasar dari ilmu
kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :
1) Kerahasiaan, adalah layanan yang
digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki
otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah
disandi.
2)
Integritas data, adalah berhubungan
dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas
data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh
pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan
pensubsitusian data lain kedalam data yang sebenarnya.
3)
Autentikasi, adalah berhubungan dengan
identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu
sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi
yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu
pengiriman, dan lain-lain.
4) Non-repudiasi., atau nirpenyangkalan
adalah usaha untuk mencegah terjadinya penyangkalan terhadap
pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
5) Data Signature, atau disebut juga
sebagai tanda tangan digital yang berguna untuk menandatangani data digital.
6)
Access Control, yaitu untuk mengontrol
sebuah akses di entity.
Kekuatan dari system kriptografi adalah
- Semakin banyak usaha yang diperlukan, untuk membongkar sebuah cryptosystems, maka semakin lama waktu yang dibutuhkan; sehingga semakin kuat algoritma kriptografi yang digunakan, artinya semakin aman digunakan untuk menyandikan pesan.
- Sebuah algoritma cryptography bersifat restricted, apabila kekuatan kriptografinya ditentukan dengan menjaga kerahasiaan algoritma tersebut.
- Saat ini algoritma bersifat restricted tidak lagi banyak digunakan, dengan alasan tidak cocok dalam penggunaan pada karakter open-systems.
- Pada lingkungan dengan karakter open-systems, kekuatan algoritma cryptograpy-nya terletak pada key yang digunakan, yakni berupa deretan karakter atau bilangan bulat.
2. Macam
– macam Enkripsi.
1)
Algoritma
Simentris
Algoritma
Simetris adalah algoritma yang menggunakan kunci yang sama untuk melakukan
enkripsi dan dekripsi. Algoritma ini juga sering disebut sebagai Kriptografi
klasik
Aplikasi
dari algoritma simetris digunakan oleh beberapa algoritma:
·
Data Encryption Standard (DES)
·
Advance Encryption Standard (AES)
·
International Data Encryption Algoritma (IDEA)
·
A5
·
RC4
Kelebihan dari
Algoritma Simentris ini adalah:
·
Kecepatan operasi lebih tinggi bila dibandingkan dengan
algoritma asimetris.
·
Karena kecepatan operasinya yang cukup tinggi, maka dapat
digunakan pada system real-time.
Kekurangan
dari Algoritma Simentris ini adalah:
· Untuk tiap pengiriman pesan dengan user yang berbeda dibutuhkan kunci
yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci
tersebut.
· Permasalahan dalam pengiriman kunci itu
sendiri yang disebut "key
distribution problem".
2) Algoritma Asimetri adalah algoritma yang menggunakan sepasang
kunci atau 2 kunci kriptografi yang berbeda, salah satunya digunakan untuk
proses enkripsi dan yang satu lagi digunakan untuk dekripsi, dan algoritma
asimentri ini juga sering disebut algoritma kunci public, pada algoritma ini
terbagi dua kunci yaitu :
Kunci Umum yaitu kunci yang boleh semua
orang boleh tahu.
Kunci Pribadi yaitu kunci yang
dirahasiakan hanya boleh diketahui oleh satu orang.
Algoritma yang memakai kunci public
diantarannya adalah :
·
Digital Signature Algorithm(DSA)
·
RSA
·
Diffie - Hellman(DH)
·
Elliptic Curve Crytography(ECC)
Kelebihan dari
Algoritma Asimetri ini adalah:
·
Masalah keamanan pada distribusi kunci dapat lebih baik.
·
Masalah manajemen kunci yang lebih baik karena jumlah kunci
yang lebih sedikit.
Kekurangan dari
Algoritma Asimetri ini adalah:
·
Kecepatan yang lebih rendah bila dibadingkan dengan algoritma
simetris.
· Untuk tinkat keamanan sama, kunci yang digunakan lebih
panjang dibandingkan dengan algoritma simetris
3) Fungsi
Hash Kriptografis
Fungsi
Hash sering disebut sebagai fungsi hash satu arah (one way function),message
digest , fingerprint, fungsi kompresi , dan message authentication code(MAC),
Fungsi hash Kriptografis adalah fungsi hash yang memiliki beberapa sifat
keamanan tambahan sehingga dapat dipakai untuk tujuan keamanan data. Fungsi
hash adalah fungsi yang secara efisien mengubah string input dengan panjang
berhingga menjadi string output dengan panjang tetap yang disebut nilai hash.
Atau hal ini juga merupakan suatu fungsi
matematikan yang mengambil input panjang variable dan mengubahnya kedalam
urutan biner dengan panjang yang tetap . Fungsi Hash Umumnya digunakan untuk
keperluan autentikasi dan integritas data biasanya digunakan bila ingin membuat
sidik jari dari suatu pesan . Sidik jari pada pesan merupakan suatu tanda yang
menandakan bahwa pesan tersebut benar - benar dari orang yang diinginkan .
Sifat-Sifat Fungsi Hash Kriptografi
· Tahan preimej (Preimage resistant): bila
diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk
mendapatkan m dimana h = hash(m).
· Tahan preimej kedua (Second preimage
resistant): bila diketahui input m1 maka sulit mencari input m2 (tidak sama
dengan m1) yang menyebabkan hash(m1) = hash(m2).
· Tahan tumbukan (Collision-resistant):
sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)
Ada beberapa macam fungsi hash yang relative sederhana yang
dapat digunakan dalam penyimpanan database:
a. Metode
Pembagian Bersisa (Division-Remainder Method) 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 h(k)= k modm. 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.
b. Melipat (Folding) Metode ini membagi nilai asli ke dalam beberapa
bagian, kemudian menambahkan nilai-nilai tersebut, dan mengambil beberapa angka
terakhir sebagai nilai
hashnya.
c. 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.
d. Pengaturan Ulang Digit
Radiks (Radix Transformation) Metode
ini mengubah urutan digit dengan pola tertentu.