Initialiseringsvektor - Initialization vector

I kryptografi er en initialiseringsvektor ( IV ) eller startvariabel ( SV ) en inngang til en kryptografisk primitiv som brukes til å gi den opprinnelige tilstanden. IV kreves vanligvis for å være tilfeldig eller pseudorandom , men noen ganger trenger en IV bare å være uforutsigbar eller unik. Randomisering er avgjørende for at noen krypteringsordninger oppnår semantisk sikkerhet , en egenskap der gjentatt bruk av ordningen under den samme nøkkelen ikke tillater en angriper å utlede forhold mellom (potensielt like) segmenter av den krypterte meldingen. For blokkryptering er bruken av en IV beskrevet av driftsmåtene .

Noen kryptografiske primitiver krever at IV bare er ikke-gjentatt, og den nødvendige tilfeldigheten er avledet internt. I dette tilfellet kalles IV ofte en nonce ( nummer brukt en gang ), og primitivene (f.eks. CBC ) blir ansett som stateful snarere enn randomisert . Dette er fordi en IV ikke trenger å bli eksplisitt videresendt til en mottaker, men kan være avledet fra en vanlig tilstand oppdatert på både avsender- og mottakerside. (I praksis overføres fortsatt en kort nonce sammen med meldingen for å vurdere meldingstap.) Et eksempel på stateful krypteringsskjemaer er telleren modus for drift, som har et sekvensnummer for en nonce.

IV-størrelsen avhenger av den kryptografiske primitive som brukes; for blokkryptering er det generelt krypteringens blokkstørrelse. I krypteringsskjemaer har den uforutsigbare delen av IV i beste fall samme størrelse som nøkkelen for å kompensere for tids- / minne- / datavekslingsangrep . Når IV velges tilfeldig, må sannsynligheten for kollisjoner på grunn av bursdagsproblemet tas i betraktning. Tradisjonelle strømkoder som RC4 støtter ikke en eksplisitt IV som inngang, og det er nødvendig med en tilpasset løsning for å inkorporere en IV i krypteringens nøkkel eller interne tilstand. Noen design realisert i praksis er kjent for å være usikre; den WEP protokollen er et kjent eksempel, og er utsatt for relaterte-IV-angrep.

Motivasjon

Image
Usikker kryptering av et bilde som et resultat av koding av elektronisk kodebokmodus .

En blokkryptering er en av de mest grunnleggende primitivene i kryptografi, og brukes ofte til datakryptering . Imidlertid kan den i seg selv bare brukes til å kode en datablokk med en forhåndsdefinert størrelse, kalt blokkstørrelsen . For eksempel forvandler en enkelt påkalling av AES- algoritmen en 128-bit vanlig tekstblokk til en krypteringstekstblokk på 128 bits i størrelse. Den nøkkel , som er gitt som et inngangssignal til chiffer, definerer mapping mellom klarteksten og chiffertekst. Hvis data med vilkårlig lengde skal krypteres, er en enkel strategi å dele dataene i blokker som hver samsvarer med krypteringens blokkstørrelse, og kryptere hver blokk separat med samme nøkkel. Denne metoden er ikke sikker ettersom like blanke tekstblokker blir forvandlet til like krypteringstekster, og en tredjepart som observerer de krypterte dataene, kan lett bestemme innholdet, selv når de ikke kjenner til krypteringsnøkkelen.

For å skjule mønstre i kryptert data mens du unngår ny utstedelse av en ny nøkkel etter hver påkalling av blokkryptering, er det nødvendig med en metode for å randomisere inngangsdataene. I 1980 publiserte NIST et nasjonalt standarddokument betegnet Federal Information Processing Standard (FIPS) PUB 81, som spesifiserte fire såkalte blokk-krypteringsmoduser , hver som beskriver en annen løsning for kryptering av et sett inngangsblokker. Den første modusen implementerer den enkle strategien beskrevet ovenfor, og ble spesifisert som elektronisk kodebok (ECB) -modus. Derimot beskriver hver av de andre modusene en prosess der krypteringstekst fra ett krypteringstrinn for blokkering blir blandet med dataene fra neste krypteringstrinn. For å starte denne prosessen kreves det at en ekstra inngangsverdi blandes med den første blokken, og som blir referert til som en initialiseringsvektor . For eksempel krever cipher-block chaining (CBC) -modus en uforutsigbar verdi, av størrelse lik krypteringens blokkstørrelse, som ekstra inngang. Denne uforutsigbare verdien legges til den første klartekstblokken før påfølgende kryptering. I sin tur blir krypteringsteksten produsert i det første krypteringstrinnet lagt til den andre klartekstblokken, og så videre. Det endelige målet for krypteringsordninger er å gi semantisk sikkerhet : av denne egenskapen er det praktisk talt umulig for en angriper å hente kunnskap fra observert krypteringstekst. Det kan vises at hver av de tre tilleggsmodusene som er spesifisert av NIST, er semantisk sikre under såkalte valgte klartekstangrep .

Eiendommer

Egenskapene til en IV avhenger av det kryptografiske skjemaet som brukes. Et grunnleggende krav er unikhet , noe som betyr at ingen IV kan brukes på nytt under samme nøkkel. For blokkodere, gjentatte IV-verdier overfører krypteringsskjemaet til elektronisk kodebokmodus: lik IV og lik ren tekst resulterer i lik krypteringstekst. I kryptering av kryptering av strøm er unikhet avgjørende viktig, da ren tekst ellers kan gjenopprettes trivielt.

