For at beregne godkendelseskoden i Galois / Counter-tilstand (GCM) beregnes først en MAC ved hjælp af GHASH over chifferet tekst og de yderligere data. Derefter krypteres denne MAC ved hjælp af GCTR (ved hjælp af den første tæller).

Mit spørgsmål er: Hvorfor er dette sidste krypteringstrin nødvendigt? Hvad ville sikkerhedsproblemet være, hvis jeg bare brugte output fra GHASH direkte som godkendelsestag?

Svar

Hvad ville sikkerhedsproblemet være, hvis jeg bare brugte output fra GHASH direkte som godkendelsestag?

Derefter kunne nogen, der lytter til krypterede meddelelser, gendanne $ H $ , hvoraf den ene er korrekt.

Output af GHASH er et offentligt polynom (baseret på ciphertext og AAD), vurderet til en hemmelig værdi $ H $ . Det viser sig, at $ H $ kan gendannes effektivt ved at omskrive polynomet som $ \ mathrm {GHASH} (H) + \ mathrm {Tag} = 0 $ , og gendanne rødderne til det (hvilket kan gøres i et endeligt felt), eller endnu lettere, at få to sådanne ciphertexts, omskrive begge dem, og brug en udvidet euklidisk værdi til at gendanne deres fælles rod.

Givet $ H $ , kan en angriber trivielt foretage vilkårlige ændringer af krypterede meddelelser ; ja, det er dårligt.

Kommentarer

  • Et yderligere spørgsmål: Hvorfor er det nødvendigt at bruge GCTR til at kryptere GHASH-blokken i stedet for bare at bruge $ Enc_H (GHASH) $ som tag? På den måde kunne GMAC bruges uden behov for en IV.
  • @mat: du mener at sende $ GHASH $ gennem AES (ved hjælp af $ H $ som en nøgle Ja, faktisk ville den slags ting fungere (ja, jeg ville ikke ' ikke bruge $ H $ som en nøgle, men bortset fra det …) og ville være en mere konservativt design; GCM var dog oprindeligt designet til at være en rørforingsmæssig tilstand; det vil sige det kunne implementeres givet en AES-hardwareimplementering, hvor hver urcyklus giver vi den næste almindelige tekstblok til hardware og hver urcyklus, ciphertext fra 10-14 cykler siden dukker op. Ved at foretage en kryptering på GHASH blokerer vi ' d rørledningen …
  • Jeg mener bare en simpel ECB-kryptering (ved hjælp af enten $ H $ eller $ K $ som nøgle) af GHASH i stedet for at gøre det med GCTR. Det w ville have den fordel, at GMAC ville være lettere at bruge, fordi det ikke ' ikke længere havde brug for en nonce. Rørledningen er ikke et problem her, da kryptering af koden er det sidste trin, der bliver udført i GCM alligevel, så rørledningen er bestemt tom på dette tidspunkt.
  • @ David 天宇 Wong: for det meste ydeevne ( GHASH er paralleliserbar, hash med nøgler er typisk ikke ' t)
  • @ David 天宇 Wong: åh, rigtigt, også det …

Skriv et svar

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