Hvorfor skal jeg bruge godkendt kryptering i stedet for kun kryptering?

Der er forskellige -tilstande til blokcipher-brug, hvoraf nogle giver “kryptering”, hvoraf nogle giver godkendt kryptering .

Hvorfor skal jeg bruge en godkendt kryptering -tilstand snarere end bare en krypteringstilstand?

Dette spørgsmål er ikke sigter mod at diskutere forskellige tilstande for godkendt kryptering vrs-krypteringstilstande (selvom et godt svar måske vælger at): Målet er at retfærdiggøre hvorfor / når AE er bedre end “almindelig” kryptering.

Kommentarer

Svar

Den afgørende forskel mellem almindelig kryptering og godkendt kryptering (AE) er, at AE desuden provi des ægthed, mens almindelig kryptering kun giver fortrolighed. Lad os undersøge disse to forestillinger i detaljer.

I den videre tekst antager vi, at $ K $ er en hemmelig nøgle, som er kendt til autoriserede parter, men ukendte for angribere.

Mål

Fortrolighed (privatliv) betyder, at en angriber ikke kan få nogen oplysninger om almindelig tekst $ P $ fra krypteringsteksten $ E_K (P) $ undtagen muligvis længden. Med andre ord ligner krypteringsteksten en tilfældig streng for dem, der ikke kender $ K $ , selvom de har en vis kontrol over almindelig tekst. Alle folklore-krypteringsmetoder, fra engangspude til Enigma, giver fortrolighed (under visse antagelser) og kun det.

Data ægthed (integritet) betyder, at en autoriseret part (modtager), der ejer $ K $ , kan kontrollere, om modtagelsen ved data $ D $ er ægte, dvs. de er kun konstrueret af en afsender, der kender $ K $ . Dataene kan være klartekst eller krypteringstekst, og der er en subtil forskel, hvad der er autentisk i hvert tilfælde: Hvis krypteringsteksten er godkendt, så ved vi, at nøglejeren autoriserede krypteringsteksten, men ikke nødvendigvis almindelig tekst. En traditionel måde at opnå ægthed er at bruge Message Authentication Code (MAC): $$ H_K (D) = T, $$ hvor $ T $ kaldes tag . I en verden af offentlig nøglekryptografi opnås det samme mål med digitale signaturer.

Hvad du har brug for

En bruger er normalt i stand til at bestemme, hvilke af disse egenskaber han leder efter. For eksempel, hvis han ved, at en angriber ikke kan ændre data, behøver han muligvis ikke at godkende dem. Men hvis han har brug for begge dele, er der sikre såvel som usikre måder at kombinere ordningerne af to typer på. For eksempel er en naiv tilgang til at bruge den samme nøgle $ K $ i begge skemaer farligt usikker for de fleste instantieringer. Derfor anbefales en kombineret ordning.

Godkendt kryptering

Godkendt kryptering (AE) giver fortrolighed og datautenticitet samtidigt. En AE-ordning er normalt mere kompliceret end ordninger, der kun er fortrolighed eller kun autenticitet. Det er dog lettere at bruge, fordi det normalt kun har brug for en enkelt nøgle og er mere robust, fordi der er mindre frihed for brugeren til at gøre noget forkert (se også en mere detaljeret svar ).

Som en separat funktion kan en godkendt krypteringsplan godkende, men ikke kryptere, en del af dens input, der kaldes tilknyttede data . For eksempel vil vi muligvis kryptere indholdet af en internetpakke, men vi er nødt til at lade dens overskrift være ukrypteret, men stadig bundet til de interne data.

Sikkerhed

Vi har endnu ikke specificeret, hvad vi mener med en sikker ordning. Der er tilsyneladende flere sikkerhedsopfattelser, og brugeren skal vælge blandt dem i henhold til de muligheder, han forventer af en modstander.

For kun fortrolighed driftsformer de mest populære sikkerhedsopfattelse beskæftiger sig med valgt-almindelig tekstangreb . Lad $ E $ være et krypteringsskema. Vi antager, at modstanderen ikke kun kender nogle almindelige tekster $ P $ , men også er i stand til at vælge nogle af dem til kryptering (dette er en ganske praktisk situation).Derfor tillader vi modstanderen at vælge en hvilken som helst almindelig tekst til krypteringen og mange gange i træk. Hvad vi stadig har brug for fra en sikker ordning er, at den udsender tilfældigt udseende krypteringstekster i hvert tilfælde: $$ E_K (P_1), E_K (P_2), \ ldots, E_K (P_n) \ sim RandomString (| P_1 | + | P_2 | + \ cdots + | P_n |) $$

