Spørsmål:
Trenger du mer enn 128-biters entropi?
dodtsair
2015-10-08 03:53:48 UTC
view on stackexchange narkive permalink

UUID bruker 128-biters tall. For øyeblikket er det ikke mulig å tilfeldig produsere to UUID-er som er like. Betyr det at 128 bit entropi er egnet for alle kryptografiske operasjoner? Jeg antar at kryptografiske algoritmer som bruker større nøkler enn 128 bits, gjør det fordi det er matematiske forhold mellom teksten, kryptert tekst, privat nøkkel og offentlig nøkkel. Hvis du for eksempel hadde ren tekst og kryptert tekst, ville en svakere algoritme tillate deg å angripe den brukte nøkkelen ved å bruke de matematiske forholdene mellom de to kjente parametrene for å komme til den tredje.

Til si det på en annen måte: Hvis jeg frø en kryptografisk sikker pseudorandom-talgenerator med 128 biter entropi, er det trygt å bruke den CSPRNG til å generere en hvilken som helst nøkkel?

  1. 4096-biters RSA-nøkkel?
  2. 256-biters ECC-nøkkel?
  3. 256-biters AES-nøkkel?
  4. 256-biters HMAC-nøkkel?
RSA bruker ikke et tilfeldig frø for å generere nøkkelpar, så ikke sikker på at det er aktuelt her.
Det gjør det, men avledningsalgoritmen gjør ganske mye mer, i motsetning til de andre er en KDF ikke nok
To svar:
Thomas Pornin
2015-10-08 05:43:43 UTC
view on stackexchange narkive permalink

128 bits entropi er nok. Hele og eneste poenget med å vurdere entropi er å sørge for at systemet kan motstå brute force-angrep: rommet med mulige verdier må være så stort at enhver angriper bare kan prøve en ubetydelig andel av verdiene på ikke-latterlig tid. Det er sterke grunner til at 128 bits er svært tilstrekkelig for det. Realistisk sett kan en veldig kraftig organisasjon med mye penger til overs (inkludert behemoter som Apple eller Google, som kan mønstre mye mer ressurser enn vanlig fugleskremsel som NSA) håpe å utføre, si, maksimalt 2 85 sup > elementære beregninger (som kryptering av en AES-blokk) i løpet av et år - det vil ikke være diskret, og det er fortsatt mindre enn den milliondel av milliondelen av et 2 128 -rom.

Hvis du genererer en 256-biters AES-nøkkel fra en 128-bit frø og en sterk PRNG, i listen over algoritmer, har du ikke virkelig en 256-bit nøkkel. Fra angriperens synspunkt er dette en 128-bit nøkkel. Husk deg, det er fortsatt mer enn nok til å avskrekke angriperen. Men å hevde at "256 bits" her er på svindel (og i tilfelle AES innebærer en + 40% kjøretidskostnad uten faktisk gevinst). Det samme kan sies om HMAC, og faktisk alle algoritmer som er en del av "symmetrisk kryptografi".

For asymmetriske algoritmer kan man prøve å lage estimater av styrke og å søke ekvivalenser med symmetriske nøkler. Dette er veldig vanskelig å gjøre, fordi angrep på (si) RSA og AES ikke bruker den samme typen teknologi (for å gjøre ting enkelt: for RSA trenger du mye veldig veldig raskt RAM; for AES trenger du ikke noe RAM i det hele tatt, og bør bruke relativt sakte kretsløp for å gjøre dem virkelig billige å bygge og betjene). Se dette nettstedet for hva flere grupper av smarte mennesker har funnet på. Den generelle konsensus er at en 256-bit elliptisk kurve (i det minste en "normal" kurve) burde være noe tilsvarende en 128-bits symmetrisk styrke i styrke; en 4096-biters RSA-nøkkel kan være litt utenfor, forutsatt at denne påstanden er fornuftig, noe den ikke gjør (det er ingenting sterkere enn "kan ikke bryte den", så det å sammenligne styrker utover 100 biter er ganske meningsløst uansett). p>


