Puncte:1

Cum se creează o cheie pentru AES într-o lungime a cheii de 192 de biți dintr-o parolă?

drapel mu

Să zicem că am o parolă. Și este sigur. Dar este un șir de 10 caractere.

Deci, dacă aș dori să creez o cheie AES pentru versiunea pe 128 de biți a algoritmului, aș face hash-o folosind MD5. Sau, dacă aș dori versiunea 256 a algoritmului, l-aș hash cu oricare dintre funcțiile hash de 256 de lungime, cum ar fi Sha_256. Dar nu am reușit să găsesc niciun hash (altul decât unele numite Tiger) care să genereze ieșiri pe 192 de biți.Indiferent de sare sau de pașii anteriori în procesul de generare a cheii, ultimul pas pare să fie întotdeauna un hash care returnează o cheie de lungimea dorită.

Este soluția normală să folosiți întotdeauna același hash (să spunem Sha256) și să luați doar numărul de biți necesari pentru cheie? Dacă nu, atunci cum pentru 192?

Marc Ilunga avatar
drapel tr
Nu este chiar recomandabil să folosiți md5 din sha256 pentru a face o cheie dintr-o parolă. Cu excepția cazului în care parola a fost generată aleatoriu, cel mai bine este să utilizați o funcție de hash a parolei lentă, cum ar fi argon2 (https://en.wikipedia.org/wiki/Argon2). Care vă permite, de asemenea, să alegeți lungimea ieșirii. Alternativ, rezultatul unei parole hash securizate poate fi trunchiat la lungimea dorită.
drapel mu
Bine. Vă mulțumim pentru contribuție!
Puncte:2
drapel in

Să spunem că am o parolă. Și este sigur. Dar este un șir de 10 caractere.

Dacă presupunem că toate cele 10 caractere sunt ASCII (nu extinse), veți obține cel mult Spațiu de căutare pe 64 de biți pentru atacator. Aceasta înseamnă că utilizați efectiv o cheie pe 64 de biți pentru AES-128. Regula este

  • Nu numai dimensiunea cheii, ci și entropia sursei cheii este importantă.

Modul comun este generarea de 128 de biți aleatori uniformi pentru cheia AES-128. Acest lucru este ușor dacă utilizați un schimb de chei, cum ar fi DH (în cele din urmă, și el hash - Se scurge Legendre) sau ECDH (hash it, de asemenea, punctele nu sunt aleatoare uniforme)

Dacă utilizați o parolă, atunci aveți nevoie și de o sursă bună de entropie pentru parolele dvs. Utilizare Diwewire cu 10 cuvinte pentru a obține entropie de 128 de biți. Odată ce ai acest lucru, nu contează cu adevărat să folosești algoritmi de hashing a parolei pentru a încetini atacatorii, deoarece ai deja 128 de biți (mai trebuie să-l hashing, deoarece este foarte lung). Dacă utilizați hashingul parolei, atunci metoda atacatorului va fi cea mai rapidă; vor forța brută cheia, nu parola.

Acum, dacă nu aveți șansa de a crește sursa de entropie a parolei dvs., atunci cu siguranță aveți nevoie de algoritmi de hashing a parolei precum Argon2 și hashing Balloon. Au parametri ca

  • repetare; crește timpul de atac proporțional cu iterația.
  • duritatea memoriei; elimină/reduce căutarea masivă de parole a căutării ASIC/PFGA/GPU unde memoria nu este legată ca procesoare
  • și, contor de fire; reduce paralelizarea programelor de căutare a parolelor.

Toți parametrii trebuie ajustați pentru a vă atinge securitatea țintă. De exemplu, dacă parola dvs. are securitate de 100 de biți, atunci aveți nevoie $2^{28}$ iterație pentru a forța atacatorul să caute pe 128 de biți.

Cum se creează o cheie pentru AES într-o lungime a cheii de 192 de biți dintr-o parolă?

  • Folosiți 15 cuvinte Dicewire, tăiați-l apoi tăiați la 192 de biți sau

  • Folosește-ți parola cu salt și hash-o cu algoritmi de hashing a parolei precum Argon2 cu parametri bine reglați. Sunt deja proiectate și le puteți găsi biblioteci acea ieșire lungimea dorită (rețineți că Securitatea lui Argon2 este delimitată de 512 biți ). Și;

    • Utilizați sare unică pentru fiecare cheie generată
    • Folosiți cât mai multă entropie mai mare
    • Utilizați cât mai mulți parametri mai mari
drapel mu
Mulțumesc pentru explicație. Parola în sine nu va fi generată de un om, ci mai degrabă de un algoritm criptografic sigur (cel puțin conform php) și acesta va fi transformat într-un șir de 512 biți reprezentat ca un șir hexadecimal. Am folosit parola ca exemplu din ignoranță. Pentru că ceea ce am vrut să știu este cum să obțin lungimea potrivită. Dar dacă ți-am înțeles corect explicația, atunci pur și simplu introducerea prin hașare a șirului sau eliminarea biților la sfârșit pentru a-i folosi ca cheie este suficient, nu?
kelalaka avatar
drapel in
Da, în teorie, toți biții din ieșirea unui hash criptografic bun depind de toate valorile de intrare. Tăierea este o modalitate obișnuită, așa cum SHA512/256 este tăiat SHA-512 (cu valori inițiale diferite pentru a avea separarea domeniilor).

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.