Thursday, January 11, 2018

Belajar kriptographi : Caesar cipher

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

Belajar Kriptographi : Bruto Force Caesar Cipher

Pada tulisan sebelumnya telah dibawas tentang penyandian menggunakan caesar cipher. kali ini akan coba dijelaskan bruto force untuk men-de...