Eksempel: flytchiffer kryptere klarteksten P til chiffertekst C ved å utlede en nøkkelstrøm K fra en gitt nøkkel og IV og databehandling C som C = P xor K . Anta at en angriper har observert to meldinger C 1 og C 2 begge kryptert med samme nøkkel og IV. Da avslører kunnskap om enten P 1 eller P 2 den andre klarteksten siden
C 1 x eller C 2 = ( P 1 x eller K) x eller ( P 2 x eller K) = P 1 x eller P 2 .

Mange ordninger krever at IV er uforutsigbar av en motstander . Dette utføres ved å velge IV tilfeldig eller pseudo-tilfeldig . I slike ordninger er sjansen for duplikat IV ubetydelig , men effekten av bursdagsproblemet må vurderes. Når det gjelder unikhetskravet, kan en forutsigbar IV tillate gjenoppretting av (delvis) ren tekst.

Eksempel: Tenk på et scenario der en legitim part som heter Alice, krypterer meldinger ved hjelp av krypteringsmodus. Tenk videre at det er en motstander som heter Eve som kan observere disse krypteringene, og som er i stand til å videresende klartekstmeldinger til Alice for kryptering (med andre ord, Eve er i stand til å angripe valgt i ren tekst ). Anta nå at Alice har sendt en melding som består av en initialiseringsvektor IV 1 og begynner med en krypteringstekst C Alice . La videre P Alice betegne den første klartekstblokken av Alice sin melding, la E betegne kryptering, og la P Eve være Evas gjetning for den første klartekstblokken. Nå, hvis Eve kan bestemme initialiseringsvektoren IV 2 for neste melding, vil hun være i stand til å teste gjetningen ved å videresende en teksttekstmelding til Alice fra og med ( IV 2 x eller IV 1 x eller P Eve ); hvis hennes gjetning var riktig denne klartekst blokken vil bli kryptert til C Alice av Alice. Dette er på grunn av følgende enkle observasjon:
C Alice = E ( IV 1 x eller P Alice ) = E ( IV 2 x eller ( IV 2 x eller IV 1 x eller P Alice )).

Avhengig av om IV for et kryptografisk skjema må være tilfeldig eller bare unikt, kalles ordningen enten randomisert eller stateful . Mens randomiserte ordninger alltid krever at IV valgt av en avsender skal videresendes til mottakere, tillater stateful ordninger avsender og mottaker å dele en felles IV-tilstand, som oppdateres på en forhåndsdefinert måte på begge sider.

Blokkér kryptering

Blokkeringssifferbehandling av data blir vanligvis beskrevet som en driftsmåte. Modus er primært definert for kryptering så vel som autentisering , selv om det finnes nyere design som kombinerer begge sikkerhetsløsninger i såkalte autentiserte krypteringsmodi . Mens kryptering og autentiserte krypteringsmodi vanligvis tar en IV som samsvarer med krypteringens blokkstørrelse, blir autentiseringsmodus ofte realisert som deterministiske algoritmer , og IV er satt til null eller noen annen fast verdi.

Strømkoder

I strømkoder blir IV-er lastet inn i den krypterte interne hemmelige tilstanden til krypteringen, hvoretter et antall krypteringsrunder blir utført før den første biten av utdata frigjøres. Av ytelsesgrunner prøver designere av streamciphers å holde antallet runder så lite som mulig, men fordi det ikke er en triviell oppgave å bestemme det minimale sikre antall runder for streamciphers, og vurderer andre problemer som tap av entropi , unikt for hver krypteringskonstruksjon, relaterte IV-er og andre IV-relaterte angrep er et kjent sikkerhetsproblem for strømkryptere, noe som gjør IV-innlasting i strømkrypter til et alvorlig anliggende og gjenstand for pågående forskning.

WEP IV

Den 802.11 krypteringsalgoritme kalt WEP (forkortelse for kablet Equivalent personvern ) anvendes en kort, 24-bit IV, som fører til gjenbrukt IVs med den samme nøkkel, noe som førte til at det blir lett sprekker. Pakkeinjeksjon tillot at WEP blir sprukket på tider så korte som flere sekunder. Dette førte til slutt til avskrivning av WEP.

SSL 2.0 IV

I cipher-block chaining mode (CBC mode) trenger IV ikke være hemmelig, men må være uforutsigbar (Spesielt for en gitt klartekst må det ikke være mulig å forutsi IV som vil bli assosiert med klartekst før generering av IV.) ved krypteringstid. I tillegg for OFB-modusen, må IV være unik. Spesielt er den (tidligere) vanlige fremgangsmåten med å bruke den siste krypteringstekstblokken til en melding som IV for neste melding usikker (for eksempel ble denne metoden brukt av SSL 2.0). Hvis en angriper kjenner IV (eller den forrige blokken med krypteringstekst) før han spesifiserer neste klartekst, kan han sjekke gjetningen hans om klartekst til en blokk som tidligere var kryptert med samme nøkkel. Dette er kjent som TLS CBC IV-angrepet, også kalt BEAST-angrepet .

Se også

Referanser

Videre lesning