Homofoninen korvaussalaus on korvaussalaus , jossa jokainen selkeän tekstin merkki korvataan yhdellä aakkossalauksen useista merkeistä, ja yhden kirjaimen korvaavien merkkien määrä on verrannollinen tämän kirjaimen esiintymistiheyteen. Tämän avulla voit piilottaa tietyn kirjaimen todellisen esiintymistiheyden salatekstissä [1] .
Salaus homofonisella substituutiolla on tunnettu 1400-luvulta lähtien [2] .
Simeone de Crema käytti vuonna 1401 ensimmäisen kerran homofonitaulukoita vokaalien yhtenäiseen taajuuteen moniarvoisen substituution avulla [3] .
Leon Battista Alberti kuvaili vuonna 1466 julkaistussa traktaatissaan salakirjoituksia korvaussalauksen, jossa yhdelle kirjaimelle on määritetty useita elementtejä [3] .
Perinteiset yksiaakkosiset korvaussalaukset olivat merkityksellisiä vielä 1600-luvulla triviaaleissa tehtävissä, kuten henkilökohtaisen kirjeenvaihdon salaamisessa tietojen piilottamiseksi palvelijoilta tai päiväkirjan suojelemiseksi vaimolta tai aviomieheltä. Monoaakkosinen substituutio tuottaa yksinkertaisen ja nopean tiedon suojauksen ihmisiltä, jotka eivät osaa kryptaanalyysiä . Vakavampiin tarkoituksiin tällainen salaus ei kuitenkaan ollut enää turvallinen, joten tuli välttämättömäksi etsiä salausta, joka olisi vaikeampi rikkoa kuin yksiaakkosinen korvaussalaus , mutta jota olisi helpompi käyttää kuin moniaakkosista korvaussalausta . Tällaisista salakirjoista esiteltiin useita muunnelmia, tehokkain ratkaisu tähän ongelmaan oli homofoninen substituutiosalaus tai homofoninen substituutio [1] .
Antaa olla selkeässä tekstissä käytetyn aakkoston merkki. Jokaiselle , muodostamme joukon symboleja niin, että eri symbolit ja joukot ja eivät leikkaa. Tyypillisesti joukon alkiot ovat numeroita. Homofonisessa salauksessa kunkin merkin vaihtojen määrä otetaan suhteessa todennäköisyyteen, että kyseinen merkki esiintyy selväkielisessä tekstissä. Salauksessa selkätekstin merkki valitaan joko satunnaisesti (satunnaislukugeneraattori) tai tietyllä tavalla (esim. järjestyksessä). Tekstistä useimmin esiintyvien kirjainten muistamiseksi he käyttävät kirjainten "senovaliter" ja "tetrishonda" yhdistelmiä venäjäksi ja englanniksi. Nämä yhdistelmät ovat samankaltaisia kuin sanoja, ja siksi ne on helppo muistaa [4] .
Venäjän aakkosten kirjainten ilmestymisen todennäköisyys | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
(*) (Taulukko näyttää yli miljoonan merkin kokonaismäärän kirjallisten ja tieteellisten tekstien taajuusanalyysin tulokset. Samoissa olosuhteissa "aukon" todennäköisyys on 0,146.)
Koska harvinaisimman kirjaimen kohtaamisen todennäköisyys on noin tuhannesosa, salaus homofonisella selvätekstikorvausmenetelmällä voidaan suorittaa käyttämällä salauksen korvaustaulukkoa, jossa kukin salauksen korvaus koostuu 3 numerosta ja niiden kokonaismäärä on 1000. Tässä tapauksessa harvinaisin elementti, tasan yksi merkki [4] .
Alla on esimerkki tällaisesta taulukosta.
Ei. | MUTTA | B | AT | … | E | … | O | P | R | … | E | YU | minä |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
yksi | 012 | 128 | 325 | … | 037 | … | 064 | 058 | 265 | … | 501 | 064 | 106 |
2 | 659 | 556 | 026 | … | 700 | … | 149 | 073 | 333 | … | 248 | 749 | 098 |
… | … | … | … | … | … | … | … | … | … | … | … | … | |
17 | 111 | 061 | … | 144 | … | 903 | 656 | 476 | … | 453 | |||
… | … | … | … | … | … | … | … | … | … | ||||
38 | 366 | 804 | … | … | … | 123 | 865 | … | |||||
… | … | … | … | … | … | … | … | ||||||
69 | 095 | … | 010 | ||||||||||
… | … | … | |||||||||||
71 | 541 | 268 | |||||||||||
… | … | ||||||||||||
94 | 479 |
Jotkut taulukon kentät ovat tyhjiä, koska lähdeaakkoston kunkin merkin korvausten määrä on erilainen. Tätä fragmenttia voidaan käyttää esimerkiksi sanan "VERA" salaamiseen. Jokainen alkuperäisen viestin kirjain, tässä tapauksessa sana, tulee korvata jollakin kyseisen kirjaimen sarakkeen salauskorvauksista. Jos kirjaimet korvataan sellaisilla salauskorvauksilla: "B" - , "E" - , "P" - , "A" - , niin salatulla sanalla on numerosarja " " [4] .
Homofoninen korvaussalaus on yksinkertaisin suojaus taajuusanalyysin salaushyökkäyksiä vastaan, koska yksi sen korvauksista valitaan satunnaisesti salattaessa lähdetekstin kirjainta. Tällä salausmenetelmällä salatekstielementit ilmestyvät yhtä suurella todennäköisyydellä, joten tavallinen kirjainten tiheyden laskenta on hyödytöntä kryptaanalyytikolle . Parien, kirjainten kolmoiskappaleiden tai sanojen laskemiseen perustuva taajuuden kryptausanalyysi onnistuu kuitenkin paremmin. Esimerkiksi artikkeli a on yleisin englanninkielisessä pelkässä tekstissä. Lisäksi q-kirjaimen jälkeen on vain yksi kirjain - u. Näin ollen, kun huomaat joitakin merkkiyhdistelmiä, voit tulkita osan tekstistä ja palauttaa loput saatujen tietojen mukaan [5] [4] .
Nykyaikaiset tietokoneet purkavat homofonisella korvauksella salattujen tekstien salauksen muutamassa sekunnissa [6] .
Tämän menetelmän erikoisuus on, että salauksen vaihtoa ei toisteta. Tämä tarkoittaa, että jos kirjaimella "Ф" on 3 salauskorvausta, esimerkiksi , ja , niin salauskorvaukset , ja merkitsevät vain kirjainta "Ф" [7] .
Homofoninen salaus voi näyttää moniaakkoiselta ( moniaakkoselta ) salaukselta, koska aakkosten jokainen kirjain voidaan salata monin tavoin, mutta itse asiassa homofoninen korvaussalaus on eräänlainen yksiaakkosinen ( monaakkosellinen ) salaus. Pääsyy siihen, miksi homofoninen salaus on yksiaakkosinen, on se, että salauksen aakkoset eivät muutu salausprosessin aikana [7] .
Homofoniselle korvaussalaukselle on tunnusomaista kaksi parametria - salatekstin pituus ja monimutkaisuus , jossa on tässä salatekstissä käytettyjen salakirjoitusaakkosten eri merkkien lukumäärä. Ilmeisesti monimutkaisuus on rajallinen . Kun salauksen monimutkaisuus on tarpeeksi lähellä nollaa, salaus on yksinkertainen korvaussalaus. Tietyllä arvolla salaaakkosten merkkien jakautuminen muuttuu tasaiseksi (noin 0,3 200 merkin salatekstiä varten), mutta jos jatkat monimutkaisuuden lisäämistä, voit saavuttaa raja-arvon, jossa salauksen purkaminen ei ole enää mahdollista yksiselitteisesti teksti. Korkeamman asteen homofonisilla substituutioilla on sama salateksti erilaisille selväkielisille teksteille, joten tapauksissa, joissa salatekstin pituus on pienempi kuin ainutlaatuisuusetäisyys , on mahdotonta ymmärtää, mikä selkeän tekstin versio on oikea [8] .
Toisen asteen homofoninen substituutio on homofoninen substituutio siten, että salateksti voidaan purkaa kahdella tavalla. Esimerkiksi " " yhden avaimen (avain 1) avulla voidaan purkaa nimellä "MAMA SOAPED THE FRAME" ja toisen avaimen (avain 2) avulla "AMUR WASHED URAL". Molemmilla selkoteksteillä ei ole paljoa merkitystä, mutta ne havainnollistavat hyvin, että saman salatekstin taakse voidaan piilottaa täysin erilaisia viestejä [9] .
|
|
Ymmärtääksemme, kuinka tällainen salaus voidaan saada, kirjoitetaan samanpituiset selkotekstimme toistensa alle.
M | MUTTA | M | MUTTA | M | S | L | MUTTA | R | MUTTA | M | klo |
MUTTA | M | klo | R | klo | M | S | L | klo | R | MUTTA | L |
Huomaa nyt, että jos luemme tuloksena olevaa tietuetta ei riveissä, vaan sarakkeissa, saamme 9 erilaista digrammia (kirjainparia): "MA", "AM", "MU", "AP", "YM", " LY" , "AL", "RU", "UL". Kaikki digrammit paitsi "MA", "MU" ja "AR" toistetaan kerran. Täytä seuraavaksi satunnaisesti matriisi (6 on pelkkien aakkosten kirjainten lukumäärä; jos tekstissä käytetään koko aakkostoa, meillä on matriisi tai venäjän ja englannin aakkosille) esimerkiksi numeroilla, 1 - 36 [10] .
MUTTA | L | M | R | klo | S | |
MUTTA | 21 | kymmenen | 9 | 32 | 26 | 34 |
L | 16 | 6 | 7 | neljätoista | kolmekymmentä | 27 |
M | 13 | kahdeksantoista | 23 | 28 | 2 | 5 |
R | neljä | viisitoista | 36 | 22 | kahdeksan | 35 |
klo | 25 | 3 | 17 | 29 | kaksikymmentä | 33 |
S | yksi | 31 | 19 | 24 | 12 | yksitoista |
Jokainen rivi ja jokainen sarake on yhdistetty johonkin ensimmäisen ja toisen selväkielisen tekstin aakkosmerkkeistä. Nyt jokainen kaava vastaa tiettyä numeroa (vastaavien rivien ja sarakkeiden leikkauskohdassa), joten korvaamalla kaava vastaavalla numerolla voimme salata tekstit. Digrammeja vastaavien numeroiden matriisi toimii avaimena tässä tapauksessa. Jotta koko matriisi pysyisi salassa, se on jaettu kahteen matriisiin: toinen saadaan lajittelemalla rivien elementit, toinen lajittelemalla sarakkeet ja transponoimalla . Tuloksena on kaksi matriisia, joissa kummassakin rivien elementit on järjestetty nousevaan (laskevaan) järjestykseen ja yhdellä matriisilla voidaan saada vain yksi selväteksti. Esimerkiksi tekstit, joissa on samat aakkoset, otetaan, koska oletetaan, että yleisessä tapauksessa koko aakkosto käytetään salauksen luomiseen ja että salauksen tulee kattaa kaikki mahdolliset digrammit [11] .
|
|
Menetelmän parantamiseksi voidaan saavuttaa salausaakkosten minimiredundanssi . Algoritmi
|
|
|
Jos luet kirjaimet kutakin kirjainta vastaavien numeroiden osoittamassa järjestyksessä, saat selkeän tekstin. Tämän vuoksi tällaisen salauksen käyttö tulee mahdottomaksi, koska pelkän tekstin saamiseksi hyökkääjällä riittää avain, vaikka hänellä ei olisi edes yksityistä tekstiä. Tämä tekee tekstin redundanssin vähentämisestä turhaa. Toisaalta aiemmin käytetyllä toisen asteen homofonisen substituution matriisimuodolla on melko hyvä kryptografinen vahvuus, jos käytetään täyttä aakkostoa. Kaksi tekstiä antaa ( ) mahdollisia digrammeja, jotka eivät toistu paljon, ellei teksti ole liian suuri. Tämän seurauksena salattujen viestien redundanssi on alhainen, kun taas viestissä käytetään paljon erilaisia merkkejä, jotka ovat vakavia esteitä kryptausanalyysille [12] .
Kuuluisan Zodiac -sarjamurhaajan kryptogrammit on salattu homofonisella korvaussalauksella. Toista kahdesta kryptogrammista ei ole vielä purettu [13] .
Paalin kryptogrammit katsotaan salatuiksi ensimmäisen asteen homofonisella korvaussalauksella, ja todennäköisyys purkaa toinen kryptogrammi (ainoa kolmesta, joka voidaan purkaa) siten, että saadaan toinen mielekäs teksti, on pienin [ 14] [15] .
Geneettinen koodi on homofoninen substituutio, jossa aminohapoilla on selkeän tekstin symbolien rooli ja kodonit ovat nukleotidien kolminkertaisia salatekstimerkkejä [16] .