Szyfrowanie – jak działają algorytmy szyfrujące i nowoczesne metody szyfrowania danych

Szyfrowanie to podstawowy mechanizm stosowany w kryptografii, zapewniający poufność, integralność oraz autentyczność danych. Wyróżniamy dwa główne rodzaje szyfrowania: symetryczne i asymetryczne. Każde z nich ma swoje zastosowania, a także zalety i wady, o czym dowiesz się poniżej.

Co to jest szyfrowanie – najważniejsze pojęcia

Szyfrowanie to sposób przekształcania danych w taki sposób, żeby mogły zostać odczytane jedynie przez osoby uprawnione. W tym celu używa się konkretnego algorytmu szyfrowania i klucza kryptograficznego, który pozwala na odczytanie danych jedynie przez odbiorcę oraz nadawcę.

Szyfrowanie symetryczne – metoda szyfrowania, w której do szyfrowania i deszyfrowania danych używa się tego samego klucza.

Szyfrowanie asymetryczne – metoda szyfrowania, w której klucz szyfrujący jest inny niż klucz deszyfrujący, co zwiększa bezpieczeństwo przesyłania danych.

Kryptografia – dziedzina zajmująca się zabezpieczaniem danych i ochroną informacji przed nieuprawnionym dostępem.

Kryptoanaliza – dziedzina badająca algorytmy szyfrujące pod kątem bezpieczeństwa, sprawdzająca, czy szyfr można złamać bez znajomości klucza.

Klucz publiczny i klucz prywatny – w szyfrowaniu asymetrycznym klucz publiczny służy do szyfrowania i jest dostępny dla wszystkich, natomiast klucz prywatny służy do odszyfrowania i zna go tylko odbiorca wiadomości.

Szyfrogram – zaszyfrowana wiadomość, która nie jest czytelna bez odpowiedniego klucza.

Tekst jawny – oryginalna wiadomość przed zaszyfrowaniem.

Szyfrowanie end-to-end – metoda, w której dane są szyfrowane u nadawcy i odszyfrowywane dopiero u odbiorcy, co uniemożliwia dostęp osobom trzecim po drodze.

Szyfry podstawieniowe – szyfry, w których każda litera lub znak tekstu jawnego jest zastępowana innym znakiem według określonej reguły.

Szyfry przestawieniowe – szyfry, w których kolejność liter lub znaków w tekście jawny jest zmieniana według określonego schematu.

Szyfrowanie dysku twardego – zabezpieczenie całego dysku lub partycji poprzez szyfrowanie wszystkich przechowywanych danych, co chroni je przed nieautoryzowanym dostępem.

Szyfrowanie symetryczne i asymetryczne

Szyfrowanie symetryczne i asymetryczne to podstawowe metody zabezpieczania danych w kryptografii.

Szyfrowanie asymetryczne i symetryczne
W szyfrowaniu symetrycznym ten sam klucz służy zarówno do szyfrowania, jak i odszyfrowywania informacji. W szyfrowaniu asymetrycznym używa się dwóch różnych kluczy – publicznego do szyfrowania i prywatnego do odszyfrowywania

Szyfrowanie symetryczne

Szyfrowanie symetryczne polega na używaniu tego samego klucza zarówno do szyfrowania, jak i deszyfrowania danych. Oznacza to, że zarówno nadawca, jak i odbiorca muszą posiadać ten sam klucz.

Symetryczne szyfrowanie można stosować do szyfrowania plików i całych dysków, na przykład za pomocą narzędzi takich jak BitLocker czy VeraCrypt, co chroni dane w przypadku kradzieży lub utraty sprzętu. Kolejnym zastosowaniem jest zabezpieczanie transmisji danych w sieciach VPN, dzięki czemu połączenie internetowe staje się prywatne i odporne na podsłuch. Ponadto szyfrowanie wiadomości w komunikatorach internetowych pozwala chronić treść rozmów przed dostępem osób trzecich.

  • Szybkość działania – mniejsze obciążenie procesora. Dzięki temu szyfrowanie i odszyfrowywanie danych przebiega bardzo szybko, co sprawia, że metoda jest wydajna nawet przy dużych plikach.
  • Prostsza implementacja – Algorytmy symetryczne są mniej skomplikowane w konstrukcji, dzięki czemu łatwiej je wdrożyć w systemach komputerowych i urządzeniach mobilnych.
  • Problem z dystrybucją klucza – konieczność bezpiecznego przekazania go odbiorcy. Klucz musi być dostarczony w sposób bezpieczny, co w praktyce bywa trudne, szczególnie przy komunikacji na odległość.
  • Jeśli klucz zostanie przejęty, cała komunikacja jest zagrożona – W przypadku utraty lub kradzieży klucza, osoba nieuprawniona może odszyfrować wszystkie przesyłane informacje, co znacząco obniża bezpieczeństwo systemu.

