Pemecah Vigenère
Tempel teksandi Vigenère dan pulihkan kata kunci serta pesan aslinya tanpa mengetahui kuncinya. Pemecah ini menemukan panjang kunci dari indeks kebetulan, mengonfirmasikannya dengan pemeriksaan Kasiski, memecahkan setiap kolom sebagai sandi Caesar, dan memilih dekripsi yang paling mirip bahasa Inggris. Semuanya berjalan di peramban Anda.
Coba contoh:
Tempel teksandi Vigenère di atas, dan kunci yang dipulihkan, pesan yang didekripsi, serta analisis panjang kunci akan muncul di sini. Makin banyak teks yang Anda berikan, makin andal jawabannya.
Cara menggunakan Pemecah Sandi Vigenère
- 1
Tempel teksandinya
Salin teks terenkripsi Vigenère dan tempel ke dalam kotak. Satu paragraf atau lebih memberi hasil terbaik; huruf dibaca tanpa memperhatikan huruf besar-kecil, dan spasi, angka, serta tanda baca diabaikan saat memecahkan.
- 2
Baca kunci yang dipulihkan
Pemecah menampilkan kata kunci yang paling mungkin di bagian atas. Salin dengan satu klik — Anda dapat menempelkannya ke alat Sandi Vigenère untuk memverifikasi bahwa ia mendekripsi pesan yang sama.
- 3
Baca pesan yang didekripsi
Di bawah kunci, teks asli lengkap muncul dengan huruf besar, spasi, dan tanda baca aslinya dipulihkan. Salin untuk menyimpan hasilnya.
- 4
Periksa bukti panjang kunci
Diagram indeks kebetulan dan panel Kasiski menunjukkan mengapa panjang kunci itu dipilih. Jika sebuah hasil tampak meleset, klik panjang yang berbeda dalam diagram untuk memaksa pemecahan, atau perlebar panjang kunci maksimum.
- 5
Bagikan atau bersihkan
Salin tautan yang dapat dibagikan yang membuka kembali alat dengan teksandi persis Anda — teks itu menumpang di bagian URL setelah tanda pagar, yang tidak pernah sampai ke server. Bersihkan mengembalikan semuanya ke awal.
Membobol sandi Vigenère, dijelaskan
Apa yang dilakukan alat ini
Sandi Vigenère menyembunyikan pesan dengan menggeser setiap huruf sejumlah yang berbeda, mengikuti sebuah kata kunci yang berulang. Selama tiga abad gagasan sederhana itu membuatnya dijuluki le chiffre indéchiffrable — sandi yang tak terpecahkan — karena trik biasa menghitung frekuensi huruf gagal melawannya. Alat ini tetap memecahkannya, secara otomatis, tanpa Anda harus memberikan kuncinya. Tempel teksandinya dan ia mengembalikan kata kunci yang paling mungkin serta pesan yang didekripsi.
Ia bekerja seperti seorang kriptanalis manusia, hanya lebih cepat: ia mencari tahu seberapa panjang kuncinya, membagi pesan menjadi sebanyak itu sandi Caesar yang terpisah, memecahkan masing-masing, lalu memeriksa bahwa hasilnya benar-benar terbaca seperti bahasa Inggris. Tanpa kunci, tanpa tebakan, dan tidak ada yang meninggalkan peramban Anda — seluruh serangan berjalan di mesin Anda sendiri.
Mengapa sandi Vigenère dapat dipecahkan
Sebuah kata kunci sepanjang L mengenkripsi setiap huruf ke-L dengan geseran yang sama. Jadi jika Anda mengambil huruf ke-1, ke-(L+1), ke-(2L+1), dan seterusnya, setiap huruf dalam kelompok itu digeser dengan jumlah yang sama — mereka membentuk sebuah sandi Caesar biasa. Hal yang sama berlaku untuk masing-masing dari L posisi awal. Sebuah sandi Vigenère karena itu bukan satu masalah sulit, melainkan L masalah mudah yang ditumpuk bersama, dan satu-satunya hal yang berdiri di antara Anda dan teks asli adalah menemukan L.
Setelah panjang kunci diketahui, setiap kolom mempertahankan frekuensi huruf bahasa Inggris yang timpang, hanya dilabeli ulang oleh satu geseran. Itulah situasi yang persis dirancang untuk diserang oleh analisis frekuensi klasik. Seluruh seni membobol Vigenère, dengan demikian, bermuara pada satu pertanyaan: seberapa panjang kuncinya?
Menemukan panjang kunci dengan indeks kebetulan
Indeks kebetulan mengukur seberapa besar peluang dua huruf yang dipilih secara acak dari sebuah teks itu sama. Bahasa Inggris biasa berada di sekitar 0.066 karena hurufnya digunakan begitu tidak merata; teks yang sepenuhnya acak mendekati 0.038. Ketika Anda membagi teksandi menjadi jumlah kolom yang benar, setiap kolom menjadi monoalfabetik dan indeks kebetulannya melonjak kembali ke arah nilai bahasa Inggris. Bagi menjadi jumlah yang salah, dan kolom-kolomnya tetap rata, tampak acak di sekitar 0.038.
Alat ini mencoba setiap panjang kunci dari satu hingga maksimum yang Anda pilih, mengukur rata-rata indeks kebetulan kolom untuk masing-masing, dan menggambar hasilnya sebagai diagram batang. Panjang yang sebenarnya menonjol sebagai batang yang tinggi — dan begitu pula kelipatannya, karena panjang sepuluh juga membuat setiap kelompok lima sejajar. Ambiguitas kelipatan itulah sebabnya alat ini tidak sekadar memercayai batang tertinggi, sebagaimana dijelaskan oleh bagian-bagian berikutnya.
Pemeriksaan Kasiski
Ada cara kedua yang lebih tua untuk menemukan panjang kunci, ditemukan oleh Friedrich Kasiski pada 1863. Ketika sebuah kata umum seperti THE sejajar dengan bagian kata kunci yang sama dua kali, ia terenkripsi menjadi urutan teksandi yang sama pada kedua kali itu. Jarak antara dua pengulangan semacam itu pasti merupakan kelipatan bulat dari panjang kunci — sehingga panjang kunci membagi jarak tersebut. Temukan beberapa urutan berulang, ukur jaraknya, dan panjang kunci bersembunyi di antara faktor-faktor persekutuan jarak-jarak itu.
Alat ini memindai teksandi untuk urutan berulang tiga huruf, mengumpulkan jarak di antaranya, dan menghitung berapa banyak jarak yang dibagi oleh setiap kandidat faktor. Faktor dengan dukungan terbanyak adalah panjang kunci yang paling mungkin. Ini ditampilkan sebagai panel bukti terpisah, terlepas dari indeks kebetulan, sehingga dua teknik yang berbeda dapat sepakat atas jawabannya.
Memecahkan setiap kolom dan membaca kata kuncinya
Dengan panjang kunci sudah pasti, setiap kolom adalah sebuah sandi Caesar, dan sandi Caesar runtuh seketika. Untuk setiap kolom, pemecah mencoba seluruh dua puluh enam geseran dan mempertahankan yang huruf hasil dekodenya paling cocok dengan frekuensi bahasa Inggris yang diharapkan, diukur dengan uji chi-kuadrat. Geseran pemenang untuk sebuah kolom adalah satu huruf dari kata kunci: geseran sebelas adalah L, geseran empat adalah E, dan seterusnya. Baca geseran pemenang secara berurutan dan kata kunci mengeja dirinya sendiri.
Mendekripsi seluruh pesan dengan kata kunci yang dipulihkan itu mengembalikan teks aslinya, dengan huruf besar, spasi, dan tanda baca asli ditempatkan kembali persis di tempatnya semula. Jika kunci yang dipulihkan kebetulan merupakan pengulangan — misalnya LEMONLEMON padahal kunci sebenarnya adalah LEMON — alat ini menciutkannya ke periode terpendeknya, sehingga Anda selalu melihat kata kunci yang sebenarnya dan paling ringkas.
Pecahkan dulu, lalu verifikasi — mengapa bigram penting
Pemecah yang naif memilih panjang kunci dari indeks kebetulan lalu berhenti. Itu keliru dalam dua kasus yang umum: pesan yang berulang dapat mengganggu statistiknya, dan panjang yang sebenarnya mudah tertukar dengan pembaginya. Alat ini menghindari jebakan itu dengan memecahkan pada setiap kandidat panjang lalu menilai hasilnya berdasarkan seberapa mirip setiap dekripsi dengan bahasa Inggris yang sesungguhnya — pecahkan dulu, verifikasi kemudian.
Penilainya bukan frekuensi huruf tunggal, yang ternyata mudah sekali ditipu: kunci yang sedikit salah bisa menghasilkan teks kacau yang kebetulan memiliki campuran huruf yang masuk akal. Sebagai gantinya, alat ini menilai setiap dekripsi berdasarkan bigramnya — kemungkinan setiap pasangan huruf yang berdampingan, dipelajari dari kumpulan besar teks bahasa Inggris. Bahasa Inggris yang sesungguhnya kaya akan pasangan seperti TH, HE, dan ER serta hampir tidak pernah memuat QJ atau ZX, sehingga satu huruf kunci yang salah menyuntikkan pasangan yang mustahil dan menjatuhkan nilainya. Dekripsi dengan kecocokan bigram terbaik menang, dan seri dimenangkan oleh kunci yang lebih pendek, itulah sebabnya sebuah sandi Caesar biasa dengan tepat terselesaikan menjadi kunci satu huruf.
Seberapa banyak teks yang Anda perlukan, dan kapan ia kesulitan
Karena setiap kolom dipecahkan dengan analisis frekuensi, yang penting adalah berapa banyak huruf yang jatuh ke setiap kolom — yaitu, panjang total dibagi panjang kunci. Dengan kira-kira empat puluh huruf atau lebih per kolom, pemulihannya biasanya tepat, baik kunci maupun teks asli. Satu paragraf dua ratus huruf dengan mudah membobol kunci pendek; kunci yang lebih panjang sepanjang selusin huruf membutuhkan beberapa ratus huruf teksandi agar pasti.
Ketika teksandi pendek relatif terhadap kuncinya, kolom-kolom menjadi tipis dan penghitungan frekuensi per kolom menjadi berderau. Pemecah tetap mengembalikan upaya terbaiknya — sering kali nyaris tepat dengan selisih satu atau dua huruf kunci tetapi masih terbaca — daripada tidak sama sekali. Jika sebuah hasil tampak hampir benar, solusi yang biasa adalah cukup menambah teksandi, atau menggeser panjang kunci secara manual menggunakan diagram. Sandi ini hanya bertahan ketika memang benar-benar tidak ada cukup teks untuk diukur.
Pertanyaan yang sering diajukan
Benarkah Anda bisa membobol sandi Vigenère tanpa kunci?
Bagaimana pemecah menemukan panjang kunci?
Apa itu indeks kebetulan?
Apa itu pemeriksaan Kasiski?
Mengapa kunci yang dipulihkan bisa sedikit salah?
Seberapa banyak teksandi yang saya perlukan?
Mengapa alat ini memeriksa bigram alih-alih sekadar frekuensi huruf?
Bisakah saya memaksa panjang kunci tertentu?
Apakah ia berfungsi pada Beaufort, Gronsfeld, atau sandi polialfabetik lainnya?
Apakah teksandi saya dikirim ke server?
Apa bedanya ini dengan alat Sandi Vigenère?
Alat terkait
Lanjutkan dengan alat praktis ini