Virta [1] [2] tai virtausalaus [3] on symmetrinen salaus , jossa jokainen selkeän tekstin merkki muunnetaan salatekstin merkiksi riippuen käytetystä avaimesta, mutta myös sen sijainnista selkeän tekstin virrassa. Virtasalaus käyttää erilaista lähestymistapaa symmetriseen salaukseen kuin lohkosalaukset .
Shift -rekistereihin perustuvia virtasalauksia käytettiin aktiivisesti sotavuosina, kauan ennen elektroniikan tuloa. Ne oli helppo suunnitella ja toteuttaa.
Vuonna 1965 Ernst Selmer, Norjan hallituksen johtava kryptografi, kehitti siirtorekisterisekvenssiteorian . Myöhemmin Solomon Golomb , Yhdysvaltain kansallisen turvallisuusviraston matemaatikko , kirjoitti kirjan nimeltä "Shift Register Sequences", jossa hän esitteli tärkeimmät saavutuksensa tällä alalla sekä Selmerin.
Claude Shannonin vuonna 1949 julkaistu teos toi suuren suosion suorasalauksille, joissa Shannon osoitti Vernam-salauksen (tunnetaan myös kertakäyttöisenä salauksena) ehdottoman turvallisuuden. Vernam-salauksessa avaimen pituus on sama kuin itse lähetetyn viestin pituus. Avainta käytetään gammana , ja jos avaimen jokainen bitti valitaan satunnaisesti, salausta ei voida murtaa (koska kaikki mahdolliset selkotekstit ovat yhtä todennäköisiä). Tähän mennessä on luotu suuri määrä tietovirran salausalgoritmeja , kuten: A3 , A5 , A8 , MUGI , PIKE , RC4 , SEAL .
Virtasalauksen yksinkertaisin toteutus on esitetty kuvassa. Gammageneraattori tuottaa avainvirran (gamma) : . Merkitään selvätekstibittivirtaa nimellä . Sitten salatekstibittivirta saadaan käyttämällä XOR -operaatiota : missä .
Salauksen purku suoritetaan XOR-operaatiolla saman gamman ja salatekstin välillä: .
On selvää, että jos gammabittien sekvenssillä ei ole pistettä ja se valitaan satunnaisesti, salausta on mahdotonta rikkoa. Mutta tällä salaustilalla on myös negatiivisia ominaisuuksia. Siten avaimia, jotka ovat pituudeltaan verrattavissa lähetettyihin viesteihin, on käytännössä vaikea käyttää. Siksi käytetään yleensä pienempää avaimen pituutta (esimerkiksi 128 bittiä). Sitä käyttämällä luodaan näennäissatunnainen pelisekvenssi (sen on täytettävä Golombin postulaatit ). Luonnollisesti gamman näennäissatunnaisuutta voidaan hyödyntää hyökkäyksessä stream-salausta vastaan.
Oletetaan esimerkiksi, että virtasalausten gammatilassa yksi salatekstin merkki on vääristynyt lähetettäessä viestintäkanavalla . Ilmeisesti tässä tapauksessa kaikki ilman vääristymiä vastaanotetut merkit dekoodataan oikein. Vain yksi merkki tekstistä katoaa. Ja nyt kuvitellaan, että yksi salatekstin merkeistä katosi lähetettäessä viestintäkanavan kautta. Tämä johtaa kaiken kadonneen merkin jälkeen olevan tekstin virheelliseen dekoodaukseen.
Lähes kaikki suoratoiston salausjärjestelmien tiedonsiirtokanavat sisältävät häiriöitä . Siksi tietojen katoamisen estämiseksi tekstin salauksen ja salauksen purkamisen synkronointiongelma on ratkaistu. Tämän ongelman ratkaisumenetelmän mukaan salausjärjestelmät jaetaan synkronisiin ja itsesynkronoituviin järjestelmiin.
Määritelmä:
Synchronous stream ciphers (SPC:t) ovat salauksia, joissa avainten virta luodaan riippumatta selkeästä tekstistä ja salatekstistä.
Kun avainvirta on salattu, se tuottaa avainvirtabittejä, jotka ovat identtisiä avainvirran bittien kanssa, kun ne puretaan. Salatekstin merkin katoaminen aiheuttaa sen, että kaksi generaattoria ei synkronoidu, jolloin muun viestin salauksen purkaminen on mahdotonta. Ilmeisesti tässä tilanteessa lähettäjän ja vastaanottajan on synkronoitava uudelleen voidakseen jatkaa työtä.
Synkronointi tehdään yleensä lisäämällä erityisiä merkkejä lähetettyyn viestiin. Seurauksena on, että lähetyksen aikana puuttuva merkki johtaa virheelliseen salauksen purkamiseen vain, kunnes jokin tokeneista vastaanotetaan.
Huomaa, että synkronointi on suoritettava siten, että mikään avainvirran osa ei toistu. Siksi ei ole järkevää siirtää generaattoria aikaisempaan tilaan.
SPS:n edut:
SPS:n miinukset:
Rakentamisen perusidea patentoitiin vuonna 1946 Yhdysvalloissa .
Määritelmä:
Itsesynkronoituvat virtasalaukset (asynchronous stream ciphers (ATS)) ovat salauksia, joissa avainvirta luodaan avaimen funktiolla ja kiinteällä määrällä salatekstimerkkejä.
Avainvirran generaattorin sisäinen tila on siis salatekstin edellisen N bitin funktio. Siksi salauksen purkava avainvirtageneraattori, joka on vastaanottanut N bittiä, synkronoituu automaattisesti salausgeneraattorin kanssa.
Tämän tilan toteutus on seuraava: jokainen viesti alkaa satunnaisella otsikolla, jonka pituus on N bittiä; otsikko salataan, lähetetään ja puretaan; dekoodaus on väärä, mutta näiden N bitin jälkeen molemmat generaattorit synkronoidaan.
APS:n edut:
APS:n miinukset:
Lineaaristen siirtorekisterien käytölle kryptografiassa on useita syitä:
Määritelmä: Lineaarinen takaisinkytkentäsiirtorekisteri , jonka pituus on L, koostuu L numeroidusta solusta , joista jokainen pystyy tallentamaan 1 bitin ja jolla on yksi tulo ja yksi lähtö; ja kellosignaali , joka ohjaa datan siirtymää. Kunkin aikayksikön aikana suoritetaan seuraavat toiminnot:
Ensimmäisessä vaiheessa:
Toisessa vaiheessa:
Seuraava relaatio kuvaa LFSR:n toimintaa yleisesti:
Jos kirjoitamme kaikkiin soluihin nollan suuruisia bittejä, niin järjestelmä generoi sekvenssin, joka koostuu kaikista noloista. Jos kirjoitamme nollasta poikkeavia bittejä, saamme puoliäärettömän sekvenssin. Järjestys määräytyy kertoimilla.
Katsotaanpa, mikä tällaisen järjestelmän jakso voi olla:
Nollasta poikkeavien täyttöjen määrä: Siten, .
Yhden täytön jälkeen, joka oli aiemmin, prosessi alkaa toistua. Rekisterin täyttöprosessia, kuten yllä on esitetty, edustaa lineaarinen eroyhtälö. Siirretään kaikki ehdot yhteen yhtälön osaan, saadaan: .
Nimetään: . Sitten:
Tämän polynomin tärkeä ominaisuus on pelkistyvyys.
Määritelmä:
Polynomia kutsutaan pelkistäväksi , jos se voidaan esittää kahden pienemmän asteen polynomin tulona tietyn kentän kertoimilla (tässä tapauksessa binäärikertoimilla). Jos tällaista esitystä ei tapahdu, polynomin sanotaan olevan redusoitumaton .
Jos polynomi on redusoitumaton ja primitiivinen , niin jakso on sama kuin suurin mahdollinen jakso, yhtä suuri kuin
Esimerkki:
Otetaan pelkistymätön primitiivinen polynomi Tämä polynomi voidaan kirjoittaa seuraavasti - kirjoitetaan asteet, joilla on nollasta poikkeavia kertoimia.
Kirjoitamme soluihin alkutilaan ja määritämme generaattorin ajanjakson pituuden:
Palaute | Solu0 | Solu1 | solu2 |
yksi | 0 | 0 | yksi |
0 | yksi | 0 | 0 |
yksi | 0 | yksi | 0 |
yksi | yksi | 0 | yksi |
yksi | yksi | yksi | 0 |
0 | yksi | yksi | yksi |
0 | 0 | yksi | yksi |
yksi | 0 | 0 | yksi |
Generaattorin jakso on Generaattorin lähtö on sekvenssi:
Annetaan esimerkkejä joistakin primitiivisistä polynomeista modulo 2:
Binäärisekvenssin lineaarinen monimutkaisuus on yksi LFSR-toiminnan tärkeimmistä ominaisuuksista. Siksi käsittelemme tätä aihetta yksityiskohtaisemmin.
Ennen kuin määrittelemme lineaarisen monimutkaisuuden, otamme käyttöön joitakin merkintöjä. - ääretön sekvenssi , jossa on jäseniä - äärellinen pituinen sarja , jonka jäsenet ovat LFSR,
sanotaan generoivan sekvenssin, jos on jokin alkutila, jossa LFSR:n lähtösekvenssi osuu yhteen . Vastaavasti LFSR:n sanotaan generoivan lopullisen sekvenssin, jos on jokin alkutila, jolle LFSR-lähtösekvenssin ensimmäisinä termeinä ovat sekvenssin jäsenet .
Lopuksi annamme määritelmän äärettömän binäärisekvenssin lineaarisuudelle. Määritelmä: Äärettömän binäärisekvenssin lineaarinen monimutkaisuus on luku , joka määritellään seuraavasti:
Määritelmä:
Äärillisen binäärijonon lineaarinen monimutkaisuus on luku , joka on yhtä suuri kuin lyhimmän LFSR:n pituus, joka tuottaa sekvenssin, jonka ensimmäiset termit ovat . Lineaarisen kompleksisuuden ominaisuudet:
Olkoon ja binäärisekvenssit. Sitten:
1. Mikä tahansa osajonon lineaarinen monimutkaisuus täyttää epäyhtälöt
2. jos ja vain jos on nollapituinen sekvenssi .
3. jos ja vain jos .
4. Jos on jaksollinen jaksolla , niin
5. Tehokas
algoritmi äärellisen binaarijonon lineaarisen kompleksisuuden määrittämiseen on Berlekamp-Massey-algoritmi .
Valitettavasti LFSR-lähtösekvenssi on helposti ennustettavissa. Tietäen siis lähtösekvenssin 2L merkkiä, rekisterin alkutäyttö on helppo löytää ratkaisemalla lineaarinen yhtälöjärjestelmä (katso kappale "Siirtorekistereihin perustuvat suorasalaukset lineaarisella takaisinkytkellä").
Uskotaan, että kryptografista käyttöä varten LFSR-lähtösekvenssillä on oltava seuraavat ominaisuudet:
On olemassa useita menetelmiä suunnitella avainvirtageneraattoreita, jotka tuhoavat LFSR:n lineaariset ominaisuudet ja tekevät siten tällaisista järjestelmistä kryptografisesti turvallisempia:
1. käyttämällä epälineaarista funktiota , joka yhdistää useiden LFSR:ien lähdöt
2. käyttämällä epälineaarista suodatusfunktiota yksittäisen LFSR:n kunkin solun sisältö 3. yhden LFSR :n ulostulon käyttäminen yhden (tai useamman) LFSR
:n kellosignaalin
ohjaamiseen .
Tiedetään, että jokainen Boolen funktio voidaan kirjoittaa riippumattomien muuttujien kertalukujen tulojen summana modulo 2 , . Tätä lauseketta kutsutaan funktion algebralliseksi normaalimuodoksi . Funktion epälineaarinen järjestys on termien maksimijärjestys sen algebrallisen normaalimuodon merkinnöissä.
Esimerkiksi Boolen funktion epälineaarinen järjestys on 3. Boolen funktion suurin mahdollinen epälineaarinen järjestys on yhtä suuri kuin muuttujien määrä.
Oletetaan nyt, että meillä on lineaariset takaisinkytkentäsiirtorekisterit, niiden pituudet ovat pareittain erilaisia ja suurempi kuin kaksi. Kaikki rekisterit on yhdistetty epälineaariseen funktioon , kuten kuvassa näkyy. Funktio esitetään algebrallisessa normaalimuodossa. Tällöin avainvirran lineaarinen monimutkaisuus on .
Jos ovat pareittain koprimelukuja, niin avainvirran jakson pituus on yhtä suuri: . Esimerkiksi jos , niin . Ja avainvirran jakson pituus on .
Esimerkki (Geff-generaattori):
Tämä generaattori käyttää kolmea LFSR:ää yhdistettynä epälineaarisesti. Näiden rekisterien pituudet ovat parittaisia alkulukuja.
Tietyn generaattorin epälineaarinen funktio voidaan kirjoittaa seuraavasti:
Jakson pituus:
Lineaarinen monimutkaisuus:
Geff-generaattori on kryptografisesti heikko, koska informaatio LFSR 1- ja LFSR 3 -generaattoreiden tilasta sisältyy sen lähtösekvenssiin. Tämän ymmärtämiseksi merkitään LFSR:n 1,2,3 ja avainvirran -: nnet lähtöbitit . Sitten sekvenssin korrelaatiotodennäköisyys sekvenssin suhteen :
Samoin
tästä syystä, huolimatta pitkästä ajanjaksosta ja melko korkeasta lineaarisesta monimutkaisuudesta, Geff-generaattori soveltuu korrelaatiohyökkäyksiin.
Jokaisen solun tulos syötetään jonkin epälineaarisen loogisen suodatusfunktion tuloon . Oletetaan, että suodatusfunktio on järjestyksessä , niin avainvirran lineaarinen kompleksisuus on korkeintaan .
Oskillaattorien ja epälineaaristen suodatinoskillaattorien epälineaarisissa yhdistelmissä datan liikettä kaikissa LFSR:issä ohjataan yhdellä kellosignaalilla.
Tarkasteltavana olevien generaattorityyppien toiminnan pääideana on tuoda epälineaarisuus LFSR-pohjaisten avainvirtageneraattoreiden toimintaan ohjaamalla yhden rekisterin kellosignaalia toisen lähtösekvenssillä.
Kellosäätöön perustuvia oskillaattorityyppejä on kahta tyyppiä:
1. säädettävä äänenkorkeusoskillaattori
2. kompressiooskillaattori.
Pääidea:
LFSR 1:tä käytetään ohjaamaan kahden muun LFSR:n 2 ja 3 bittien liikettä.
Toimintaalgoritmi:
1. LFSR 1 -rekisteri synkronoidaan ulkoisella kellosignaalilla
2. Jos LFSR 1 -rekisterin lähtö on yksi , LFSR 2 -rekisteriin syötetään kellosignaali ja LFSR 3 toistaa edellisen lähtöbittinsä (alkuvaiheessa edellinen LFSR 3 -lähtöbitti on yhtä suuri kuin 0 )
3. Jos LFSR 1 -rekisterin lähtö on nolla , LFSR 3 -rekisteriin syötetään kellosignaali ja LFSR 2 toistaa edellisen lähtönsä. bitti (alkukerralla edellinen LFSR 2 -lähtöbitti otetaan myös 0:ksi)
4. Generaattorin ulostulobittisekvenssi, jossa on muuttuva askel, on tulos bittikohtaisen XOR -operaation soveltamisesta LFSR 2:n lähtösekvensseihin ja LFSR 3 -rekisterit.
Muuttuvan nousun generaattoreiden turvallisuuden lisääminen:
LFSR 1 -ohjausrekisteriä käytetään ohjaamaan LFSR 2 -lähtöä. Algoritmi:
Pakkausgeneraattori on yksinkertainen, skaalautuva ja sillä on hyvät turvallisuusominaisuudet. Sen haittana on, että avainten tuottonopeus ei ole vakio, ellei joihinkin varotoimiin ryhdytä.
Voit lisätä kompressiogeneraattorin turvallisuutta seuraavasti:
Useimmat olemassa olevat salaisen avaimen salaukset voidaan yksiselitteisesti luokitella joko virtasalauksiksi tai lohkosalauksiksi . Mutta teoreettinen raja niiden välillä on melko hämärä. Esimerkiksi lohkosalausalgoritmeja käytetään stream-salaustilassa (esimerkki: DES -algoritmille, CFB- ja OFB- moodeille ).
Harkitse tärkeimpiä eroja stream- ja lohkosalausten välillä, ei vain niiden turvallisuuden ja mukavuuden kannalta, vaan myös niiden tutkimuksen suhteen maailmassa:
Nyt maailman tilasta:
Rainer Ruepelin mukaan suorasalauksen suunnittelussa on neljä päätapaa:
Reiner Rüppelin teoreettiset kriteerit in-line-järjestelmien suunnittelulle:
Toistaiseksi nämä kriteerit eivät ole osoittautuneet tarpeellisiksi tai riittäviksi suoratoiston salausjärjestelmän turvallisuuden kannalta. On myös syytä huomata, että jos kryptanalyytikolla on rajoittamaton aika ja laskentateho, ainoa toteutettavissa oleva virtasalaus, joka on suojattu tällaista vastustajaa vastaan, on kertakäyttöinen tyyny.
Kaikki virtasalausten kryptausanalyysimenetelmät jaetaan yleensä tehoon (hyökkäys "raaka voima"), tilastollisiin ja analyyttisiin.
Tämä luokka sisältää hyökkäykset, jotka suorittavat täydellisen luettelon kaikista mahdollisista vaihtoehdoista. Kattavan haun monimutkaisuus riippuu ongelman kaikkien mahdollisten ratkaisujen määrästä (erityisesti avaintilan tai selkeän tekstin tilan koosta). Tämä hyökkäysluokka soveltuu kaikenlaisiin tietovirran salausjärjestelmiin. Salausjärjestelmiä kehittäessään kehittäjät pyrkivät tekemään tämäntyyppisistä hyökkäyksistä tehokkaimman verrattuna muihin olemassa oleviin hakkerointimenetelmiin.
Tilastolliset hyökkäykset jakautuvat kahteen alaluokkaan:
Molemmat menetelmät käyttävät lineaarisen kompleksisuuden periaatetta.
Tämän tyyppistä hyökkäystä harkitaan olettaen, että kryptanalyytikko tietää generaattorin kuvauksen, julkisen tekstin ja vastaavan yksityisen tekstin. Kryptusanalyytikon tehtävänä on määrittää käytettävä avain (rekisterien alkutäyttö). Synkronisiin tietovirtasalauksiin sovellettavien analyyttisten hyökkäysten tyypit:
Ne ovat yleisimmät hyökkäykset tietovirtasalausten rikkomiseen.
Tiedetään, että salausjärjestelmän avaamistyötä voidaan vähentää merkittävästi, jos epälineaarinen funktio välittää tietoa generaattorin sisäisistä komponenteista lähtöön. Siksi rekisterien alkuperäisen täytön palauttamiseksi korrelaatiohyökkäykset tutkivat salausjärjestelmän tulossekvenssin korrelaatiota rekisterien lähtösekvenssin kanssa.
On olemassa seuraavat korrelaatiohyökkäysten alaluokat:
Tarkastellaanpa esimerkkiä Siegenthalerin peruskorrelaatiohyökkäyksestä ("split and open"), joka perustuu Hamming-etäisyyden käsitteeseen kahden samanpituisen binäärisekvenssin välillä. Soveltuu generaattoreiden yhdistämiseen.
j:nnen lineaarisen siirtorekisterin (lähtösekvenssin {x (j) } vaikutuksen paljastamiseksi salauksen gammaan {g} osa generaattorista mallinnetaan binäärisymmetriseksi kanavaksi (BSC). Hyökkäysalgoritmi koostuu kahdesta vaiheesta (joita kutsutaan joskus vaiheiksi ):
Jos vertailu onnistuu, vaihetta kutsutaan tosiksi ja tapahtuu siirtyminen seuraavaan rekisteriin . Muussa tapauksessa vaihetta kutsutaan virheelliseksi ja siirry kohtaan . Tämän algoritmin lähtöarvot ovat tiloja , jotka tuovat tietoa gammaan.
Nyt vähän kynnysarvon valinnasta ja onnistuneeseen kryptausanalyysiin tarvittavien gammabittien lukumäärästä :
Valitsimme esimerkiksi , jossa on rekisterin pituus. Ja sitten näistä ehdoista löydämme ja .
Hyökkäykset perustuvat pienipainoisiin pariteettitarkistuksiinEsimerkki tästä hyökkäysten alaluokasta on Mayerin ja Staffelbachin nopea korrelaatiohyökkäys. Se soveltuu sekä suodatingeneraattoreihin että yhdistelmägeneraattoreihin ja on perusta kaikille muille tämän tyyppisille nopeille korrelaatiohyökkäyksille. Hyökkäyksen idea perustuu lineaarisen rekisterin palautepolynomin pariteettitarkistusyhtälöiden käyttöön.
Nopeat korrelaatiohyökkäyksetNopeat korrelaatiohyökkäykset ymmärretään hyökkäyksiksi, joiden laskennallinen monimutkaisuus on paljon pienempi kuin tehohyökkäysten laskennallinen monimutkaisuus.
Tämäntyyppinen hyökkäys vähentää binäärisymmetrisen kanavan dekoodauksen ongelmaksi kryptausanalyysin ongelmaksi, ja se mallinnetaan satunnaisen lineaarisen koodin dekoodaamiseksi. Kuten peruskorrelaatiohyökkäykset, tämä alaluokka käyttää Hamming-etäisyyden käsitettä .
Tämän hyökkäyksen tarkoituksena on palauttaa siirtorekisterin alkutila (avaimen löytäminen) käyttämällä tunnettua laitemallia ja salaussekvenssin fragmenttia. Hyökkäyksen monimutkaisuus riippuu salauksen koosta ja siepatun gamman pituudesta.
Koostuu kahdesta vaiheesta:
Esimerkkejä tämän luokan hyökkäyksistä ovat Steve Babbage-hyökkäys ja Biryukov-Shamir-hyökkäys.
"Ole ja päätä"Hyökkäys perustuu oletukseen, että kryptanalyytikko tietää gamman, takaisinkytkentäpolynomin, piirin lähtöjen välisten rekisterisiirtymien lukumäärän ja suodatustoiminnon. Koostuu kolmesta vaiheesta:
Algoritmin monimutkaisuus riippuu generaattorin laitteesta ja oletusten lukumäärästä.
Symmetriset salausjärjestelmät | |
---|---|
Suoratoista salauksia | |
Feistelin verkko | |
SP verkko | |
muu |