Aatbash, Scytal cipher, Cardano lattice - cara terkenal untuk menyembunyikan informasi dari pengintai. Dalam pengertian klasik, sandi permutasi adalah anagram. Esensinya terletak pada kenyataan bahwa huruf-huruf dari teks biasa berubah posisi menurut aturan tertentu. Dengan kata lain, kunci cipher adalah penataan ulang karakter dalam pesan terbuka. Namun, ketergantungan kunci pada panjang teks terenkripsi menimbulkan banyak ketidaknyamanan untuk menggunakan jenis sandi ini. Tetapi kepala yang cerdas telah menemukan solusi rumit yang menarik, yang dijelaskan dalam artikel.
Grup terbalik
Untuk mengenal enkripsi dengan metode permutasi, mari sebutkan salah satu contoh paling sederhana. Algoritmanya terdiri dari membagi pesan menjadi n blok, yang kemudian dibalikkan ke depan dan ditukar. Perhatikan sebuah contoh.
"Hari telah berlalu dan langit menjadi gelap"
Mari kita bagi pesan ini menjadi beberapa grup. Dalam hal ini, n=6.
"Denuh odily nebav keren keren"
Sekarang perluas grup, tulis masing-masing dari akhir.
"hunned waben dzo methu yin"
Mari bertukar tempat dengan cara tertentu.
"ilido methu yin hunned waben dzo"
Untuk orang bodoh dalam bentuk ini, pesannya tidak lebih dari sampah. Namun, tentu saja, orang yang dituju oleh pesan tersebut bertanggung jawab atas algoritme dekripsi.
Sisip tengah
Algoritme enkripsi ini sedikit lebih rumit daripada metode enkripsi permutasi:
- Membagi pesan menjadi beberapa grup dengan jumlah karakter genap.
- Sisipkan huruf tambahan di tengah setiap grup.
Mari kita lihat contohnya.
- "Dia membawa makhluk-makhluk itu untuk tidur".
- "Bumi belum ariu drive lkosnu".
- "Zeamn yabtv arayu voabdi lkoasnu".
Dalam hal ini, huruf "a" dan "ab" secara bergantian disisipkan di tengah grup. Sisipan bisa berbeda, dalam jumlah berbeda dan tidak berulang. Selain itu, Anda dapat memperluas setiap grup, mengocoknya, dll.
Ciphergram "Sandwich"
Contoh lain yang menarik dan sederhana dari enkripsi permutasi. Untuk menggunakannya, Anda perlu membagi teks biasa menjadi 2 bagian dan memasukkan salah satunya karakter demi karakter di antara huruf yang lain. Mari kita gunakan contoh.
"Dari merekabekerja; Saya satu-satunya, tunawisma"
Dibagi menjadi dua bagian dengan jumlah huruf yang sama.
Dari jerih payah mereka, hanya saya yang tunawisma
Sekarang tulis paruh pertama pesan dengan spasi huruf yang lebih banyak.
"O T dan X T R U D DOL dan Sh"
Dan di celah-celah ini kita akan menempatkan huruf-huruf babak kedua.
"Oyatoidhitnrbuedzodvolminshiy"
Akhirnya kelompokkan huruf-huruf tersebut menjadi kata-kata (operasi opsional).
"Oyatoi dhi tnrbue dzodvol minshhy"
Sangat mudah untuk mengenkripsi teks dengan metode ini. Yang belum tahu harus mencari tahu string-sampah yang dihasilkan untuk beberapa waktu.
Permutasi sepanjang "rute"
Ini adalah nama yang diberikan untuk sandi yang banyak digunakan di zaman kuno. Rute dalam konstruksi mereka adalah sosok geometris apa pun. Teks biasa ditulis menjadi gambar seperti itu menurut skema tertentu, dan diekstraksi menurut kebalikannya. Misalnya, salah satu opsi mungkin menulis ke tabel teks biasa sesuai dengan skema: ular merangkak di sel searah jarum jam, dan pesan terenkripsi disusun dengan menghapus kolom dalam satu baris, dari yang pertama hingga yang terakhir. Ini juga merupakan enkripsi permutasi.
Mari kita tunjukkan dengan contoh cara mengenkripsi teks. Coba tentukan sendiri rute perekaman dan rute kompilasi ciphergramnya.
"Bersiaplah untuk menanggung perang".
Kami akan menulis pesan ke dalam tabel sel 3x9. Dimensi tabeldapat ditentukan berdasarkan panjang pesan, atau beberapa tabel tetap dapat digunakan beberapa kali.
p | r | dan | r | o | t | o | ke | l |
r | e | d | s | ke | aku | c | l | aku |
f | a | t | b | ke | o | th | n | y |
Kami akan menyusun cipher mulai dari sudut kanan atas tabel.
"Launlvosoyatovvygidtaerprj"
Membalikkan langkah-langkah yang dijelaskan tidaklah sulit. Cukup mudah untuk melakukan yang sebaliknya. Metode ini sangat nyaman, karena memudahkan untuk mengingat prosedur enkripsi dan dekripsi. Dan itu juga menarik, karena Anda dapat menggunakan angka apa pun untuk cipher. Misalnya spiral.
Permutasi vertikal
Cipher jenis ini juga merupakan varian dari permutasi rute. Hal ini menarik di tempat pertama dengan adanya kunci. Metode ini banyak digunakan di masa lalu dan juga menggunakan tabel untuk enkripsi. Pesan dicatat dalam tabel dengan cara biasa - dari atas ke bawah, dan ciphergram ditulis secara vertikal, sambil menghormati urutan yang ditunjukkan oleh kunci atau kata sandi. Mari kita lihat contoh enkripsi tersebut.
"Baik dengan jalan yang menyakitkan maupun dengan belas kasih"
Mari kita gunakan tabel sel 4x8 dan tulis pesan kita di dalamnya dengan cara biasa. Dan untuk enkripsigunakan kunci 85241673.
dan | c | t | aku | r | o | c | t |
n | s | m | p | y | t | e | m |
dan | c | c | o | c | t | r | a |
d | a | n | b | e | m |
Kuncinya ditunjukkan di bawah ini.
8 | 5 | 2 | 4 | 1 | 6 | 7 | 3 |
Sekarang, dengan menggunakan kunci sebagai indikasi urutan, tulis kolom menjadi satu baris.
"Gusetmsntmayposysaottmserinid"
Penting untuk diperhatikan bahwa dengan metode enkripsi ini, sel-sel kosong dalam tabel tidak boleh diisi dengan huruf atau simbol acak, dengan harapan hal ini akan memperumit ciphertext. Bahkan, sebaliknya, tindakan seperti itu akan memberi petunjuk kepada musuh. Karena panjang kunci akan sama dengan salah satu pembagi dari panjang pesan.
Permutasi vertikal terbalik
Permutasi vertikal menarik karena dekripsi pesan bukanlah pembalikan sederhana dari algoritma. Siapa pun yang tahu kuncinya tahu berapa banyak kolom yang dimiliki tabel. Untuk mendekripsi pesan, Anda perlu menentukan jumlah garis panjang dan pendek dalam tabel. Ini akan menentukan awal, dari mana mulai menulis ciphertext ke tabel untuk membaca plaintext. Untuk melakukan ini, kami membagi panjangnyapesan dengan panjang kunci dan kami mendapatkan 30/8=3 dan 6 sisanya.
Dengan demikian, kita mengetahui bahwa tabel memiliki 6 kolom panjang dan 2 kolom pendek, diisi dengan huruf tidak sepenuhnya. Melihat kuncinya, kita dapat melihat bahwa enkripsi dimulai dari kolom ke-5 dan seharusnya panjang. Jadi kami menemukan bahwa 4 huruf pertama dari ciphertext sesuai dengan kolom kelima dari tabel. Sekarang Anda dapat menuliskan semua huruf di tempat dan membaca pesan rahasia.
Kisi-kisi Cardano
Jenis ini mengacu pada apa yang disebut stencil cipher, tetapi pada dasarnya adalah enkripsi dengan metode permutasi karakter. Kuncinya adalah stensil berupa meja dengan lubang-lubang yang dipotong di dalamnya. Sebenarnya, bentuk apa pun bisa menjadi stensil, tetapi yang paling sering digunakan adalah persegi atau meja.
Stensil Cardano dibuat sesuai dengan prinsip berikut: sel yang dipotong tidak boleh saling tumpang tindih saat diputar 90°. Artinya, setelah 4 putaran stensil di sekitar porosnya, slot di dalamnya tidak boleh bertepatan.
Menggunakan kisi Cardano sederhana sebagai contoh (ditunjukkan di bawah).
Menggunakan stensil ini, enkripsi frasa "O Muses, aku akan memohon padamu."
- | O | - | M | - | - |
U | |||||
З | S | ||||
K | |||||
B | A | ||||
M |
Isi sel stensil dengan huruf sesuai aturan: pertama dari kanan ke kiri, lalu dari atas ke bawah. Saat sel habis, putar stensil 90 ° searah jarum jam. Dengan cara ini kita mendapatkan tabel berikut.
Aku | - | - | - | - | - |
O | B | R | |||
A | Sch | ||||
y | |||||
С | b |
Dan putar lagi 90°.
- | - | - | - | - | С |
B | O | ||||
З | |||||
B | A | ||||
N | |||||
b | E |
Dan giliran terakhir.
- | - | M | - | - | - |
Setelah menggabungkan 4 tabel menjadi satu, kita mendapatkan pesan terenkripsi terakhir.
Aku | O | M | M | G | С |
B | O | U | B | O | R |
G | З | A | З | Sch | S |
B | G | K | G | A | U |
G | B | G | N | G | A |
M | С | b | b | E | G |
Meskipun pesannya mungkin tetap sama, tetapi untuk transmisi akan lebih mudah untuk menerima ciphertext yang tampak familiar. Untuk melakukan ini, sel kosong dapat diisi dengan huruf acak dan kolom dapat ditulis dalam satu baris:
YAVGVGM OOZGVS MUAKGY MBZGN GOSCHAGE SRYUAG
Untuk mendekripsi pesan ini, penerima harus memiliki salinan persis dari stensil yang digunakan untuk mengenkripsinya. Cipher ini telah lama dianggap cukup stabil. Variasinya juga banyak. Misalnya, penggunaan 4 kisi Cardano sekaligus yang masing-masingnya berputardengan cara saya sendiri.
Analisis cipher permutasi
Semua sandi permutasi rentan terhadap analisis frekuensi. Terutama dalam kasus di mana panjang pesan sebanding dengan panjang kunci. Dan fakta ini tidak dapat diubah dengan menerapkan permutasi berulang kali, betapapun rumitnya mereka. Oleh karena itu, dalam kriptografi, hanya cipher yang menggunakan beberapa mekanisme sekaligus, selain permutasi, yang dapat stabil.