Aatbash, Scytal šifras, Cardano tinklelis – gerai žinomi būdai paslėpti informaciją nuo smalsių akių. Klasikine prasme permutacijos šifras yra anagrama. Jo esmė slypi tame, kad paprasto teksto raidės keičia pozicijas pagal tam tikrą taisyklę. Kitaip tariant, raktas į šifrą yra simbolių išdėstymas atvirame pranešime. Tačiau rakto priklausomybė nuo užšifruoto teksto ilgio sukėlė daug nepatogumų naudojant tokio tipo šifrą. Tačiau protingos galvos rado įdomių sudėtingų sprendimų, kurie aprašyti straipsnyje.
Atvirkštinės grupės
Norėdami susipažinti su šifravimu permutacijos metodu, paminėsime vieną paprasčiausių pavyzdžių. Jo algoritmas susideda iš pranešimo padalijimo į n blokų, kurie vėliau apverčiami atgal į priekį ir sukeičiami. Apsvarstykite pavyzdį.
„Diena praėjo, o dangus tamsus“
Paskirstykime šį pranešimą į grupes. Šiuo atveju n=6.
"Denuh odily nebav cool cool"
Dabar išplėskite grupes, rašykite kiekvieną nuo pabaigos.
"hunned waben dzo methu yin"
Sukeiskime vietomis tam tikru būdu.
"ilido methu yin hunned waben dzo"
Šios formos neišmanančiam žmogui žinutė yra ne kas kita, kaip šiukšlės. Tačiau, žinoma, už iššifravimo algoritmą atsakingas asmuo, kuriam skirtas pranešimas.
Vidurinis įdėklas
Šio šifravimo algoritmas yra šiek tiek sudėtingesnis nei šifravimo permutacijos metodas:
- Padalinkite pranešimą į grupes su lyginiu simbolių skaičiumi.
- Įterpkite papildomų raidžių kiekvienos grupės viduryje.
Pažiūrėkime į pavyzdį.
- „Jis nuvedė padarus miegoti“.
- "Earth yetv ariu drive lkosnu".
- "Zeamn yabtv arayu voabdi lkoasnu".
Šiuo atveju kintamos raidės „a“ir „ab“buvo įterptos į grupių vidurį. Intarpai gali būti skirtingi, skirtingais skaičiais ir nesikartoti. Be to, galite išplėsti kiekvieną grupę, maišyti jas ir pan.
Šifrograma „Sumuštinis“
Kitas įdomus ir paprastas permutacijos šifravimo pavyzdys. Norėdami jį naudoti, paprastą tekstą turite padalyti į 2 dalis ir vieną iš jų po simbolio įvesti tarp kitos raidžių. Panaudokime pavyzdį.
"Iš jųdarbai; Aš vienintelis, benamis"
Padalinta į pusę su vienodu raidžių skaičiumi.
Dėl jų darbo tik aš esu benamis
Dabar parašykite pirmąją pranešimo pusę su didesniais tarpais tarp raidžių.
"O T ir X T R U D DOL ir Sh"
Ir šiuose tarpeliuose įdėsime antrosios pusės raides.
"Oyatoidhitnrbuedzodvolminshiy"
Galiausiai sugrupuokite raides į žodžius (pasirenkama operacija).
"Oyatoi dhi tnrbue dzodvol minshhy"
Šiuo metodu labai lengva užšifruoti tekstą. Nežinantis dar kurį laiką turės išsiaiškinti susidariusias šiukšles.
Permutacijos palei „maršrutą“
Taip pavadinti šifrai, plačiai naudojami senovėje. Jų konstrukcijos maršrutas buvo bet kokia geometrinė figūra. Paprastas tekstas buvo įrašytas į tokią figūrą pagal tam tikrą schemą ir išgautas pagal jos reversą. Pavyzdžiui, vienas iš variantų gali būti rašyti į paprasto teksto lentelę pagal schemą: gyvatė ropoja langeliuose pagal laikrodžio rodyklę, o šifruotas pranešimas sudaromas nurašant stulpelius vienoje eilutėje, nuo pirmos iki paskutinės. Tai taip pat yra permutacijos šifravimas.
Pavyzdžiu parodykime, kaip šifruoti tekstą. Pabandykite patys nustatyti įrašymo maršrutą ir šifrų sudarymo maršrutą.
„Pasiruoškite ištverti karą“.
Pranešimą parašysime į 3x9 langelių lentelę. Stalo matmuogali būti nustatytas pagal pranešimo ilgį arba kai kuri fiksuota lentelė gali būti naudojama kelis kartus.
p | r | ir | r | o | t | o | į | l |
r | e | d | s | į | aš | c | l | aš |
f | a | t | b | į | o | th | n | y |
Šifrą sudarysime pradėdami nuo viršutinio dešiniojo lentelės kampo.
"Launlvosoyatovvygidtaerprj"
Aprašytus veiksmus pakeisti atgal nėra sunku. Pakankamai lengva padaryti priešingai. Šis metodas itin patogus, nes leidžia lengvai įsiminti šifravimo ir iššifravimo procedūrą. Ir tai taip pat įdomu, nes šifrui galite naudoti bet kokią figūrą. Pavyzdžiui, spiralė.
Vertikalios permutacijos
Šis šifro tipas taip pat yra maršruto permutacijos variantas. Visų pirma tai įdomu tuo, kad yra raktas. Šis metodas buvo plačiai naudojamas praeityje, taip pat buvo naudojamos lentelės šifravimui. Pranešimas lentelėje įrašomas įprastu būdu – iš viršaus į apačią, o šifruotė išrašoma vertikaliai, laikantis rakto ar slaptažodžio nurodytos tvarkos. Pažvelkime į tokio šifravimo pavyzdį.
"Ir skausmingu keliu, ir su užuojauta"
Naudokime 4x8 langelių lentelę ir įprastu būdu parašykime joje savo pranešimą. Ir už šifravimąnaudokite klavišą 85241673.
ir | c | t | aš | r | o | c | t |
n | s | m | p | y | t | e | m |
ir | c | c | o | c | t | r | a |
d | a | n | b | e | m |
Raktas rodomas žemiau.
8 | 5 | 2 | 4 | 1 | 6 | 7 | 3 |
Dabar naudodami klavišą kaip eilės nurodymą, surašykite stulpelius į eilutę.
"Gusetmsntmayposysaottmserinid"
Svarbu atkreipti dėmesį, kad naudojant šį šifravimo metodą tuščios lentelės langeliai neturėtų būti užpildyti atsitiktinėmis raidėmis ar simboliais, tikintis, kad tai apsunkins šifruotą tekstą. Tiesą sakant, priešingai, toks veiksmas duos priešams užuominą. Kadangi rakto ilgis bus lygus vienam iš pranešimo ilgio daliklių.
Vertikali permutacija apversta
Vertikali permutacija yra įdomi, nes pranešimo iššifravimas nėra paprastas algoritmo apvertimas. Kas žino raktą, žino, kiek lentelėje yra stulpelių. Norėdami iššifruoti pranešimą, turite nustatyti ilgų ir trumpų eilučių skaičių lentelėje. Tai nustatys pradžią, nuo kurios pradėti rašyti šifruotą tekstą į lentelę, kad būtų galima skaityti paprastą tekstą. Norėdami tai padaryti, padalijame ilgįpranešimus pagal rakto ilgį ir gauname 30/8=3 ir 6 likusioje dalyje.
Taigi sužinojome, kad lentelėje yra 6 ilgi stulpeliai ir 2 trumpi stulpeliai, užpildyti ne iki galo raidėmis. Žvelgdami į raktą matome, kad šifravimas prasidėjo nuo 5 stulpelio ir jis turėtų būti ilgas. Taigi matome, kad pirmosios 4 šifruoto teksto raidės atitinka penktą lentelės stulpelį. Dabar galite užsirašyti visas raides į vietas ir perskaityti slaptą žinutę.
Cardano grotelės
Šis tipas reiškia vadinamuosius trafaretinius šifrus, tačiau iš esmės tai yra šifravimas simbolių permutacijos metodu. Raktas yra lentelės formos trafaretas su išpjautomis skylėmis. Tiesą sakant, bet kokia forma gali būti trafaretas, tačiau dažniausiai naudojamas kvadratas arba lentelė.
Cardano trafaretas pagamintas pagal tokį principą: iškirptos ląstelės neturi persidengti viena su kita, kai pasukama 90°. Tai reiškia, kad trafaretą pasukus 4 aplink savo ašį, jame esantys plyšiai niekada neturėtų sutapti.
Kaip pavyzdį naudojant paprastą Cardano grotelę (parodyta toliau).
Naudodami šį trafaretą, užšifruokite frazę „O Mūzos, aš kreipsiuosi į jus“.
- | O | - | M | - | - |
U | |||||
З | S | ||||
K | |||||
B | A | ||||
M |
Užpildykite trafareto langelius raidėmis pagal taisyklę: pirmiausia iš dešinės į kairę, o paskui iš viršaus į apačią. Kai ląstelės baigsis, pasukite trafaretą 90 ° pagal laikrodžio rodyklę. Tokiu būdu gauname tokią lentelę.
Aš | - | - | - | - | - |
O | B | R | |||
A | Sch | ||||
y | |||||
С | b |
Ir dar kartą pasukite 90°.
- | - | - | - | - | С |
B | O | ||||
З | |||||
B | A | ||||
N | |||||
b | E |
Ir paskutinis posūkis.
- | - | M | - | - | - |
Sujungę 4 lenteles į vieną, gauname galutinį šifruotą pranešimą.
Aš | 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 |
Nors žinutė gali likti tokia pati, bet siuntimui bus patogiau gauti pažįstamą šifruotą tekstą. Norėdami tai padaryti, tuščius langelius galima užpildyti atsitiktinėmis raidėmis, o stulpelius įrašyti vienoje eilutėje:
YAVGVGM OOZGVS MUAKGY MBZGN GOSCHAGE SRYUAG
Norėdamas iššifruoti šį pranešimą, gavėjas turi turėti tikslią trafareto, kuris buvo naudojamas jam užšifruoti, kopiją. Šis šifras ilgą laiką buvo laikomas gana stabiliu. Jis taip pat turi daugybę variantų. Pavyzdžiui, vienu metu naudojamos 4 Cardano grotelės, kurių kiekviena sukasisavaip.
Permutacijos šifrų analizė
Visi permutacijos šifrai yra pažeidžiami dažnio analizės. Ypač tais atvejais, kai pranešimo ilgis yra panašus į rakto ilgį. Ir šio fakto negalima pakeisti pakartotinai taikant permutacijas, kad ir kokios sudėtingos jos būtų. Todėl kriptografijoje stabilūs gali būti tik tie šifrai, kurie, be permutacijos, vienu metu naudoja kelis mechanizmus.