Program Caesar Cipher Encryption Decryption Python


Seiring dengan perkembangan ilmu pengetahuan dan teknologi, saat ini tidak sedikit penyedia jasa yang menawarkan layanan kursus programming. Namun bagi yang ingin belajar sendiri, telah banyak tutorial belajar pemrograman (programming) di internet, salah satunya dalam artikel ini.

Tutorial Belajar Pemrograman Python
Dalam penjelasan program ini terdapat beberapa istilah yang tidak dijelaskan secara mendalam, mengingat istilah-istilah tersebut telah diulas sebelumnya dalam pengenalan dasar cryptography. Berikut ini ialah contoh program sederhana yang bisa digunakan untuk encryption atau juga decryption Caesar Cipher suatu pesan dengan menggunakan Python 3.

#Source code encryption decryption Caesar Cipher
#Loki Lang

print("Pilih mode:")
print("1 encrypt")
print("2 decrypt")
mode = int(input())
print("Masukkan key yang dipilih (0 hingga 25):")
key = int(input())
print("Masukkan pesan:")
message = input()
letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
translated = ''
message = message.upper()
for symbol in message:
    if symbol in letters:
        num = letters.find(symbol)
        if mode <= 1:
            num += key
        elif mode >= 2:
            num -= key
        if num >= len(letters):
            num -= len(letters)
        elif num < 0:
            num += len(letters)
        translated += letters[num]
    else:
        translated += symbol
print(translated)




Program ini menawarkan dua pilihan mode operasi, yakni mode encryption dan satu lagi mode decryption. Untuk encryption dengan menggunakan Caesar Cipher, akan menambahkan index suatu huruf dengan key yang dipilih. Langkah-langkah untuk melakukan encryption suatu huruf sebagai berikut.
  • Tentukan key rahasia antara 1 sampai 25
  • Temukan index huruf dari plaintext
  • Tambahkan index huruf dari plaintext dengan key
  • Bila hasil penjumlahan lebih dari 25, hasilnya kemudian dikurangi dengan 26, yakni jumlah huruf dalam alphabet
  • Tentukan index huruf ciphertext
  • Ulangi langkah-langkah yang ada untuk setiap huruf dalam plaintext
Untuk index alphabet yang digunakan huruf A pada index 0, huruf B pada index 1, hingga huruf Z pada index 25. Sebagai contoh huruf L merupakan huruf dengan index 11 dalam alphabet, kemudian diberikan key 9. Maka 11 ditambah 9 ialah 20, dan huruf dengan index 20 dalam alphabet ialah U. Sehingga huruf L dalam plaintext akan disamarkan menjadi U dalam ciphertext. Hal ini berlaku untuk yang lainnya dengan key yang sama. Bila hasil penjumlahan index huruf dengan key lebih dari 25, maka hasilnya tersebut akan dikurangi dengan 26, untuk mendapatkan index huruf ciphertext yang sesuai. Semisal huruf X dengan index 23 mendapatkan key 7. Sehingga 23 ditambah 7 ialah 30, karena lebih dari 25, maka akan dikurangi dengan 26 (sesuai jumlah huruf dalam alphabet), menjadi 4. Huruf dengan index 4 ialah E. Sehingga huruf X pada plaintext diubah dengan key 7, menjadi huruf E pada ciphertext.
Sementara itu untuk decryption dilakukan proses sebaliknya. Dimana index huruf dari ciphertext akan dikurangi dengan nilai key yang dipilih. Bila hasil dari index huruf ciphertext dikurangi key kurang dari 0, maka akan ditambah dengan 26. Sebagai contoh huruf F index 5 pada ciphertext dengan key 6. Dengan 5 dikurangi 6 ialah -1 (kurang dari 0), maka akan ditambah dengan 26. Sehingga -1 ditambah 26 ialah 25, dan huruf dengan index 25 ialah Z. Kesimpulannya ialah huruf F pada ciphertext, dengan key 6, ialah huruf Z pada plaintext.

Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment.