Kriptografi, sebagai ilmu dan seni mengamankan informasi rahasia, telah menjadi bagian tak terpisahkan dari sejarah manusia. Sebelum era computer modern, algoritma kriptografi disebut sebagai kriptografi klasik. Kriptografi klasik adalah cara orang-orang terdahulu melindungi pesan rahasia mereka dan juga menjadi landasan bagi pengembangan teknik kriptografi modern yang lebih kompleks saat ini. Salah satu bentuk kriptografi klasik yang paling terkenal adalah sandi substitusi. Dalam sandi substitusi, setiap huruf dalam pesan digantikan dengan huruf lain berdasarkan aturan tertentu. Sebagai contoh, salah satu bentuk sandi substitusi yang terkenal adalah sandi Caesar Cipher, yang dinamai dari Julius Caesar. Dalam sandi ini, setiap huruf digeser sejumlah langkah tertentu dalam alfabet. Misalnya, jika geserannya adalah 3, maka huruf A akan digantikan dengan huruf D, huruf B dengan huruf E, dan seterusnya. Pesan yang telah dienkripsi dengan sandi Caesar hanya dapat dibaca oleh orang yang mengetahui aturan geseran tersebut. Namun, sandi substitusi memiliki kelemahan yang dapat dieksploitasi. Jika seseorang berhasil menebak aturan penggantian yang digunakan, mereka dapat dengan mudah membaca pesan yang dienkripsi. Berikut ini implementasi sandi Caesar Cipher dengan pemrograman python.
encrypted_text = ""
for char in text:
if char.isalpha():
if char.islower():
encrypted_text += chr((ord(char) - ord('a') + shift) % 26 + ord('a'))
else:
encrypted_text += chr((ord(char) - ord('A') + shift) % 26 + ord('A'))
else:
encrypted_text += char
return encrypted_text
def decrypt(encrypted_text, shift):
decrypted_text = ""
for char in encrypted_text:
if char.isalpha():
if char.islower():
decrypted_text += chr((ord(char) - ord('a') - shift) % 26 + ord('a'))
else:
decrypted_text += chr((ord(char) - ord('A') - shift) % 26 + ord('A'))
else:
decrypted_text += char
return decrypted_text
plain_text = input("Masukkan pesan: ")
shift_amount = int(input("Masukkan jumlah pergeseran(Sandi): "))
encrypted = encrypt(plain_text, shift_amount)
print("Pesan terenkripsi:", encrypted)
decrypted = decrypt(encrypted, shift_amount)
print("Pesan terdekripsi:", decrypted)