Hillin salaus on lineaariseen algebraan ja modulaariseen aritmetiikkaan perustuva polygrammikorvaussalaus . Amerikkalaisen matemaatikko Lester Hillin keksi vuonna 1929. Se oli ensimmäinen salaus, joka mahdollisti käytännössä (vaikkakin vaikeasti) toiminnan samanaikaisesti useammalla kuin kolmella merkillä. Hillin salaus ei ole löytänyt käytännön sovellusta kryptografiassa , koska murtuman vastustuskyky on heikko ja suurten suorien ja käänteisten matriisien generointialgoritmeja ei ole kuvattu.
Hillin salakirjoitus kuvattiin ensimmäisen kerran artikkelissa "Cryptography in an Algebraic Alphabet" [1] , joka julkaistiin The American Mathematical Monthly -lehdessä kesä-heinäkuussa 1929. Saman vuoden elokuussa Hill laajensi aihetta ja piti kryptografiasta puheen American Mathematical Societylle Boulderissa, Coloradossa [2] . Hänen luentonsa johti myöhemmin toiseen artikkeliin "Concerning Certain Linear Transformation Apparatus of Cryptography" [3] , joka julkaistiin The American Mathematical Monthly -lehdessä maaliskuussa 1931. David Kahn kuvaili Code Breakers -kirjassaan Hill-salausta ja sen paikkaa kryptografian historiassa [4] seuraavasti:
Hill oli yksi niistä, jotka kehittivät yleisen ja tehokkaan menetelmän. Lisäksi Hill-salaus siirsi ensimmäistä kertaa polygrammeja käyttävän kryptografian käytännön tieteenalojen luokkaan.
Alkuperäinen teksti (englanniksi)[ näytäpiilottaa] Mutta Hill yksin keksi vallan ja yleisyyden menetelmän. Lisäksi hänen menetelmänsä, joka valmisti polygraafisen kryptografian, on ensimmäistä kertaa käytännöllinen.Hillin salaus on polygrammisalaus , joka voi käyttää suuria lohkoja käyttämällä lineaarista algebraa. Jokaiselle aakkoston kirjaimelle on annettu numero modulo 26. Latinalaisessa aakkostossa käytetään usein yksinkertaisinta mallia: A = 0, B = 1, ..., Z = 25, mutta tämä ei ole salauksen olennainen ominaisuus . N kirjaimen lohkoa käsitellään n - ulotteisena vektorina ja kerrotaan modulo 26 n × n - matriisilla . Jos modulo-kantana käytetään numeroa, joka on suurempi kuin 26, voidaan käyttää erilaista numeerista mallia numeroiden kirjainten yhteensovittamiseksi sekä välilyöntien ja välimerkkien lisäämiseksi [5] . Matriisin elementit ovat avainasemassa. Matriisin on oltava käännettävä, jotta salauksen purku on mahdollista [6] [7] .
Kun n = 3, järjestelmä voidaan kuvata seuraavasti:
tai matriisimuodossa:
tai
jossa ja ovat sarakevektorit, joiden korkeus on 3 ja jotka edustavat vastaavasti selkeää tekstiä ja salatekstiä, ja on 3 × 3 -matriisi, joka edustaa salausavainta. Toiminnot suoritetaan modulo 26.
Viestin salauksen purkamiseksi on hankittava käänteinen avainmatriisi . Käänteimatriisien laskemiseen on olemassa vakiomenetelmiä (katso tapoja löytää käänteismatriisi ), mutta kaikilla matriiseilla ei ole käänteistä (katso käänteimatriisi ). Matriisilla on käänteisarvo silloin ja vain, jos sen determinantti on muu kuin nolla eikä sillä ole yhteisiä jakajia moduulikannan kanssa [8] . Jos matriisin determinantti on nolla tai sillä on yhteinen jakaja modulo-kannan kanssa, niin kyseistä matriisia ei voi käyttää Hill-salauksessa, vaan on valittava toinen matriisi (muuten salateksti on salauskelvoton). Yllä olevat ehdot täyttäviä matriiseja on kuitenkin runsaasti [6] .
Yleensä salausalgoritmi voidaan ilmaista seuraavasti [6] [9] :
Salaus: .
Salauksen purku: .
Seuraavassa esimerkissä [7] käytetään latinalaisia kirjaimia A:sta Z:hen, vastaavat numeroarvot on annettu taulukossa.
A | B | C | D | E | F | G | H | minä | J | K | L | M | N | O | P | K | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | kymmenen | yksitoista | 12 | 13 | neljätoista | viisitoista | 16 | 17 | kahdeksantoista | 19 | kaksikymmentä | 21 | 22 | 23 | 24 | 25 |
Harkitse viestiä "ACT" ja seuraavaa avainta (GYBNQKURP kirjaimellisessa muodossa):
Tämä matriisi on käännettävä, koska sen determinantti ei ole nolla eikä sillä ole yhteisiä jakajia moduulikannan kanssa. Vaara, että avainmatriisin determinantilla on yhteisiä jakajia modulo-kannan kanssa, voidaan eliminoida valitsemalla moduulikannan alkuluku . Esimerkiksi Hill-salauksen kätevämmässä versiossa 3 ylimääräistä merkkiä ( välilyönti , piste ja kysymysmerkki) lisätään aakkosiin, jotta moduulikanta kasvaa arvoon 29 [5] .
Koska kirjain "A" vastaa numeroa 0, "C" - 2, "T" - 19, viesti on vektori
Sitten salattu vektori on
Vektori vastaa salatekstiä "POH". Oletetaan nyt, että viestimme oli "Kissa":
Nyt salattu vektori on
Tämä vektori vastaa salatekstiä "FIN". Voidaan nähdä, että salatekstin jokainen kirjain on muuttunut. Hillin salaus saavutti leviämisen Shannonin mukaan , ja n - ulotteinen Hill-salaus voi saavuttaa diffuusion n merkkiä kerrallaan.
Salauksen purkuKäänteinen avainmatriisi:
Otetaan salateksti edellisestä "POH"-esimerkistä:
Tämä vektori vastaa viestiä "ACT".
Tavallinen Hill-salaus on alttiina valitulle selväkieliselle hyökkäykselle, koska se käyttää lineaarisia operaatioita. Salausanalyytikko, joka sieppaa viestisymboli /salatekstisymboli -parin, pystyy muodostamaan lineaarisen yhtälöjärjestelmän , jota ei yleensä ole vaikea ratkaista. Jos käy ilmi, että järjestelmää ei voi ratkaista, sinun tarvitsee vain lisätä muutama pari viestimerkkiä / salatekstimerkkiä. Tällaiset laskelmat perinteisten lineaarialgebra-algoritmien avulla vaativat hyvin vähän aikaa. Tässä suhteessa kryptografisen vahvuuden lisäämiseksi siihen tulisi lisätä joitain epälineaarisia operaatioita. Lineaaristen operaatioiden, kuten Hill-salauksessa, ja epälineaaristen vaiheiden yhdistelmä johti permutaatio-permutaatioverkon luomiseen (kuten Feistel-verkko ). Siksi nykyaikaisia lohkosalauksia voidaan tietystä näkökulmasta pitää eräänlaisena polygrammisalauksena [7] [8] .
Avaimen pituusAvaimen pituus on kaikkien mahdollisten avainten lukumäärän binäärilogaritmi . Matriiseja on n × n . Siten on avaimen pituuden yläraja Hill-salauksessa, jossa käytetään n × n -matriisia . Tämä on vain yläraja, koska jokainen matriisi ei ole käännettävä, ja vain tällaiset matriisit voivat olla avain. Käännettävien matriisien lukumäärä voidaan laskea käyttämällä Kiinan jäännöslausetta . Matriisi on käännettävä modulo 26 jos ja vain jos se on käännettävä modulo 2 ja modulo 13 [8] .
Käännettävien modulo 2 ja 13 n × n matriisien lukumäärä on sama kuin lineaarisen ryhmän GL( n , Z 2 ) ja GL( n , Z 13 ) järjestys:
Käännettävien modulo 26 matriisien lukumäärä on yhtä suuri kuin näiden lukujen tulo:
Lisäksi olisi viisasta välttää liikaa nollia avainmatriisissa, koska ne vähentävät diffuusiota. Tuloksena käy ilmi, että Hillin vakiosalauksen tehollinen avaintila on noin . 5 × 5 Hill -salauksessa tämä olisi noin 114 bittiä. On selvää, että raaka voima ei ole tehokkain hyökkäys Hill-salausta vastaan [7] .
Kun työskentelet kahdella merkillä kerrallaan, Hill-salauksella ei ole erityisiä etuja Playfair-salaukseen verrattuna ja se on jopa huonompi salauksen vahvuuden ja paperilla laskemisen helppouden suhteen. Kun avaimen koko kasvaa, salaus muuttuu nopeasti paperilla olevien ihmisten laskelmien ulottumattomiksi. Mitan 6 Hill-salaus toteutettiin mekaanisesti. Hill ja kumppani saivat patentin laitteelle ( US-patentti 1 845 947 ), joka suoritti 6 × 6 -matriisin kertolaskumoduulin 26 käyttämällä hammaspyörä- ja ketjujärjestelmää. Vaihteiden (ja siten myös avaimen) sijaintia ei voitu muuttaa tietylle laitteelle, joten kolminkertaista salausta suositeltiin turvallisuussyistä. Tämä yhdistelmä oli erittäin vahva vuonna 1929, ja se osoittaa, että Hill varmasti ymmärsi hämmennyksen ja diffuusion käsitteet. Laite oli kuitenkin melko hidas, joten toisessa maailmansodassa Hillin koneita käytettiin vain radiosignaalien kolmimerkkisen koodin salaamiseen [10] .