Puncte:1

Scăpați criptarea AES prin atacul de dicționar cu fraze de acces?

drapel fr

Cât de ușor ar fi să spargi un fișier criptat AES-256, care este protejat de o frază de acces?

Înțeleg că încercarea de a forța brută a unei chei de criptare AES-256 ar fi nerealizabilă, chiar și cu calculul cuantic. Dar dacă acea cheie de criptare ar fi fost generată dintr-o expresie de acces? Cât de ușor ar fi atunci să spargi criptarea?

Nu am deloc experiență în criptografie, dar am încercat să fac câteva estimări simple: Conform dicționarului Oxford, există aproximativ 170 de mii de cuvinte în limba engleză în uz. Desigur, doar o fracțiune dintre acestea sunt parole utilizate frecvent, dar să folosim acest număr.

Dacă am încerca să forțăm expresia de acces, presupun că am începe cu fraze de acces lungi de un cuvânt, urmate de expresii de acces lungi de 2 cuvinte și așa mai departe. Presupunând că cuvintele nu sunt repetate, acest lucru ar oferi un număr total de posibilități:

$N(L) = \sum_{i=1}^L \frac{170000!}{i!}$

Unde L este lungimea maximă a frazei de acces (numărul de cuvinte) pe care vrem să încercăm să o spargem.

Pentru a obține un număr de permutări ale în jur $2^{256}$, atunci am avea nevoie de o expresie de acces de cel puțin 18 cuvinte, având în vedere asta $N(15) = 2,85\times10^{78} = 2^{260}$.

Este atunci corect să presupunem că, dacă atacatul știe că „parola” este într-adevăr o expresie de acces formată din chei în limba engleză, atunci expresia de acces trebuie să aibă cel puțin 15 cuvinte pentru a nu fi veriga mai slabă din Schema de criptare AES?

kelalaka avatar
drapel in
De ce ai nevoie de un astfel de calcul? De ce nu folosiți Dicewire sau Bip39 pentru a vă asigura cheia cu un algoritm bun de derivare a cheii, cum ar fi Argon2 sau Scrypt?
Puncte:2
drapel cn

Presupunând că cuvintele nu sunt repetate, acest lucru ar oferi un număr total de posibilități:
$N(L) = \sum_{i=1}^L {170000 \alegeți i}$

Nu: acesta este numărul total de seturi de $L$ cuvinte, dar cuvintele trebuie să fie în ordine, deci valoarea este de fapt $N(L) = \sum_{i=1}^L \frac{170000!}{i!}$.

În plus, nu există niciun motiv pentru a nu repeta cuvintele: acest lucru face doar expresia de acces ușor de ghicit. Deci numărul de $L$-parola cuvinte este de fapt $170000^{L}$. Numărul de fraze de acces ale $1$ la $L$ cuvintele este $$N(L) = \sum_{i=1}^L 170000^i$$

De fapt, atacatorul este destul de probabil să știe numărul de cuvinte din expresia de acces, dar acest lucru nu schimbă numărul cu mult.

Făcând calculul, $N(14) < 2^{256} < N(15)$.

Este corect să presupunem că, dacă atacatul știe că „parola” este într-adevăr o expresie de acces formată din chei în limba engleză, atunci expresia de acces trebuie să fie cel puțin 18 15-cuvânt lung pentru ca acesta să nu fie veriga mai slabă din schema de criptare AES?

Totuși nu, deoarece costul testării unei fraze de acces este mai mare decât costul testării unei chei. Pentru a testa o expresie de acces, adversarul trebuie să obțină mai întâi cheia din expresia de acces, apoi să testeze cheia. Derivarea unei chei dintr-o expresie de acces este în mod deliberat lentă: folosește a întinderea cheii funcţie.

Cât de mult mai lentă este întinderea cheii în comparație cu un calcul hash depinde de alegerea algoritmului de întindere a cheii, de modul în care este parametrizată și de ce hardware are atacatorul. Pentru forța brută la această scară, costul designului hardware este neglijabil, iar costul este dominat de consumul de energie. Pentru o funcție moștenită de întindere a tastei cu operație iterată, cum ar fi PBKDF2, cantitatea de siliciu la alimentare pentru întinderea cheii nu este semnificativ mai mare decât pentru AES. Este obișnuit să alegeți un factor de încetinire astfel încât o rulare să costă câteva zecimi de secunde, în comparație cu câteva miliarde de secunde pentru partea AES, adică un raport de aproximativ $2^{26}$. Cu o funcție modernă de întindere a tastelor care este, de asemenea, greu de memorie, raportul este mai mare, deoarece trebuie să alimentați și memoria RAM. Am de gând să folosesc $2^{30}$ ca raport.

Aceasta înseamnă că, pentru ca AES să fie mai slab împotriva forței brute decât expresia de acces, avem nevoie $N(L) \ge 2^{256}/2^{30} = 2^{226}$, care se realizează pentru $L \ge 13$.


Dar... acest număr nu are sens! Nu este absolut necesar ca cracarea frazei de acces să fie mai lentă decât cracarea AES, deoarece cracarea AES este deja cu mult imposibilă. Dacă spargerea frazei de acces este imposibilă, dar âmai puțin imposibilâ decât AES, este totuși imposibil.