Modstanderen kan ikke skelne hele det sæt ciphertexts, han opnår, fra et output fra ægte tilfældig bitgenerator af samme længde, selvom modstanderen gentager sine almindelige tekster. Sidstnævnte krav indebærer, at ordningen skal være ikke-deterministisk, og faktisk er kun de fortrolighedsmetoder, der opfylder disse krav, enten sandsynlige eller ikke-baserede.

Jeg bemærker, at der er folklore sikkerhedsopfattelser, der vedrører ordningens sikkerhed med muligheden for at gendanne selve nøglen $ K $ . Dette var relevant, når nøglen kunne bruges andre steder, men dette er langt mindre almindeligt nu, og sikkerhedsbegrebet beskrevet ovenfor er udbredt.

Sikkerheden ved ægthedstilstande er defineret i på en anden måde. Lad $ H_K $ være et sådant skema med den hemmelige nøgle $ K $ . Vi kræver, at hvis modstanderen vælger data $ D $ , der endnu ikke er godkendt, så er hans chancer for at gætte tag $ T $ sådan at $$ H_K (D) = T $$ er ubetydelige. Hvis han sender parret $ (D, T) $ til en verifikator, får han svaret $ \ perp $ (fejl).

Bemærk, at vi ikke har talt om valgte ciphertext-angreb i kun til fortrolighedstilstande. Dette er angreb, når modstanderen også er i stand til at sende sine egne krypteringstekster til dekryptering. Selv om denne indstilling også vises i praksis (selvom det er sjældnere end valgt angreb med almindelig tekst), kan de ordninger, der kun er fortrolige, ikke modstå sådanne angreb. For at etablere denne form for sikkerhed skal brugeren vende igen til godkendt kryptering .

Sikkerhed for godkendte krypteringsordninger er defineret i to dele. For det første skal modstanderen på samme måde som kun til fortrolighed være i stand til at skelne ciphertexts fra tilfældige strenge. For det andet uanset falsk (ikke oprettet på $ K $ ) krypteringstekst, hun sender til dekryptering, vil hun sandsynligvis få $ \ perp $ som svar.

Derfor giver de godkendte krypteringstilstande dig også sikkerhed mod valgte ciphertext-angreb, hvis det er nødvendigt.

Sådan fungerer det

Der er mange integrerede godkendte krypteringsordninger: CCM, GCM, OCB, EAX osv. , hvor mekanismer, der skaber fortrolighed og ægthed, er tæt forbundet. Udformningen af disse ordninger er langt uden for emnet. Der er dog en enkel sammensat ordning, kendt som Encrypt-then-MAC, der fungerer som følger. Lad $ K_1, K_2 $ være hemmelige nøgler, $ P $ være almindelig tekst, $ E $ være en krypteringstilstand, og $ H $ være nogle MAC. Derefter skemaet $$ \ Pi_ {K_1, K_2}: M \ rightarrow E_ {K_1} (M) || H_ {K_2} (E_ {K_1} (M)) $$ er et sikkert godkendt krypteringsskema, hvis $ E $ er en sikker fortrolighedstilstand og $ H $ er en sikker ægthedstilstand.

Yderligere funktioner i godkendte krypteringsordninger

