Sejalan dengan sejarah kriptografi yang panjang, algoritma kriptografi sudah ada jauh sebelum adanya komputer itu sendiri. Pada zaman dahulu sebelum komputer ada, enkripsi plainteks menjadi cipherteks atau sebaliknya dekripsi cipherteks menjadi plainteks dilakukan menggunakan alat tulis sederhana seperti pensil dan kertas. Enkripsi dilakukan terhadap pesan dengan beberapa cara tanpa algoritma matematika yang rumit. Saat itu, sistem yang digunakan hanya sistem simetris yaitu menggunakan satu kunci karena masa-masa itu masih jauh dari saat ditemukannya konsep asimetris dan hash.
Metode enkripsi dan dekripsi yang dilakukan pada zaman kriptografi klasik umumnya dengan dua cara yaitu :
- Substitusi yaitu mengganti karakter huruf plainteks dengan karakter huruf lainnya dalam alpahabet menjadi huruf cipherteks. contohnya setiap huruf a dalam plainteks diganti dengan huruf d saat menjadi cipherteks.
- Transposisi yaitu teknik memperoleh cipherteks dengan cara menggeser susunan huruf di dalam plainteks. (Akan kita bahas pada artikel selanjutnya.
Algoritma kriptografi klasik tidak lagi digunakan pada saat ini karena dianggap sudah tidak aman. Seiring berkembangnya ilmu pengetahuan, pada saat ini telah banyak dikembangkan algoritma kriptografi modern. Namun masih ada beberapa kalangan yang menggunakan algoritma kriptografi klasik untuk memodifikasi algoritma modern supaya algoritma yang dimodifikasi lebih kuat dalam mengamankan pesan atau sistem.
Walaupun algoritma kriptografi klasik sudah jarang digunakan namun masih perlu untuk dipelajari karena algoritma kriptografi klasik adalah dasar dalam membangun algoritma kriptografi modern. Selain itu, agoritma kriptografi klasik juga merupakan konsep dasar kriptografi dan dapat digunakan memahami potensi-potensi kelemahan dalam sistem keamanan.
Baca Juga Dasar-dasar Kriptografi dan Sistem Keamanan Komputer
Jenis-Jenis Cipher Substitusi
Seperti yang telah kita bahas, salah satu teknik kriptografi klasik adalah substitusi. Teknik ini paling banyak melahirkan algoritma kriptografi klasik. Jenis dari cipher substitusi adalah sebagai berikut :
Cipher Abjad Tunggal
Cipher abjad tunggal atau monoalphabetic cipher disebut juga cipher substitusi sederhana karena teknik ini paling sederhana dan paling tua usianya. Pada cipher abjad tunggal Satu huruf di plainteks diganti dengan satu huruf yang bersesuaian.
Contoh :
Bangkitkan kunci dengan membuat sebuah kalimat, misalnya : “saya sangat suka belajar ilmu komputer”
Dari kunci tersebut buanglah perulangan huruf sehingga menjadi : “sayngtukbeljrimop”
selanjutnya tambahkan huruf-huruf lain yang belum ada sesuai urutan alfabet. Maka kunci menjadi : “sayngtukbeljrimopcdfhqvwxyz”
Mari kita buat tabel substitusinya :
Misal sebuah plainteks : kita akan bunuh dia pada jam delapan malam
Maka cipherteksnya sesuai table di atas menjadi : lbfs slsi ahihk nbs osns esr ngjsosi rsjsr
Nah dari cipherteks yang dihasilkan dapat kita lihat bahwa sangat mudah untuk dipecahkan. Melihat dari frekuensi kemunculan huruf saja kita sudah bisa menebak hurus s paling sering muncul.
Caesar Cipher
Caesar cipher adalah substitusi cipher yang pertama dalam dunia penyandian. Dinamakan Caesar cipher karena digunakan pada pemerintahan Julius Caesar untuk berkomunikasi dengan para panglimanya. Caesar cipher tergolong ke dalam cipher abjad tunggal dimana susunan huruf cipherteks diperoleh dengan menggeser huruf-huruf alpabet sejauh 3 karakter. Namun semakin berkembangnya algoritma ini dimasa itu dibuatlah Caesar wheel yaitu sebuah alat lempeng yang terdiri dari dua buah lingkaran besi yang diisi huruf-huruf plainteks dan cipherteks. Lingkaran dalam sebagai huruf cipherteks dan lingkaran luar sebagai huruf plainteks. Kemudian lingkaran dalam ini dapat diputar sehingga menghasilkan jumlah pergeseran huruf yang diinginkan. Oleh karena itu pergeseran huruf pada caesar cipher tidak lagi hanya tiga huruf saja.
Contoh Caesar cipher
Transformasi Caesar Chiper dapat direpsentasikan dengan menyelaraskan plaintext dengan chipertext ke kiri atau kanan sebanyak jumlah pergeseran yang diinginkan. Sebagai contoh dengan jumlah pergeseran sebanyak 3.
Plaintext : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ciphertext : DEFGHIJKLMNOPQRSTUVWXYZABC
Untuk membaca pesan yang dienkripsi penerima dapat menyelaraskan huruf chipertext yang diterima dengan plaintext yang tepat berada di atasnya. Sebagai contoh dekripsinya sebagai berikut.
Ciphertext : WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
Plaintext : THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Caesar cipher dapat ditransformasikan ke dalam fungsi matematis dengan cara mengkodekan setiap alfabet ke dalam bentuk angka sebagai berikut :
Kemudian dapat dirumuskan sebagai berikut :
Anggaplah plainteks = P, Cipherteks = C, kunci = K, Enkripsi = E, dan dekripsi = D. Jadi rumusnya dapat dibuat :
C = E(P) = (P+K)mod 26
P=D(C) = (C-K)mod 26
Penjelasan :
Untuk menghasilkan cipherteks saat enkripsi maka plainteks ditambahkan dengan kunci kemudian di mod atau modulo/sisa hasil bagi dengan 26 (karena jumlah alfabet adalah 26). Demikian sebaliknya saat mendekripsikan maka cipherteks dikurang dengan kunci dan modulo 26.
Contoh soal :
plainteks : CINTA, enkripsikanlah dengan caesar cipher kunci 5!
Enkripsi :
Pertama ubahlah huruf menjadi angka dengan pedoman tabel di atas :
C = 2, I = 8, N = 13, T = 19, A = 0. Kemudian hitung dengan rumus enkripsi :
C = E(2) = (2+5) = 7 mod 26 = 7(H)
C = E(8) = (8+5) = 13 mod 26 = 13(N)
C = E(13) = (13+5) = 18 mod 26 = 18(S)
C = E(19) = (19+5) = 24 mod 26 = 24(Y)
C = E(0) = (0+5) = 5 mod 26 = 5(F)
Cipherteks keseluruhan adalah : HNSYF
Dekripsi :
Untuk mendekripsikan kembali kita membutuhkan kunci yaitu 5 (kunci yang sama dengan saat enkripsi) dan kembali kita ubah bentuk huruf ke dalam angka dengan pedoman tabel di atas:
H : 7, 13 = N, 18 = S, 24 = Y, 5 = F. Kemudian hitung dengan rumus dekripsi :
P=D(7) = (7-5) = 2 mod 26 = 2(C)
P=D(13) = (13-5) = 8 mod 26 = 8(I)
P=D(18) = (18-5) = 13 mod 26 = 13(N)
P=D(24) = (24-5) = 19 mod 26 = 19(T)
P=D(5) = (5-5) = 0 mod 26 = 0(A)
Maka didapatlah plainteks kembali yaitu CINTA
Affine Cipher
Affine cipher merupakan perluasan dari Caesar Cipher dimana plainteks atau P dikalikan dengan sebuah nilai m lalu ditambahkan hasilnya dengan sebuah nilai b. Yuk langsung lihat contoh saja :
RUMUS
Enkripsi: C = mP + b (mod n)
Dekripsi: P = m–1 (C – b) (mod n)
CONTOH SOAL
Enkripsilah sebuah kata berikut menggunakan algoritma klasik Affine Cipher dan dekrip kembali dengan ketentuan :
Plainteks : KRIPTO
m = 7 (Nilai m ini dibuat sendiri dengan ketentuan angka harus relatif prima dengan 26)
b = 10 (Angka ini juga dibuat sendiri seperti kunci)
Enkripsi :
Proses pertama sama seperti pada Caesar Cipher ubahlah plainteks ke dalam bentuk angka (K=10, R=17, I=8, P=15, T=19, O=14)
kemudian hitunglah dengan rumus enkripsi : Enkripsi: C = mP + b (mod n)
p1(10)= c1 =(7 x 10 + 10) = 80 mod 26 = 2(C)
p2(17)= c2 =(7 x 17 + 10) = 129 mod 26 = 25(Z)
p3(8)= c3 =(7 x 8 + 10) = 66 mod 26 = 14(O)
p4(15)= c4 =(7 x 15 + 10) = 115 mod 26 = 11(L)
p5(19)= c5 =(7 x 19 + 10) = 143 mod 26 = 13(N)
p6(14)= c6 =(7 x 14 + 10) = 108 mod 26 = 4(E)
Maka cipherteks adalah : CZOLNE
Dekripsi :
Sama seperti pada Caesar Cipher, huruf tersebut diganti terlebih dahulu ke dalam bentuk angka (C=2, Z=25, O=14, L=11, N=13, E=4)
Kemudian pada proses dekripsi, nilai m harus dipecahkan dengan mencari nilai kongruen lanjar. Yaitu 7 dikali berapa yang hasilnya jika di mod dengan 26 adalah 1.
Solusinya: 15, sebab 7 × 15 = 105 mod 26=1
Selanjutnya lakukan dekripsi dengan rumus : Dekripsi: P = m–1 (C – b) (mod n)
c1(2)= p1 =15 (2 – 10) = -120 mod 26 = 10(K)
c2(25)= p2 =15 (25 – 10) = 225 mod 26 = 17(R)
c3(14)= p3 =15(14 – 10) = 60 mod 26 = 8(I)
c4(11)= p4 =15(11 – 10) = 15 mod 26 = 15(P)
c5(13)= p5 =15(13 – 10) = 45 mod 26 = 19(T)
c6(4)= p6 =15(4 – 10) = -90 mod 26 = 14(O)
Maka di dapatlah hasil dekripsi yaitu ; KRIPTO
Untuk menambah pemahaman mengenai algoritma Caesar Cipher dan Affine Cipher, silahkan tonton video berikut :
[…] yang sudah kita bahas sebelumnya pada Algoritma Kriptografi Klasik ada dua jenis metode yaitu Substitusi dan Transposisi. Kali ini kita akan membahas jenis dari […]