Puncte:-1

Umplutura și algoritmul MD5

drapel cn

În MD5, dacă M=100, cum putem efectua umplutură pe el și de câte blocuri sunt necesare în fiecare rundă?

Acestea sunt întrebări generale pentru înțelegerea umpluturii și a rundelor.

Maarten Bodewes avatar
drapel in
Vă rugăm să descrieți ce ați încercat să rezolvați singur această întrebare. Există descrieri generice ale MD5 peste tot. Doar copierea lucrurilor din aceste descrieri nu este utilă.
Maarten Bodewes avatar
drapel in
Rețineți că blocurile și rundele nu sunt același lucru. Se pare că întrebi despre blocuri, în timp ce se pare că cauți informații despre runde.
drapel cn
de fapt, am căutat mult, dar nu am găsit niciun răspuns util, este o întrebare trecută de test și încerc să găsesc răspuns..
drapel cn
Încerc să înțeleg întregul proces al rundelor MD5 și al blocurilor create pe mesaj (cum ar fi, câte blocuri vor fi create dacă lungimea mesajului este de 100 de biți sau 200 de biți..
drapel cn
de asemenea, cum funcționează rundele pe aceste blocuri
Patriot avatar
drapel cn
@Adam Smith O abordare este să intri în detaliu despre ceea ce înțelegeți și apoi să descrieți ceea ce aveți probleme cu înțelegerea. După aceea, încercați să specificați întrebarea dvs.După cum a spus moderatorul, vă rugăm să descrieți ce ați făcut pentru a răspunde la întrebare. Cu siguranță vei primi un răspuns bun.
Puncte:2
drapel fr

Majoritatea funcțiilor hash criptografice procesează datele în blocuri de mai mulți octeți, deoarece acest lucru este mai eficient. Pentru algoritmii care folosesc cuvinte pe 32 de biți, cum ar fi MD5 și SHA-256, acestea au adesea o dimensiune de 64 de octeți; pentru algoritmii care folosesc cuvinte pe 64 de biți, cum ar fi SHA-512 sau BLAKE2b, de obicei sunt blocuri de 128 de biți; iar SHA-3 este încă diferit.

Fiecare dintre aceste funcții hash conține o funcție de compresie, care preia starea hash anterioară (sau starea inițială la început) și un bloc de date și le combină în noua stare. Această funcție de compresie conține un anumit număr de runde; se face același număr de runde pe fiecare bloc. Apoi, după ce blocul final a fost procesat, valoarea hash este extrasă din stare, care în multe cazuri este doar o copie a tuturor sau a unei părți a datelor de stare.

În funcțiile Merkle-DÃ¥mgard, cum ar fi MD5, SHA-256 și SHA-512, umplutura se face din două piese. În primul rând, se calculează lungimea datelor în biți. În funcțiile pe 32 de biți precum MD5 și SHA-256, aceasta este de obicei o valoare de 64 de biți (8 octeți); în funcțiile pe 64 de biți, este de obicei o valoare de 128 de biți (16 octeți). Datele sunt completate astfel încât să se adauge un singur bit de 1 și apoi câte 0 biți sunt necesari pentru a lăsa exact spațiul pentru lungime. Deci, pentru MD5 sau SHA-256, un mesaj de 55 de octeți va avea un 1 bit, șapte 0 biți și apoi lungimea. Cu toate acestea, un mesaj de 56 de octeți va avea un 1 bit, șaizeci și trei 0 biți pentru a completa blocul, apoi alți patru sute patruzeci și opt de biți 0 pentru a completa blocul următor și apoi lungimea, deoarece nu există spațiu atât pentru 1 bit cât și pentru lungimea blocului curent. Algoritmii hash diferiți se adaugă diferit; SHA-3 și BLAKE2b folosesc ambele tehnici diferite decât aceasta.

În ceea ce privește rundele, există trei tipuri diferite de runde despre care vorbim de obicei atunci când procesăm un bloc într-o funcție de compresie. Există runde, cum ar fi în MD5 și BLAKE2b, în ​​care procesăm fiecare cuvânt de mesaj o dată pe rundă; MD5 are patru astfel de runde, iar BLAKE2b are 12. Există, de asemenea, algoritmi, cum ar fi SHA-256 și SHA-512, în care cuvintele mesaj din bloc sunt extinse într-o secvență de mai multe cuvinte (64 și, respectiv, 80) și fiecare rundă. se ocupă de unul dintre aceste cuvinte extinse. În SHA-3, operăm asupra întregii stări cu datele deja XOR introduse și fiecare rundă operează pe întreaga stare.

Ca aspect practic, aproape nimeni nu folosește mesaje care nu sunt un număr integral de octeți, deoarece tind să fie incomod de a lucra cu hardware-ul real. Dar pentru MD5 sau SHA-256, un mesaj de 100 de biți ar fi umplut cu un bit de 1, trei sute patruzeci și șapte de biți 0 (pentru a face 448 de biți) și apoi lungimea de 64 de biți ar fi atașată pentru a umple blocul final ( 512 biți sau 64 de biți).

În timp ce ați întrebat despre MD5 în special, am tratat, de asemenea, câțiva alți algoritmi aici, deoarece algoritmii diferă în multe moduri importante și MD5 nu ar mai trebui utilizat, așa că modul în care funcționează algoritmii mai siguri va fi diferit.

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.