Ud over at give både fortrolighed og ægthed kan godkendte krypteringsordninger muligvis have et antal yderligere funktioner. Ingen ordning har dem alle, derfor bestemmes det bedste valg af brugerens indstillinger.

  • Sikkerhedsniveau . En ordning garanterer kun fortrolighed og datautenticitet op til nogle, der er bundet af mængden af krypterede data eller dekrypteringsanmodninger. Denne bundet er typisk meget lavere end nøgleområdet, og for AES-baserede tilstande overstiger normalt ikke $ 2 ^ {64} $ .

  • Parallelisme Hvis der er mange ressourcer til rådighed, kan man ønske at køre kryptering, dekryptering eller verifikation parallelt. De tilstande, der bruger kæde (som dem, der stammer fra CBC-kryptering eller svampekonstruktionen), er vanskelige at parallelisere.

  • Onlinekryptering Vi siger at en ordning er online, hvis den tillader kryptering med det samme, når dataene er tilgængelige, uden kendskab til dens længde.

  • Brug af patenter . En af de mest interessante AE-ordninger, OCB-tilstand, er patenteret og er mindre hyppig brugt og analyseret på grund af denne egenskab.Det er ofte ønskeligt, at ordningen er patentfri.

  • Tagopdatering . De fleste af ordningerne kræver, med et par undtagelser som GCM, at beregne næsten hele krypteringstekst, hvis en lille del af almindelig tekst ændres. Hvis krypteringsteksten kan opdateres hurtigt, ville det muliggøre meget hurtigere behandling af store mængder krypterede data, f.eks. Kryptering af harddisken.

  • Brug af nonces eller tilfældig IVer . Nonces og tilfældige IVer fører til forskellige sikkerhedsmodeller, som ofte er uforenelige (ordninger kan være sikre med nonces, men ikke med tilfældige IVer af samme længde eller omvendt). Mens nonce-unikheden måske er sværere at sikre, har tilfældige IVer brug for en separat genereringsmekanisme for tilfældigt tal og fører til ciphertext-udvidelse.

  • Variabel nøgle, nonce, eller taglængde . Alle de tre parametre er normalt begrænset af applikationen, der bruger en AE-ordning. Til gengæld har AE-ordninger deres egne, undertiden uforenelige begrænsninger. Jo mere variabilitet ordningen har, jo flere applikationer passer den.

  • Behandling af tilknyttede data . Alle de moderne ordninger tillader godkendelse af tilknyttede data, som ikke er krypteret. Nogle af dem kan dog ikke forbehandle AD, før almindelig tekst er slut, hvilket kan være en straf for forestillingen.

Yderligere læsning

teknisk rapport af Rogaway er en omfattende undersøgelse af fortrolighed -Kun tilstande, MACer og nogle godkendte krypteringsfunktioner. Den indeholder også alle formelle detaljer om sikkerhedsopfattelser.

Kommentarer

  • Jeg kan tilføje, at i mange praktiske situationer er valget af godkendt krypteringsplan stort set dikteret ved passende konvention eller protokoller. Det er meget almindeligt for folk at rynke panden ved godkendt kryptering, men i praksis har jeg ‘ set begge brugerdefinerede implementeringer af MAC-derefter-krypterer og krypterer-derefter-MAC har mangler end anvendelser af godkendt kryptering. Dette er fordi det kræver meget opmærksomhed for detaljer at implementere kombinationen korrekt.
  • Med hensyn til yderligere egenskaber har det været afgørende at undgå oprettelse af sidekanaler (især timing sidekanaler) i vurderingen af sikkerheden af en AE (AD) chifferpakke. Som en praktisk sag betyder det, at det er muligt at implementere chifferet, så det kører i en tid, der ikke er påvirket af nøglen eller input ren tekst.

Svar

Når vi transmitterer information på tværs af en usikker kanal, ønsker vi, at vores data er sikre.

Så hvad betyder det? For at diskutere disse bruger vi den standardkryptografiske situation for Alice og Bob. Alice ønsker at sende noget ( almindelig tekst ) på tværs af en usikker kanal (hvad dette betyder vil blive diskuteret) til Bob. Denne kanal vil blive lyttet til af Eve (en aflytter) og Mallory (som forsøger at ondsindet blande sig) – hvad dette betyder vil blive diskuteret med tiden.

Fortrolighed : Når Alice sender en besked til Bob, kræver vi, at en aflytter, Eve, som lytter til deres kommunikation, ikke kan lære noget om indholdet af deres beskeder.

Begrundelse : Ellers lærer Eva muligvis noget, som Alice / Bob ikke vil dele

Løsning: Vi bruger kryptering , som omdanner almindelig tekst til en krypteringstekst, der (i en informationsteoretisk forstand ) indeholder kun oplysninger om almindelig tekst, der ikke kan udtrækkes. Dette betyder, at (parafrasering af Goldwasser ) noget Når Eva kan lære om almindelig tekst, forudsat at hun kender krypteringsteksten, kan hun også udlede uden krypteringstekst.

Selv i dette tilfælde skal vi være forsigtige. Bare fordi en ordning holder op med en passiv angriber (en person, der bare lytter til meddelelsesstrømmen), gør den ikke stærk mod en aktiv angriber. Overvej f.eks. CBC -tilstand bruges. Det er sikkert under IND CPA -spil, som du måske føler, gør det sikkert. I CCA -spillet tillader vi angriberen imidlertid at bede om dekryptering af meddelelser (dog ikke dekryptering af krypteringsteksten) Hvad han kan gøre, givet ciphertext $ c = {\ small IV} \ mathbin \ | c_1 \ mathbin \ | \ dots \ mathbin \ | c_n $ er bede om dekryptering af $ c “= a \ mathbin \ | c $, hvor $ a $ er en ikke-tom besked. Dette er ikke lig med krypteringsteksten, så det er tilladt under spillet, og ved kun at tage de sidste $ n $ blokke kan han udtrække dekrypteringen af krypteringsteksten.

