szyfrowanie kodowanie hashowanie

Szyfrowanie, kodowanie, hashowanie

Dzisiejszym tekstem rozpoczynamy cykl wpisów poświęconych kryptografii. W najbliższych dniach postaramy się trochę przybliżyć ten dosyć trudny temat.

Pojęcia

Na początek wyjaśnijmy sobie podstawowe pojęcia, gdyż już w tym zakresie często dochodzi do nieporozumień:

  • Szyfrowanie (nie mylić z kodowaniem) to proces zamiany tekstu jawnego, zrozumiałego dla człowieka (cleartext, plaintext) w szyfrogram (cryptogram, ciphertext), czyli postać otrzymaną za pomocą serii przekształceń i podstawień, której nie da się odczytać, ani odszyfrować bez znajomości klucza szyfrującego.
  • Klucz szyfrujący (key, cryptovariable) to wartość wejściowa, która wpływa bezpośrednio na działanie algorytmu szyfrującego i otrzymywany w wyniku jego działania szyfrogram wyjściowy.
  • Szyfr to algorytm szyfrujący, czyli funkcja matematyczna wykorzystywana w procesie szyfrowania i deszyfrowania, dla której wejściem są czysty tekst i klucz szyfrujący, a wyjściem szyfrogram.
  • Kodowanie (nie mylić z szyfrowaniem) to proces zmiany formy reprezentacji tekstu. Odbywa się za pomocą podstawień, które są znane i odwracalne. Nie wymaga klucza, a co za tym idzie tekst zakodowany da się odczytać znając format użytego kodowania. Najprostszym przykładem kodowania jest alfabet Morse’a. Częstym błędem jest natomiast uznawanie kodowania Base64 za formę szyfrowania. Kodowanie takie nie daje żadnej ochrony ponieważ jest odwracalne i nie wymaga znajomości klucza (nie jest on używany przy kodowaniu).
  • Hashowanie to natomiast wyliczanie przy użyciu funkcji skrótu (algorytmu takiego jak np. MD5, SHA) unikalnego ciągu znaków o stałej długości dla dowolnego tekstu. Istotną cechą hashowania jest fakt, że jest to proces nieodwracalny, tzn. na podstawie konkretnego hasha nie jesteśmy w stanie stwierdzić co stanowiło zawartość tekstu wejściowego.

Zastosowania

Celem szyfrowania jest utajnienie i bezpieczne przesyłanie bądź przechowywanie wiadomości. Szyfrowanie powinno gwarantować poufność, integralność oraz dostępność (wyłącznie dla uprawnionych odbiorców dysponujących kluczem). Warto tutaj wspomnieć, że istnieją niesymetryczne algorytmy szyfrujące, czyli takie w których klucze służące do szyfrowania i deszyfrowania mogą się od siebie różnić. Na tym mechanizmie opiera się Infrastruktura Klucza Publicznego, o czym opowiem szerzej w jednym z kolejnych tekstów.

Celem kodowania jest natomiast zmiana formy reprezentacji ciągu znaków mająca na celu najczęściej przesłanie wiadomości kanałem, którym niemożliwe byłoby jej przesłanie w postaci oryginalnej. Przykładowo tekst pisany zakodowany alfabetem Morse’a może zostać przekazany na dużą odległość za pomocą światła, czego nie da się zrobić ze standardowym alfabetem. W informatyce natomiast popularny Base64 jest wykorzystywany np. do przesłania pliku binarnego protokołem, który standardowo obsługuje tylko znaki alfanumeryczne. W protokołach takich jak SMTP i HTTP kodowanie Base64 jest do dziś stosowane do uwierzytelniania, stąd tak istotną kwestią jest dodatkowe szyfrowanie warstwy transportowej za pomocą TLS.

I w końcu hashowanie ma na celu stworzenie unikalnego identyfikatora (odcisku palca), dzięki któremu będzie można ustalić czy określona zawartość, np. pliku lub ciągu znaków jest identyczna z oryginałem. Funkcja ta jest wykorzystywana m.in. do przechowywania haseł. Gdy rejestrujemy się w jakimś systemie nasze hasło jest hashowane i to właśnie jego hash jest przechowywany w bazie. W chwili logowania natomiast system wylicza hash z podanego przez nas hasła i porównuje go z tym w bazie, dzięki czemu ustala zgodność haseł, mimo ich nieznajomości.

Jeśli chciałbyś dowiedzieć się więcej na temat możliwości łamania hashy i potrzebnego do tego czasu w zależności od długości hasła, obejrzyj ten materiał:

Przy okazji zobacz też tekst pt. Łamanie haseł w chmurze AWS – 221 gigahashy na sekundę

 


„Bezpieczna Pigułka” to codzienna, mała dawka wiedzy z zakresu cyberbezpieczeństwa. Wszystkie teksty z tej kategorii znajdziesz TUTAJ.


Zostaw e-mail aby otrzymać powiadomienia o nowościach oraz dostęp do wszystkich bonusowych materiałów przygotowanych wyłącznie dla subskrybentów.

One comment

Leave a Reply

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.