Implementasi Kriptografi Caesar Dengan Python

Ravi Dharmawan
BISA.AI
Published in
3 min readApr 8, 2020

Pada posting sebelumnya, saya membahas tentang konsep kriptografi Caesar. Sesuai janji saya pada post sebelumnya, saya sekarang akan bahas mengenai implementasi kriptografi Caesar dengan menggunakan Python. Mengapa Python? Karena menurut saya bahasa pemrograman Python yang simpel itu cocok untuk mempelajari kriptografi.

1. Fungsi Enkripsi

def caesar_encrypt(data,key):    
res = ""
for x in range(len(data)):
if data[x].isupper():
pos = string.ascii_uppercase.index(data[x]) + key
pos = pos % 26
res += string.ascii_uppercase[pos]
elif data[x].islower():
pos = string.ascii_lowercase.index(data[x]) + key
pos = pos % 26
res += string.ascii_lowercase[pos]
else:
res += data[x]
return res

Di atas merupakan fungsi enkripsi Caesar yang saya beri nama caesar_encrypt. Fungsi ini menerima 2 parameter yaitu parameter data dan parameter key. Parameter data di sini adalah plaintext yang merupakan pesan asli yang belum terenkripsi. Sedangkan parameter key adalah bilangan yang terdiri dari 0–26.

Logika dari program di atas adalah inisialisasi string kosong terlebih dahulu yang bernama res. Kemudian dilakukan perulangan sebanyak panjang string data. Pada saat masuk perulangan, akan ada kondisi yang mengecek apakah karakter termasuk huruf besar, huruf kecil atau bukan keduanya. Jika masuk termasuk huruf besar atau huruf kecil maka akan dilakukan perhitungan sesuai rumus enkripsi kriptografi Caesar.

Yang membedakan antara action 1 dan action 2 adalah, action 1 akan mencari indeks huruf kecil dari parameter data pada huruf abjad kecil sedangkan action 2 akan mencari indeks huruf besar dari parameter data pada huruf abjad besar.

Jika tidak termasuk antara huruf besar dan huruf kecil, maka akan karakter dari parameter data akan langsung digabungkan dengan string res.

2. Fungsi Dekripsi

def caesar_decrypt(data,key):    
res = ""
for x in range(len(data)):
if data[x].isupper():
pos = string.ascii_uppercase.index(data[x]) - key
pos = pos % 26
res += string.ascii_uppercase[pos]
elif data[x].islower():
pos = string.ascii_lowercase.index(data[x]) - key
pos = pos % 26
res += string.ascii_lowercase[pos]
else:
res += data[x]
return res

Di atas merupakan fungsi dekripsi. Saya memberi namanya caesar_decyrpt. Kurang lebih untuk logika perulangannya sama, yang membedakan adalah pada saat dilakukan pengecekan apakah termasuk huruf besar atau huruf kecil, action yang diambil adalah menghitung berdasarkan rumus dekripsi kriptografi Caesar.

Untuk script di atas sudah saya taruh di gist yang bisa didownload di sini https://gist.github.com/ravidhr/aac280a089f322f7e7731ee8558de1bd

Kriptografi Caesar merupakan salah satu kriptografi klasik yang mudah diserang dengan metode Exhaustive Key Search. Apa itu Exhaustive Key Search ? Di post selanjutnya akan saya ulas apa itu Exhaustive Key Search dan implementasinya dalam menyerang kriptografi Caesar.

--

--

Ravi Dharmawan
BISA.AI
Writer for

My name is Ravi. I have strong passion in Cyber Security and Programming.