Phelix

Phelix  on nopea stream-salaus , joka käyttää kertaluonteista viestin todennuskoodia . Salaus lähetettiin eSTREAM- kilpailuun vuonna 2004. Kirjoittajat ovat Bruce Schneier , Doug Whiting , Stefan Lux ja Frederick Müller . Algoritmi sisältää operaatiot summausmoduuli 2 32 , summa modulo 2 ja syklinen siirto; Phelix käyttää 256-bittistä avainta ja 128-bittistä aikaleimaa . Jotkut kryptografit ovat ilmaisseet huolensa mahdollisuudesta saada salainen avain, jos salausta käytetään väärin.

Phelixin edelläkävijä oli Helix-salaus, joka rakennettiin yksinkertaisimpiin operaatioihin, mutta se osoittautui murtuneeksi. Parannettu Helix nimettiin Phelixiksi, mutta se hylättiin myös eCrypt-kilpailussa. Syy kieltäytymiseen oli kiistanalainen - hyökkäykset perustuivat aikaleiman valintaan, joka oli heikko kohta muissa salakirjoissa, mutta kehittäjät sanoivat, että heidän salauksensa kesti tämän tyyppisiä hyökkäyksiä. Kävi ilmi, että salaus murretaan lineaarisella differentiaalisella kryptoanalyysillä, vaikka tämä ei uhkaa salauksen vahvuutta muissa olosuhteissa. Tämän seurauksena Phelix ei hyväksytty kilpailun kolmannelle kierrokselle tekijöiden ylimielisyyden ja epätarkkuuden vuoksi. Kaiken tämän lisäksi on ilmestynyt useita teoreettisia töitä, joissa on väitetty, että add-xor-shift -operaatioiden sekoittaminen ei anna tarvittavaa epälineaarisuutta, mutta käytännössä ei hakkereita ollut. Kirjoittajat ovat nyt ehdottaneet Phelix-mallia käytettäväksi Skeinissä ja Threefishissa .

Phelixin arvostelu

Algoritmin monimutkaisuus on 128 bittiä, mikä tarkoittaa, että salauksen murtamiseksi on laskettava vähintään lohkofunktiot, jotka muodostavat avaimen lähtösekvenssin. Phelix käyttää mielivaltaisen pituista avainta (128 - 256 bittiä), pehmustettua 256 bittiin ja 128-bittistä aikaleimaa. Avainta pidetään salaisena, oletusaikaleiman katsotaan olevan kaikkien tiedossa. Salaus on optimoitu 32-bittisille alustoille, koska kaikki toiminnot suoritetaan 32-bittisille sanoille. Voimme sanoa, että Phelix on "monin kierroksen yksinkertainen salaus", koska salatekstin luontiprosessissa käytetään melko yksinkertaista modulo-lisäystä , XOR- ja bittien permutaatiota.

Alkutila on 9 sanaa , kukin 32 bittiä. Sanat on jaettu kahteen ryhmään: 5 "aktiivista", jotka osallistuvat toiminnallisen lohkon toimintaan, ja vanhat sanat ("vanhat"), jotka osallistuvat vain avainlähtövirran muodostamiseen ja tallennetaan lohkotoimintopuskuri. Salauskierros on esitetty kuvassa 1. Yhteensä lohko sisältää 20 kierrosta (kuva 2).

Viisi spiraalia sisältävän lohkon suuren samankaltaisuuden vuoksi salakirjoitus sai nimensä (penta-helix englanti viisi spiraalia). Seuraavat tapahtumat tapahtuvat jokaisessa lohkossa: generoidaan yksi lähtövirtasana (gamma), lisätään kaksi KeyMaterial-sanaa ja yksi selväkielisana . Nykyisen lohkon lähtötilaa käytetään seuraavan lohkon tulona.

Vastaavasti kuvassa 2 esitetyt laskelmat riittävät käsittelemään 4 tavua viestiä. Kuten muissakin virtasalauksissa, Phelixin salateksti on selkeän tekstin ja avainvirran modulo 2 summa. Alkutila määritetään salauksen alussa avaimella ja aikaleimalla. Avainsanat riippuvat avaimen arvosta ja pituudesta, aikaleimasta ja lohkonumerosta. Sisäisen tilan arvaamiseen perustuvia hyökkäyksiä vaikeutetaan lisäämällä avainmateriaalia avainvirran poimintavaiheessa. Viestin lopussa suoritetaan lisäkäsittely, jonka aikana generoidaan 128-bittinen tunniste, joka vastaa viestin todentamisesta.

