Skip to main content

Co to jest funkcja kryptograficznego skrótu?

Algorytmy haszujące (funkcje skrótu) - Wstęp do problematyki kryptografii (część 2) (Czerwiec 2026)

Algorytmy haszujące (funkcje skrótu) - Wstęp do problematyki kryptografii (część 2) (Czerwiec 2026)
Anonim

Kryptograficzna funkcja skrótu to algorytm, który można uruchomić na danych, takich jak pojedynczy plik lub hasło, w celu uzyskania wartości zwanej sumą kontrolną.

Głównym zastosowaniem kryptograficznej funkcji mieszającej jest weryfikacja autentyczności danych. Można założyć, że dwa pliki są identyczne tylko wtedy, gdy sumy kontrolne wygenerowane z każdego pliku, używając tej samej funkcji kryptograficznego skrótu, są identyczne.

Niektóre często używane kryptograficzne funkcje mieszające to MD5 i SHA-1, chociaż istnieje również wiele innych.

Kryptograficzne funkcje mieszające są często określane jako "funkcje mieszania", ale nie jest to technicznie poprawne. Funkcja skrótu jest ogólnym terminem obejmującym kryptograficzne funkcje mieszające wraz z innymi rodzajami algorytmów, takimi jak cykliczne kontrole nadmiarowości.

Kryptograficzne funkcje skrótu: przypadek użycia

Załóżmy, że pobrałeś najnowszą wersję przeglądarki Firefox. Z jakiegoś powodu trzeba było pobrać go z witryny innej niż Mozilla. Ponieważ nie jest hostowana w witrynie, której nauczyłeś się ufać, chcesz się upewnić, że pobrany plik instalacyjny jest dokładnie taki sam, jak ten, który oferuje Mozilla.

Za pomocą kalkulatora sumy kontrolnej oblicza się sumę kontrolną za pomocą określonej kryptograficznej funkcji mieszającej, takiej jak SHA-2, a następnie porównuje się ją z tą opublikowaną w witrynie Mozilli. Jeśli są one równe, możesz być w miarę pewny, że pobrana wersja jest tą, którą zamierzała mieć Mozilla.

Czy funkcje kryptograficznego skrótu mogą zostać odwrócone?

Kryptograficzne funkcje haszowania mają na celu zapobieganie możliwości odwracania sum kontrolnych, które tworzą z powrotem do oryginalnych tekstów. Mimo że są one praktycznie niemożliwe do odwrócenia, nie mają 100% gwarancji na ochronę danych.

Hakerzy mogą używać tabliczki tęczowej do obliczenia zwykłego tekstu sumy kontrolnej.

Tęczowe tabele to słowniki, które podają tysiące, miliony, a nawet miliardy sum kontrolnych wraz z odpowiadającą im wartością zwykłego tekstu.

Chociaż nie jest to technicznie odwrotne algorytm kryptograficznego skrótu, może równie dobrze być, biorąc pod uwagę, że jest to tak proste do zrobienia. W rzeczywistości, ponieważ żadna tablica tęczy nie może wyświetlić każdej możliwej sumy kontrolnej, są one zazwyczaj pomocne tylko w przypadku prostych fraz, takich jak słabe hasła.

Oto uproszczona wersja tabeli tęczowej, aby pokazać, jak można by pracować, używając funkcji kryptograficznej SHA-1:

Prosty tekstSuma kontrolna SHA-1
123458cb2237d0679ca88db6464eac60da96345513964
hasło1e38ad214943daad1d64c102faec29de4afe9da3d
kocham mojego psaa25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Haker musi wiedzieć, który algorytm kryptograficznego skrótu został użyty do wygenerowania sum kontrolnych w celu ustalenia wartości.

Aby zapewnić dodatkową ochronę, niektóre witryny internetowe przechowujące hasła użytkowników wykonują dodatkowe funkcje algorytmu kryptograficznego po wygenerowaniu wartości, ale przed jej zapisaniem. Ten proces wytwarza nową wartość, którą rozumie tylko serwer sieciowy i która nie jest zgodna z oryginalną sumą kontrolną.

Na przykład, po wprowadzeniu hasła i wygenerowaniu sumy kontrolnej, może on zostać podzielony na kilka części i zmieniony przed zapisaniem w bazie danych haseł lub niektóre znaki mogą zostać zamienione z innymi. Podczas próby uwierzytelnienia przy następnym logowaniu się użytkownika serwer internetowy odwraca tę dodatkową funkcję, a oryginalna suma kontrolna jest generowana ponownie, aby sprawdzić, czy hasło użytkownika jest poprawne.

Wykonanie tych czynności ogranicza przydatność hackowania, w którym kradzione są wszystkie sumy kontrolne. Chodzi o to, aby wykonać funkcję, która jest nieznana, więc jeśli haker zna kryptograficzny algorytm mieszający, ale nie niestandardowy, to znajomość sum kontrolnych hasła nie jest pomocna.

