Sandi Running Key
Enkode dan dekode sandi running-key, sebuah sandi Vigenère yang kuncinya adalah bentangan teks panjang alih-alih kata pendek yang berulang. Karena kunci sepanjang pesan dan tidak pernah berulang, pola periodik yang membongkar Vigenère biasa pun lenyap. Beralihlah antara enkode dan dekode dan amati perhitungan terbentuk secara langsung. Semuanya berjalan di browser Anda.
Tempel bentangan kunci yang panjang, secara tradisional halaman buku yang telah disepakati. Agar menjadi running key sejati, kunci harus setidaknya sepanjang pesan Anda. Hanya huruf yang dipakai untuk menggeser; huruf kapital dan huruf kecil diperlakukan sama, dan spasi, digit, atau tanda baca apa pun dalam kunci diabaikan.
Masukkan teks di atas untuk melihat hasil running-key di sini.
Cara menggunakan Sandi Running Key
- 1
Pilih enkode atau dekode
Pilih Enkode untuk mengubah teks biasa menjadi teks sandi running-key, atau Dekode untuk memulihkan teks biasa dari teks sandi. Running key yang sama dipakai untuk kedua arah.
- 2
Tempel running key Anda
Tempel bentangan teks panjang untuk dipakai sebagai kunci, secara tradisional halaman buku yang telah disepakati. Agar menjadi running key sejati, kunci seharusnya setidaknya sepanjang pesan Anda. Hanya hurufnya yang dipakai, dan besar-kecil huruf, spasi, serta tanda baca diabaikan.
- 3
Ketik atau tempel teks Anda
Masukkan pesan yang ingin Anda konversi. Sandi berjalan otomatis saat Anda mengetik, dan perhitungan huruf demi huruf diperbarui secara langsung di bawah, menampilkan setiap titik di mana kunci pendek harus dililitkan dan berulang.
- 4
Baca, salin, dan bagikan
Baca hasilnya, lalu salin, unduh sebagai berkas teks, atau bagikan tautan yang membuka kembali alat ini dengan kunci, arah, dan teks Anda yang persis sama. Semuanya tetap di browser Anda.
Memahami Sandi Running Key
Apa itu sandi running-key?
Sandi running-key adalah sandi substitusi polialfabetik, sebuah bentuk sandi Vigenère yang kuncinya berupa bentangan teks biasa yang panjang alih-alih kata kunci pendek yang berulang. Pengirim dan penerima menyepakati lebih dulu sebuah teks kunci, secara klasik edisi suatu buku tertentu yang dibuka pada halaman tertentu, lalu memakai huruf-hurufnya secara berurutan untuk menggeser pesan. Karena kunci setidaknya sepanjang pesan, ia tidak pernah perlu berulang, dan struktur siklik beraturan yang membuat sandi berkunci-berulang mudah dipecahkan pun lenyap begitu saja.
Kunci yang panjang dan tak berulang inilah yang membedakan sandi running-key. Sandi Vigenère biasa membongkar dirinya sendiri lewat periodisitas: kata kuncinya yang pendek berputar, dan irama itu dapat dideteksi serta diurai. Running key menyingkirkan irama itu sepenuhnya. Konsekuensinya, kunci kini berupa bahasa alami, dengan segala bias statistik yang dibawa teks Inggris, dan bias itu menjadi celah yang dimanfaatkan penyerang sebagai gantinya.
Cara kerja sandi running-key
Berilah nomor alfabet dari A sebagai 0 hingga Z sebagai 25. Tuliskan teks kunci di bawah pesan sehingga satu huruf kunci berada di bawah setiap huruf teks biasa. Untuk mengenkripsi, tambahkan setiap huruf kunci ke huruf di atasnya dan lilitkan mengelilingi alfabet dengan sisa pembagian terhadap 26, sehingga menghasilkan huruf teks sandi C = (P + K) mod 26. Perhitungannya persis tabel Vigenère; hanya sumber kuncinya yang berubah.
Untuk mendekripsi, penerima menuliskan teks kunci yang sama di bawah teks sandi lalu mengurangkan, memulihkan setiap huruf teks biasa dengan P = (C − K) mod 26. Seperti pada setiap varian Vigenère, hanya 26 huruf yang ditransformasikan: spasi, tanda baca, dan digit lewat begitu saja serta tidak memakai huruf kunci, sehingga kunci tetap sejajar dengan huruf-huruf pesan. Besar-kecil huruf dipertahankan, sehingga keluaran menjaga bentuk teks aslinya.
Contoh terselesaikan
Enkripsi pesan HELLO menggunakan running key KEYBOARD. Sejajarkan kelima huruf kunci pertama K, E, Y, B, O di bawah pesan lalu tambahkan: H tambah K adalah R, E tambah E adalah I, L tambah Y adalah J, L tambah B adalah M, dan O tambah O adalah C. Teks sandinya adalah RIJMC. Perhatikan bahwa, tidak seperti sandi autokey, huruf kunci berasal murni dari teks kunci yang disepakati dan sama sekali tidak berkaitan dengan teks biasa.
Untuk mendekripsi RIJMC Anda menuliskan kunci yang sama KEYBOARD di bawahnya lalu mengurangkan: R kurang K adalah H, I kurang E adalah E, J kurang Y adalah L, M kurang B adalah L, dan C kurang O adalah O, memulihkan HELLO. Seluruh pesan dapat dibaca dalam satu kali jalan karena kunci diketahui sepenuhnya sejak awal, tanpa umpan balik huruf demi huruf yang harus ditunggu.
Running-key versus Vigenère berkunci-berulang
Sandi Vigenère baku mengulang kata kunci pendek di sepanjang seluruh pesan: dengan kunci KEY alirannya adalah KEYKEYKEY dan seterusnya. Pengulangan itu adalah cacat fatalnya, karena panjang kunci dapat dipulihkan dengan pemeriksaan Kasiski atau indeks kebetulan, setelah itu setiap kolom menjadi pergeseran Caesar sederhana yang dipecahkan dengan analisis frekuensi. Sandi running-key memakai aturan penambahan yang identik tetapi kunci yang sepanjang pesan, sehingga tidak ada periode untuk ditemukan dan uji klasik itu tidak berlaku langsung.
Bahayanya adalah memakai kunci yang terlalu pendek. Jika running key lebih pendek daripada pesan, ia harus dililitkan kembali ke awalnya, dan pada saat itu ia menjadi Vigenère berkunci-berulang biasa dengan segala kelemahan sandi itu. Mengenkripsi HELLO dengan kunci tiga huruf KEY, misalnya, dililitkan sehingga memberi RIJVS — persis hasil Vigenère berulang. Alat ini menandai huruf kunci mana pun yang dipakai ulang sehingga Anda dapat melihat sandi merosot, dan running key yang baik seharusnya selalu setidaknya sepanjang teks.
Running-key versus sandi autokey
Sandi running-key dan autokey adalah kerabat dekat: keduanya memakai kunci sepanjang pesan sehingga tidak ada yang berulang, dan keduanya menyederhana menjadi penambahan modular yang sama. Bedanya terletak pada dari mana kunci panjang itu berasal. Sandi running-key mengambil kuncinya dari teks eksternal yang dibagikan bersama, seperti halaman buku yang telah disepakati, sedangkan sandi autokey membangun kunci panjangnya dari kata kunci pemicu pendek yang diikuti oleh teks biasa itu sendiri.
Perbedaan itu membentuk cara masing-masing diserang. Sandi autokey hanya butuh rahasia bersama yang sangat kecil, yaitu pemicunya, tetapi karena sebagian kuncinya adalah teks biasa, menebak kata yang umum dan menyeretnya melintasi pesan menyingkapkan lebih banyak teks. Sandi running-key membutuhkan kedua pihak memegang teks kunci yang sama, tetapi kelemahannya bersifat statistik: baik pesan maupun kunci sama-sama bahasa alami, sehingga seorang analis dapat mengadu kata-kata yang mungkin satu sama lain hingga muncul pembelahan yang konsisten.
Cara memecahkan sandi running-key
Karena kunci tidak pernah berulang, pemeriksaan Kasiski dan indeks kebetulan tidak menggigit sebagaimana pada Vigenère berulang. Sebagai gantinya, serangan klasik memanfaatkan fakta bahwa setiap huruf teks sandi adalah jumlah dari dua huruf yang keduanya diambil dari bahasa biasa. Bahasa Inggris sangat redundan, sehingga hanya sedikit pasangan huruf teks-biasa-dan-kunci yang masuk akal bagi suatu huruf teks sandi, dan kata-kata umum dalam salah satu aliran meninggalkan jejak yang dapat dideteksi.
Metode praktisnya, yang sering dikreditkan kepada William Friedman, adalah menebak kata yang mungkin, menguranginya dari sepenggal teks sandi seolah-olah ia adalah kunci, lalu melihat apakah aliran yang lain keluar tampak seperti bahasa. Tebakan yang benar dalam kunci menyingkapkan serpihan teks biasa, dan tebakan yang benar dalam teks biasa menyingkapkan serpihan kunci; setiap serpihan kemudian dapat diperpanjang ke luar dan kedua aliran diurai satu sama lain. Memakai ulang teks kunci yang sama untuk lebih dari satu pesan adalah fatal, karena mengurangkan dua teks sandi menghapus kunci bersama dan menyisakan kedua teks biasa yang tergabung.
Dari running key ke one-time pad
Sandi running-key adalah leluhur konseptual langsung dari one-time pad, satu-satunya sandi yang terbukti tak terpecahkan. Resepnya hampir sama: ambil kunci sepanjang pesan dan tambahkan huruf demi huruf. One-time pad menambahkan tiga syarat ketat — kunci harus benar-benar acak, setidaknya sepanjang pesan, dan tidak pernah dipakai ulang. Penuhi ketiganya dan setiap kemungkinan teks biasa sama-sama konsisten dengan teks sandi, sehingga tidak ada analisis yang dapat mengunggulkan yang asli.
Running key gagal memenuhi syarat-syarat itu persis. Bentangan buku tidaklah acak; ia adalah bahasa Inggris yang berstruktur, yang frekuensi huruf dan kata-kata umumnya memberi analis pijakan yang dijelaskan di atas. Jadi meskipun sandi running-key secara berarti lebih kuat daripada Vigenère berulang, ia tidak menawarkan keamanan nyata menurut standar modern dan tidak boleh menjaga rahasia sungguhan. Ia paling baik dinikmati sebagai pelajaran yang gamblang dalam sejarah kriptografi serta sajian baku dalam perburuan teka-teki, escape room, dan tantangan capture-the-flag; untuk perlindungan sejati, pakai algoritma modern yang teruji baik seperti AES.
Pertanyaan yang sering diajukan
Apa itu sandi running-key?
Bagaimana cara kerja sandi running-key?
Apa beda sandi running-key dengan sandi Vigenère?
Bisakah Anda menunjukkan contoh sandi running-key?
Apa yang sebaiknya saya pakai sebagai running key?
Apa yang terjadi jika kunci saya lebih pendek daripada pesan?
Apa beda antara sandi running-key dan autokey?
Apakah sandi running-key sama dengan sandi buku?
Apakah sandi mengubah spasi, digit, dan tanda baca?
Bagaimana cara memecahkan sandi running-key?
Apakah sandi running-key berkaitan dengan one-time pad?
Apakah sandi running-key aman, dan apakah teks saya diunggah?
Alat terkait
Lanjutkan dengan alat praktis ini