Część lub nawet cały tekst dokumentu jest przekazywany do urządzenia kryptograficznego , generatora skrótu, który jest zagruntowany tajnym kluczem. To urządzenie następnie pobiera podany tekst i konwertuje go na wartość skrótu, która jest zaszyfrowanym podsumowaniem dokumentu. Algorytm używany do haszowania dokumentu został zaprojektowany tak, aby w większości przypadków zmiana oryginału powodowała zmianę funkcji haszującej. Możemy to zrobić na wiele sposobów. Jednym prostym podejściem może być policzenie całkowitej liczby znaków w dokumencie, zaszyfrowanie tej wartości w jakiś sposób i użycie tej zaszyfrowanej wartości jako funkcji skrótu. Większość zmian w dokumencie spowodowałaby różnicę między oryginalną funkcją skrótu a funkcją skrótu obliczoną dla nowego dokumentu. Oczywiście jest to strasznie niepewny przykład; gdyby ktoś dowiedział się, że używasz tego algorytmu mieszającego, może łatwo wygenerować zmiany w dokumencie, które go oszukają. Praktyczne algorytmy haszujące muszą spełniać szereg bardziej rygorystycznych warunków. Niech tekst, który chcemy haszować, będzie x. Niech operacja haszowania będzie h, a wynikiem haszowania x będzie h (x). Zatem dobra funkcja skrótu, h, to taka, która ma następujące właściwości:
1 Obliczalność: powinno być możliwe obliczenie h (x).
2 Opór jednokierunkowy: przy danej wartości skrótu y, generalnie nie można znaleźć wartości x takiej, że h (x) = y.
3 Słaba odporność na zderzenia: przy danych x i h (x) nie można znaleźć x *, gdzie x * nie jest równe x, takie że h (x *) = h (x).
4 Silna odporność na kolizje: niemożliwe jest znalezienie różnych danych wejściowych x i x *, gdzie h (x *) = h (x).
5 Kompresja: niezależnie od długości x, h (x) powinno mieć stałą długość, n.
Warunki 1–4 sugerują, że funkcja skrótu jest jednokierunkowa, ponieważ łatwiej jest ją utworzyć niż wrócić do oryginalnego tekstu. (Zwróć uwagę na podobieństwo do systemów klucza publicznego.) Warunki sugerują również, że funkcja skrótu ma tendencję do utrzymywania „dobrej separacji” między różnymi tekstami: chociaż ogólnie mapuje je na mniejszą liczbę bitów niż w ich oryginalnej formie, stara się znaleźć jak najbardziej odmienne rozwiązanie dla każdego z nich. Załóżmy, że myślimy o każdym bicie oryginalnej wiadomości jako zapisanym w innym „wymiarze” w przestrzeni wiadomości. Wówczas wiadomość o długości M bitów można uznać za punkt w przestrzeni wielowymiarowej. (Na przykład trzybitowa wiadomość ‘1,21,1’ ma współrzędne {1,21,1} w trzech przestrzeniach). wymiarowość n). Dobrze zaprojektowana funkcja mieszająca będzie miała tendencję do rozmieszczania odpowiedzi dla zestawu wszystkich wiadomości, aby były jak najdalej od siebie w ograniczonej przestrzeni wymiarowej. Ma również tę właściwość, że przyjmuje dwie wiadomości, które są bardzo podobne i tworzy wartości skrótów, które na ogół nie są szczególnie blisko siebie, co utrudnia pracę wstecz, a także unika możliwości przypadkowego wygenerowania wykonalnych, podobnych wiadomości, gdy podjęto próbę fałszywego dekodowania. Funkcje skrótu można generować w sposób podobny do metod szyfrowania. Jedna metoda, dyskretna potęga, jest odwrotnością opisanego wcześniej problemu dyskretnego logarytmu. Jest to jednak dość intensywne obliczeniowo i czasami stosuje się inne, szybsze metody. Przykładami są bezpieczny algorytm skrótu (SHA-1), który jest używany jako część amerykańskiego standardu Digital Signature Standard oraz standardu MD5, który jest bardzo powszechny w przypadku aplikacji internetowych. Aby użyć funkcji skrótu do ochrony integralności zestawu danych, nadawca musi udostępnić bezpieczny klucz prywatny odbiorcy. Można to łatwo zrobić, jeśli odbiorca najpierw opublikował klucz publiczny, który może być następnie użyty przez nadawcę do zaszyfrowania uwierzytelniania klucza prywatnego. Oczywiście, oprócz potwierdzenia, że nie doszło do nadużyć w imieniu obu stron umowy, funkcja skrótu może być wykorzystana do ochrony integralności dokumentu „w tranzycie”, np. w celu ochrony przed modyfikacją umowy przez osobę trzecią, być może w celu „oddrobnienia” wartości dodatkowej z transakcji finansowej.