Hasła i funkcje kryptograficznego skrótu

Baza danych zapisuje hasła użytkowników w sposób podobny do tabeli tęczowej. Po wprowadzeniu hasła suma kontrolna jest generowana i porównywana z tą zapisaną z Twoją nazwą użytkownika. Otrzymasz wtedy dostęp, jeśli obie są identyczne.

Biorąc pod uwagę, że kryptograficzna funkcja mieszająca generuje nieodwracalną sumę kontrolną, bezpieczne jest tworzenie hasła tak prostego, jak 12345, zamiast 12@34$5, po prostu dlatego, że same sumy kontrolne nie mogą być zrozumiane? Nie, i oto dlaczego.

Te dwa hasła są niemożliwe do odczytania po prostu patrząc na sumy kontrolne:

MD5 dla 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Na pierwszy rzut oka możesz pomyśleć, że używanie tych haseł jest w porządku. Dzieje się tak, gdy osoba atakująca próbowała ustalić swoje hasło, zgadując sumę kontrolną MD5, której nikt nie robi, ale nie jest to prawdą, jeśli wykonywany jest brutalny atak lub słownikowy atak, co jest powszechną taktyką.

Atak brute force ma miejsce, gdy podczas zgadywania hasła podejmowane są wielokrotne przypadkowe ukłucia. W takim przypadku łatwo byłoby zgadnąć 12345, ale dość trudno jest przypadkowo wymyślić drugą. Atak słownikowy jest podobny do tego, w którym osoba atakująca może wypróbować każde słowo, cyfrę lub frazę z listy wspólnych (i niezbyt popularnych) haseł oraz12345 jest jednym z tych powszechnych haseł.

Mimo że kryptograficzne funkcje mieszające generują trudne do niemożliwego do odgadnięcia sumy kontrolne, nadal powinieneś używać złożonego hasła do wszystkich kont użytkowników online i lokalnych.

Więcej informacji na temat funkcji kryptograficznych skrótu

Może się wydawać, że kryptograficzne funkcje mieszające są związane z szyfrowaniem, ale oba działają na różne sposoby.

Szyfrowanie to proces dwukierunkowy, w którym coś jest zaszyfrowane, aby stać się nieczytelne, a następnie odszyfrowane później, aby można było z niego normalnie korzystać. Możesz szyfrować przechowywane pliki, aby każdy, kto do nich wchodzi, nie był w stanie ich użyć lub użyć szyfrowania transferu plików do szyfrowania plików przesyłanych przez sieć, takich jak te, które przesyłasz lub pobierasz online.

Kryptograficzne funkcje mieszające działają inaczej, ponieważ sumy kontrolne nie mają być odwracane za pomocą specjalnego hasła dehashowania. Jedynym celem kryptograficznych funkcji skrótu jest porównywanie dwóch elementów danych, na przykład podczas pobierania plików, przechowywania haseł i pobierania danych z bazy danych.

Funkcja kryptograficznego skrótu może generować taką samą sumę kontrolną dla różnych elementów danych. Kiedy tak się dzieje, nazywa się to kolizją, co jest ogromnym problemem, biorąc pod uwagę, że cały punkt kryptograficznej funkcji mieszającej polega na tworzeniu niepowtarzalnych sum kontrolnych dla każdego wprowadzanego do niej danych.

Kolizje mogą wystąpić, ponieważ każda kryptograficzna funkcja mieszająca generuje wartość o stałej długości niezależnie od danych wejściowych. Na przykład kryptograficzna funkcja skrótu MD5 generuje 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 i e10adc3949ba59abbe56e057f20f883e dla trzech całkowicie różnych bloków danych.

Pierwsza suma kontrolna pochodzi z 12345. Drugi został wygenerowany z ponad 700 liter i cyfr, a trzeci pochodzi z 123456.

Wszystkie trzy wejścia mają różną długość, ale wyniki mają zawsze tylko 32 znaki od czasu użycia sumy kontrolnej MD5.

Nie ma ograniczeń co do liczby sum kontrolnych, które można utworzyć, ponieważ każda niewielka zmiana w wejściu ma dać zupełnie inną sumę kontrolną. Ponieważ istnieje ograniczenie liczby sum kontrolnych, które może wytworzyć jedna kryptograficzna funkcja skrótu, zawsze istnieje możliwość wystąpienia kolizji.

Właśnie dlatego zostały utworzone inne kryptograficzne funkcje mieszające. Podczas gdy MD5 generuje 32-znakową wartość, SHA-1 generuje 40 znaków, a SHA-2 (512) generuje 128. Im większa jest liczba znaków, które suma kontrolna ma, tym mniej prawdopodobne jest wystąpienie kolizji.