Puncte:1

Algoritmi de criptare bidirecțională similari cu bcrypt

drapel za

Am nevoie de un algoritm care să poată îndeplini o sarcină foarte specifică: luați un șir scurt, criptați-l folosind un algoritm care poate fi scalat pentru a ține pasul cu Legea lui Moore/are un factor de dovadă a muncii/este neobișnuit de lent, și apoi, mai târziu, decriptați-l cu același cost de timp.

Cazul de utilizare este o listă de adrese de e-mail stocate pentru o listă de corespondență de către un client conștient de securitate, care urmează să fie decriptate una câte una pentru fiecare e-mail; scopul este de a face ca forțarea brută să consume cât mai mult timp. Am căutat câțiva dintre candidații probabili (AES-256, mcrypt, twofish, scrypt), dar nu este clar care ar fi cel mai potrivit.

kelalaka avatar
drapel in
Alegeți AES-256-GCM sau xChaCha20-Poly1305.
poncho avatar
drapel my
„decriptează-l în același timp cost”; vrei să spui „costul în același timp ca și criptarea”? Sau vrei să spui „la un cost de timp care este același, independent de factorul de cost al criptării”?
poncho avatar
drapel my
@kelalaka: cum are AES-GCM sau ChaCha un factor „dovada muncii”?
kelalaka avatar
drapel in
@poncho Nu cred că OP-ul vrea cu adevărat criptare lentă, mai degrabă „scopul este de a face ca forțarea brută să consume cât mai mult timp.” Criptarea pe 256 de biți este suficientă cu o parolă bună și un PBKDF. AES-GCM sau ChaCha nu au dovada factorului de lucru și nici nu au nevoie.
kelalaka avatar
drapel in
Rețineți că [scrypt este o funcție de derivare a cheilor bazată pe parolă creată de Colin Percival,](https://en.wikipedia.org/wiki/Scrypt). Doriți de fapt un PBKDF lent și o criptare rapidă, suficient de sigură bruteforce?
drapel kr
*bcrypt* este un algoritm de hashing, nu un algoritm de criptare.
kelalaka avatar
drapel in
Puteți să [editați](https://crypto.stackexchange.com/posts/95643/edit) întrebarea dvs. pentru a clarifica și puteți comenta sub întrebarea dvs. și răspunsurile pentru aceasta fără nicio limită de reputație.
Maarten Bodewes avatar
drapel in
Vă rugăm tuturor, concentrați-vă pe factorul de lucru (auto?-) în creștere. Personal, probabil că aș opta pentru un PBKDF, cum ar fi una dintre configurațiile Argon2, PBKDF2 sau bcrypt, apoi aș crește numărul de iterații în fiecare an și aș folosi cheia rezultată pentru a încheia cheia de criptare complet aleatorie. Știu că este manual, dar algoritmii/algoritmii ieșiți de la sine nu au o componentă de timp. După cum a menționat Kelalaka, dacă dimensiunea parolei/cheii are suficientă aleatorie, atunci nu trebuie să vă faceți griji cu privire la KDF, așa că există asta.
drapel ph
Nu sunt convins de necesitatea de a adăuga un factor de lucru la forțarea brută a unui spațiu de cheie de 256 de biți. Cred că modelul de amenințare nu a fost pe deplin gândit.
Puncte:0
drapel ru

Pentru ceea ce sperați să faceți, alegerea cifrului bloc nu este probabil la fel de importantă ca și mod de operare. Ceea ce aveți nevoie este un mod de operare în care atât criptarea, cât și decriptarea nu sunt paralelizate și apoi să repetați de mai multe ori, ceea ce este supărător, dar nu imposibil.

Recomandarea mea este să utilizați modul Output Feedback (OFB). Generați o valoare inițială unică; introduceți acest lucru în (de exemplu) cifrul bloc AES; apoi reintroduceți rezultatul în cifr și repetați, să spunem, $2^{35}$ ori in functie de exact cât timp vrei să ceri de la client. Apoi XOR iese viitoare pe adresa de e-mail. Timpul de criptare/decriptare va scădea odată cu legea lui Moore, dar nu există niciun beneficiu în cumpărarea mai multor hardware.

Acum, după ce a decriptat o dată, clientul ar putea pur și simplu să salveze ultima valoare de ieșire înainte de XORing, dar, în egală măsură, ar putea salva adresa odată decriptată.

O altă opțiune ar fi utilizarea modului Propagating Cipher-Block Chaining (PCBC), dar acest lucru ar implica generarea de atâtea intrări de neghicit câte numărul de iterații care se simte inutile.

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.