Vigenere cipher menggunakan bahasa C.
Sandi Vigenère 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 luas sebagai "sandi Vigenère".(Wikipedia)
Blaise de Vigenère
Intinya gampang kok, sama seperti cesar cipher yg di tambah varieble K untuk cipher textnya. Vigenere menggunakan Key yang di increment sepanjang plain text.
atau C = P + K kalau jumlah dibawah 26 & - 26 kalau hasil jumlah di atas 26
Misal:
P=UNIVERSITAS
K=NIAM
Maka K di increment sepanjang P.
K=NIAMNIAMNIA
Setiap karakter di P pada urutan ke i di tambah karakter di K pada urutan ke i pula. dan dimodulo 26.
C= HVIHRZSUGIS
dan dekripsi,
atau P = C - K kalau hasilnya positif & + 26 kalau hasil pengurangan minus
Keterangan: adalah huruf ke-i pada teks tersandi, adalah huruf ke-i pada teks terang, adalah huruf ke-i pada kata kunci, dan adalah operasi modulus (sisa pembagian).
PROGRAM
- Pada folder project anda buatlah 3 file txt. "Plain.txt",untuk menampung Plain text yg akan di enkripsi, "Cipher.txt",untuk menampung Cipher text hasil enkripsi dari Plain.txt,"Plain2.txt",untuk menampung Plain text hasil dari dekripsi Cipher.txt.
- Misalkan, Isi Plain.txt dengan "vigenere cipher".
- Membuat menu program utama.
- Membuat fungsi ChartoInt untuk mengubah Karakter(a-z) menjadi bilangan integer(0-25). kurang lebih seperti ini fungsinya. silahkan dilanjut sendiri sampai karakter z dengan nilai 25.
- Membuat fungsi InttoChar untuk mengubah bilangan integer(0-25) menjadi Karakter(a-z).yang ini juga silahkan dilanjut sendiri..... :)
- Membuat fungsi IsSimbol untuk menentukan apakah karakter yang di baca bukan merupakan abjad.
- Membuat prosedur Enkripsi()
- Prosedur Dekripsi()
proses hampir sama seperti enkripsi, yang membedakan cuma proses pengurangan nya.
Apabila masih kurang jelas silahkan download sourcecode lengkapnya disini.
Semoga apa yang saya bagikan dapat bermanfaat bagi kita semua. bila ada pertanyaan silahkan di ajukan di komentar.
Wassalamualaikum wr. wb.
Tidak ada komentar:
Posting Komentar