Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
2.1 Tinjauan Pustaka
(Munawar, 2013), dalam penelitian dengan judul “Perancangan Algoritma
Sistem Keamanan Data Menggunakan Metode Kriptografi Asimetris” di
terangkan bahwa masalah keamanan, kerahasiaan, keaslian dan integritas data
merupakan aspek-aspek penting yang perlu dilakukan untuk menjaga informasi
dari pihak-pihak yang tidak memiliki otoritas atau hak akses. Untuk mengatasi hal
ini, penulis mencoba mengimplementasikan konsep kriptografi pada sistem
keamanan data pada jaringan komputer. Data-data elektronik dapat diamankan
dengan cara mengubah data menjadi sandi-sandi yang tidak dimengerti. Banyak
algoritma kriptografi yang bisa diterapkan untuk mengamankan data, namun pada
kesempatan kali ini penulis akan merancang algoritma tersendiri untuk mengatasi
masalah keamanan data pada jaringan komputer. Cara efektif untuk
menyembunyikan data atau informasi adalah dengan cara enkripsi.
(Purwadi, 2014), dalam penelitian dengan judul “Aplikasi Kriptografi
Asimetris Dengan Metode Diffie-Hellman Dan Algoritma Elgamal Untuk
Keamanan Teks” menerangkan bahwa, keamanan dokumen merupakan salah satu
hal yang sangat penting dalam penukaran data, terutama pertukaran data didunia
maya yang di dalamnya terdapat banyak ancaman pada saat proses itu dilakukan.
Keamanan data, khususnya untuk dokumen teks bagi suatu organisasi yang
mengasumsikan bahwa dokumen tersebut bernilai rahasia (private and
confidential). Salah satu aspek keamanan dalam dokumen teks adalah keaslian,
bentuk dan isinya harus sesuai dengan yang dimaksud oleh pembuat.
Permasalahannya adalah bagaimana cara menggabungkan metode Diffie-Hellman
dengan algoritma ElGamal untuk proses keamanan data teks dan bagaimana
menerapkan dan merancang aplikasi kriptografi Asimetris dengan metode Diffie-
Hellman dan algoritma ElGamal untuk mengamankan teks. Untuk menjawab
permasalahan tersebut, hasil penelitian ini menjelaskan, pertama, diperlukan
instalasi aplikasi untuk setiap perangkat yang akan digunakan untuk melakukan
enkripsi dan dekripsi. Kedua, aplikasi yang dibangun dapat menerapkan metode
pertukaran kunci Diffie Hellman dan menghasilkan kunci baru dan aplikasi ini
dapat melakukan enkripsi dan dekripsi ElGamal dengan menggunakan kunci yang
telah dibangkitkan dengan metode Diffie Hellman.
(Michael, 2012). Penelitian dengan judul “Penggunaan Algoritma Diffie-
Hellman dalam Melakukan Pertukaran Kunci” ini, membahas tentang pertukaran
kunci dalam penyampaian informasi yang hanya ditujukan kepada pihak-pihak
tertentu. Untuk menjaga tersebarnya informasi rahasia ini, maka digunakanlah
kriptografi pada kunci publik agar pihak-pihak lain yang tidak diinginkan tidak
dapat mengetahui informasi tersebut. Metode kriptografi yang dapat digunakan
dalam pertukaran kunci tersebut adalah dengan menggunakan algoritma Diffie
Hellman dan algoritma Rivest-Shamir-Adleman (RSA). Kedua algoritma ini
menjamin keamanan tingkat tinggi dalam pertukaran kunci rahasia antar pihak-
pihak tertentu. Pada makalah ini, saya akan membahas pertukaran kunci dengan
menggunakan algoritma Diffie-Hellman karena algoritma ini menghasilkan
performa yang lebih baik dibandingkan algoritma Rivest-Shamir-Adleman(RSA).
(Widarma, 2016), dalam penelitian yang berjudul “Kombinasi Algoritma
AES, RC4 dan ElGamal Dalam Skema Hybrid Untuk Keamanan Data”,
pengiriman atau pertukaran data adalah hal yang sering terjadi dalam dunia
teknologi informasi. Data yang dikirim kadang sering berisi data informasi yang
penting bahkan sangat rahasia dan harus dijaga keamanannya. Untuk menjaga
keamanan data, dapat dilakukan dengan menggunakan teknik kriptografi.
Algoritma AES dan RC4 adalah salah satu dari algoritma simetri. Kelemahan dari
algoritma simetri adalah proses enkripsi dan dekripsi menggunakan kunci yang
sama. Untuk mengatasi tersebut dilakukan dengan menggunakan algoritma
ElGamal. Algoritma ElGamal adalah termasuk algoritma asimetri. Algoritma
ElGamal digunakan untuk mengamankan kunci dari algoritma AES dan RC4.
Peningkatan keamanan pesan dan kunci dilakukan dengan algoritma hybrid.
Algoritma hybrid dengan mengkombinasikan beberapa algoritma baik algoritma
simetri maupun algortima asimetri akan menambah keamanan sehingga menjadi
lebih aman dan powerful (Jain & Agrawal 2014). Penelitian ini akan dilakukan
metode hybrid yaitu mengkombinasikan beberapa algoritma kriptografi dengan
menggunakan algoritma Advanced Encryption Standard (AES) dan RC4 untuk
kerahasiaan data serta algoritma ElGamal digunakan untuk enkripsi dan dekripsi
kunci.
(Basri, 2016), dalam penelitian yang berjudul “Kriptografi Simetris dan
Asimetris dalam Perspektif Keamanan Data dan Kompleksitas Komputasi”, dalam
suatu perusahaan keamanan data merupakan hal yang sangat penting. Masalah
keamanan dan integritas data merupakan hal yang harus diperhatikan. Upaya
menjaga informasi agar tidak jatuh ke tangan orang yang tidak berkepentingan
menuntut perlunya diterapkan suatu mekanisme yang baik dalam mengamankan
data. Ada banyak metode kriptografi yang umum dapat diterapkan, dalam
klasifikasi secara umum terdiri atas dua, yaitu metode simetris dan asimetris.
Dalam proyek ini, dilakukan suatu analisis dalam perspektif keamanan data dan
kompleksitas komputasi menggunakan dua jenis metode kriptografi, untuk
implementasinya dibuat suatu sistem dimana data yang dikirim (plaintext) terlebih
dahulu dienkripsi oleh pengirim (sender) menghasilkan data terenkripsi
(chipertext) dan selanjutnya akan dikirim kepada penerima (receiver) untuk
dilakukan proses dekripsi sehingga dihasilkan suatu data yang utuh seperti
semula. Tentunya dalam implementasi ini dianalisis keakuratan data yang telah
dienkripsi, tingkat kesulitan, keamanan dan waktu yang dibutuhkan dalam
prosesnya. Dari hasil analisis penelitian terkait dalam pengujiannya terlihat bahwa
kedua metode tersebut memiliki keakuratan yang sama, namun kerumitan lebih
pada metode asimetris, dan waktu yang digunakan dalam proses komputasi
kriptografi asimetris cenderung lebih kompleks, namun tingkat keamanan data
lebih baik menggunakan metode asimetris.
2.2 Landasan Teori
2.2.1 Teks
Teks adalah wacana (berarti lisan) yang difiksasikan dalam bentuk tulisan.
Dengan demikian jelas bahwa teks adalah fiksasi atau pelembagaan sebuah
peristiwa wacana lisan dalam bentuk tulisan.Teks juga dapat diartikan sebagai
seperangkat tanda yang ditransmisikan dari seorang pengirim kepada seorang
penerima melalui medium tertentu atau kode-kode tertentu (Sobur A. , 2004).
Salah satu definisi teks yang paling dikenal luas adalah pandangan de
Beaugrande dan Dressler yang mengatakan bahwa teks adalah sebuah peristiwa
komunikatif yang harus memenuhi beberapa syarat, yakni tujuh kriteria teks yang
akan dikaji pada pembahasan selanjutnya. Menurut definisi ini, tanda lalu lintas,
artikel di surat kabar, argumen, dan novel semuanya merupakan teks yang
berhubungan dengan kaidah genre-genre atau tipe teks tertentu semua genre yang
disebutkan memiliki ciri-ciri linguistik tertentu, memenuhi fungsi tertentu dan
terikat pada situasi-situasi pemroduksian dan penerimaan tertentu. Oleh sebab itu,
terdapat kondisi-kondisi makna yang bersifat internal teks maupun eksternal teks
yang akhirnya berhadapan dengan cara mendefinisikan dan menganalisis konteks
ekstralinguistik (Titscher, 2009).
Dalam teori bahasa, apa yang dinamakan teks tidak lebih dari himpunan
huruf yang membentuk kata dan kalimat, yang dirangkai dengan sistem tanda
yang yang disepakati oleh masyarakat, sehingga sebuah teks ketika dibaca bisa
mengungkapkan makna yang dikandungnya. Eriyanto dalam bukunya, Analisis
Wacana, menyebutkan bahwa teks hampir sama dengan wacana, bedanya kalau
teks hanya bisa disampaikan dalam bentuk tulisan saja, sedangkan wacana bisa
disampaikan dalam bentuk lisan maupun tertulis (Eriyanto, 2001).
2.2.2 Kriptografi
Kriptografi berasal dari kata kripto dan grafi. Kripto berarti
menyembunyikan, dan grafi yaitu ilmu. Kriptografi (cryptography) adalah suatu
ilmu yang mempelajari suatu sistem penyandian untuk menjamin kerahasiaan dan
keamanan data. Orang yang melakukan disebut Criptographer. Kriptografi
merupakan ilmu yang mempelajari teknik matematika yang berhubungan dengan
aspek keamanan informasi, seperti kerahasiaan data, keabsahan data, dan
integritas data serta autentifikasi data.
Sistem kriptografi klasik umumnya menggunakan metode subtitusi atau
transposisi dan telah digunakan jauh sebelum komputer ditemukan. Terdapat
beberapa komponen utama dalam sistem kriptografi. Secara umum, istilah
kriptografi yang sering digunakan adalah (Munir, 2006).
1. Pesan
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya, pesan sering juga disebut dengan plaintext atau teks jelas
(cleartext). Plaintext merupakan suatu pesan bermakna yang akan diproses
menggunakan algoritma kriptografi.
2. Ciphertext
Cipertext atau di sebut dengan cryptosystem merupakan pesan yang telah
tersandi. Pesan dalam bentuk ciphertext tidak dapat dibaca karena berisi
karakter-karekter yang tidak memiliki makna setelah melalui proses
enkripsi
3. Enkripsi
Enkripsi merupakan proses penyandian plaintext menjadi ciphertext atau
disebut sebagai enciphering. Enkripsi dilakukan dengan tujuan agar
plaintext tersebut tidak dapat dibaca oleh pihak yang tidak memiliki
otoritas (wewenang).
4. Dekripsi
Dekripsi merupakan proses pengembalian ciphertext menjadi plaintext
semula atau di sebut deciphering. Dekripsi dilakukan ketika pesan telah
sampai kepada pihak yang dituju.
5. Kunci (key).
Kunci (key) adalah parameter yang digunakan untuk transformasi enkripsi
dan dekripsi. Kunci dapat juga berupa string atau deretan bilangan.
Keamanan suatu algoritma kriptografi biasanya tergantug kepada
kerahasiaan penyebaran key.
6. Kriptosistem (cryptosystem)
Cryptosystem adalah perangkat keras atau implementasi perangkat lunak
kriptografi yang diperlukan atau mentranformasi sebuah pesan asli
menjadi ciphertext atau juga sebaliknya.
2.2.2.1 Jenis Kriptografi
Menurut (Munir, 2006) terdapat dua jenis algoritma kriptografi
berdasarkan jenis kunci yang digunakan, yaitu:
1. Algoritma Kriptografi Simetri (Konvensional) / Symetric Cryptosystem
Konsep dasar dari kriptografi simetri adalah kunci yang digunakan
untuk enkripsi merupakan kunci yang sama dengan kunci untuk
dekripsi. Istilah lain untuk kriptografi simetri adalah kriptografi kunci
privat (private-key cryptography). Kriptografi kunci rahasia (secret-key
cryptography), atau kriptografi konvensional (conventional
cryptography). Dapat juga di katakan sebagai proses enkripsi dan
dekripsi yang kuncinya harus dirahasiakan. Dan contoh disini yang
diambil adalah DES (Data Encrpytion Standart), Blowfish, IDEA. Dua
kategori yang termasuk algoritma simetri adalah algoritma block cipher
dan stream cipher. Proses enkripsi dan dekripsi dapat dilihat pada
Gambar 2.1.
Gambar 2. 1 Proses Enkripsi dan Deskripsi Simetric Cryptosystem
a. Block Cipher
Algoritma block cipher adalah algoritma yang masukan dan keluarannya
berupa satu block, dan setiap blocknya terdiri dari banyak bit. Beberapa mode
operasi enkripsi block cipher.
1. Data Encryption Standard (DES)
2. AES (Advanced Encryption Standard)
3. Blowfish
b. Stream Cipher
Stream cipher (cipher aliran) adalah cipher yang berasal dari hasil XOR
antara bit plaintext dengan setip bit kuncinya. Stream cipher sangat rawan
terhadap attack dan pembalikan kunci. Beberapa model algoritma stream
cipher adalah antara lain:
1. One Time Pad (OTP)
2. Rivest Code 4 (RC4)
Kelebihan algoritma simetri adalah:
a. Proses enkripsi dekripsi kriptografi simetri membutuhkan waktu yang relatif
singkat.
b. Ukuran kunci yang relatif pendek.
c. Otentifikasi pengiriman pesan langsung diketahui dari ciphertext yang
diterima karena kunci hanya diketahui oleh penerima dan pengirim saja.
Kekurangan kriptografi simetri adalah:
a. Kunci simetri harus dikirim melalui saluran komunikasi yang aman dan
kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci.
b. Kunci harus sering diubah, setiap kali melaksanakan komunikasi.
2. Kriptografi Asimetri / Asymetric Cryptosystem
Konsep dasar kriptografi asimetri sering juga disebut dengan algoritma kunci
publik (plaintext key), dengan arti kata kunci yang digunakan untuk melakukan
enkripsi dan dekripsi berbeda. Pada algoritma asimetri kunci dibagi dua bagian,
yaitu:
1. Kunci umum (public key):
Kunci yang boleh diketahui oleh semua orang / kunci dipublikasikan.
Kunci umum pada umum nya di simpan dalam database yang pada dasarnya
bisa diakses oleh siapapun. Meskipun kunci publik bisa diakses oleh siapa saja,
tetapi otentikasi atau keutuhan kunci publik tetap harus terjamin. Jika kunci ini
jatuh ke tangan pihak yang tidak berwenang, maka pesan belum tentu bisa
dibuka, dikarenakan kunci publik berisi informasi data yang tidak bermakna,
apabila belum dilakukan suatu proses perhitungan tertentu. Oleh karena itu
keberadaan kunci publik bisa menambah kerumitan dalam memecahan suatu
pesan tertentu oleh orang yang tidak berwenang.
2. Kunci rahasia (private key):
Kunci yang dirahasiakan / hanya diketahui oleh pengirim dan penerima
pesan saja. Kunci privat merupakan kunci yang perlu dijaga kerahasiaanya dari
setiap entitas yang saling berkomunikasi. Jika data dari kunci privat diketahui
oleh orang yang tidak berwenang, maka informasi dalam pesan akan bisa
terbaca dan kerahasiaan pesan akan hilang. Oleh karena itu , pemilik kunci
privat harus benar-benar memperhatikan pelatakan kunci ini, dikarenakan
keamanan pesan akan sangat ditentukan oleh kunci private ini.
Kunci-kunci tersebut berhubungan satu dengan yang lain. Dengan kunci
plaintext orang dapat mengenkripsi pesan tapi tidak bisa mendekripsikannya.
Hanya orang yang memiliki kunci rahasia yang dapat di dekripsi pesan
tersebut. Algoritma asimetri dapat mengirim pesan dengan lebih aman dari
algoritma simetri.
Dalam kriptografi asimetris digunakan dua buah kunci yang berbeda
dalam proses enkripsi dan dekripsi lagi. Salah satu disebut kunci publik (plaintext
key) dapat dipublikasikan. Sedangkan kunci yang lain disebut kunci privat
(private key) yang harus dirahasiakan. Misalnya bila A mengirim pesan kepada B,
A dapat menyandikan pesannya menggunakan kunci plaintext B, dan bila B ingin
membaca pesan tersebut, maka si B tersebut perlu mendekripsikan dengan kunci
privatnya. Dengan demikian kedua belah pihak dapat menjamin asal pesan serta
keaslian pesan tersebut, karena adanya mekasnisme ini. Contoh dari sistem ini
antara lain RSA Scheme dan Merkie Hellman Scheme. Proses enkripsi dan
dekripsi pada algoritma asimetri dapat dilihat pada Gambar 2.2.
Gambar 2. 2 Proses Enkripsi dan Deskripsi Asymetric Cryptosystem
2.2.2.2 Tujuan Kriptografi
Ditinjau dari tujuan kriptografi sendiri adalah sebagai berikut (Menezes,
Oorschot dan Vanstone, 1996):
1. Kerahasiaan (confidentialy) merupakan layanan yang bertujuan untuk
menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak
memiliki otoritas (wewenang). Dalam kriptografi layanan ini dapat
direalisasikan dengan menyandikan pesan ciphertext. Misalnya kata
“majid” dapat disandikan dengan “abcde”. Istilah lain yang serupa
dengan confidentialy adalah secrecy dan privacy.
2. Integritas data (data integrity) merupakan layanan yang menjamin
bahwa pesan asli masih uth atau belum dimanipulasi selama proses
pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkap
sebagai pertanyaan “ apakah pesan yang diterima masih asli atau sudah
di lakukan modifikasi”.
3. Otentifikasi (autentification) merupakan layanan yang berhubungan
dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang
berkomunikasi (user autentification atau entity autentification). Dua
pihak yang saling berkomunikasi harus dapat mengidentifikasi satu
sama yang lainnya sehingga si penerima memastikan sumber pesan.
4. Non-repudiation merupakan layanan untuk mencegah entitas yang
berkomunikasi melakukan penyangkalan, yaitu si pengirim pesan
menyangkal melakukan pengiriman atau penerima pesan menyagkal
telah menerima pesan sebelumnya.
2.2.2.3 Serangan Terhadap Kriptografi
Attack (serangan) merupakan suatu usaha yang dilakukan oleh seorang
kriptanalis untuk menemukan kunci atau plaintext ke ciphertext dalam suatu
sistem kriptogafi. Kriptanalis akan berusaha untuk menemukan plaintext dari
ciphertext tanpa memiliki akses kunci yang digunakan dari sistem kriptografi.
Berdasarkan teknik yang digunakan dalam menemukan kunci, serangan dapat
dibagi menjadi exahaustive atau brute force attack dan analytical attack (Fitria,
2007).
Exhaustive atau brute force attack merupakan serangan untuk
mendapatkan plaintext dai ciphertext dengan mencoba satu persatu kombinasi
atau kemungkinan kunci yang digunakan. Dalam hal ini kriptanalis harus tahu
jenis algoritma kriptografi yang digunakan oleh pengirim pesan dan juga memiliki
sejumlah plaintext dan ciphertext. Berdasarkan keterlibatan penyerang dalam
komunikasi, serangan dapat dibagi atas dua macam, yaitu serangan pasif dan
serangan aktif:
1. Serangan aktif pada serangan ini, penyerang mengintervensi komunikasi
dan ikut mempengaruhi sistem untuk keuntungan pribadinya. Misalnya
penyerang mengubah aliran pesan seperti menghapus sebagian ciphertext,
mengubah ciphertext, menyisipkan potongan ciphertext palsu, me-replay
pesan lama, mengubah informasi yang tersimpan, dan sebagainya.
2. Serangan pasif pada proses ini, penyerang tidak terlibat dalam komunikasi
antara pengirim dan penerima pesan, namun penyerang menyadap semua
pertukaran pesan antara kedua entitas tersebut, tujuan utamanya adalah
untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk
kripnatalis.
2.2.3 Teknik Enkripsi dan Dekripsi
a. Teknik Subtitusi
Teknik subtitusi akan diganti suatu kode dengan kode yang lain, dengan
menggunakan tabel substitusi. Dapat ditampilkan dalam tabel dibawah ini.
Dapat dilihat pada Gambar 2.3 dibawah ini:
Gambar 2. 3 Gambar Daftar Substitusi
Tabel subtitusi diatas dibuat secara acak, misalkan huruf A akan diganti
dengan huruf M, dan huruf B diganti dengan huruf A begitu seterusnya.
Misalkan kata “ENKRIPSI” akan dienkripsi dengan teknik subtitusi dengan
tabel diatas menjadi “D(^4$SBS”. Untuk memperoleh kata “ENKRIPSI”
kembali maka dilakukan pula melihat tabel subtitusi diatas.
b. Teknik Blocking
Teknik blocking yaitu membagi pesan plaintext kedalam blok-blok pesan
yang kemudian akan di enkripsi secara independen. Misalkan kalimat
“TEKNIK BLOCKING ENCRYPTION METHODE ” akan dibagi kedalam
blok-blok sebagai berikut. Dapat dilihat pada Gambar 2.4.
Gambar 2. 4 Blok Enkripsi
Selajutnya teknik dapat dienkripsi perblok, misalkan untuk proses
pengacakan sederhana dengan pembacaaan yang terbalik yaitu karena proses
penyimpanan pada blok dilakukan per kolom, maka proses enkripsi akan
dilakukan dengan cara menaruh kalimat “ EDOHTEM NIOTPYRCNE
GNIKCOLB KINKET” pada blok-blok pesan berbaris dan membaca dengan
perkolom dan menjadi kalimat “TEKNIK BLOCKING ENCRYPTION
METHODE” kembali. Agar rumit dapat menggunakan kalkulasi tertentu untuk
mengacak susunan blok seperti pada algoritma FEAL dan ElGamal pada skripsi
ini.
c. Teknik permutasi
Teknik permutasi sering juga disebut transposisi. Teknik ini memindahkan atau
merotasikan karakter dengan aturan tertentu, prinsipnya adalah berlawanan tetap
tapi identitasnya yang diacak. Sebelum dilakukakan permutasi, umumnya
plaintetxt terlebuh dahulu di bagi menjadi blok-blok dengan panjang yang sama.
Untuk contoh diatas, plaintext dibagi menjadi blok terdiri dari 5 karakter, dengan
aturan permutasi pada Gambar 2.5.
Gambar 2. 5 Aturan Permutasi
Misalkan kalimat “KUNCI RAHASIA” di enkripsi menjadi “ICNUK
ISAHAR A” dengan cara membaginya kalimat ke dalam 5 blok – 5 blok dan
melakukan proses permutasi seperti pada gambar di atas dengan teknik
pengacakan. Proses dekripsi dilakukan serupa dengan membagi kedalam 5 blok
pula dan membalik permutasinya pada Gambar 2.6.
Gambar 2. 6 Teknik Permutasi
d. Teknik Ekspansi
Teknik akan menambahkan beberapa byte kata ke dalam plaintext dengan
aturan tertentu. Proses penambahan beberapa byte kata ini diharapkan dapat
menyembunyikan informasi dapat plaintext. Salah satu contoh penggunaan
teknik ini adalah dengan menukar huruf awal dan akhir kata yang diberi awalan
“NI” proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai
pada Gambar 2.7.
Gambar 2. 7 Teknik Ekspansi
Ciphertextnya adalah “EVINGNI EETRCSNI SDROWNI”. Aturan ekspansi
dapat dibuat lebih kompleks dan terkadang teknik ekspansi dapat digabungkan
dengan teknik lainnya.
e. Teknik Pemampatan (Compaction)
Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk
menyembunyikan isi pesan. Misalkan untuk plaintext “SECRET WORDS”
setiap kata ke dua akan dihilangkan dan di sertakan pada akhir kalimat yang
sebelumnya diberi tanda “.”. Proses yang terjadi untuk plaintext tersebut adalah
pada Gambar 2.8.
Gambar 2. 8 Teknik Pemampatan
Aturan penghilangan karakter dan karakter khusus dan berfungsi sebagai
pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext
kembali.
Dengan menggunakan kelima menjadi teknik kriptografi diatas, dapat diciptakan
teknik kriptografi yang amat banyak walaupun sekilas terlihat sederhanana,
kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan
yang cukup kompleks, dan beberapa teknik dasar kriptografi masih digunakan
dalam kriptografi modern.
2.2.4 Algoritma
Algoritma Hibrida (Hybrid Algorithm)
Kriptografi hybrid adalah suatu penggabungan antara kriptografi simetris
dan kriptografi asimetris bentuk tulisan rahasia yang memperhatikan
keseimbangan dan menggunakan syarat-syarat tertentu yang telah ditetapkan dan
juga tetap pada kerahasiaan sampai kepada si penerima. Proses ini dimulai dengan
negosiasi menggunakan cipher asimetris dimana kedua belah pihak setuju dengan
private key/session key yang akan dipakai. Kemudian session key digunakan
dengan teknik simetrik untuk melakukan enkripsi conversation ataupun tukar-
menukar data selanjutnya. Suatu session key hanya dipakai sekali sesi. Untuk sesi
selanjutnya session key harus dapat dibuat kembali.
a. Distribusi key dalam pendistribusian suatu dapat dialakukan dengan
bermacam cara misalnya download, diberikan secara langsung dan
sebagainya. Untuk mencegah pemalsuan key oleh pihak ketiga maka
diperlukan adanya certificate.
b. Protokol persetujuan key atau disebut juga degan protokol pertukaran key
adalah suatu sistem dimana dua pihak bernegosiasi untuk menetukan
secret value. Contohnya adalah SSL (Secure Socket Layer).
Metode hibrida terdiri atas enkripsi simetris dengan satu kunci (session key)
dan ekripsi asimetris dengan sepasang kunci (plaintext/private key). Langkah
dalam kriptografi hibrida adalah:
Langkah 1 : Pengirim mengengkripsi teks dengan session key.
Langkah 2 : Mengengkripsi dengan session key dengan plaintext key.
Langkah 3 : Menerima men-decrypt session key dengan private key.
Langkah 4 : Men-decrypt dengan session key.
2.2.4.1 Algoritma Kriptografi Rail Fence
Rail Fence Cipher atau nama lainnya zigzag cipher, adalah salah satu jenis
transposition cipher. Dalam algoritma ini, plaintext dituliskan ke bawah secara
diagonal dalam “rel” yang berurutan, kemudian bergerak keatas ketika sudah
mencapai dasar “rel” paling bawah. Ketika kita kembali mencapai batas atas maka
pesan dituliskan kembali ke bawah terus menerus sampai semua pesan selesai
ditulis. Sebagai contoh jika kita menggunakan 3 “rel” dan pesan yang dienkripsi
sebgai berikut:
WE ARE DISCOVERED, FLEE at once
Maka cipherteks yang dituliskan adalah sebgai berikut:
Gambar 2. 9 Contoh Ciphertext
Dengan membaca secara mendatar atau horizontal maka kita akan
mendapatkan cipherteksnya yaitu:
WRIVDLanEAEDSOEE,FE toc CR E e
Algoritma kriptografi rail fence secara umum relative mudah untuk di
analisis dan di tebak, sehingga metode ini termasuk dalam algoritma kriptografi
yang kurang aman. Algoritma kriptografi rail fence termasuk ke dalam kategori
algoritma klasik yang sederhana. Algoritma kriptografi rail fence memiliki
kelebihan dalam hal enkripsi suatu data, yakni bisa melakukan enkripsi data
secara cepat.
2.2.4.2 Algoritma ElGamal
Algoritma ElGamal merupakan algoritma kriptografi asimetris. Pertama
kali dipublikasikan oleh Taher ElGamal pada tahun 1985. (Sadikin R. 2012)
Seperti RSA (Rivest Shamir Adleman), algoritma ElGamal terdiri dari tiga proses,
yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma
ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok
plaintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses
enkripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan bisa
dimengerti. Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan
prima p. Untuk algoritma ElGamal maka secara secara umum dapat dijelaskan
pada gambar dibawah ini, merupakan pseudo code ElGamal proses pembentukan
kunci, enkripsi dan dekripsi ElGamal, (Sadikin R. 2012)
1. Pilih P dimana P adalah bilangan prima
2. Pilih a dimana a adalah primitive root P dan a < p
3. Pilih sembarang bilangan Xa, dimana Xa < Q-1
4. Hitung Ya, dimana Ya = mod Q
5. Plaintext key = { P, a, Ya}
6. Private key = {Xa}
7. Plaintext M < Q
8. Pilih sembarang bilangan K0 dimana K0 < Q
9. Hitung K1 dimana K1 = Y mod Q
10. Hitung C1 = mod Q
11. Hitung C2 = * M mod Q
12. Cipher = (C1, C2)
13. Deskripsi : cipher = (C1, C2)
14. Hitung K1 dimana K1 = mod Q
15. Plaintext M = (C2 ) mod Q
2.2.5 Proses Pembangkitan Kunci
Algoritma membangkitkan pasangan kunci:
1. Pilih sembarang bilangan prima . (dengan syarat nilai harus lebih
besar dari nilai plaintext terbesar).
2. Pilih dua buah bilangan acak dan , dengan syarat
< dan 1 ≤ ≤ − 2.
3. Hitung =
Hasil dari algoritma diatas :
-kunci publik adalah ( , g, )
-kunci privat adalah ( , )
Algoritma ElGamal memiliki besaran-besaran sebagai berikut:
1. bilangan prima (tidak rahasia)
2. Bilangan acak, ( < ) (tidak rahasia)
3. Bilangan acak, ( < ) (kunci privat) (rahasia)
4. = (kunci publik) (tidak rahasia)
5. (plaintext) (rahasia)
6. dan (ciphertext) (tidak rahasia)
2.2.6 Proses Enkripsi
Proses enkripsi pesan sebagai berikut:
1. Susun plaintext menjadi blok-blok 1 , 2 , … , dimana
menyatakan jumlah karakter plaintext.
2. Pilih bilangan acak yang dalam hal ini 1 ≤ ≤ − 2.
3. Setiap blok dienkripsi dengan rumus:
= …………….…………………………….. (2.1)
= ………………………………………… (2.2)
Pasangan dan adalah ciphertext untuk blok pesan . Jadi, ukuran
ciphertext dua kali ukuran plaintext.
2.2.7 Proses Dekripsi
Gunakan kunci privat untuk mendekripsi dan menjadi plaintext
dengan persamaan
=
…………………………..… (2.3)
2.2.8 ASCII
Kode ASCII Kode ASCII (Standard Code for Information Interchange)
merupakan representasi numerik dari suatu karakter seperti ‘a’ atau ‘@’ atau
karakter yang tidak tercetak, misalnya ‘Σ’. Tabel di bawah ini menunjukkan
karakter ASCII termasuk 32 karakter yang tidak tercetak.
Gambar 2. 10 Daftar Kode ASCII
2.2.6 Bilangan Prima
Bilangan prima adalah bilangan yang habis di bagi dengan angka 1 dan angka
itu sendiri. Berikut adalah deretan bilangan prima urutan 1 sampai 500.
Gambar 2. 11 Daftar Bilangan Prima