Määritelmä

Salaustoiminto ottaa syötteenä vaihtelevan pituisen U-avaimen (enintään 256 bittiä), 128-bittisen aikaleiman ja selkeän tekstin. Salauksen purkutoiminto on avain, aikaleima ja tunniste, ja se tuottaa joko pelkkää tekstiä tai virheilmoituksen, jos todennus epäonnistuu. Antaa olla  tavujen sarjan pituus . Sitten <32. Kahdeksasta 32-bittisestä sanasta koostuva työavain K generoidaan näppäinsekoitustoiminnolla. Aikaleiman koko on 16 tavua. Jos sen pituus on pienempi, etiketti on täytettävä nolilla haluttuun pituuteen. Salateksti ja selväteksti ovat saman pituisia, mutta raja on . Selkeän tekstin viimeinen sana täytetään oletuksena nolilla 32 bitin pituudeksi, jos sanan pituus ei ole 32 bitin kerrannainen. Salaustoiminto voi ottaa syötteeksi tyhjän viestin, jolloin vain viestin todennuskoodi (MAC) on sen ulostulo.

Estä toiminto

Phelix koostuu sarjasta lohkoja, joista jokaiselle on annettu oma yksilöllinen numeronsa järjestyksen mukaan. Jokaisen lohkon sisääntulossa on viisi "aktiivista" sanaa. Lohkon tulos sisältää myös viisi sanaa , , , , jotka edustavat seuraavan lohkon syötettä , , , . . lohko käyttää syötteenä myös kahta avainsanaa ja yhtä selväkielisanaa ja edellistä sisäistä tilasanaa .

Kuva 2 on täydellinen esitys lohkotoiminnosta. Kaikki arvot ovat 32-bittisiä sanoja; Perinteisesti yksinomaisella OR:lla on merkintä , permutaatio - <<< , modulo additio - . Lohkofunktio voidaan esittää kahden "puolilohkon" H sekvenssinä, joka määritellään seuraavasti.

Näin ollen lohkotoimintoihin osallistuville sanoille seuraavat yhtälöt ovat tosia. Jokainen lohko tuottaa yhden avainvirran sanan . Salateksti, kuten tavallista, määritellään seuraavasti: .

Avainsanat jokaiselle lohkolle

Laajennetut avainsanat määritellään työavaimella K, aikaleimalla N, syöttöavaimen pituudella U ja lohkon numerolla. Ensin aikaleima laajennetaan kahdeksaan sanaan säännön mukaisesti: . Seuraavaksi lohkon i avainsanat lasketaan seuraavasti:

jossa kaikki toiminnot suoritetaan modulo

Alustus

Salaus alkaa asettamalla sisäinen tila:

Sitten suoritetaan 8 lohkoa, joiden seurauksena muodostuu avaimen lähtövirran (gamma) sanat, jotka lopulta hylätään ja eivät osallistu salaukseen, ja vasta sen jälkeen työjakso alkaa.

Salaus

Alustuksen jälkeen selvätekstin salausprosessi alkaa. Olkoon K selkeän tekstin tavuisten sanojen lukumäärä, silloin lohkojen lukumäärä on myös yhtä suuri kuin K. Jokainen lohko tuottaa yhden sanan ulostuloavainvirrasta, jota käytetään salaamaan yksi selväkielinen sana.

Riippuen , tulosteen avainvirran viimeinen sana käyttää 1-4 tavua.

Todennuskoodi

Kun selkeän tekstin viimeinen tavu on salattu, on aika luoda MAC. XOR-toiminto suoritetaan ja 0x912d94f1. Lisäksi päivitetty sisäinen tila käsitellään peräkkäin kahdeksalla lohkolla. Tässä käytetään selkeitä sanoja , eikä luotua tulosteen avainvirtaa käytetä millään tavalla. Sisäisen tilan jälkikäsittelyn jälkeen otetaan neljä peräkkäistä lohkoa MAC-tunnisteen luomiseksi käyttämällä samaa .