Jak przebiega wymiana danych w szyfrowaniu symetrycznym?

Szyfrowanie symetryczne okazuje się stosunkowo proste:

  1. Przygotowanie klucza – Nadawca i odbiorca muszą posiadać wspólny klucz. Klucz ten może zostać wygenerowany losowo lub wymieniony za pomocą bezpiecznej metody (np. za pomocą protokołu wymiany klucza, takiego jak Diffie-Hellman).
  2. Szyfrowanie wiadomości – Nadawca wykorzystuje wspólny klucz do zaszyfrowania wiadomości. Zaszyfrowany tekst jest przesyłany do odbiorcy.
  3. Deszyfrowanie wiadomości – Odbiorca, posiadając ten sam klucz, używa go do deszyfrowania wiadomości, przywracając ją do pierwotnej postaci.

Ważnym wyzwaniem w tym przypadku jest bezpieczne przesyłanie lub przechowywanie klucza, ponieważ jego przejęcie przez osobę niepowołaną naraża całą komunikację na ryzyko.

Ciekawostka: Podczas II wojny światowej amerykańscy żołnierze znani jako „Code Talkers” wykorzystywali język indian Navajo do szyfrowania komunikacji wojskowej na froncie Pacyfiku. Język ten był nieznany i trudny do nauki dla osób spoza społeczności Navajo, co sprawiało, że wiadomości były praktycznie niemożliwe do odszyfrowania dla japońskiego wywiadu. Dzięki temu amerykańska armia mogła przesyłać strategiczne rozkazy i raporty w czasie bitew, zachowując całkowitą poufność komunikacji.

ads banner

Szyfrowanie asymetryczne

Szyfrowanie asymetryczne wykorzystuje parę kluczy – publiczny do szyfrowania i prywatny do deszyfrowania. Klucz publiczny może być udostępniany każdemu, natomiast klucz prywatny musi być chroniony przez właściciela.

Szyfrowanie asymetryczne jest wykorzystywane do zabezpieczania komunikacji internetowej, na przykład w protokołach SSL i TLS stosowanych w HTTPS, co chroni przesyłane informacje przed podsłuchaniem. Kolejnym zastosowaniem są podpisy cyfrowe i certyfikaty, które pozwalają weryfikować autentyczność danych i pochodzenie dokumentów. Ponadto szyfrowanie asymetryczne stosuje się w szyfrowaniu poczty elektronicznej, na przykład za pomocą PGP lub S/MIME, zapewniając poufność i bezpieczeństwo korespondencji.

  • Brak konieczności wymiany klucza prywatnego między stronami – Każda ze stron używa własnego klucza prywatnego i klucza publicznego drugiej strony, co eliminuje ryzyko przechwycenia klucza w trakcie przesyłania.
  • Wyższy poziom bezpieczeństwa w porównaniu do szyfrowania symetrycznego – Nawet jeśli klucz publiczny jest dostępny publicznie, bez klucza prywatnego osoby trzecie nie mogą odszyfrować danych, co znacząco zwiększa ochronę informacji.
  • Większa złożoność obliczeniowa – wymaga większej mocy obliczeniowej – Algorytmy asymetryczne są bardziej skomplikowane i potrzebują więcej zasobów procesora, co może spowalniać działanie systemów przy dużych ilościach danych.
  • Wolniejsze działanie w porównaniu do szyfrowania symetrycznego – Proces szyfrowania i odszyfrowywania trwa dłużej, dlatego szyfrowanie asymetryczne rzadko stosuje się bezpośrednio do dużych plików; częściej używa się go do bezpiecznej wymiany kluczy symetrycznych.

