Sandi Hill
Enkode dan dekode sandi Hill, sandi poligrafik klasik yang dibangun di atas aljabar linear. Huruf dikelompokkan menjadi blok, diubah menjadi vektor angka, dan dikalikan dengan sebuah matriks kunci modulo 26: pengenkripsian adalah C = K·P, pendekripsian adalah P = K⁻¹·C. Pilih kunci 2×2 atau 3×3, amati matriks langsung, determinannya, dan invers modularnya, lalu ikuti rincian blok demi blok. Semuanya berjalan di browser Anda.
Kunci (huruf)
Kunci terdiri dari 4 huruf (A=0 … Z=25) yang mengisi matriks baris demi baris. Kunci 2×2 menyandikan huruf berpasangan (digraf).
Masukkan teks di atas untuk melihat hasilnya di sini.
Matriks kunci
Setiap blok huruf menjadi sebuah vektor (A=0 … Z=25) dan dikalikan dengan matriks kunci modulo 26. Sebuah kunci hanya berfungsi bila determinannya dapat diinverskan mod 26.
C = K · P (mod 26)
Masukkan tepat 4 huruf (A–Z) untuk mengisi matriks kunci.
Cara menggunakan Sandi Hill
- 1
Pilih enkode atau dekode dan ukuran matriks
Pilih Enkode untuk mengenkripsi atau Dekode untuk mendekripsi, lalu pilih kunci 2×2 (huruf berpasangan) atau kunci 3×3 (huruf bertiga).
- 2
Masukkan kunci sebagai huruf
Ketik huruf-huruf kunci yang mengisi matriks baris demi baris — empat huruf untuk kunci 2×2, sembilan untuk kunci 3×3. Matriks langsung menampilkan determinan dan memberi tahu Anda apakah kunci dapat diinverskan mod 26.
- 3
Ketik atau tempel teks Anda
Masukkan pesan Anda dan ia dikonversi saat Anda mengetik. Panel rincian menampilkan setiap blok sebagai vektor, perkalian matriksnya, dan blok yang dihasilkan.
- 4
Periksa matriks kunci dan inversnya
Buka panel matriks kunci untuk melihat kunci, determinannya, dan — ketika kunci valid — matriks invers modular yang dipakai untuk pendekodean.
- 5
Salin, unduh, atau bagikan
Salin hasilnya, unduh sebagai berkas teks, atau bagikan tautan yang membuka kembali alat ini dengan teks, kunci, ukuran, dan arah Anda yang persis sama, siap digunakan.
Memahami Sandi Hill
Apa itu sandi Hill?
Sandi Hill adalah sandi substitusi poligrafik klasik yang ditemukan oleh matematikawan Amerika Lester S. Hill pada 1929. Alih-alih mengganti satu huruf setiap kali, ia menyandikan satu blok huruf utuh secara bersamaan dengan memperlakukan blok itu sebagai vektor angka dan mengalikannya dengan matriks kunci rahasia, modulo 26. Ia adalah sandi praktis pertama yang mampu bekerja pada lebih dari tiga simbol sekaligus, dan ia membawa aljabar linear secara langsung ke dalam kriptografi.
Karena setiap huruf keluaran bergantung pada setiap huruf masukan dalam bloknya, sandi Hill menyembunyikan frekuensi huruf tunggal yang membocorkan sandi yang lebih sederhana. Kunci 2×2 mengaduk huruf berpasangan, kunci 3×3 mengaduknya bertiga, dan matriks yang lebih besar mengaduk blok yang lebih besar lagi. Difusi itu adalah gagasan yang sama yang mendasari sandi blok modern, yang menjadikan sandi Hill contoh pengajaran favorit — meskipun, sebagai sandi linear, ia mudah dipecahkan dengan sedikit teks biasa yang diketahui.
Cara kerja sandi Hill
Pertama, ubah huruf menjadi angka dengan A=0, B=1, hingga Z=25. Kunci adalah matriks n×n dari angka-angka semacam itu; di sini Anda mengetiknya sebagai deretan huruf yang mengisi matriks baris demi baris, sehingga kunci 2×2 memerlukan empat huruf dan kunci 3×3 memerlukan sembilan. Teks biasa dipecah menjadi blok berisi n huruf, masing-masing ditulis sebagai vektor kolom.
Untuk mengenkripsi sebuah blok P, hitung C = K · P (mod 26): kalikan matriks kunci dengan vektor dan reduksi setiap entri modulo 26, lalu baca angka-angkanya kembali sebagai huruf. Untuk mendekripsi, Anda memerlukan invers modular dari matriks kunci, K⁻¹, dan menghitung P = K⁻¹ · C (mod 26). Invers hanya ada ketika determinan matriks dapat diinverskan modulo 26 — yaitu, ketika ia tidak berbagi faktor bersama dengan 26 — yang merupakan aturan paling penting saat memilih kunci.
Memilih matriks kunci yang valid
Tidak setiap matriks bisa menjadi kunci Hill. Agar pendekripsian berhasil, determinan kunci, yang diambil modulo 26, harus koprima dengan 26. Karena 26 = 2 × 13, determinannya harus ganjil dan bukan kelipatan 13; nilai yang diizinkan adalah dua belas angka 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25. Jika determinannya genap atau sama dengan 13, tidak ada invers modular dan teks sandi tidak dapat didekode secara unik.
Alat ini menghitung determinan untuk Anda dan menampilkan lencana hijau ketika kunci dapat diinverskan atau lencana merah ketika tidak, di samping matriks invers yang akan dipakainya untuk pendekodean. Jika sebuah kunci ditolak, ubah satu atau dua huruf dan amati determinan diperbarui hingga ia mendarat pada nilai yang valid. Umpan balik langsung ini mengubah pekerjaan memilih kunci Hill dengan tangan yang biasanya merepotkan menjadi latihan visual yang cepat.
Contoh 2×2 terselesaikan
Ambil kunci DDCF, yang mengisi matriks 2×2 dengan angka 3, 3 pada baris atas dan 2, 5 pada baris bawah. Determinannya adalah 3×5 − 3×2 = 9, dan karena 9 koprima dengan 26, kunci itu valid. Sekarang enkripsi HELP. Blok pertama HE adalah vektor (7, 4): perkaliannya memberi (3×7 + 3×4, 2×7 + 5×4) = (33, 34), yang direduksi mod 26 menjadi (7, 8) = HI.
Blok kedua LP adalah (11, 15), memberi (3×11 + 3×15, 2×11 + 5×15) = (78, 97) = (0, 19) = AT. Jadi HELP terenkripsi menjadi HIAT. Untuk mendekripsi, alat ini menginverskan kunci menjadi (15, 17 / 20, 9) dan mengalikan setiap blok sandi dengannya, memulihkan HELP. Ketik DDCF sebagai kunci di atas untuk mengamati setiap langkah muncul di panel rincian langsung.
Contoh 3×3 terselesaikan
Contoh 3×3 klasik memakai kunci GYBNQKURP, yang mengisi matriks dengan 6, 24, 1 pada baris pertama, 13, 16, 10 pada baris kedua, dan 20, 17, 15 pada baris ketiga. Mengenkripsi trigraf ACT — vektor (0, 2, 19) — memberi (67, 222, 319) sebelum reduksi, yang menjadi (15, 14, 7) modulo 26, atau POH.
Determinan matriks ini adalah 25 modulo 26, yang koprima dengan 26, sehingga ia adalah kunci yang valid, dan invers modularnya adalah matriks (8, 5, 10 / 21, 8, 21 / 21, 12, 8). Mengalikan blok sandi POH dengan invers itu mengembalikan ACT. Alihkan pemilih ukuran ke 3×3 dan masukkan GYBNQKURP untuk mereproduksi contoh buku teks ini serta melihat matriks invers yang diturunkan alat ini.
Pengisian, huruf, dan format
Sandi Hill hanya mengenal 26 huruf A–Z, sehingga spasi, angka, dan tanda baca dibuang sebelum pengenkripsian dan tidak kembali ketika Anda mendekripsi. Karena pesan diproses dalam blok berukuran tetap, teks biasa yang panjangnya bukan kelipatan ukuran blok diisi dengan huruf X untuk melengkapi blok terakhir; sebuah pesan yang didekripsi karenanya bisa berakhir dengan satu atau dua huruf tambahan.
Huruf besar-kecil tidak dipertahankan — semuanya diperlakukan sebagai huruf besar. Batasan ini melekat pada sandi klasik itu sendiri, bukan pada alat ini, dan itulah sebagian alasan mengapa sandi Hill, seperti sandi sezamannya, dipakai untuk pesan taktis singkat alih-alih teks yang mengalir bebas. Rincian langsung menunjukkan persis bagaimana teks Anda dikelompokkan dan diisi ke dalam blok.
Keamanan dan kriptanalisis
Kekuatan sandi Hill juga merupakan kelemahan fatalnya: ia bersifat linear. Setiap blok sandi adalah fungsi linear tetap dari blok teks biasa, sehingga penyerang yang mempelajari cukup banyak pasangan blok teks-biasa–teks-sandi dapat menyusun dan menyelesaikan sistem persamaan linear untuk memulihkan matriks kunci secara langsung. Untuk kunci n×n, kira-kira n blok yang diketahui biasanya sudah cukup, yang membuat sandi ini cepat jatuh pada serangan teks-biasa-diketahui.
Ia juga tidak menawarkan difusi antarblok dan tidak ada kebingungan di luar pengadukan linear, sehingga blok teks biasa yang identik selalu terenkripsi menjadi blok sandi yang identik. Menurut standar modern ia tidak aman, dan Anda tidak boleh pernah memakainya untuk melindungi informasi nyata — gunakan algoritma yang telah ditelaah seperti AES sebagai gantinya. Namun, sebagai ilustrasi yang jelas dan langsung tentang bagaimana matriks, aritmetika modular, dan pengenkripsian blok saling berpadu, sandi Hill tetap menjadi salah satu sandi klasik terbaik untuk dipelajari.
Pertanyaan yang sering diajukan
Apa itu sandi Hill?
Bagaimana cara kerja sandi Hill?
Bagaimana cara memilih kunci sandi Hill yang valid?
Bisakah Anda menunjukkan contoh sandi Hill terselesaikan?
Bagaimana cara mendekode sandi Hill?
Apa perbedaan antara sandi Hill 2×2 dan 3×3?
Mengapa kunci saya dikatakan tidak dapat diinverskan?
Apa yang terjadi pada spasi, angka, dan tanda baca?
Apakah sandi Hill aman?
Siapa yang menemukan sandi Hill?
Apa itu invers modular sebuah matriks?
Apakah teks saya diunggah ke server?
Alat terkait
Lanjutkan dengan alat praktis ini