Puncte:3

Diferența dintre neuniform aleatoriu și uniform aleatoriu

drapel bt

Citesc despre funcțiile de derivare a cheilor (KDF) și într-o secțiune a Carte criptografică din lumea reală de David Wong, se face o comparație cu generatorul de numere Pseudorandom (PRNG). Și se spune că una dintre diferențe este că KDF primește o intrare de lungime arbitrară neuniform aleatorie, în timp ce PRNG ia cheia de k-biți uniform aleatorie. Chiar dacă ambele au ieșire de lungime arbitrară uniform aleatorie.

Practic se spune că Principalele diferențe sunt că un KDF nu se așteaptă la un secret complet uniform aleatoriu ca intrare (atâta timp cât are suficientă entropie).

Ce se înțelege exact prin neuniform aleatoriu și uniform aleatoriu în acest context? De asemenea, ce înseamnă entropia în acest context?

Se pare că o mai bună înțelegere a acestor termeni va ajuta la o mai bună apreciere a diferenței dintre KDF și PRNG

Ievgeni avatar
drapel cn
Ați putea adăuga o citare și/sau un link pentru a avea mai mult context?
Puncte:5
drapel ng

Uniform aleatoriu înseamnă că toate valorile posibile sunt la fel de probabile.Unde „toate valorile posibile” ar fi acelea dintr-un set care, atunci când nu este definit altfel, este setul de șiruri de biți de dimensiunea variabilei luate în considerare.

Un exemplu de intrare neuniformă la un KDF este atunci când KDF este alimentat cu rezultatul unui schimb de chei DiffieâHellman în $\mathbb Z_p^*$ cu $g$ un generator al întregului grup. Intrarea KDF ar putea fi valoarea lui $g^{a\,b}\bmod p$ exprimat ca un șir de octeți (de exemplu, big-endian) de dimensiune fixă ​​(acea de $p$, rotunjit la un multiplu de 8 biți), cu $a$ și $b$ secrete aleatorii efemere. Unele șiruri de octeți care sunt valide la intrarea KDF nu pot apărea niciodată în acea utilizare reală: șirurile de octeți de intrare care nu reprezintă un număr întreg în $[1,p-1]$, inclusiv șirurile de octeți all-0x00 și all-0xFF. Și dintre cele care pot fi atinse, reziduurile pătratice (atinse atunci când fie $a$ sau $b$ sunt pare) sunt de trei ori mai probabile decât reziduurile non-quadratice (atins când $a$ și $b$ sunt ciudate).

Un alt exemplu de intrare neuniformă este o frază de acces, care este o intrare comună pentru unele KDF-uri (cum ar fi Argon2 modern sau PBKDF2 învechit).


Entropia Shannon (în bit) al unui proces care generează o variabilă $X$ care poate lua $n$ valorează valori distincte cu probabilitate $p_i$ cu $0\le i<n$, astfel cu astfel $1=\displaystyle\sum_{0\le i<n}p_i$ și $0\le p_i\le1$, este definită ca cantitate $$H(X)=\sum_{0\le i<n\text{ și }p_i\ne0}p_i\log_2(1/p_i)$$

O altă entropie utilă este min-entropie, definit ca $$H_\text{min}(X)=\log_2(1/\max_{0\le i<n}{p_i})$$

Întotdeauna ține $H_\text{min}(X)\le H(X)$.

Un proces care generează a $b$-bit șir de biți $X$ are $b$-bit entropie (pentru oricare definiție) dacă și numai dacă generează șiruri de biți uniform aleatoare. Atunci când este aleatoriu neuniform, entropia este mai mică decât $b$- un pic, până la $0$ când generează întotdeauna același șir de biți.

În mod informal, există suficientă entropie la intrarea unui KDF dacă ieșirea acelui KDF este în esență uniform aleatorie (pentru o definiție mai mult sau mai puțin strictă a acesteia). Acest lucru este posibil atunci când intrarea KDF nu este uniform aleatorie, ci numai dacă acea intrare are (min-)entropie cel puțin lățimea de ieșire a KDF de $b$ putin (sau cel putin $b$ astfel încât $2^b$ sfidează enumerarea de către adversari). Și atunci aceasta nu este o condiție strict suficientă.

dade avatar
drapel bt
practic, dacă toate valorile posibile - nu sunt la fel de probabile - din cauza oricărei restricții - atunci aveți o aleatorie neuniformă?
fgrieu avatar
drapel ng
@dade: asta e. Cu excepția faptului că spunem „aleatoriu neuniform” sau „aleatorie neuniformă”.
dade avatar
drapel bt
O întrebare înrudită atunci... cum poate un „aleatoriu neuniform” să aibă „entropie suficientă”?
Paul Uszak avatar
drapel cn
@dade Nu vă gândiți prea mult la asta - este simplu. Imaginați-vă că doriți 128 de âlucruriâ, ceea ce este suficient pentru criptografie. Dacă vine la o rată de 8 (distribuție uniformă în octeți), atunci aveți nevoie doar de 16 treceri. Dar puteți obține 128 de âitâ la o rată de 5,3 (distribuție ciudată) dacă luați 25 de treceri.
Puncte:4
drapel cn

Ce se înțelege exact prin neuniform aleatoriu și uniform aleatoriu în acest context? De asemenea, ce înseamnă entropia în acest context?

Aceasta este aleatorie cu o distribuție neuniformă ilustrată ca funcție de masă de probabilitate (PMF): -

pmf

Puteți vedea că zerourile sunt de departe predominante. Dacă aleatoritatea ar fi uniformă, toate valorile s-ar alinia cu linia albastră la p = 0,0039, care este $\frac{1}{256}$. Deoarece în criptografie ne interesează min. entropie $\big(H_{\infty} = -\log_2 (p_{max}) \big)$, distribuția de mai sus (dacă I.I.D) are $H_{\infty} \aproximativ 5,3$ biți/octet.

Dacă PMF ar fi fost uniform aleatoriu, am fi făcut-o $H_{\infty} = 8$ biți/octet. Aceasta este entropia maximă, care este caracteristică distribuțiilor uniforme.

Așadar, aleatoritatea neuniformă intră în KDF (poate o parolă precum „123456”) și apare aleatorietatea uniformă.

fgrieu avatar
drapel ng
„aleatoria neuniformă intră în KDF și iese aleatorietatea uniformă” _dacă_ există suficientă entropie în intrare.
Paul Uszak avatar
drapel cn
@fgrieu Ah, ye olde chestnut - diferențele dintre complexitatea Kolmogorov, entropia criptografică și entropia informațională. Chiar ar trebui să rezolvăm asta într-o zi...

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.