Kiinteäpituinen avainten luontitoiminto (näppäinsekoitus)

Kiinteäpituinen avaimen luontitoiminto kartoittaa mielivaltaisen pituisen avaimen 256 bitin pituiseksi avaimeksi. Ensin otetaan R-funktio, joka määritellään seuraavasti:

Sitten avain U täytetään nolilla 256 bitin pituiseksi ja avaimen 32-bittisille sanoille annetaan arvot . Työavain syötetään seuraavasti k=7,…,0:

Transkriptio

Salauksen purku on lähes identtinen salauksen kanssa, ja ainoat erot ovat:

Suorituskyky

Phelix on optimoitu 32-bittisille alustoille. Kirjoittajat väittävät, että se voi saavuttaa jopa kahdeksan sykliä tavua kohden nykyaikaisilla 86-bittisillä prosessoreilla.

Seuraavat ovat FPGA-laitteiston suorituskykymittareita:

Xilinx-siru Fragmentit FPGA Mbps GE pisteet Toteutuskuvaus
XC2S100-5 1198 960,0 20404 (A) Täysi pyöreä 160-bittinen malli
XC2S100-5 1077 750,0 18080 (B) Puolipyöreä 160-bittinen malli
XC2S30-5 264 3.2 12314 (C) 32-bittinen datayhteys

helix

Phelix on hieman muunneltu muoto varhaisesta salakirjoituksesta, Helix, jonka vuonna 2003 julkaisivat Niels Ferguson , Doug Whiting , Bruce Schneier , John Kelsey , Stefan Lax ja Tadayoshi Kono ; Phelix lisää 128 bittiä sisäiseen tilaan.

Vuonna 2004 Muller julkaisi kaksi hyökkäystä Helixiä vastaan. Ensimmäisen monimutkaisuus on 2 88 , ja se vaatii 2 12 mukautuvasti valittua selkeää sanaa, mutta vaatii satunnaislukuja uudelleenkäyttöä varten. Souradiuty Paul ja Bart Presnel osoittivat myöhemmin, että adaptiivisesti sovitettujen selkeiden tekstien Müller-hyökkäyssanojen määrää voidaan pahimmassa tapauksessa vähentää kertoimella 3 käyttämällä niiden optimaalisia algoritmeja summausdifferentiaaliyhtälöiden ratkaisemiseen. Myöhemmässä kehitystyössä Souradiuti Paul ja Bart Prenel osoittivat, että yllä oleva hyökkäys voidaan toteuttaa valituilla selkeillä teksteillä (CP) eikä adaptiivisesti sovitetuilla selkeillä teksteillä (ACP), joiden datan monimutkaisuus on 2 35,64 CP:tä. Mullerin toinen hyökkäys Helixiä vastaan ​​on erottuva hyökkäys, joka vaatii 2 114 sanaa valittua selkeää tekstiä.

Phelixin kehitys on suurelta osin motivoitunut Mullerin differentiaalihyökkäyksestä.

Turvallisuus

Kirjoittajat neuvovat, että Phelixiä ei tulisi käyttää ennen kuin se on saanut lisä kryptausanalyysiä.

Hongjun Wu ja Bart Prenel, differentiaalihyökkäyksen kirjoittajat, ilmaisevat huolensa siitä, että jokainen selkeän tekstin sana vaikuttaa näppäinvirtaan ohittaen riittävät hämmennys- ja diffuusiokerrokset. He väittävät, että tämä on Helixin ja Phelixin rakenteiden luontainen virhe. Kirjoittajat päättelevät, että Phelix ei ole turvallinen.

Laitteiston toteutus

Phelix voidaan toteuttaa monella eri tavalla. Alla oleva kuva esittää yhden mahdollisen toteutuksen sovelluskohtaisessa integroidussa piirissä ( ASIC ).

Algoritmin nopeuden lisäämiseksi voit muuttaa H-funktiota lisäämällä uusia rinnakkain toimivia summaimia ja XOR:ita, mutta tämä piirin elementtien lukumäärän kasvu merkitsisi myös itse piirin huomattavaa kasvua, koska summain on piirin suurin elementti.

Muistiinpanot

Kirjallisuus

Linkit