Jak przebiega wymiana danych w szyfrowaniu asymetrycznym?

Również w tym przypadku sam proces jest przejrzysty:

  1. Wymiana kluczy publicznych – Nadawca i odbiorca wymieniają swoje klucze publiczne. Klucz publiczny może być przesyłany bezpiecznie przez publiczną sieć, ponieważ nie umożliwia on deszyfrowania wiadomości.
  2. Szyfrowanie wiadomości – Nadawca wykorzystuje klucz publiczny odbiorcy do zaszyfrowania wiadomości. Tylko odbiorca, posiadający odpowiadający mu klucz prywatny, może ją odczytać.
  3. Deszyfrowanie wiadomości – Odbiorca używa swojego klucza prywatnego do deszyfrowania wiadomości. Tylko odbiorca, który posiada klucz prywatny, jest w stanie ją odczytać.

W tym przypadku klucz prywatny nigdy nie jest przesyłany ani udostępniany innym osobom, co zapewnia wysoki poziom bezpieczeństwa.

Przykłady algorytmów szyfrujących – symetryczne i asymetryczne

Istnieją rozmaite algorytmy symetryczne oraz asymetryczne, które wykorzystywane są nawet teraz, mimo że powstały już dłuższy czas temu.

Algorytmy szyfrujące - Przykłady
Powyżej znajdują się spis najbardziej znanych algorytmów szyfrujących symetrycznych oraz asymetrycznych. Z kolei pod spodem, każdy z nich został opisany.

Przykłady algorytmów symetrycznych

  • AES (Advanced Encryption Standard) – szeroko stosowany w ochronie danych w sieciach komputerowych i urządzeniach mobilnych.
  • DES (Data Encryption Standard) – obecnie uznawany za przestarzały, ale wciąż używany w niektórych starszych systemach.
  • 3DES (Triple DES) – symetryczny algorytm szyfrowania blokowego, który trzykrotnie stosuje szyfr DES w celu zwiększenia bezpieczeństwa.
  • Blowfish – szybki i elastyczny algorytm często wykorzystywany w aplikacjach zabezpieczających.
  • Twofish – szybki, symetryczny algorytm szyfrowania blokowego o długości klucza do 256 bitów, zaprojektowany jako następca Blowfisha.
  • RC4 – symetryczny algorytm szyfrowania strumieniowego, znany z prostoty i szybkości, ale obecnie uznawany za niebezpieczny.
  • Szyfr cezara – podstawowy algorytm, znany od starożytności, obecnie najczęściej stosowany do edukacji jako wstęp do szyfrowania. Możesz przeczytać o nim więcej, w naszym artykule o szyfrze cezara.

Przykłady algorytmów asymetrycznych

  • RSA (Rivest-Shamir-Adleman) – jeden z najczęściej stosowanych algorytmów w zabezpieczaniu transmisji danych.
  • ECC (Elliptic Curve Cryptography) – asymetryczny system kryptografii oparty na właściwościach krzywych eliptycznych, oferujący wysokie bezpieczeństwo przy krótszych kluczach.
  • DSA (Digital Signature Algorithm) – asymetryczny algorytm używany do tworzenia i weryfikacji podpisów cyfrowych.
  • ElGamal – asymetryczny algorytm kryptograficzny zapewniający szyfrowanie i podpisy cyfrowe, oparty na problemie logarytmu dyskretnego.
  • Diffie-Hellman – używany do wymiany kluczy w bezpieczny sposób.
  • Paillier – asymetryczny algorytm szyfrowania homomorficznego, pozwalający wykonywać operacje arytmetyczne na zaszyfrowanych danych.
  • ECDSA (Elliptic Curve Digital Signature Algorithm) – stosowany w kryptografii klucza publicznego, np. w kryptowalutach.

