caesar cipher bekerja dengan cara menggeser huruf sesuai dengan besar kunci yang digunakan. Jika panjang text/string yang digunakan adalah 26 (A-Z), maka besar pergeseran yang bisa dilakukan dimulai dari 0 - 25.
Formula enkripsi caesar cipher secara matematis dapat dituliskan sebagai :
E = Enkripsi
x = nomor urut string/huruf yang akan di-enkripsi
n = nilai kunci yang digunakan
Formula untuk melakukan dekripsi pesan :
Mengapa menggunakan mod 26? karna abjad yang digunakan A - Z, jika yang digunakan adalah kombinasi huruf dan simbol tentu saja akan lebih besar dan panjang kunci juga berbeda.
Contoh program Enkripsi menggunakan python ;
Source Code program dalam python
# Tuliskan pesan yang akan di enkripsi
print('Tulis Pesan = ')
message = raw_input()
# Masukkan kunci pergeseran
key = input('Masukkan kunci = ')
# pilih mode
mode = 'encrypt' # set to 'encrypt' or 'decrypt'
# every possible symbol that can be encrypted
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# simpan pesan terenkripsi
translated = ''
# setiap input pesan akan diubah menjadi hurup kapital
message = message.upper()
# Jalankan algoritma untuk enkripsi/dekripsi
for symbol in message:
if symbol in LETTERS:
# get the encrypted (or decrypted) number for this symbol
num = LETTERS.find(symbol) # get the number of the symbol
if mode == 'encrypt':
num = num + key
elif mode == 'decrypt':
num = num - key
# code dibawah untuk mengatisipasi jika nilai int lebih # dari panjang huruf (26) atau kurang dari 0 (negatif)
if num >= len(LETTERS):
num = num - len(LETTERS)
elif num < 0:
num = num + len(LETTERS)
translated = translated + LETTERS[num]
else:
translated = translated + symbol
# print hasil enkripsi ke monitor
print(translated)
--------------------------------------Jika kumpulan huruf yang digunakan adalah
~!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
Source code program telah dimodifikasi, bersumber pada buku "Hacking Secret cipher with python", AI Sweigart.
No comments:
Post a Comment