Po pierwsze, istnieje różnica między haszowaniem a szyfrowanie . SHA256 to funkcja mieszająca, a nie funkcja szyfrowania.
Po drugie, ponieważ SHA256 nie jest funkcją szyfrowania, nie można jej odszyfrować. Masz na myśli prawdopodobnie odwrócenie tego. W takim przypadku SHA256 nie może zostać odwrócona, ponieważ jest to „jest funkcją jednokierunkową . Odwrócenie go spowodowałoby atak przedobrazowy , który nie spełnia założeń projektowych.
Po trzecie, weryfikacja SHA256 polega na ponownym obliczeniu i porównaniu wyniku z aktualnym wynikiem. Jeśli oba wyniki są zgodne, weryfikacja zakończy się pomyślnie. Podstawą teoretyczną jest to, że trudno jest znaleźć inne dane wejściowe, które dają taki sam wynik mieszania. Naruszenie tego powoduje atak na drugi rzut oka , który nie spełnia założeń projektowych.
Wreszcie podpisy cyfrowe to nie tylko kombinacje krzyżyka i klucza . Jednak funkcja skrótu może poprawić jego bezpieczeństwo.
SHA256 nie jest funkcją szyfrowania, ale funkcja skrótu . Podstawowa różnica polega na tym, że chociaż szyfrowanie jest funkcją dwukierunkową (biorąc pod uwagę klucz), hash jest tylko funkcją jednokierunkową: biorąc pod uwagę pewne dane, możesz obliczyć hash, biorąc pod uwagę hash, trudno jest (i matematycznie niemożliwe) odzyskać dane .
Powiedziałem, że matematycznie niemożliwe jest znalezienie danych z skrótu, ponieważ zazwyczaj funkcja skrótu ma małą domenę kodową (na przykład 256-bitową domenę dla SHA256), ale dużą domenę (możesz zaszyfrować dowolny ciąg), więc wystąpią kolizje: różne ciągi z tym samym hashem.
Z tego powodu, jeśli twoje hasło jest zapisane w postaci zaszyfrowanej, istnieje nieskończone hasło (ale może być bardzo długie), które odblokowuje twoje konto.
Dobra wiadomość jest taka, że kolizje są rzadkie, gdy używasz kryptograficznych funkcji skrótu , więc Twoje konto jest nadal bezpieczne.
Odpowiadając na pierwszą część pytania, weryfikacja danych jest łatwa: jeśli Alicja wyśle do Boba plik z sumą kontrolną skrótu, Bob może z łatwością obliczyć wartość skrótu t plik, który otrzymał i porównaj go z hashem otrzymanym od Alicji. Zwykle jest to wystarczające, aby dowiedzieć się, czy wystąpił jakikolwiek błąd podczas transmisji (więc plik jest uszkodzony), ale nie wystarcza, jeśli transmisja została zmieniona przez jakiegoś napastnika, który również zmienił skrót. Dlatego Alicja i Bob potrzebują bezpieczny kanał do transmisji hasha (na przykład strona https z ważnym certyfikatem) lub muszą w jakiś sposób podpisać hash.
Przechodzimy więc do odpowiedzi na twoje drugie pytanie: Alicja może podpisać hash używając swojego klucza prywatnego przed wysłaniem go do Boba, w ten sposób atakujący nie może manipulować nim bez unieważniania podpisu.
Teraz możesz zapytać, dlaczego Alicja podpisuje się tylko swoim kluczem RSA (lub podobnym) hasz, a nie cały komunikat, dzieje się tak, ponieważ obliczanie RSA jest wolniejsze niż obliczanie skrótu (więc musi wykonać powolną czynność tylko na małym łańcuchu: haszu). Dotyczyło to zwłaszcza sytuacji, gdy utworzono PGP, a komputery działały wolniej.