presentasi tugas besar konsep pemrograman: vigenère

21
VIGENÈRE Oleh: Adnan Widya Iswara (M0513003) Fembi Rekrisna Grandea Putra (M0513019) Khavid Wasi Triyoga (M0513026)

Upload: fembi-rekrisna-grandea-putra

Post on 15-Apr-2017

943 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

VIGENÈRE

Oleh:Adnan Widya Iswara (M0513003)

Fembi Rekrisna Grandea Putra (M0513019)Khavid Wasi Triyoga (M0513026)

Page 2: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Algoritma Vigenere Cipher adalah metode menyandikan teks alfabet dengan menggunakan deretan sandi Caesar berdasarkan huruf-huruf pada kata kunci. Sandi Vigenère merupakan bentuk sederhana dari sandi substitusi polialfabetik. Kelebihan sandi ini dibanding sandi Caesar dan sandi monoalfabetik lainnya adalah sandi ini tidak begitu rentan terhadap metode pemecahan sandi yang disebut analisis frekuensi. Giovan Batista Belaso menjelaskan metode ini dalam buku La cifra del. Sig. Giovan Batista Belaso (1553); dan disempurnakan oleh diplomat Perancis Blaise de Vigenère, pada 1586. Pada abat ke-19, banyak orang yang mengira Vigenère adalah penemu sandi ini, sehingga,

sandi ini dikenal sebagai "sandi Vigenère". Sandi ini dikenal luas karena cara kerjanya

mudah dimengerti dan dijalankan, dan bagi para pemula sulit dipecahkan. Pada saat kejayaannya, sandi ini dijuluki le chiffre indéchiffrable (bahasa Prancis: 'sandi yang tak terpecahkan'). Metode pemecahan sandi ini baru ditemukan pada abad ke-19. Pada tahun 1854, Charles Babbage menemukan cara untuk memecahkan sandi Vigenère. Metode ini dinamakan tes Kasiski karena Friedrich Kasiski-lah yang pertama mempublikasikannya.

Latar Belakang

Page 3: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Algoritma

Page 4: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Plaintext: INFORMATIKA Key: MIPACiphertext: UVUODUPTUSP 

Perumpamaan

Page 5: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Huruf pertama pada plaintext I, disandikan

dengan menggunakan baris kunci M, huruf pertama pada kata kunci. Pada baris M dan kolom I di tabel Vigenère terdapat huruf U. Demikian pula untuk huruf kedua, digunakan huruf yang terletak pada baris I (huruf kedua kata kunci) dan kolom N (huruf kedua kata plantext), yaitu huruf V.

Cara Enkripsi/Penyandian

Page 6: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Proses sebalinya (disebut dekripsi), dilakukan dengan

mencari huruf teks bersandi pada baris berjudul huruf dari kata kunci. Misalnya pada contoh di atas untuk huruf pertama kita mencari huruf U (huruf pertama Ciphertext) pada baris M (huruf pertama pada kata kunci) yang terdapat pada kolom U, sehingga huruf pertama adalah I. Lalu V (huruf kedua Ciphertext) terdapat pada baris I (huruf pertama pada kata kunci) di kolom V, sehingga diketahui huruf kedua teks terang adalah N, dan seterusnya hingga semua terdekripsi menjadi INFORMATIKA.

Cara Dekripsi/Membaca

Page 7: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Tabel ASCII

Go to web

Page 8: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Tabel Vigenere

Page 9: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Perhitungan Vigenere

EnkripsiEnkripsi (penyandian) dengan sandi Vigenère juga dapat dituliskan secara matematis, dengan menggunakan penjumlahan dan operasi modulus, yaitu:

atau Ci = Pi + Ki kalau jumlah dibawah 26 & - 26 kalau hasil jumlah di atas 26

Dekripsi Dekripsi

Dimana: Ci = nilai desimal karakter ciphertext ke-i Pi = nilai desimal karakter plaintext ke-i Ki = nilai desimal karakter kunci ke-i

Nilai desimal karakter: A=0 B=1 C=2 ... Z=25

Page 10: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Header

AnalisaHeader <ctype.h> digunakan untuk pengecekan dan konversi terhadap sebuah karakter, bukan string.

Page 11: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Input Menu

AnalisaMenu 1 untuk memilih enkripsi.Menu 2 untuk memilih dekripsi.Menu 3 untuk keluar program.

Page 12: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Buka File Enkripsi

Page 13: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Enkripsi File

Page 14: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Enkripsi Teks

Page 15: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Analisa

for(i=0,j=0; i<strlen(masukan); i++,j++) { if(j>=strlen(kunci)) { j=0; } encription = 65+(((toupper(masukan[i])-65)+(toupper(kunci[j])-65))%26); if (encription < 65) encription = 32; printf("%c",encription); }

Strlen(masukan) digunakan untuk mengubah karakter huruf menjadi kode karakter pada ASCII

Mengapa menggunakan angka 65? Karena karakter huruf kapital pada ASCII dimulai dari 65 (A).

If (encription < 65), gunanya untuk menjadikan karakter yang bukan string menjadi spasi. Pada ASCII spasi kodenya 32

Page 16: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Contoh Proses

Enkripsi Contoh kalimat yang

dimasukan : Kita sedang belajar vigenere

Plain Text Kita sedang belajar vigenere

Key informatikaciphertext SVYO EEWIXG

OJZRVAK FIORSSIQ

Page 17: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Buka File Dekripsi

Page 18: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Dekripsi File

Page 19: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Dekripsi Teks

Page 20: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

Analisa

for(i=0,j=0; i<strlen(masukan); i++,j++) { if(j>=strlen(kunci)) { j=0; } hasil = (toupper(masukan[i])-65)-(toupper(kunci[j])-65); if( hasil < 0) { hasil = 26 + hasil; } keluaran = 65 + (hasil % 26); if (keluaran < 65) keluaran = 32; printf("%c",keluaran); }

If (j>=strlen(kunci) untuk mengulang key bila sudah berakhir.Mengapa menggunakan hasil+=26 ?Karena jika keluaran negatif, kita harus memutar ulang (ex : z, y, x). Jadi ditambahkan 26 supaya keluaran negatif akan menjadi karakter aslinya.

Page 21: Presentasi Tugas Besar Konsep Pemrograman: Vigenère

どうも ぁりガとう ございます

Merci