Det er en relativt nylig ide som flyter rundt om kvantecomputere, som på en eller annen måte vil kreve en dobling av antall biter. Den teoretiske grunnen er at Grovers søkealgoritme kan utforske et rom med 2 n innganger til en funksjon (implementert på en kvantecomputer) ved å påkalle funksjon 2 n / 2 ganger. Under denne teorien trenger du en 256-bit nøkkel for å oppnå den magiske "128-biters sikkerhet". Imidlertid er det to hovedfeil i den teorien:

  • Feilen som alle påpeker er at kvantecomputere ikke eksisterer ennå (vel, nesten alle; noen mennesker påstås å ha kvantecomputere i salg). Dekoherens er tilsynelatende veldig vanskelig å overvinne, og vi vet ikke egentlig hvordan vi skal gjøre det, bortsett fra ved å gjøre hele maskinen veldig kald, og deretter be om at universet ikke vil innhente det vi prøver å gjøre i noen få millisekunder til. .

  • Mangelen som ingen påpeker, men er minst like viktig som den andre, er at det ikke er noe som tyder på at en elementær beregning på en kvantecomputer vil forbruke en mengde energi som ligner på en elementær beregning på en klassisk datamaskin. Dette er imidlertid et veldig viktig poeng. Siden oppfinnelsen av transistoren har datamaskiner stadig blitt mer effektive; det ble teoretisert som Moores lov. Det er også stadig tydeligere indikasjoner på at Moores lov er i ferd med å stoppe (Gordon Moore selv sa det), hovedsakelig fordi vi er nær den minimale størrelsen for elektroniske porter (hvis vi gjør dem mindre, så lekker de gal gjennom kvantetunneller) og vi er ute av nye ideer: økningen i makt i løpet av 1970-tallet matet på et basseng av ideer som alle hadde blitt unnfanget og uttalt på 1970-tallet, og nå er vi på slutten av vettet.

    Så vi vil snart nå grensene for klassisk databehandling og dermed faktisk vite , med en viss pålitelig pålitelighet, hvor mye av et nøkkelrom som kan utforskes med klassiske datamaskiner. Imidlertid tok det rundt 70 år å nå det punktet.

    For kvantedatamaskiner, siden de egentlig ikke eksisterer ennå, er vi på første dag. Det tar veldig mye ønsketenkning å hevde at vi, 70 år fremover, vil ha nådd maksimal optimalisering av kvantecomputere og at optimalisering vil bringe kostnadene for elementære kvanteoperasjoner i samme rekkefølge av størrelsen på kostnaden for elementære klassiske operasjoner. Faktisk vet ingen noe om det ennå.

Som en illustrasjon på vanskeligheten med å oppfatte en klar forestilling om hva teknologien vil være i stand til å oppnå i fremtiden, bør du vurdere følgende anekdote (som jeg nylig har lest i den boka): tilbake rundt 1810 , mer enn 25 år etter den historiske første gratisflygningen til Pilâtre de Rozier i en uforankret ballong, hadde den tidens største tenkere tenkt ut hva den nye oppfinnelsen kunne bringe for menneskeheten. Etter deres syn var toppen av nytten av en ballong å binde den til vognen din, og dermed gjøre den lettere og la den trekkes rundt med færre hester. Tenk på det når du føler deg visjonær.

Kvantemaskineffektivitet er dobbelt så spekulativ på det tidspunktet, det er egentlig ikke rasjonelt å inkludere det i noen tenkninger om nøkkellengden. Et mye mer fremtredende poeng er at når kvantecomputere fungerer, selv om de gjør det sakte, så er RSA, Diffie-Hellman og elliptiske kurver toast. Det er verdt å undersøke, og dette er det studiene på Post-Quantum cryptography konsentrerer seg om.

Strålende svar. Det kan være verdt å påpeke at du kan generere RSA- og EC-nøkkelpar fra 128 biter entropi * så lenge algoritmen er helt deterministisk og statisk (og helst kjent, slik at du kan kopiere den andre steder). Dette er ikke vanlig praksis og fulle av farer, men det * kan * gjøres og * er * sikkert. OK, jeg er på vei, jeg må få hestevogner (med hester) ut av hodet :)
CBHacking
2015-10-08 04:47:14 UTC
view on stackexchange narkive permalink

For noen bruksområder er 128 bits faktisk ikke så sterke som det høres ut.

For eksempel kan en kryptografisk sikker hash-algoritme bare være omtrent halvparten så sikker mot kollisjonsangrep som du forventer. Vurder en digital signatur (som faktisk bare signerer en hash av dataene, i stedet for å utføre en kostbar asymmetrisk kryptografisk algoritme på full data); hvis angriperen kan velge gyldig inndata, kan et bursdagsangrep brukes til å gjøre den samme signaturen også klarert for en ondsinnet inngang. Å finne et slikt par gyldige og ugyldige innganger vil bare kreve testing av ca 2 ^ (N / 2) (hvor N er hasjstørrelsen) par. En 128-biters hash vil dermed bare kreve 2 ^ 64 par, noe som er ekstremt dyrt for moderne maskinvare, men som nærmer seg gjennomførbarheten.

Den andre store bekymringen, bortsett fra bursdagsangrep, er kvanteberegning (ikke å forveksle med kvantekryptografi, som er ganske annerledes). Kvantumaskiner kan i teorien redusere den effektive entropien til en kryptografisk nøkkel i to. Dermed, hvis du vil ha 128 bits effektiv entropi (og nøkkelen må vare lenge nok til at kvantedatamaskiner kan nå muligheten til å operere på nøkler med betydelig lengde), bør du bruke 256 biter av tilfeldige data.

En kryptografisk sikker hashalgoritme produserer * ikke * utdata som ikke kan skilles fra tilfeldig. Det er bare egenskapene som er motstand mot kollisjon og motstand før bildet, men biter som det produserer skal * ikke * betraktes som biter av entropi.
Jeg tror ikke jeg uttalte noe om det motsatte, @puzzlepalace. Spørsmålet handlet likevel om "biter av entropi", så delen om bursdagsangrep på hash-funksjoner er uten tvil utenom temaet av den grunn du nevner.


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...