Showing posts with label kriptographi. Show all posts
Showing posts with label kriptographi. Show all posts

Friday, January 12, 2018

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-dekripsi pesan tersandi (cipher teks).

Proses men-dekripsi pesan yang tersandi dengan caesar cipher akan mudah dilakukan jika telah mengetahui kumpulan teks/huruf yang digunakan. Misalnya akan lebih sulit jika huruf yang digunakan adalah kombinasi huruf, angka dan simbol

~!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVXWYZ1234567890 

daripada jika hanya menggunakan A - Z. Karna semakin banyak huruf/simbol yang digunakan maka semakin panjang jumlah kunci yang bisa dibuat.

Program berikut adalah contoh bruto force caesar cipher, menggunakan python.

bruto force caesar cipher, plainteks pada kunci n= 13

Kode Program

#caesarhacker.py

print('masukkan pesan yang akan di-deenkripsi')
pesan=raw_input() #variabel pesan

HURUF='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
#pesan=pesan.upper()

# lakukan looping untuk setiap kemungkinan kunci
for kunci in range(len(HURUF)):

#atur tranlasi ke string kosong agar iterasi (translasi) sebelumnya dikosongkan  
    translasi=''

    for simbol in pesan:
        if simbol in HURUF:
            num=HURUF.find(simbol) #dapatkan no.urut dari simbol pada pesan
            num=num - kunci

            if num < 0:
                num = num+len(HURUF)
            translasi=translasi+HURUF[num]  
        else:
            translasi=translasi+simbol


    print('kunci#%s :%s'%(kunci,translasi)) 


======================
Source code program telah dimodifikasi, bersumber pada buku "Hacking Secret cipher with python", AI Sweigart.

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.

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...