Co to jest funkcja haszująca?
Funkcja haszująca (funkcja skrótu, ang. hash function) to algorytm, który przekształca dane wejściowe dowolnej długości na wynik o stałej długości, nazywany skrótem, haszem lub digestem.
Najważniejsza cecha: funkcja haszująca jest jednokierunkowa. Oznacza to, że z hasza nie powinno dać się odtworzyć danych wejściowych.
Przykład działania
Dla tekstu:
Egzamin INF.04
funkcja haszująca wygeneruje ciąg znaków, np. w postaci szesnastkowej. Nawet mała zmiana danych wejściowych powinna dać zupełnie inny wynik.
Zastosowania funkcji haszujących
Funkcje haszujące stosuje się m.in. do:
- przechowywania skrótów haseł zamiast jawnych haseł,
- sprawdzania integralności plików,
- podpisów cyfrowych,
- identyfikowania danych,
- struktur danych, np. tablic mieszających.
Funkcja haszująca a szyfrowanie
Funkcji haszującej nie należy mylić z szyfrowaniem.
- Szyfrowanie jest odwracalne po użyciu odpowiedniego klucza.
- Haszowanie jest jednokierunkowe i nie służy do odzyskiwania oryginalnych danych.
Przykładowo AES i DES to algorytmy szyfrowania symetrycznego, RSA to algorytm kryptografii asymetrycznej, a MD5 to funkcja haszująca.
Ważne na egzaminie
Jeśli pytanie dotyczy „jednokierunkowej funkcji skrótu” lub „funkcji haszującej”, należy szukać algorytmów takich jak MD5, SHA-1, SHA-256, a nie algorytmów szyfrowania.