Puncte:5

Extracție aleatorie HKDF - sare sau fără sare?

drapel es

In conformitate cu Hartie HKDF, utilizarea unei sări servește la două scopuri: separarea domeniului și extracția aleatorie.

Această întrebare se referă numai la necesitatea unei sări în scopul extracției aleatorie.

The Hartie HKDF afirmă:

A valoarea de sare (adică, o cheie aleatorie, dar nesecretă)... este esențial pentru a obține extractoare generice și KDF-uri care pot extrage aleatoriu din surse arbitrare cu suficient de mare entropie.

The Extragerea aleatoriei și derivarea cheilor hârtie (legată de documentul HKDF) afirmă:

În plus, ipoteza aleatorie „monolitică” pe un singur Funcția (nekeyed) cum ar fi SHA-1 este inadecvată pentru setarea extragerea aleatoriei ca nicio funcție unică (chiar dacă este complet aleatorie) poate extrage o distribuție aproape uniformă din arbitrar distribuții de intrare cu entropie mare. Așa este, de când odată funcția este fixă ​​(chiar dacă la valori pur aleatoare) atunci Sunt distribuții de intrare cu entropie mare care vor fi mapate la subseturi mici de ieșiri. Prin urmare, abordarea viabilă pentru extracția aleatorie este a lua în considerare o familie (sau o colecție) de funcții indexate de o mulțime de chei. Când o aplicație necesită hashingul unei intrări pentru scopul de a extrage aleatoriu, apoi un element aleatoriu (adică, a funcția) din această familie se alege și se aplică funcția intrarea dată. Deși pot exista distribuții specifice de intrare care interactioneaza prost cu functii specifice din familie, un bine aleatorie-extracție familia va face acest „eveniment rău” să se întâmple cu probabilitate foarte mică.

Ultima întrebare este cum se generează cheile cunoscute aleatoare utilizate de extractor. Din punct de vedere tehnic, acest lucru nu este greu, așa cum pot genera părțile aleatoriu adecvat, dar detaliile exacte depind de aplicarea.De exemplu, în schimbul de chei DH discutat mai devreme, părțile schimbă în valorile clare alese aleatoriu, care sunt apoi combinate pentru a genera o singură cheie [sare] pentru familia extractoare (de exemplu, HMAC-SHA1).

The Hartie HKDF afirmă:

familia Merkle-Damgard [utilizat în proiectarea multor algoritmi hash populari, cum ar fi MD5, SHA-1 și SHA-2] construit pe aleatoriu funcțiile de compresie este nu este un bun extractor de statistici... producția unei astfel de familii pe orice distribuție pentru care ultimul bloc de intrare este fix este departe de a fi uniform din punct de vedere statistic)

Apoi ecou ideea făcută în Extragerea aleatoriei și derivarea cheilor hârtie:

După cum am subliniat deja în secțiunile anterioare extractoare generice, adică cei care lucrează pe surse arbitrare de min-entropie ridicată, trebuie sa fie randomizat printr-o cheie aleatorie, dar nu neapărat secretă (sau âsareâ). În special, exemplul care urmează Lemei 2 arată că pentru fiecare extractor determinist există o sursă cu entropie mare pentru care ieșirea este departe de a fi uniformă.

Contrazicând aceste afirmații, știu despre o implementare ECDH care utilizează hash-ul Keccak-256 pe elementul de grup EC secret partajat fără sare, dar poate că acest lucru este justificat fie A) pe motiv că alegerea unui hash de construcție cu burete atenuează preocupările. care afectează hashurile familiei Merkle-Damgard sau B) pe motiv că o reprezentare a punctului comprimat EC este suficient de uniform aleatorie (comparativ cu uniformitatea aleatoriei unui secret partajat în DH non-EC).

În ce circumstanțe este necesară o sare? (pentru ce tipuri de material cheie de intrare și pentru ce tipuri de funcție HMAC-Hash).

Sunt aceste documente depășite și au fost atenuate într-o anumită măsură preocupările ridicate de aceste lucrări cu privire la utilizarea unei sări prin cercetări mai aprofundate asupra naturii funcțiilor hash moderne?

kelalaka avatar
drapel in
[Reducerea standard de securitate pentru HKDF se aplică unui adversar care poate interoga HKDF-Expand pentru multe șiruri de informații în mod adaptiv, cu teorema parametrizată în funcție de numărul de interogări, astfel încât utilizarea propusă se încadrează exact în utilizarea intenționată și studiată a HKDF.Acest lucru se aplică indiferent dacă utilizați sau nu o sare.](https://crypto.stackexchange.com/a/59070/18298)
Puncte:1
drapel cn

Terminologia este importantă aici. Scopul principal al unei sare criptografice este de a securiza parolele în timpul reutilizarii și de a evita precalcularea hashului. Deci da, asta oferă separarea domeniului dvs. Dar întrebarea dvs. este despre extracția aleatorie din surse arbitrare, adică inclusiv dispozitivele.

  1. NIST SP800 90B „Recomandări pentru sursele de entropie utilizate pentru generarea aleatorie de biți” nu face nicio recomandare concretă cu privire la tipul de extractor sau configurația care trebuie utilizată. Puteți folosi MD5 așa cum a fost sugerat în prima lucrare.Sau rulați-vă propriul tip exotic atâta timp cât calculați entropia de ieșire la o părtinire de $< 2^{-64}$.

  2. O sare poate fi publică, prin urmare poate fi refolosită așa cum este cunoscută. Amintiți-vă că nu asigurați parole, ci extrageți din surse de entropie care furnizează (desigur, neuniforme), dar întotdeauna surse aleatorii. Nevoia de sare este, prin urmare, redundantă de fluxul de entropie de intrare.

  3. Nu accept că fixarea blocului final într-o arhitectură Merkle-Damgard implică acea nevoie de sare și un HKDF. Da, ele dovedesc neuniformitatea rezultatelor ulterioare, dar acesta este un scenariu de atac din punctul meu de vedere. Și dacă un adversar poate introduce un bloc de toate zerourile în extractorul tău, trebuie să securizi mai bine camera. Umplutura simplă este luată în considerare în calculul entropiei I/O (adesea lema Left Over Hash). Lucrarea dvs. spune de fapt la fel, promovând un argument de indistinguire computațională.

  4. TRNG-urile comerciale nu sare la întâmplare în mod specific. Orice sare ar fi oricum reutilizată într-o serie de producție.

  5. Din punct de vedere filosofic, practic toți extractoarele de aleatoriu au o sare încorporată în vectorii lor de inițializare. Priviți blocul cu număr mare într-o implementare SHA2. Sau o matrice Toeplitz.

Deci sunt de acord cu comentariul lui Kelalaka către tine. Nu ai nevoie de sare.

knaccc avatar
drapel es
Cred că, în esență, spuneți că nu sunteți de acord cu afirmația din lucrare că „există distribuții de intrare cu entropie mare care vor fi mapate la subseturi mici de ieșiri” atunci când este utilizat un hash modern. Acest lucru are sens intuitiv, prin faptul că echivalează cu ceva care aproximează găsirea de coliziuni într-o funcție hash prin amestecul cu o sursă cu entropie ridicată.
Paul Uszak avatar
drapel cn
@knaccc, cred că da. Ați citat trei exemple diferite (cele două lucrări ale dumneavoastră și experiența dumneavoastră personală cu ECDH). Există adesea diferențe între abordările matematice/academice și extractoarele TRNG din lumea reală.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.