Czym są haszy?

Hasze to formuły matematyczne, które pobierają ciąg danych o zmiennej długości, zwykle w postaci tekstu, i konwertują go na krótsze wartości liczbowe o stałej długości. Hasze są często używane w komputerowych bazach danych, aby wyszukiwanie było szybsze i bardziej efektywne. Są one również używane w szyfrowaniu, aby zapewnić, że hasła nie zostaną naruszone i między innymi do uwierzytelniania podpisów cyfrowych. Skróty są również nazywane funkcjami skrótu i ​​mogą być również uważane za algorytmy.

Hasze odgrywają dużą rolę w ułatwianiu przeszukiwania baz danych. W bazie danych składającej się z nazwisk, na przykład, jeśli użytkownik wyszukuje hasło „Jan Kowalski”, komputer musiałby dopasować wszystkie znaki wyszukiwania do znaków każdego wpisu w bazie danych. Każdy znak w nazwie miałby 26 różnych możliwości — litery alfabetu angielskiego — podczas gdy zmienna długość wpisów również spowolniłaby wyszukiwanie.

Natomiast zastosowanie funkcji skrótu znacznie ułatwiłoby życie komputera. Przekształcenie każdego ciągu tekstowego w serię liczb uprościłoby wyszukiwanie, ponieważ komputer miałby tylko dziesięć możliwości sprawdzenia każdego znaku: cyfry od „0” do „9”. Stała długość serii liczb pomaga również komputerowi wydajniej wykonywać swoją pracę.

W bazie danych z zastosowaną funkcją skrótu wszystkie wpisy mają odpowiedni, niepowtarzalny numer. Nazywa się to kluczem mieszającym. W tym przypadku, gdy przeprowadzasz wyszukiwanie, komputer najpierw stosuje funkcję skrótu do wpisanych danych wejściowych, na przykład „Jan Kowalski”. Daje to wartość liczbową, na przykład „456789”. Komputer może wtedy szybko dopasować ten wynik do klucza skrótu odpowiadającego prawidłowemu wpisowi.

Skróty działają również jako podpisy cyfrowe. Na przykład nadawca Robert chce wysłać dokument do kogoś, a odbiorca Mary chce się upewnić, że dokument nie został naruszony podczas podróży. Nadawca, Robert, musi tylko uruchomić dokument za pomocą funkcji skrótu, co daje w wyniku wartość liczbową. Robert następnie szyfruje klucz skrótu i ​​wysyła dokument wraz z zaszyfrowanym kluczem.

Mary odbiera oba przedmioty i odszyfrowuje klucz skrótu. Teraz widzi wartość liczbową wynikającą z dokumentu przed jego wysłaniem. Aby sprawdzić, czy dokument w jej rękach jest dokładnie tym samym dokumentem, uruchamia go przez funkcję skrótu na swoim komputerze. Na koniec porównuje oba klucze. Jeśli są takie same, oznacza to, że dokument nie został zmieniony w drodze do odbiorcy.

Istnieje wiele różnych funkcji skrótu, z których każda ma własne formuły matematyczne. Aby funkcja skrótu działała, musi minimalizować wszelkie kolizje, które występują, gdy dwa wpisy w bazie danych mają ten sam klucz skrótu. Funkcje skrótu również muszą być jednokierunkowe. Oznacza to, że możesz utworzyć klucz z wpisu lub dokumentu w bazie danych, ale nie na odwrót. Innymi słowy, nie można „odwrócić” oryginalnego dokumentu na podstawie jego klucza mieszającego.