Rețeaua Bitcoin utilizează aproximativ 0,4% din producția totală de energie electrică a lumii (sursa: â 100 TWh/an din ceva peste 25000 TWh/an) și calculează â $2^{93}$ hashes/an. Presupunând că veți obține același număr de operații elementare pe Wh pentru spargerea frazei de acces, cu diferența de factor de cost de $2^{30}$ Am estimat mai sus, asta înseamnă că o limită superioară pentru cracarea frazei de acces este $2^{63}$ pe an.

Deci, dacă doriți ca cheia dvs. să fie protejată de un adversar la nivel NSA pentru o mie de ani, ai nevoie $N(L) \ge 1000 \cdot 2^{63} \aprox 2^{73}$, care se realizează pentru $L \ge 5$.

La acest nivel de forță împotriva forței brute, forța brută pur și simplu nu este o preocupare. Sau, mai degrabă, „forța brută”, ca în supercomputere, nu este o problemă. Forța brută care este o preocupare este cea aplicată cu un instrument contondent.

Imaginația unui tocilar criptografic:
[Cueball ține un laptop, iar prietenul lui îl examinează.]
Cueball: Laptopul lui este criptat. Să construim un grup de milioane de dolari pentru a-l sparge.
Prieten: Nu e bine! Este RSA pe 4096 de biți!
Cueball: Explozie! Planul nostru rău este dejucat!
Ce s-ar întâmpla de fapt:
[Cueball ține o bucată de hârtie și îi dă prietenului său o cheie.]
Cueball: Laptopul lui este criptat. Drogă-l și lovește-l cu cheia asta de $5 până ne spune parola.
Prieten: Am înțeles.

Realitatea reală reală: un atacator cu adevărat motivat va găsi expresia de acces prin phishing sau, pentru într-adevăr utilizatori atenți și atacatori puternici, plantând o cameră sau plantând malware. (Sau o combinație a acestora.)

drapel fr
Mulțumesc, mi-am corectat calculul. Înțeleg că acum, în practică, nu trebuie să treci pe toți la 256 de biți de criptare sau 2^256 permutări. Totuși, acesta era ceea ce urmăream, deoarece cu calculul cuantic într-un viitor nu îndepărtat, cel mai rău caz de forță brută ar dura aprox. $O(\sqrt{N}) pași folosind căutarea Grover. Presupun că, pentru a o face rezistentă cuantică împotriva unui adversar neapărat la nivel NSA, dar încă motivat (în funcție de cât vor costa computerele cuantice prin cloud), am avea nevoie de aproximativ 12 cuvinte pentru a se potrivi cu nivelul de securitate pe care l-ați menționat?
Puncte:1
drapel in

După cum notează Gilles, dacă aveți un dicționar de 170.000 de cuvinte (care este în partea superioară), numărul de expresii de acces cu $L$ cuvintele sunt: $170000^L$

Când facem conversia dintr-o frază de acces la o cheie, folosim o funcție de derivare a cheii concepută să fie în mod deliberat lentă pentru a preveni atacurile cu forță brută, cât de lent depinde de detalii, există mai mulți algoritmi în jur și toți cei moderni sunt parametrizați pentru a fi configurabil lenți.

Dar, pentru a face câteva calcule din urmă, să presupunem că folosind GPU, puteți obține probabil până la 1000 de verificări pe secundă cu 1 $/oră resurse cloud. Aceasta înseamnă că obțineți 3,6 milioane de fraze de acces verificate / USD (Acesta este atunci când utilizați derivate de parole ușor datate, dar comune, de exemplu PBKDF2 cu un număr moderat de iterații, iar atacatorul folosește cele mai bune resurse disponibile din cloud disponibile).

Acum, pentru a înțelege securitatea, puteți converti lungimea frazei de acces în cost.

L=1, 170.000 de expresii posibile, costul este sub 1$

L=2, 29B fraze posibile, costul este de ~ 8000 USD

L=3, costul devine 1,3 miliarde USD, ceea ce nu este deja posibil folosind cloud-ul public și probabil nu este posibil chiar și pentru un stat național cu hardware dedicat suplimentar.

drapel fr
Vă mulțumesc, de asemenea, este foarte plăcut să văd un cost estimat pentru a ajuta la punerea în perspectivă! Mă întrebam doar cât de mult ar fi acest lucru cu calculul cuantic nu prea îndepărtat în viitor și ușor accesibil și prin cloud.
Meir Maor avatar
drapel in
Nu există un calcul quantom relevant în viitorul previzibil. Suntem la câteva descoperiri distanță.
eckes avatar
drapel us
Cu toate acestea, trebuie menționat că listele de parole de top 100 de milioane sunt încă în intervalul sub 1000 $ și acoperă o mulțime de parole slabe. Așadar, dacă software-ul dvs. nu utilizează derivarea puternică a cheilor (iterație înaltă), acesta pune în pericol utilizatorii obișnuiți pentru atacuri offline ușoare. Dacă se folosește doar un simplu hash, este și mai rău. Puteți brute înainte de până la 8 caractere pe o mașină locală.

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.