T

Text Machine

Alat teks andal, di browser Anda

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.

Kunci sandi

Pengali a

5

Pergeseran b

8

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.

Teks biasa
Teks sandi

Masukkan teks di atas untuk melihat hasilnya di sini.

Alfabet substitusi

Biasa

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

Sandi

I
N
S
X
C
H
M
R
W
B
G
L
Q
V
A
F
K
P
U
Z
E
J
O
T
Y
D

Cara menggunakan Sandi Afin

  1. 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. 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. 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. 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. 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?
Sandi afin adalah sandi substitusi monoalfabet yang mengenkripsi setiap huruf dengan rumus E(x) = (a·x + b) mod 26. Setiap huruf diubah menjadi angka dari 0 sampai 25, dikalikan dengan a, digeser sebanyak b, direduksi mod 26, lalu diubah kembali menjadi huruf. Pasangan angka a dan b adalah kuncinya. Ia menggeneralisasi sandi Caesar dan Atbash serta banyak dipakai untuk mengajarkan matematika di balik kriptografi.
Bagaimana cara kerja sandi afin?
Setiap huruf biasa diubah menjadi angka (A = 0 hingga Z = 25) dan dijalankan melalui E(x) = (a·x + b) mod 26: kalikan dengan kunci a, tambahkan kunci b, ambil sisanya pada pembagian dengan 26, lalu ubah hasilnya kembali menjadi huruf. Perkalian mengacak alfabet dan penjumlahan menggesernya. Dekripsi membalikkan langkah-langkah itu menggunakan invers modular dari a.
Nilai apa saja yang boleh diambil pengali a?
Pengali a harus koprima dengan 26 — tidak berbagi faktor dengannya selain 1 — agar sandi dapat didekode secara unik. Karena 26 = 2 × 13, itu menyingkirkan setiap bilangan genap dan setiap kelipatan 13 serta menyisakan tepat dua belas nilai: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, dan 25. Alat ini hanya membiarkan Anda memilih dari nilai-nilai ini, sehingga kunci Anda selalu dapat dibalik.
Apa itu kunci a dan b dalam sandi afin?
Keduanya adalah dua angka yang mendefinisikan sandi. Pengali a, salah satu dari dua belas nilai yang koprima dengan 26, mengendalikan bagaimana alfabet diacak melalui perkalian, dan pergeseran b, angka berapa pun dari 0 sampai 25, menggeser hasilnya di sepanjang alfabet. Keduanya diperlukan untuk mengenkripsi dan untuk mendekripsi; ubah salah satunya dan seluruh alfabet substitusi berubah.
Bagaimana cara mendekripsi sandi afin?
Dekripsi memakai D(y) = a⁻¹·(y − b) mod 26, di mana a⁻¹ adalah invers modular dari a — angka yang menghasilkan 1 ketika dikalikan dengan a mod 26. Anda mengurangi pergeseran, mengalikan dengan invers, lalu mereduksi mod 26. Alat ini melakukannya secara otomatis: pilih Dekode, masukkan a dan b yang sama yang dipakai untuk mengenkripsi, lalu tempel teks sandinya untuk memulihkan pesan asli.
Bisakah Anda menunjukkan contoh sandi afin terselesaikan?
Dengan a = 5 dan b = 8, kata AFFINECIPHER terenkripsi menjadi IHHWVCSWFRCP. Untuk huruf pertama, A adalah 0, sehingga E(0) = (5·0 + 8) mod 26 = 8 = I; untuk F, yang merupakan 5, E(5) = (5·5 + 8) mod 26 = 7 = H. Untuk mendekode, invers modular dari 5 adalah 21, dan D(8) = 21·(8 − 8) mod 26 = 0 = A, mengembalikan teks asli.
Bagaimana sandi afin terkait dengan sandi Caesar?
Sandi Caesar adalah kasus khusus dari sandi afin di mana pengali a adalah 1. Dengan a = 1 rumus menjadi E(x) = (x + b) mod 26, sebuah pergeseran murni setiap huruf sebanyak b tempat. Mengatur a = 1 dan b = 3 di alat ini mereproduksi pergeseran Caesar klasik yang mengubah A into D, sehingga Anda dapat menganggap Caesar sebagai sandi afin tanpa langkah perkalian.
Bagaimana sandi afin terkait dengan sandi Atbash?
Atbash adalah sandi afin dengan a = 25 dan b = 25. Karena 25 sama dengan −1 mod 26, rumus menjadi E(x) = (25 − x) mod 26, yang membalikkan alfabet sehingga A becomes Z dan Z becomes A. Pilih kunci-kunci itu di alat ini dan alfabet substitusi menunjukkan pembalikan penuhnya, memperagakan bagaimana Atbash hanyalah satu titik dalam ruang kunci sandi afin.
Berapa banyak kemungkinan kunci sandi afin?
Ada dua belas pilihan valid untuk pengali a dan dua puluh enam untuk pergeseran b, memberikan 312 kemungkinan kombinasi kunci. Salah satunya, a = 1 dan b = 0, memetakan setiap huruf ke dirinya sendiri dan membiarkan teks tetap tidak berubah. Ruang kunci yang kecil inilah sebabnya sandi afin dapat dibobol dengan mencoba setiap kunci — yang disebut serangan brute-force — hampir seketika.
Bagaimana cara membobol sandi afin?
Dua metode bekerja dengan mudah. Brute force mencoba semua 312 kunci dan menyimpan yang menghasilkan teks terbaca. Analisis frekuensi memanfaatkan fakta bahwa sandi ini monoalfabet: huruf teks sandi yang paling sering kemungkinan mewakili huruf yang sering muncul seperti E dan T. Jika Anda dapat menebak hanya dua pemetaan huruf teks-biasa-ke-teks-sandi, Anda bahkan dapat menyelesaikan dua persamaan untuk a dan b secara langsung. Ini menjadikan sandi afin memuaskan untuk dibobol sebagai teka-teki.
Apakah sandi afin menjaga spasi, angka, dan tanda baca?
Ya. Hanya 26 huruf A–Z yang disandikan; spasi, angka, tanda baca, dan karakter dari alfabet lain lewat tanpa diubah, dan alat ini mempertahankan huruf besar-kecil asli Anda. Ini berarti tata letak pesan Anda bertahan dari enkripsi, yang nyaman untuk teka-teki tetapi juga memberi penyerang petunjuk tambahan, karena panjang kata dan struktur tetap terlihat.
Apakah teks saya diunggah ke server?
Tidak. Semua proses enkode dan dekode terjadi sepenuhnya di browser Anda, sehingga teks dan kunci Anda tidak pernah diunggah, dicatat, atau disimpan. Bahkan tautan berbagi pun menyimpan teks dan pengaturan Anda di bagian URL setelah tanda pagar, yang tidak pernah dikirim browser ke server, sehingga pesan Anda tetap privat sampai Anda memilih untuk membagikan tautannya.

Alat terkait

Lanjutkan dengan alat praktis ini

Sandi Caesar

Sandi Vigenère

Sandi Atbash

Sandi Rail Fence

Sandi Playfair

Sandi Bacon