Phelix

Phelix er  en high-speed stream cipher , der bruger en engangsbeskedgodkendelseskode . Chifferen blev indsendt til eSTREAM- konkurrencen i 2004. Forfatterne er Bruce Schneier , Doug Whiting , Stefan Lux og Frederick Müller . Algoritmen indeholder operationer med additionsmodulo 232 , additionsmodulo 2 og cyklisk skift; Phelix bruger en 256-bit nøgle og et 128-bit tidsstempel . Nogle kryptografer har udtrykt bekymring over muligheden for at få en hemmelig nøgle, hvis chifferen bruges forkert.

Forløberen til Phelix var Helix-cifferet, bygget på de enkleste operationer, men det viste sig at være revnet. Den forbedrede Helix fik navnet Phelix, men den blev også afvist i eCrypt-konkurrencen. Årsagen til afslaget var kontroversiel - angrebene var baseret på valget af et tidsstempel, hvilket var et svagt punkt i andre ciphers, men udviklerne sagde, at deres cipher var modstandsdygtig over for denne form for angreb. Det viste sig, at chifferen er brudt ved lineær differentiel kryptoanalyse, selvom dette ikke truer chifferens styrke under andre forhold. Som et resultat blev Phelix ikke optaget til tredje runde af konkurrencen på grund af forfatternes arrogance og unøjagtighed. Ud over alt dette er der dukket en række teoretiske værker op, hvor det blev argumenteret for, at blanding af add-xor-shift operationer ikke giver den nødvendige ikke-linearitet, men i praksis var der ingen hacks. Phelix-designet er nu foreslået af forfatterne til brug i Skein og Threefish .

Anmeldelse af Phelix

Kompleksiteten af ​​algoritmen er 128 bit, hvilket betyder, at for at bryde chifferen er det nødvendigt at beregne mindst blokfunktioner, der danner nøgleudgangssekvensen. Phelix bruger en nøgle af vilkårlig længde (fra 128 til 256 bit), polstret til 256 bit og et 128-bit tidsstempel. Nøglen betragtes som hemmelig, standardtidsstemplet anses for at være kendt af alle. Chifferen er optimeret til 32-bit platforme, da alle operationer udføres på 32-bit ord. Vi kan sige, at Phelix er en "multi-round simpel chiffer", da processen med at skabe en chiffertekst bruger ret simpel modulo addition , XOR og permutation af bits.

Starttilstanden er 9 ord , 32 bit hver. Ordene er opdelt i to grupper: 5 "aktive", som deltager i funktionsblokkens operationer, og gamle ("gamle"), som kun deltager i dannelsen af ​​nøgleoutputstrømmen og lagres i blok funktion buffer. Krypteringsrunden er vist i figur 1. I alt omfatter blokken 20 runder (figur 2).

På grund af blokkens store lighed med fem spiraler, fik chifferen sit navn (penta-helix engelsk fem spiraler). Følgende hændelser forekommer i hver blok: et output-strømord (gamma) genereres, to KeyMaterial-ord og et almindeligt tekstord tilføjes . Udgangstilstanden for den aktuelle blok bruges som input til den næste.

Følgelig er beregningerne vist i figur 2 tilstrækkelige til at behandle 4 bytes af en meddelelse. Som med andre stream-cifre er chifferteksten i Phelix modulo 2-summen af ​​klarteksten og nøglestrømmen. Ved starten af ​​krypteringen bestemmes starttilstanden af ​​nøglen og tidsstemplet. Nøgleord afhænger af nøglens værdi og længde, tidsstemplet og bloknummeret. Angreb baseret på at gætte den interne tilstand gøres vanskeligere ved at tilføje nøglemateriale på keystream-ekstraktionsstadiet. I slutningen af ​​meddelelsen udføres yderligere behandling, hvorunder en 128-bit tag genereres, der er ansvarlig for meddelelsesgodkendelse.

Definition

Krypteringsfunktionen tager som input en U-nøgle med variabel længde (op til 256 bit), et 128-bit tidsstempel og almindelig tekst. Dekrypteringsfunktionen er henholdsvis en nøgle, et tidsstempel og et tag og producerer enten almindelig tekst eller en fejl, hvis godkendelsen mislykkes. Lad være  længden af ​​sekvensen af ​​bytes . Så <32. Arbejdsnøglen K, der består af otte 32-bit ord, genereres af keymix-funktionen. Tidsstemplet har en størrelse på 16 bytes. Hvis dens længde er mindre, skal etiketten polstres med nuller til den ønskede længde. Chifferteksten og klarteksten har samme længde, med en grænse på . Det sidste ord i klarteksten er som standard udfyldt med nuller til en længde på 32 bit, hvis længden af ​​ordet ikke er et multiplum af 32 bit. Krypteringsfunktionen kan tage en tom meddelelse som input, i hvilket tilfælde kun meddelelsesgodkendelseskoden (MAC) vil være dens output.

Bloker funktion

Phelix består af en sekvens af blokke, som hver er tildelt sit eget unikke nummer, i henhold til rækkefølgen. Ved input af hver blok er der fem "aktive" ord. Blokkens output indeholder også fem ord , , , , , som vil repræsentere inputtet af den næste blok , , , , . Den th blok bruger også som input to nøgleord og et ord i almindelig tekst og det forrige interne tilstandsord .

