Puncte:0

Cum funcționează blueimp JavaScript-MD5?

drapel mv

Am făcut ceva progrese în problema avalanșei MD5, https://github.com/221294583/crc32 Se spune că CRC32 realizează avalanșă prin XOR recursiv de polinoame și valori originale în același timp. Cred că MD5 este același, dar nu pot înțelege codul lui MD5. Ma puteti ajuta sa explic acest cod. https://github.com/blueimp/JavaScript-MD5 ,este o mare cantitate de coduri ca în linkul meu. Nu sunt un dezvoltator al proiectului. Folosesc utilitarul MD5 pentru proiectul meu și poate că JavaScript este, de asemenea, doar apelează utilitarul. CRC32 este o altă metodă.

DannyNiu avatar
drapel vu
Notă secundară: MD5 nu oferă protecție a integrității de nivel criptografic și ar trebui evitat.Chiar dacă sunteți dispus să schimbați securitatea pentru performanță, BLAKE2s-128 este o alegere mai bună în ceea ce privește eficiența, cu excepția cazului în care aveți cerința de a utiliza hardware-ul existent.
Puncte:1
drapel vu

MD5 funcționează fundamental diferit de CRC.

Nu sunt familiarizat cu algoritmii CRC, cu excepția faptului că știu că aceștia oferă protecție de bază a integrității de mare debit.

MD5 (împreună cu altele din familia de funcții hash criptografice Merkle-Daamgard, cum ar fi SHA-1, SHA-256 etc.) are aproximativ 4 straturi:

Construcția Merkle-Daamgard: care constă din

  • Umplutură de mesaje compatibilă cu MD - pentru a vă asigura că mesajele de lungime diferită au ca rezultat secvențe diferite de blocuri de mesaje. Mesajele diferite de aceeași lungime nu reprezintă principala preocupare pentru umplutura MD-compilant.

  • O serie de iterații ale funcției de compresie $C(h,m)$, Unde $h$ este rezumatul din iterația anterioară a funcției de compresie (sau vectorul de inițializare dacă aceasta este iterația inițială); și $m$ este blocul de mesaje pentru iterația curentă.

Construcția funcției de compresie din blockciphers.

Construcția Davies-Meyers este cea utilizată în familia MD5, SHA-1 și SHA-2. Acesta criptează digest-ul cu blocul de mesaje ca cheie, apoi adaugă sau xors digest-ul la noul bloc de ieșire pentru a face funcția de compresie Într-un fel.

Construcția blockcipher.

Există 2 paradigme majore - a) Rețeaua de substituție-permutare (SPN), b) Rețeaua Feistel. Familia MD5, SHA-1 și SHA-2 îl utilizează pe acesta din urmă.

O rețea Feistal modifică iterativ o jumătate din blocul de cifrare cu o valoare calculată folosind o funcție rotundă din cealaltă jumătate a blocului - calculul funcției rotunde implică subcheia derivată din cheia principală, care în cazul funcțiilor hash, este bloc de mesaje curente.

Construcția funcției rotunde.

Principala preocupare a Feistal Network este de a crește confuzia și difuzia prin aplicarea iterativă a funcției rotunde, iar funcția rotundă trebuie să ofere o anumită aleatorie minimă necesară.

  • Paradigma ARX (adunare aritmetică, rotație/schimbări și operații xor) este o alegere populară.
  • Polinomul binar este altul.
DannyNiu avatar
drapel vu
Sunt destul de sigur că am mai văzut răspunsuri similare. Poate cineva să facă un link către el, vă rog?

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.