Sandi Afin
Enkode dan dekode sandi afin menggunakan rumus E(x) = (a·x + b) mod 26. Atur pengali a dan pergeseran b langkah demi langkah, amati alfabet substitusi dan rumus langsung diperbarui, lalu salin, unduh, atau bagikan hasilnya. Semuanya berjalan secara privat di browser Anda.
Pengali a
Pergeseran b
E(x) = (5x + 8) mod 26
Pengali a harus koprima dengan 26, sehingga hanya dua belas nilai yang diizinkan: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, dan 25. Pergeseran b boleh berupa angka berapa pun dari 0 sampai 25.
Masukkan teks di atas untuk melihat hasilnya di sini.
Alfabet substitusi
Biasa
Sandi
Cara menggunakan Sandi Afin
- 1
Pilih enkode atau dekode
Pilih Enkode untuk mengubah teks biasa menjadi teks sandi afin, atau Dekode untuk mengubah teks sandi kembali menjadi teks yang terbaca menggunakan dua kunci yang sama.
- 2
Atur pengali a
Langkahkan pengali a melalui dua belas nilai validnya. Hanya angka yang koprima dengan 26 yang ditawarkan, sehingga sandi selalu dapat dibalik.
- 3
Atur pergeseran b
Langkahkan pergeseran b ke nilai berapa pun dari 0 sampai 25. Rumus langsung dan tabel alfabet substitusi diperbarui begitu Anda mengubahnya.
- 4
Ketik atau tempel teks Anda
Masukkan pesan Anda dan sandi berjalan saat Anda mengetik. Huruf disandikan sedangkan spasi, angka, dan tanda baca lewat tanpa diubah, dan huruf besar-kecil dipertahankan.
- 5
Salin, unduh, atau bagikan
Salin hasilnya, unduh sebagai berkas teks, atau bagikan tautan yang membuka kembali alat ini dengan kunci, teks, dan arah Anda yang persis sama, siap digunakan.
Memahami Sandi Afin
Apa itu sandi afin?
Sandi afin adalah sandi substitusi monoalfabet yang dibangun dari aritmetika modular sederhana. Setiap huruf diubah menjadi angka, dengan A = 0 hingga Z = 25, dilewatkan melalui fungsi linear E(x) = (a·x + b) mod 26, lalu diubah kembali menjadi huruf. Kedua angka a dan b adalah kuncinya: a adalah pengali dan b adalah pergeseran. Karena huruf yang sama selalu dipetakan ke huruf sandi yang sama, sandi afin termasuk dalam keluarga yang sama dengan sandi Caesar dan Atbash, tetapi langkah kalikan-lalu-geser membuatnya lebih umum daripada keduanya.
Namanya berasal dari fungsi afin a·x + b, gabungan dari sebuah perkalian dan sebuah penjumlahan yang memberi sandi ini strukturnya. Ia adalah salah satu sandi paling populer untuk mengajarkan matematika di balik kriptografi, karena menunjukkan bagaimana aritmetika modular, bilangan koprima, dan invers modular berpadu dalam sebuah kode yang berfungsi. Ia juga tamu tetap dalam teka-teki, escape room, dan tantangan capture-the-flag, di mana ruang kuncinya yang kecil membuatnya memuaskan untuk dibobol dengan tangan.
Rumus enkripsi afin
Untuk mengenkripsi, setiap huruf diubah menjadi posisinya dalam alfabet, dengan A = 0, B = 1, dan seterusnya hingga Z = 25. Angka x itu dimasukkan ke dalam rumus E(x) = (a·x + b) mod 26: kalikan dengan a, tambahkan b, lalu ambil sisanya setelah dibagi 26 sehingga hasilnya kembali ke rentang 0 sampai 25. Mengubah angka itu kembali menjadi huruf menghasilkan teks sandi. Mengalikan dengan a meregangkan dan mengacak alfabet, sedangkan menambahkan b menggesernya, dan mod 26 menjaga semuanya tetap di dalam lingkaran 26 huruf.
Alat di atas menampilkan seluruh pemetaan secara sekilas. Tabel alfabet substitusi mendaftar setiap huruf biasa A–Z dengan huruf sandi yang menjadi padanannya di bawah a dan b Anda saat ini, dan ia diperbarui seketika begitu Anda mengubah salah satu kunci. Huruf besar dan kecil dipertahankan, dan apa pun yang bukan huruf — spasi, angka, tanda baca, emoji — lewat begitu saja tanpa diubah, sehingga bentuk pesan Anda tetap terbaca bahkan setelah disandikan.
Memilih kunci a dan b
Pergeseran b itu mudah: ia boleh berupa bilangan bulat berapa pun dari 0 sampai 25. Pengali a adalah yang menarik, karena tidak setiap nilai berfungsi. Agar sandi dapat dibalik, a harus koprima dengan 26, artinya ia tidak berbagi faktor persekutuan dengan 26 selain 1. Karena 26 = 2 × 13, setiap bilangan genap dan setiap kelipatan 13 tersingkir, yang menyisakan tepat dua belas nilai yang dapat dipakai: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, dan 25.
Jika a berbagi faktor dengan 26 — misalnya a = 2 — maka beberapa huruf biasa yang berbeda bertabrakan pada huruf sandi yang sama, dan pesan tidak lagi dapat didekode secara unik. Itulah sebabnya kontrol pengali di atas hanya melangkah melalui dua belas nilai yang valid: mustahil memilih kunci yang tidak dapat dibatalkan. Dengan dua belas pilihan untuk a dan dua puluh enam untuk b, ada 312 kemungkinan kombinasi kunci secara keseluruhan, salah satunya, a = 1 dan b = 0, membiarkan teks tetap tidak berubah.
Contoh afin terselesaikan
Ambil kunci a = 5 dan b = 8 lalu enkripsi kata AFFINECIPHER. Huruf pertama A adalah 0, sehingga E(0) = (5·0 + 8) mod 26 = 8, yaitu I. Huruf berikutnya F adalah 5, sehingga E(5) = (5·5 + 8) mod 26 = 33 mod 26 = 7, yaitu H. Melanjutkan huruf demi huruf melalui seluruh kata menghasilkan teks sandi IHHWVCSWFRCP.
Anda dapat mengikuti setiap langkah pada tabel alfabet substitusi di atas: atur a ke 5 dan b ke 8, dan baris sandi menunjukkan A menjadi I, B menjadi N, C menjadi S, dan seterusnya di sepanjang alfabet. Karena pemetaannya tetap, menyandikan huruf yang sama selalu memberi hasil yang sama — kedua huruf F dalam AFFINE menjadi H — yang persis merupakan sifat yang memungkinkan penyerang memakai analisis frekuensi terhadapnya.
Mendekripsi sandi afin
Dekripsi menjalankan rumus secara terbalik dengan D(y) = a⁻¹·(y − b) mod 26. Bahan barunya adalah a⁻¹, invers modular dari a: angka yang, dikalikan dengan a, menghasilkan 1 mod 26. Untuk a = 5 inversnya adalah 21, karena 5 × 21 = 105 = 4 × 26 + 1. Untuk mendekode Anda mengurangi pergeseran b, mengalikan dengan invers itu, lalu mengambil hasilnya mod 26. Membawa contoh kembali, huruf sandi I adalah 8, dan D(8) = 21·(8 − 8) mod 26 = 0, yaitu A lagi.
Anda tidak perlu menghitung inversnya sendiri. Pilih Dekode di atas, masukkan a dan b yang sama yang dipakai untuk mengenkripsi, lalu tempel teks sandinya — alat ini menemukan invers modularnya dan memulihkan pesan seketika. Karena sandi afin adalah pemetaan satu-ke-satu yang bersih, dekode mengembalikan teks asli Anda persis, dengan spasi, huruf kapital, dan tanda bacanya semua tetap utuh.
Caesar dan Atbash sebagai kasus khusus
Sandi afin diam-diam memuat dua dari sandi klasik yang paling terkenal. Atur pengali a ke 1 dan rumus mengerut menjadi E(x) = (x + b) mod 26, yang persis merupakan sandi Caesar — sebuah pergeseran murni setiap huruf sebanyak b tempat. Dengan a = 1 dan b = 3 Anda memperoleh pergeseran klasik yang konon dipakai oleh Julius Caesar, mengubah A into D dan HELLO menjadi KHOOR.
Atur a = 25 dan b = 25 dan sesuatu yang sama akrabnya muncul. Karena 25 sama dengan −1 mod 26, rumus menjadi E(x) = (25 − x) mod 26, yang membalikkan alfabet sehingga A becomes Z, B becomes Y, dan seterusnya. Itulah sandi Atbash, yang dipakai oleh para juru tulis Ibrani ribuan tahun yang lalu. Melihat kedua sandi terjatuh dari satu rumus adalah cara paling jelas untuk memahami bagaimana sandi afin menggeneralisasi keduanya — cobalah setiap pengaturan di atas dan amati tabel substitusi membenarkannya.
Seberapa aman sandi afin?
Menurut ukuran modern mana pun sandi afin tidak menawarkan keamanan nyata. Dengan hanya 312 kemungkinan kunci — dan bahkan lebih sedikit lagi yang benar-benar mengacak teks — sebuah komputer dapat mencoba setiap kunci dalam sepersekian detik, dan bahkan orang yang sabar dapat membobolnya secara paksa dengan tangan. Sederhananya tidak ada cukup informasi rahasia di dalam dua angka kecil untuk menahan serangan.
Ia juga rentan terhadap analisis frekuensi, karena ia monoalfabet: setiap huruf selalu dipetakan ke huruf sandi yang sama, sehingga huruf teks sandi yang paling sering sangat mungkin mewakili E, huruf yang paling sering dalam bahasa Inggris. Penyerang yang dapat menebak atau mempelajari hanya dua pasang huruf teks-biasa-ke-teks-sandi bahkan dapat menyelesaikan a dan b secara langsung dengan sedikit aljabar. Tidak satu pun dari ini merupakan cacat yang perlu diperbaiki — itulah yang menjadikan sandi afin alat pengajaran yang begitu baik — tetapi untuk melindungi informasi nyata Anda sebaiknya selalu menggunakan algoritma modern yang telah ditelaah sejawat seperti AES.
Pertanyaan yang sering diajukan
Apa itu sandi afin?
Bagaimana cara kerja sandi afin?
Nilai apa saja yang boleh diambil pengali a?
Apa itu kunci a dan b dalam sandi afin?
Bagaimana cara mendekripsi sandi afin?
Bisakah Anda menunjukkan contoh sandi afin terselesaikan?
Bagaimana sandi afin terkait dengan sandi Caesar?
Bagaimana sandi afin terkait dengan sandi Atbash?
Berapa banyak kemungkinan kunci sandi afin?
Bagaimana cara membobol sandi afin?
Apakah sandi afin menjaga spasi, angka, dan tanda baca?
Apakah teks saya diunggah ke server?
Alat terkait
Lanjutkan dengan alat praktis ini