Figur 2 er en komplet illustration af blokfunktionen. Alle værdier er 32-bit ord; Traditionelt har eksklusiv OR notationen , permutation - <<< , modulo addition - . En blokfunktion kan repræsenteres som en sekvens af to "semi-blok" H defineret som følger.

For ordene involveret i blokoperationer er de følgende ligninger således sande. Hver blok producerer et nøglestrømsord . Chifferteksten er som sædvanlig defineret som følger: .

Nøgleord for hver blok

Udvidede nøgleord er defineret af arbejdstast K, tidsstempel N, indtastning af nøglelængde U og bloknummer. Først udvides tidsstemplet til otte ord i henhold til reglen: . Dernæst beregnes nøgleordene for blok i som følger:

hvor alle operationer udføres modulo

Initialisering

Kryptering starter med at indstille den interne tilstand:

Derefter udføres 8 blokke, som et resultat af hvilke ordene fra nøgleudgangsstrømmen (gamma), som til sidst kasseres og ikke deltager i kryptering, og først derefter begynder arbejdscyklussen.

Kryptering

Efter initialisering begynder processen med at kryptere klarteksten. Lad K være antallet af byteord i klarteksten, så vil antallet af blokke også være lig med K. Hver blok producerer et ord af output-nøglestrømmen, som bruges til at kryptere ét ord i klarteksten.

Afhængigt af bruger det sidste ord i output-nøglestrømmen fra 1 til 4 bytes.

Godkendelseskode

Efter den sidste byte af klarteksten er blevet krypteret, er det tid til at generere MAC. En XOR-operation udføres for og 0x912d94f1. Yderligere behandles den opdaterede interne tilstand sekventielt med otte blokke. Her bruges ordene i klartekst , og den genererede outputnøglestrøm bruges ikke på nogen måde. Efter efterbehandling af den interne tilstand tages fire på hinanden følgende blokke for at generere MAC-tagget ved hjælp af det samme .

Fast længde nøglegenereringsfunktion (keymixing)

Funktionen til generering af nøgler med fast længde kortlægger en nøgle med vilkårlig længde til en 256 bit lang nøgle. Først tages R-funktionen, defineret som følger:

Derefter polstres nøglen U med nuller til en længde på 256 bit, og nøglens 32-bit ord tildeles værdierne . Arbejdsnøglen indtastes som følger for k=7,...,0:

Afskrift

Dekryptering er næsten identisk med kryptering, med de eneste forskelle:

Ydeevne

Phelix er optimeret til 32-bit platforme. Forfatterne hævder, at den kan opnå op til otte cyklusser pr. byte på moderne 86-bit processorer.

Følgende er ydeevnemålinger for FPGA-hardware:

Xilinx chip Fragmenter FPGA Mbps GE score Implementeringsbeskrivelse
XC2S100-5 1198 960,0 20404 (A) Fuld rund 160-bit model
XC2S100-5 1077 750,0 18080 (B) Halvrund 160-bit model
XC2S30-5 264 3.2 12314 (C) 32-bit datalink

helix

Phelix er en let modificeret form af en tidlig chiffer, Helix, udgivet i 2003 af Niels Ferguson , Doug Whiting , Bruce Schneier , John Kelsey , Stefan Lax og Tadayoshi Kono ; Phelix tilføjer 128 bit til intern tilstand.

I 2004 offentliggjorde Muller to angreb på Helix. Den første har en kompleksitet på 2 88 og kræver 2 12 adaptivt valgte ord i klartekst, men kræver tilfældige tal til genbrug. Souradiuty Paul og Bart Presnel viste senere, at antallet af adaptivt matchede plaintext Müller-angrebsord kan reduceres med en faktor på 3 i værste fald ved at bruge deres optimale algoritmer til løsning af additionsdifferentialligninger. I en efterfølgende udvikling viste Souradiuti Paul og Bart Prenel, at angrebet ovenfor kunne implementeres med udvalgte klartekster (CP) frem for adaptivt matchede klartekster (ACP) med en datakompleksitet på 2 35,64 CP'er. Mullers andet angreb på Helix er et karakteristisk angreb, der kræver 2.114 ord af valgt klartekst.

Udviklingen af ​​Phelix er i høj grad motiveret af Mullers differentielle angreb.

Sikkerhed

Forfatterne anbefaler, at Phelix ikke bør anvendes, før det har modtaget yderligere krypteringsanalyse.

Hongjun Wu og Bart Prenel, forfatterne af det differentielle angreb, udtrykker bekymring over, at hvert ord i klarteksten påvirker nøglestrømmen og omgår tilstrækkelige forvirrings- og spredningslag. De hævder, at dette er en iboende fejl i strukturen af ​​Helix og Phelix. Forfatterne konkluderer, at Phelix ikke er sikkert.

Hardwareimplementering

Phelix kan implementeres på mange forskellige måder. Figuren nedenfor viser en mulig implementering på et Application Specific Integrated Circuit ( ASIC ).

For at øge hastigheden af ​​algoritmen kan du ændre H-funktionen ved at tilføje nye addere og XOR'er, der kunne arbejde parallelt, men denne stigning i antallet af elementer i kredsløbet ville også medføre en mærkbar stigning i selve kredsløbet, da adderen er det største element i kredsløbet.

Noter

Litteratur

Links