• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

algorytm kryptograficzny MD5 - zdjęcie

Object Storage Arubacloud
0 głosów
580 wizyt
pytanie zadane 15 czerwca 2017 w Bezpieczeństwo, hacking przez Kekk Początkujący (450 p.)

Witam ostatnio wędrowałem po wikipedii czytając ciekawe artykuły i dotarłem do tego miejsca: https://pl.wikipedia.org/wiki/MD5 m no i wszystko fajnie, ale czy ktoś mógłby mi wytłumaczyć, jak odczytać to zdjęcie, czym ono jest i ogólnie polecić jakieś artykuły/literaturę o szyfrowaniu danych?

2 odpowiedzi

+4 głosów
odpowiedź 22 czerwca 2017 przez Gynvael Coldwind Nałogowiec (27,530 p.)
wybrane 22 czerwca 2017 przez Kekk
 
Najlepsza

Tomasz Sochacki dał Ci bardzo fajnego linka; i tak, jest tam wyjaśniony ten rysunek. Konkretniej, na tym obrazku jest narysowany pojedynczy krok MD5 (gdzie tych kroków jest 16 w każdy z czterech rund, przy czym każda runda ma inną funkcję; na rysunku jest użyta funkcja F, ale są też zdefiniowane funkcje G, H oraz I). Co do samych oznaczeń na rysunku:

  • Czerwony kwadrat z plusem w środku to po prostu dodawanie (modulo 2**32).
  • Żółte <<<s to obrót bitowy (dla 32-bitowej zmiennej); dla różnych kroków s ma różną wartość.
  • Mi to kolejne 32-bitowe fragmenty wiadomości, z której liczone jest MD5.
  • Ki to specjalnie dobrane stałe charakterystyczne dla MD5, które de facto są wyliczone funkcją sinus.
  • Sama funkcja F(B,C,D) = (B & C) | (~B & D) (użyłem standardowych oznaczeń operacji logicznych na bitach z języków programowania).

Czyli, w zasadzie rysunek przedstawia coś takiego:

A = ((A + F(B, C, D) + Mi + Ki) <<< s) + B  (wszystko modulo 2**32)

W linku od Tomasza ten rysunek to funkcja FF (góra strony czwartej, która z jakiegoś powodu jest podpisana jako strona 14). Na dole tejże strony widać użycie funkcji FF, apotem GG, HH, etc w kolejnych rundach.

Przy czym tak szczerze, to domyślam się, że to co napisałem i tak Ci za dużo nie powie. Ale jeśli chodzi o kryptografię, to trochę nie ma rady - trzeba przy tym usiąść i to rozgryźć samemu, i przemyśleć :)

 

Ad drugie pytanie, czyli materiały:

Przede wszystkim chciałbym polecić kurs na Coursera "Cryptography 1" ze Stanfordu: https://www.coursera.org/learn/crypto

Co do książek, to w zasadzie wszystkie Bruce'a Schneier'a: https://pl.wikipedia.org/wiki/Bruce_Schneier#Publikacje_z_zakresu_kryptografii

Na półce mam jeszcze kilka, ale nie wiem ile z nich jest faktycznie sensowne, więc może poprzestanę na powyższych.

Natomiast dodam, że na turniejach CTF pojawia się sporo zadań z kryptografii, więc czytając artykuły o tym jak dane zadania rozwiązać można się sporo nauczyć. Niezła lista jest oczywiście na CTFTime.org - https://ctftime.org/writeups?tags=crypto&hidden-tags= - ale oprócz tego w naszym rodzimym magazynie Programista w sekcji "Strefa CTF" też pojawiają się od czasu do czasu rozwiązania zadań kryptograficznych.

Przy czym, przydało by się jakiegoś *dobrego* kryptologa o jakieś materiały.

+4 głosów
odpowiedź 15 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)
komentarz 15 czerwca 2017 przez Kekk Początkujący (450 p.)
Na [pierwszy rzut oka bardzo ciekawy artykuł, ale czy jest tam wyjaśnione o co chodzi z tym zdjęciem?
komentarz 15 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)
Jest opisany algorytm szyfrujący i kompletna implementacja, tu akurat w C++ ale w necie bez problemu znajdziesz również w innych, np. biblioteka crypto-js dla JavaScript.

Wiele języków ma swoje implementacje wbudowane, np. w PHP jest funkcja base64_encode i base64_decode ale niektóre dodatki, jak iAuth do CodeIgnitera mają własną implementację kodowania base64. Zasady są zawsze te same, ale implementacje różnią się wydajnością.
komentarz 21 czerwca 2017 przez Gynvael Coldwind Nałogowiec (27,530 p.)
Uhm, czuję potrzebę sprostować kilka rzeczy.

Po pierwsze, MD5 nie jest algorytmem szyfrującym, tylko jednokierunkową funkcją skrótu (ew. sumą kontrolną, hashem - to nie do końca to samo, ale potocznie używa się tego zamiennie). Tj. nic co się "zaszyfruje" MD5 nie da się "odszyfrować". Funkcje skrótu i algorytmy szyfrujące mają zupełnie różne zastosowania.

Po drugie, base64 również nie jest algorytmem szyfrującym, jest kodowaniem. Różnica jest taka, że szyfrowanie ma na celu utrudnienie atakującemu poznanie tajnych danych, a kodowanie to po prostu forma zapisu, która jest jawna i nie ma na celu nic atakującemu utrudniać.
komentarz 21 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)
Fakt, masz rację. Szczerze mówiąc nie mam zbyt dużego doświadczenia w kryptografii, bawiłem się kiedyś tworzeniem funkcji kodującej i dekodującej base64, ascii85 itp. ale nie zagłębiałem się bardziej w tematykę (było to bardziej w formie nauki).

A tak na marginesie to znasz może jakąś dobrą literaturę o kryptografii? Nie chodzi mi o gotowe przykłady w jakimś języku programowania tylko bardziej o sam opis zasad, algorytmów itp. (a ich ewentualna implementacja to już najmniejszy problem).
komentarz 21 czerwca 2017 przez Gynvael Coldwind Nałogowiec (27,530 p.)
Wrzucę kilka tytułów w odpowiedź za chwilę, tylko jeszcze ten rysunek kończę rozkminiać ;)

Podobne pytania

+1 głos
7 odpowiedzi 1,549 wizyt
0 głosów
2 odpowiedzi 188 wizyt
0 głosów
1 odpowiedź 392 wizyt
pytanie zadane 11 grudnia 2022 w C i C++ przez polandonion Mądrala (6,970 p.)

92,536 zapytań

141,377 odpowiedzi

319,452 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...