Algoritma dan Struktur Data Lanjut Cryptography Ramos Somya
Cryptography Kriptografi dalam sejarahnya tercatat dipergunakan secara terbatas oleh bangsa Mesir 4000 tahun lalu. Kriptografi (Cryptography) berasal dari dua kata yaitu “Crypto & graphy”. “Crypto” dapat diartikan rahasia (secret) dan “graphy” dapat diartikan tulisan (writing). Jadi Kriptografi (Cryptography) dapat diartikan sebagai suatu ilmu atau seni untuk mengamankan pesan agar aman (tidak dapat dibaca oleh pihak ketiga)
Terminologi Pesan yang belum disandikan disebut plaintext. Hasil penyandian disebut chipertext. Proses dari plaintext menjadi chipertext disebut encryption. Proses pengembalian dari chipertext ke plaintext disebut decryption. Kunci yang digunakan pada tahap Dekripsi disebut Kunci Dekripsi Pada prakteknya, selain pihak yang berwenang ada pihak ketiga yang selalu berusaha untuk mengembalikan cipherteks ke plainteks atau memecahkan Kunci Dekripsi. Usaha oleh pihak ketiga ini disebut Kriptanalisis (Cryptanalysis).
Sistem Cryptographi
Pengelompokan Kriptografi
Kriptosistem Simetrik (Symmetric Cryptosystem) atau disebut juga Kunci Pribadi (Private Key) adalah metode kriptografi di mana kunci enkripsi bisa diperoleh dari kunci deskripsi atau sebaliknya. Kunci Pribadi disini berarti bahwa pemegang kunci enkripsi maupun dekripsi hanyalah pihak-pihak berwenang saja Kebalikan dari sistem ini adalah Kriptosistem Asimetrik (Asymmetric Cryptosystem) atau disebut juga Kunci Publik (Public Key). Kunci Publik berarti Kunci Enkripsi dapat disebarluaskan ke publik sedangkan pihak berwenang cukup menjaga kerahasiaan Kunci Deskripsi.
Contoh Algoritma yang menggunakan kunci Simetris: - Algoritma DES – Data Encryption Standard - Algortima Blowfish - Algortima Twofish - Algortima MARS - Algoritma IDEA - Algoritma AES – Advanced Encryption Standard Contoh Algoritma yang menggunakan kunci Asimetris: - Algoritma Knapsack - Algoritma RSA – Rivert-Shamir-Adelman - Algoritma Diffie Hellman - Algoritma El Gamal
Berdasarkan dari jenis data yang diolah, teknik kriptografi dapat dibagi menjadi dua bagian: Block Cipher dan Stream Cipher. Pada Block Cipher, sesuai namanya data Plain Teks diolah per blok data. Di lain pihak, pada Stream Cipher, data Plain Teks diolah per satuan data terkecil, misalnya per bit atau per karakter.
Konsep Penggunaan Kriptografi Kerahasiaan Sederhananya, kerahasiaan adalah proses penyembunyian data dari orang-orang yang tidak punya otoritas. Integritas Mencegah agar orang-orang yang tidak berhak, menyisipkan atau menghapus data. Autentifikasi : menjamin keaslian suatu data Non-repudiasi: menjaga bukti-bukti bahwa suatu data berasal dari seseorang. Menurut perkembangannya ada 2 jenis kriptografi: Kriptografi Klasik dan Kriptografi Modern
Kriptografi Klasik Kriptografi klasik adalah cara penyamaran berita yang dilakukan oleh orang-orang dulu ketika belum ada komputer. Tujuannya adalah untuk melindungi informasi dengan cara melakukan penyandian. Penyandian dilakukan secara manual. Caranya adalah dengan cara transposisi dan substitusi huruf.
… Pada penggunaan transposisi, posisi huruf diubah-ubah. Sementara pada substitusi, huruf digantikan dengan huruf atau simbol lain sehingga informasi sulit dibaca dan dikenali karena tampak diacak-acak. Contoh Algoritma Kriptografi Klasik: - Kriptografi Caesar - Kriptografi Vigenere - Kriptografi Autokey - Kriptografi Reverse - Kriptografi Colomn
Kriptografi Caesar Merupakan kriptografi paling tua dan sederhana. Menurut sejarah, merupakan cara Julius Caesar mengirimkan surat cinta kepada kekasihnya Cleopatra. Dalam kriptografi Caesar, maka setiap huruf akan dituliskan dalam huruf lain hasil pergeseran 3 buah huruf. Kriptografi Caesar ini adalah kriptografi substitusi karena setiap huruf akan digantikan huruf lain.
Sebagai contoh, huruf A akan digeser 3 huruf menjadi huruf D, B akan digeser 3 huruf menjadi E, J akan digeser menjadi M, O akan menjadi R dan seterusnya. Pergeseran ini juga berputar kembali ke awal abjad sehingga sesudah huruf Z diikuti kembali oleh huruf A. Kriptografi Caesar ini dikenal sebagai monoalphabetic substitution cipher karena satu huruf tertentu pasti akan berubah menjadi huruf tertentu yang lain.
Perubahan pada kriptografi Caesar bisa dituliskan sebagai berikut: Jika Caesar akan menuliskan kalimat “I LOVE YOU” maka akan dituliskan dalam kalimat “L ORYH BRX”.
Jika kita memberi nomor ke pada huruf-huruf abjad dan kita mulai dengan huruf A=0, B=1, C=2 dstnya sampai dengan Z=25, maka kriptografi Caesar memenuhi rumus sebagai berikut: C = (P + 3) mod 26 di mana C adalah nomor abjad ciphertext, P adalah nomor abjad plaintext. Dan dekripsinya adalah; P = (C – 3) mod 26
… Kripotogtafi Caesar ini kemudian berkembang di mana pergeseran tidak hanya 3 huruf tetapi ditentukan oleh suatu kunci yang adalah suatu huruf. Huruf ini yang menentukan pergeseran dari huruf pada plaintext. Jika kunci adalah A maka pergeseran adalah 0, B pergeseran adalah 1, C 2 dan seterusnya. Rumus di atas tetap berlaku tetapi pergeseran huruf ditentukan oleh nilai pergeseran k (lihat tabel 1) dan bisa berubah-ubah sesuai kunci yang digunakan.
Tabel Pergeseran Huruf pada Algoritma Caesar
Rumus-nya Rumus Algoritma Caesar secara umum: C = E(P) = (P + k )mod 26 P = D(C) = (C − k )mod 26 di mana: P = plaintext C = ciphertext k = pergeseran huruf sesuai dengan kunci yang dikehendaki.
Algoritma Reverse Ini adalah contoh kriptografi klasik yang menggunakan transposisi yaitu mengganti satu huruf dengan huruf lain. Ini contoh yang paling sederhana dari transposisi yaitu mengubah suatu kalimat dengan menuliskan setiap kata secara terbalik. Contoh: Plaintext= IBU AKAN DATANG BESOK PAGI Ciphertext= UBI NAKA GNATAD KOSEB IGAP
Algortima Modern Kriptografi yang dilakukan di era komputer dikenal sebagai kriptografi modern yang menggunakan algoritma matematika dan penggunaan kunci yang cukup rumit. Contoh: - Algoritma RSA - Algortima MD5 - Algoritma El Gamal
Algoritma RSA Algoritma RSA merupakan salah satu algoritma kriptografi kunci publik yang saat ini masih populer digunakan. Algoritma RSA diperkenalkan pada tahun 1978 oleh tiga orang profesor MIT (Massachussets Institute of Technology) yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman.
Tahapan dalam RSA Pembangkitan Kunci Untuk membangkitkan kedua kunci, dipilih dua buah bilangan prima yang sangat besar, p dan q. Untuk mendapatkan keamanan yang maksimum, dipilih dua bilangan p dan q yang besar. Kemudian dihitung : n = p.q φ = (p-1) (q-1) φ dibaca Ar-es Pilih bilangan bulat antara 1 dan φ (1 < e < φ) Hitung d hingga d e = 1 (mod φ)
… Misal, akan mengirimkan pesan m. Ubah m menjadi angka n < N. Rumus Enkripsi-nya: Rumus Dekripsi-nya:
Contoh
..
...
Implementasi Konversi Ke Angka (ASCII)
Pembangkitan Bilangan Prima
Pemrosesan Bilangan Prima
Pembangkitan Kunci Publik
Pembangkitan Kunci Private
Hasil Enkripsi:
Hasil Dekripsi:
See You Next Week