Często wykorzystane są obydwa rodzaje szyfrowania na raz. Szyfrowanie asymetryczne jest wykorzystywane np. na początku do wymiany kluczy symetrycznych, ale potem jest zamieniane na szybsze szyfrowanie symetryczne.

Zgadywanie klucza – Brute Force

Czy nie można po prostu odgadnąć klucza, którego ktoś używa? Można, ale czas jaki zajmie odgadnięcie klucza np. AES-256 liczy się w milionach lat. Dlatego jest praktycznie niemożliwe, że ktoś odgadnie nasz klucz.

W przypadku algorytmów typu szyfr cezara, jest dość prosto odgadnąć klucz, ma on bardzo mało kombinacji i sprawdzenie wszystkich możliwości jest bardzo proste, dlatego ten rodzaj szyfrowania nie powinien być wykorzystywany poza nauką.

Jednak istnieje pewna “sztuczka” wykorzystywana przez różne osoby, w celu zastosowania metody brute force w skuteczny sposób. Chodzi o użycie botnetu, czyli dużej liczby przejętych komputerów, które będą wspólnie pracowały nad złamaniem danego klucza. Przyjmując dla przykładu, że pojedynczy komputer potrzebowałby 100 lat na złamanie danego klucza, to co w przypadku gdy użyje się dwóch komputerów? Wtedy ten czas spada o połowę. Dlatego też przy użyciu wystarczająco dużej ilości urządzeń w ramach połączonej sieci, można postarać się o łamanie poszczególnych kluczy czy też haseł. Choć oczywiście jest to metoda o określonym potencjale, nie jest idealna, i oczywiście jest bardziej skuteczna przy słabszych systemach czy algorytmach, o czym trzeba pamiętać.

Pozostając przy temacie trudności łamania określonych kluczy lub haseł, warto też wspomnieć o tzw. haszowaniu haseł. Haszowanie haseł to proces przekształcania hasła w jednokierunkowy skrót (hash), który jest przechowywany w bazie zamiast samego tekstu hasła. Dzięki temu nawet gdyby określone hasło gdzieś wypłynęło (zostało wykradzione), to hasło jest nadal chronione, bo zostało zaprojektowane tak, żeby nie było możliwe ujawnienie hasła przy pomocy samego hasha. To podstawowy mechanizm występujący przy przechowywaniu haseł, o którym warto wiedzieć.

QUIZ – Sprawdź swoją wiedzę

Najczęściej zadawane pytania o szyfrowanie

Co to znaczy szyfrowanie?

Szyfrowanie to proces przekształcania informacji w taki sposób, aby stały się nieczytelne dla osób nieuprawnionych, przy jednoczesnej możliwości odszyfrowania ich przez osoby posiadające odpowiedni klucz. Celem szyfrowania jest zapewnienie poufności danych podczas przechowywania lub przesyłania.

Jakie są metody szyfrowania?

Istnieją dwa główne metody szyfrowania: symetryczne i asymetryczne. W szyfrowaniu symetrycznym ten sam klucz służy do szyfrowania i odszyfrowywania danych, natomiast w szyfrowaniu asymetrycznym stosuje się parę kluczy — publiczny do szyfrowania i prywatny do odszyfrowania.

Co to jest szyfr?

Szyfr to algorytm lub metoda przekształcania danych w formę zaszyfrowaną, która nie jest zrozumiała bez odpowiedniego klucza. Szyfry mogą operować na literach, bitach lub całych blokach danych, a ich celem jest ochrona informacji przed nieautoryzowanym dostępem.

Jakie są trzy główne algorytmy szyfrowania?

Zazwyczaj wymienia się dwie główne metody szyfrowania, jeśli jednak ktoś wymaga trzech (przykładowo na egzaminie), to trzy główne rodzaje algorytmów szyfrowania to: szyfry symetryczne (np. AES, DES), szyfry asymetryczne (np. RSA, ECC) oraz mimo że nie jest to forma szyfrowania, to jednak ze względu na dużą rolę jaką odgrywają w ramach kryptografii, wspomina się często o funkcjach skrótu i algorytmach mieszających wykorzystywanych w połączeniu z szyfrowaniem, np. do podpisów cyfrowych i weryfikacji integralności danych.

ads banner