Jaka jest różnica między szyfrowaniem SHA i AES? [Zamknięte]

Odpowiedzi:

120

SHA to nie szyfrowanie, to jednokierunkowa funkcja skrótu. AES (Advanced_Encryption_Standard) to symetryczny standard szyfrowania.

Odniesienie AES

skaffman
źródło
86

SHA to rodzina „Secure Hash Algorithms”, która została opracowana przez National Security Agency. Obecnie istnieje konkurencja między dziesiątkami opcji, kto zostanie SHA-3 , nowym algorytmem mieszania na rok 2012+.

Używasz funkcji SHA do pobrania dużego dokumentu i obliczenia „skrótu” (zwanego także „hashem”) danych wejściowych. Ważne jest, aby zdać sobie sprawę, że jest to proces jednokierunkowy. Nie możesz wziąć podsumowania i odzyskać oryginalnego dokumentu.

AES , Advanced Encryption Standard to symetryczny algorytm blokowy. Oznacza to, że zajmuje 16-bajtowe bloki i szyfruje je. Jest „symetryczny”, ponieważ klucz umożliwia zarówno szyfrowanie, jak i odszyfrowywanie.

AKTUALIZACJA: Keccak został zwycięzcą SHA-3 2 października 2012 r.

Jeff Moser
źródło
64

SHA i AES służą różnym celom. SHA służy do generowania skrótu danych, a AES służy do szyfrowania danych.

Oto przykład, kiedy skrót SHA jest dla Ciebie przydatny. Załóżmy, że chcesz pobrać obraz ISO DVD z jakiejś dystrybucji Linuksa. To jest duży plik i czasami coś idzie nie tak - więc chcesz sprawdzić, czy to, co pobrałeś, jest poprawne. To, co byś zrobił, to udać się do zaufanego źródła (takiego jak oficjalny punkt pobierania dystrybucji) i zazwyczaj mają one skrót SHA dla dostępnego obrazu ISO. Możesz teraz wygenerować porównywalny skrót SHA (przy użyciu dowolnej liczby otwartych narzędzi) dla pobranych danych. Możesz teraz porównać dwa skróty, aby upewnić się, że pasują - co potwierdzi, że pobrany obraz jest poprawny. Jest to szczególnie ważne, jeśli otrzymujesz obraz ISO z niezaufanego źródła (takiego jak torrent) lub jeśli masz problemy z używaniem ISO i chcesz sprawdzić, czy obraz jest uszkodzony.

Jak widać w tym przypadku, SHA został użyty do sprawdzenia danych, które nie zostały uszkodzone. Masz pełne prawo wglądu do danych w ISO.

Z drugiej strony AES służy do szyfrowania danych lub zapobiegania przeglądaniu tych danych przez ludzi, którzy znają jakiś sekret.

AES używa klucza współdzielonego, co oznacza, że ​​ten sam klucz (lub powiązany klucz) jest używany do szyfrowania danych, który jest używany do odszyfrowania danych. Na przykład, jeśli zaszyfrowałem wiadomość e-mail za pomocą AES i wysłałem tę wiadomość e-mail do Ciebie, oboje musielibyśmy znać wspólny klucz używany do szyfrowania i odszyfrowywania wiadomości. Różni się to od algorytmów używających klucza publicznego, takiego jak PGP lub SSL.

Jeśli chcesz je połączyć, możesz zaszyfrować wiadomość za pomocą AES, a następnie wysłać wraz z hashem SHA1 niezaszyfrowanej wiadomości, aby po odszyfrowaniu wiadomości byli w stanie zweryfikować dane. To jest nieco wymyślony przykład.

Jeśli chcesz dowiedzieć się więcej o tych wyszukiwanych hasłach Wikipedii (poza AES i SHA), które chcesz wypróbować, to:

Algorytm klucza symetrycznego (dla AES) Kryptograficzna funkcja skrótu (dla SHA) Kryptografia klucza publicznego (dla PGP i SSL)

Robert Horvick
źródło
1
Zrozumiesz, ile lat ma ta odpowiedź, gdy zobaczysz słowo DVD ...
Klesun
9

SHA to funkcja skrótu, a AES to standard szyfrowania. Biorąc pod uwagę dane wejściowe, możesz użyć SHA do wygenerowania wyniku, którego jest bardzo mało prawdopodobne, aby został wygenerowany z innych danych wejściowych. Ponadto niektóre informacje są tracone podczas stosowania funkcji, więc nawet gdybyś wiedział, jak utworzyć dane wejściowe, które dają takie same dane wyjściowe, prawdopodobnie nie byłyby to te same dane wejściowe, które zostały użyte w pierwszej kolejności. Z drugiej strony AES ma chronić przed ujawnieniem stronom trzecim wszelkich danych przesyłanych między dwiema stronami korzystającymi z tego samego klucza szyfrowania. Oznacza to, że znając klucz szyfrujący i dane wyjściowe (i IV ...) można bezproblemowo wrócić do pierwotnego wejścia. Proszę zauważyć, że SHA nie wymaga niczego poza danymi wejściowymi do zastosowania, podczas gdy AES wymaga co najmniej 3 thins: tego, co szyfrujesz / odszyfrowujesz, klucza szyfrowania i wektora inicjalizacji (IV).

em70
źródło
7

SHA to skrót od Secure Hash Algorithm, a AES to Advanced Encryption Standard. Więc SHA to zestaw algorytmów haszujących. Z drugiej strony AES jest szyfrem używanym do szyfrowania. Algorytmy SHA (SHA-1, SHA-256 itd.) Przyjmą dane wejściowe i utworzą skrót (skrót), jest to zwykle używane w procesie podpisywania cyfrowego (tworzy skrót kilku bajtów i podpisuje kluczem prywatnym) .

François P.
źródło
3

SHA nie wymaga niczego poza danymi wejściowymi do zastosowania, podczas gdy AES wymaga co najmniej 3 rzeczy - tego, co szyfrujesz / odszyfrowujesz, klucza szyfrowania i wektora inicjalizacji.

chen
źródło
1
[Zostało to oznaczone jako „spóźniona odpowiedź na stare pytanie, udzielona przez nowego użytkownika. Mój komentarz dotyczy tego kontekstu]. Nie wydaje się, aby dodawał żadnych informacji na temat tego, co zostało już podane w innych odpowiedziach na to pytanie.
danfuzz
To jest złe. Nie potrzebujesz wektora inicjalizacyjnego (IV) do korzystania z AES. Niektóre tryby działania dla AES wymagają IV (który jest zupełnie inny).
Hilder Vitor Lima Pereira