Pytanie odnośnie algorytmu MD5 (dodawanie długości komunikatu)


(Gdaniel96) #1

Witam. Jak już napisałem w tytule mam mały kłopot ze zrozumieniem w jaki sposób do uzupełnionego komunikatu (do długości równej 448 mod 512) mamy dodać długość początkowego komunikatu. Po przejrzeniu paru stron opisujących dany algorytm miałem mały mętlik w głowie, na niektórych pisano, że kolejność bitów należy odwracać a na innych, że nie. Ostatecznie znalazłem przykładową implementacje algorytmu md5 i po lekkiej modyfikacji otrzymałem, że np dla komunikatu ,,forum" po odpowiednim uzupełnieniu dany komunikat powinien mieć postać:

01110101 01110010 01101111 01100110

00000000 00000000 10000000 01101101

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00101000

00000000 00000000 00000000 00000000

1 wers (32 bity) reprezentują odpowiednio ,,urof" a drugi na końcu ,,m". Stało się dla mnie jasne, że nie odwracamy kolejności żadnych bitów, tylko przetwarzamy to podobnie jak wyżej. Problem mam jedynie ze zrozumieniem skąd w przedostatniej linijce jest: 00101000. Przecież długość komunikatu ,,forum" to 5 = 10100000. Mógłby mi ktoś to wyjaśnić?

 

Pozdrawiam.

 

edit// Posprawdzałem wyniki dla komunikatów o różnej długości i wychodzi na to, że kodujemy długość danej wiadomości w bitach, tj 8*długość_komunikatu, stąd to przesunięcie o 3 miejsca, dobrze myślę?