Et sådant eksempel er ikke så konstrueret, som du måske tror, da det, vi modellerer som et dekrypteringsorakel, muligvis kan eksistere, fordi angriberen muligvis kan få strenge dekrypteret, men at de data, de kan bede om dekryptere skal muligvis begynde med en bestemt streng (svarer til ideen om en SQL-injektion).

Autenticitet : Når Bob modtager en besked, ved han, at det bestemt var fra Alice.

Begrundelse: Ellers kunne Mallory sende en besked til Bob, der hævdede, at det kom fra Alice uden, at Bob vidste det. “er meget lempelige på, hvad det betyder for Mallory at oprette en falsk besked – han vinder, hvis han kan oprette enhver besked, som Bob accepterer (selvom den næsten er den samme som en, som Alice allerede har sendt ham). Der er mange måder at gøre dette på, såsom gentagelse, ombestilling eller bit-flipping-angreb.

Løsning: For at opnå godkendelse alene kan vi bruge en MAC .

Ægthed og fortrolighed : Alice og Bob kommunikerer fortroligt, og hver besked er autentisk.

Begrundelse: Hvis en stream kun er fortrolig (dvs. kryptering, men ikke godkendt kryptering), kan en aflytter muligvis ændre meddelelsen under transit, selvom de ikke ville vide, hvad dette var. Antag for eksempel, at Alice & Bob bruger perfekt sikker One Time Pad ( OTP ) med hemmelig nøgle $ k $ og besked $ m $:

$$ A \ text {sender} c = m \ oplus k \ til B \\ \ prec M \ text {aflytter} c \ succ \\ M \ text {sender} c “= c \ oplus h \ til B \ text {(for en eller anden værdi} h) \\ B \ text {modtager} c” \ tekst {fra M, men tror det er} c \ text {sendt fra} A \\ B \ text {dekrypterer} m “= c” \ oplus k = c \ oplus h $$ Dette betyder, at $ B $ har modtaget besked $ m “$, men han tror, det er $ m $.

Så antag at protokollen ikke er godkendt, og Mallory ved, at beskeden Alice vil sende Bob er” Jeg er enig i at sende £ ??? til konto # ???? “for nogle værdier på ???. Selvom de ikke kan finde ud af nøjagtigt, hvad kontoen er, og så måske er de ikke i stand til at sende betalingen til deres egen konto, de kan ændre det så det ikke længere er Alices konto.

Løsning: Godkendt kryptering!


En god artikel, der forklarer behovet for AE, er dette blogindlæg af Matthew Green. En mere teknisk introduktion til driftsformer er dette papir af Rogaway.

Kommentarer

  • Den eneste krypteringsplan, der sikrer informationsteoretisk sikkerhed, er engangspuden. IND-CPA-krypteringsordninger garanterer kun, at informationen ikke kan udvindes fra krypteringsteksten af en sandsynlig poly-time modstander.
  • Ah ja, det var uklart (/ forkert!) skrevet. Tak for redigering af det i – jeg ville sætte det som ‘ indeholder ingen oplysninger <, der kan udvindes > ‘
  • Faktisk er mange ” kun fortrolighed ” -tilstande giver faktisk ikke ‘ t giver god fortrolighed, når de angribes af en aktiv angriber (som kan ændre meddelelserne eller montere valgt almindelig tekst eller valgte ciphertext-angreb) . Derfor skal disse tilstande i praksis (til en kommunikationskanal) bruges sammen med noget MAC, selv for bare at opnå den fortrolige del. En AE-tilstand kombinerer bare disse til en.
  • @ PaŭloEbermann / Enhver anden: Jeg tror virkelig ikke ‘ Jeg tror ikke ‘ har skrevet et godt svar her (det er trods alt fredag aften!) men jeg ville bare lægge nogle første tanker ned. Du er velkommen til at tilføje dine egne svar / redigere dette / afskrive dit eget. Hvis folk tror, at mit svar er ” tæt nok ” til en god (som genlæser det, donerer jeg ikke ‘ t) så er du ‘ velkommen til bare at redigere i eller genbruge mine ord i dine.
  • Jeg tror, at AE også giver integritet ( da.wikipedia.org/wiki/Authenticated_encryption ) så kan du også tilføje det ..

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *