Penulis: Leo Martinez III - LinkedIn
Hubungi: [email protected]
Dibuat: Musim Semi 2024
Program Python ini mengimplementasikan Affine Cipher, sejenis sandi substitusi, untuk mengenkripsi dan mendekripsi pesan. Affine Cipher menggunakan sepasang kunci, alfa (a) dan beta (b), untuk mengubah teks biasa menjadi teks sandi dan sebaliknya.
Rumus enkripsi diberikan oleh: E(x) = (ax + b) mod m, dimana x adalah indeks huruf teks biasa, a dan b adalah kunci, dan m adalah ukuran alfabet.
Program ini menangani ketidakpekaan huruf besar-kecil dan mengabaikan spasi pada input.
Ciphertext dihasilkan dengan mengkonversi setiap huruf dari plaintext menggunakan transformasi affine.
Rumus dekripsi diberikan oleh: D(y) = (a_inv * (y - b)) mod m, di mana y adalah indeks huruf ciphertext, a_inv adalah invers perkalian modular dari a, b adalah kuncinya, dan m adalah invers perkalian modular dari a, b adalah kuncinya, dan m adalah invers perkalian modular dari a, b adalah kuncinya, dan m adalah ukuran alfabet.
Mirip dengan enkripsi, program ini menangani ketidakpekaan huruf besar-kecil dan mengabaikan spasi pada input.
Program ini meminta pengguna untuk memilih antara enkripsi ('e') atau dekripsi ('d').
Pengguna memasukkan nilai alfa (a) dan beta (b), memastikan nilai tersebut berada dalam rentang yang valid.
Pemeriksaan GCD (Pembagi Persekutuan Terbesar) dilakukan untuk memastikan masukan yang valid.
Contoh nilai untuk ciphertext dan plaintext disediakan untuk tujuan pengujian.
Program dibuat di Google Colab dengan Python 3.9
Segala sesuatu yang diperlukan beserta informasi instalasi tambahan untuk menjalankan program akan terkandung dalam folder ini.
Berikut penjelasan singkat mengenai item tersebut:
src: folder yang berisi source code script python: main.py (gunakan file ini untuk menjalankan program)
README.md: berisi informasi paling dasar tentang proyek
LISENSI: Berisi informasi lisensi sehubungan dengan repositori Github
Selain itu, pastikan python "matematika" diinstal dengan benar di lingkungan virtual Anda karena metode .gcd() diperlukan untuk memastikan pemeriksaan kesalahan guna membantu integritas dekripsi.