Co to jest szyfrowanie?
Szyfrowanie oznacza konwersję danych do postaci, która nie może zostać łatwo odczytana przez nieupoważnione podmioty. Proces przekształcania zaszyfrowanych danych z powrotem do ich oryginalnej postaci nazywa się odszyfrowaniem lub deszyfrowaniem.
Szyfrowanie zapewnia, że poufne informacje nie zostaną odczytane, użyte lub niewłaściwie wykorzystane przez osoby, które nie powinny mieć do nich dostępu. Proces ten stosuje specjalne algorytmy, zwane szyframi, i zmienne matematyczne, zwane kluczami szyfrowania, w celu przekształcenia czytelnych danych tekstowych w szyfrogram.
Szyfrogram, który wygląda jak długi ciąg losowych liter i cyfr, jest niezrozumiały dla kogoś, kto nie posiada wiedzy o tym, jaki szyfr i klucz został użyty do zaszyfrowania danych.
Techopedia wyjaśnia, czym jest szyfrowanie
Termin „szyfrowanie” pochodzi od francuskiego słowa „chiffre”, które z kolei bazowało na arabskim. Oba oznaczały cyfrę. Słowo „kryptologia”, czyli dziedzina zajmująca się szyfrowaniem, pochodzi zaś od greckiego „kryptos”, które oznacza „ukryty” lub „tajny”. Etymologia tego słowa doskonale odzwierciedla podstawowy cel szyfrowania: zatajanie informacji, ukrywanie ich wartości i utrzymywanie znaczenia w tajemnicy.
Jak działa szyfrowanie?
Szyfrowanie działa poprzez matematyczne przekształcanie czytelnych danych (tekst jawny) w ich nieczytelną formę (szyfrogram).
Każdy schemat szyfrowania wymaga dwóch rzeczy: złożonego algorytmu (szyfru) i tajnego klucza, który służy do jego dostosowania. Za sprawą połączenia tych dwóch elementów proces szyfrowania jest solidny.
Aby złamać szyfrowanie, haker musiałby dokonać inżynierii wstecznej procesu szyfrowania i dowiedzieć się, jaki algorytm został użyty do zaszyfrowania danych i jaki tajny klucz wykorzystano do dostosowania tego algorytmu.
Istnieją dwie ważne zasady, które wspierają sposób działania schematów szyfrowania: szyfry podstawieniowe i szyfry przestawieniowe.
- Szyfry podstawieniowe: Zastępują znaki tekstu jawnego innymi znakami zgodnie ze zdefiniowanym systemem mapowania. Klasycznym przykładem jest szyfr Cezara, w którym każdą literę przesuwa się o określoną liczbę pozycji w alfabecie. W bardziej złożonym przypadku, takim jak szyfr monoalfabetyczny, wszystkie litery tekstu jawnego są zastępowane unikalną literą z zakodowanej wersji alfabetu. Dzięki temu jego złamanie bez znajomości reguły tego podstawienia staje się trudniejsze.
- Algorytmy permutacji: Działają poprzez przestawianie elementów tekstu jawnego zgodnie z określoną regułą lub zestawem reguł określonych przez klucz szyfrowania. Proces ten, znany również jako transpozycja, tworzy szyfrogram, w którym oryginalna kolejność tekstu jawnego jest zakodowana. Siła algorytmu permutacji wynika z trudności odgadnięcia oryginalnych pozycji elementów bez znajomości klucza zastosowanego podczas transpozycji.
Czym jest klucz szyfrowania?
Klucz szyfrowania jest ciągiem cyfr binarnych (bitów), które określają wynik algorytmu kryptograficznego. Siła schematu szyfrowania zależy w dużej mierze od tajności i integralności klucza.
Zasady i procedury zarządzania kluczami obejmują ich wymianę lub aktualizację w razie potrzeby. Najlepsze praktyki wspierają dodawanie nowych kluczy, użytkowników i scenariuszy szyfrowania bez narażania bezpieczeństwa.
Skuteczne zarządzanie kluczami obejmuje nie tylko ochronę kluczy przed nieautoryzowanym dostępem, ale także w razie potrzeby zapewnienie autoryzowanym użytkownikom dostępu do właściwego klucza. Jeśli klucz szyfrowania zostanie zagubiony, nie ma sposobu na jego odzyskanie, co może poskutkować stałą utratą danych.
W miarę rozwoju organizacji i ewolucji ich potrzeb w zakresie szyfrowania solidny system zarządzania kluczami musi być skalowalny i zdolny do adaptacji.
Wiele branż podlega regulacjom, które narzucają określone standardy dla kluczy szyfrowania. Gdy zarządzanie kluczami zostaje uwzględnione w polityce bezpieczeństwa danej organizacji, może pomóc pracownikom w spełnieniu wymogów zgodności i uniknięciu kar finansowych.
Co to jest algorytm szyfrowania?
Algorytm szyfrowania jest formułą matematyczną, którą wykorzystuje się do przekształcania tekstu jawnego w szyfrogram. Celem algorytmów szyfrowania jest ochrona danych poprzez przekształcenie ich w format, który może zostać odczytany tylko przez strony posiadające prawidłowy tajny klucz.
Algorytmy szyfrowania działają w połączeniu z parą tajnych kluczy: kluczem szyfrowania, używanym do szyfrowania danych, i kluczem deszyfrującym, wykorzystywanym do odwrócenia tego procesu.
Rodzaje algorytmów szyfrowania
Wybór algorytmu szyfrowania zależy od wrażliwości chronionych danych, a także wymagań dotyczących wydajności i standardów zgodności lub przepisów.
Oto lista algorytmów szyfrowania, które są obecnie powszechnie stosowane:
Rodzaje schematów szyfrowania
Schematy szyfrowania można podzielić na trzy różne kategorie:
- Według rodzaju klucza, którego używają.
- Według trybu działania.
- Według zasady, na której opiera się algorytm.
Klucze
Schematy szyfrowania mogą wykorzystywać klucze symetryczne, asymetryczne lub (najczęściej) kombinację kluczy symetrycznych i asymetrycznych.
Szyfrowanie symetryczne wykorzystuje ten sam klucz do szyfrowania i deszyfrowania wiadomości. Ten rodzaj jest szybki, wydajny i świetnie nadaje się do szyfrowania dokumentów. Nie używa się go jednak zbyt często do komunikacji zawierającej bardzo wrażliwe dane, ponieważ obie strony muszą mieć dostęp do tego samego, tajnego klucza.
Szyfrowanie asymetryczne (znane również jako kryptografia klucza publicznego) działa poprzez generowanie par matematycznie powiązanych kluczy. Jeden służy do szyfrowania wiadomości, a drugi do jej odszyfrowania. Nadawca koduje wiadomość przy użyciu publicznie dostępnego klucza odbiorcy. Wiadomość jest następnie odkodowywana za pomocą klucza prywatnego odbiorcy.
Szyfrowanie asymetryczne jest często porównywane do zablokowanej skrzynki pocztowej, która ma miejsce na odbieranie wiadomości. Każdy, kto zna adres skrzynki (klucz publiczny), może wysłać wiadomość, ale tylko właściciel skrzynki posiada klucz prywatny, aby ją otworzyć i odczytać wiadomość.
Szyfrowanie homomorficzne to forma szyfrowania asymetrycznego, która umożliwia wykonywanie obliczeń na zaszyfrowanych danych. Wyniki po odszyfrowaniu powinny odpowiadać wynikom operacji, jakby zostały wykonane na jawnym tekście.
Szyfrowanie homomorficzne, które wykorzystuje głównie klucze asymetryczne, znajduje się na wczesnym etapie adopcji do codziennego użytku. Jego rozwój w dużej mierze napędza potrzeba ochrony danych osobowych (PII) w chmurze.
Szyfrowanie end-to-end (E2EE, od końca do końca) zapobiega odczytaniu danych przez osoby trzecie podczas ich przesyłania z jednego systemu lub urządzenia do drugiego. Ten rodzaj szyfrowania zazwyczaj wykorzystuje kombinację asymetrycznych i symetrycznych kluczy szyfrujących. Na początku szyfrowanie asymetryczne służy do bezpiecznej wymiany klucza symetrycznego między komunikującymi się stronami. Po jego udostępnieniu stosuje się go do szyfrowania i odszyfrowywania wiadomości. Chociaż E2EE zapewnia silną ochronę danych, bywa trudne do prawidłowego wdrożenia. Źle zarządzane klucze szyfrowania E2EE mogą sprawić, że dane staną się niedostępne nawet dla uprawnionych użytkowników.
Szyfrowanie postkwantowe jest ważnym obszarem badań nad szyfrowaniem. Komputery kwantowe mogą bowiem potencjalnie złamać wiele obecnie używanych algorytmów kryptograficznych.
Opracowanie i wdrożenie algorytmów odpornych na komputery kwantowe jest proaktywnym środkiem, który ma na celu zabezpieczenie infrastruktury IT przed przyszłymi zagrożeniami. Głównymi wyzwaniami są tworzenie i standaryzacja nowych algorytmów, które nie mogą zostać złamane przez komputer kwantowy, oraz wdrażanie ich bez zakłócania istniejących ram bezpieczeństwa i infrastruktury.
Niektórzy badacze uważają, że przy zwiększonych rozmiarach kluczy istniejące algorytmy szyfrowania symetrycznego (takie jak AES-256) mogą stać się wystarczająco odporne na ataki kwantowe. Inni zaś twierdzą, że schematy szyfrowania postkwantowego wykorzystują kombinację algorytmów symetrycznych do masowego szyfrowania oraz algorytmów asymetrycznych do wymiany kluczy internetowych i uwierzytelniania.
Tryby działania szyfru
Tryby działania szyfru opisują sposób, w jaki algorytm szyfrowania obsługuje dane. Szyfry blokowe i strumieniowe są dwoma popularnymi rodzajami trybów szyfrowania.
- Szyfry blokowe szyfrują bloki danych o stałym rozmiarze. Wykorzystuje się je głównie do bezpiecznego szyfrowania danych, które są przechowywane lub przesyłane w znanych i stałych rozmiarach. Jeśli tekst jawny nie mieści się idealnie w bloku, dodaje się jego wypełnienie. Szyfry blokowe same w sobie nie zapewniają mechanizmów gwarantujących integralność danych. Problem ten jest często rozwiązywany poprzez łączenie szyfrów blokowych z trybem szyfrowania, takim jak tryb wiązania bloków zaszyfrowanych.
- Szyfry strumieniowe szyfrują tekst jawny po jednym bicie lub bajcie na raz. Ich działanie polega na generowaniu pozornie losowego strumienia bitów, znanego jako generator strumienia bitowego, który jest następnie łączony z bitami tekstu jawnego np. za pomocą operacji XOR. Proces tworzy szyfrogram. Bezpieczeństwo tego rodzaju trybu działania zależy od generatora strumienia bitowego. Musi być jak najbardziej losowy i użyty tylko raz. Tryby działania szyfrów strumieniowych przydają się wtedy, gdy całkowity rozmiar danych jest nieznany, na przykład w przypadku komunikacji w czasie rzeczywistym.
Podstawowe zasady szyfrowania
Podstawowe zasady szyfrowania odnoszą się do podstawowych pojęć matematycznych i logicznych, na których zbudowane są algorytmy szyfrowania. Dzisiejsze schematy szyfrowania często łączą w sobie wiele zasad w celu zapewnienia niezawodności.
Na przykład sieci substytucji-permutacji są strukturalną zasadą projektowania szyfrów blokowych. Każda runda rozpoczyna się warstwą substytucji i kończy warstwą permutacji. AES i wiele innych rodzajów szyfrowania opiera się na strukturze SPN.
Oto inne ważne zasady szyfrowania (poza substytucją i permutacją):
Ukrywa sposób, w jaki klucz wpływa na proces szyfrowania, aby utrudnić wydedukowanie go z szyfrogramu.
Rozprzestrzenia wpływ każdego pojedynczego znaku (lub bitu) tekstu jawnego na dużą część szyfrogramu. Proces ten ma zapewnić, że każda zmiana w tekście jawnym, bez względu na jej wielkość, spowoduje znaczące i rozległe modyfikacje w szyfrogramie.
Z technicznego punktu widzenia jest to raczej struktura projektowa dla szyfrów blokowych niż sama zasada. Sieci Feistela dzielą dane na połówki i przeprowadzają je przez wiele rund przetwarzania z kluczem, mieszając i zamieniając połówki w każdej rundzie. Na tej strukturze opiera się wiele powszechnie stosowanych szyfrów blokowych, w tym potrójny DES.
Przekształca dane w skrót o stałym rozmiarze. Haszowanie uzupełnia szyfrowanie poprzez zapewnienie kontroli integralności, bezpieczną obsługę haseł i umożliwienie składania cyfrowych podpisów.
Jak szyfrować wiadomości e-mail?
Warto pamiętać, że wiadomości e-mail nie są domyślnie automatycznie szyfrowane.
Choć większość dostawców poczty e-mail używa protokołu TLS do szyfrowania wiadomości e-mail, protokół ten nie koduje danych w spoczynku, na serwerach poczty e-mail. Oznacza to, że jeśli atakujący uzyska dostęp do serwera dostawcy, uzyska dostęp do przechowywanych tam niezaszyfrowanych wiadomości e-mail.
Niektórzy dostawcy poczty elektronicznej, np. ProtonMail, oferują szyfrowanie end-to-end. To wymaga jednak od nadawcy i odbiorcy używania tej samej usługi i ustawień.
Dlaczego szyfrowanie jest potrzebne?
Szyfrowanie jest kluczowym narzędziem do zagwarantowania prywatności danych oraz utrzymania wiarygodności, a także niezawodności komunikacji cyfrowej i transakcji.
Jest ono niezbędne do ochrony informacji cyfrowych z kilku kluczowych powodów:
Kiedy stosować szyfrowanie?
Z szyfrowania należy korzystać w każdej sytuacji, w której poufne informacje powinny być chronione przed nieautoryzowanym dostępem lub ujawnieniem. Na przykład szyfrowanie stanowi podstawowy składnik protokołu (HTTPS), który jest bezpieczną wersją protokołu hypertext transfer protocol (HTTP) używanego do komunikacji internetowej.
HTTPS wykorzystuje protokoły SSL/TLS do stworzenia bezpiecznego, szyfrowanego połączenia między przeglądarką internetową a serwerem. To daje pewność, że wszystkie dane przesyłane podczas połączenia, w tym dane osobowe, logowania i płatności, podlegają szyfrowaniu i ochronie przed podsłuchaniem lub przejęciem przez osoby trzecie.
Jak wdrożyć szyfrowanie?
Organizacje mogą stosować przeróżne podejście do szyfrowania danych. Wykorzystane strategie i metody zależą od poziomu ochrony, który pragną osiągnąć, rodzaju danych, które chcą zaszyfrować, potencjalnego ryzyka lub zagrożeń, z którymi mają do czynienia, oraz ilości zasobów obliczeniowych i finansowych, które są skłonni zainwestować.
Jak złamać szyfr?
Łamanie szyfrowania, określane również jako kryptoanaliza, oznacza próbę odszyfrowania zaszyfrowanych danych bez klucza szyfrowania. Istnieje kilka teoretycznych i praktycznych podejść do złamania szyfru. Należą do nich:
Atak Brute Force (atak siłowy) wymaga wypróbowania każdego możliwego klucza aż do znalezienia tego właściwego. Przydatność tego podejścia zależy od długości klucza i siły algorytmu szyfrowania. Złożone algorytmy z dłuższymi kluczami są trudniejsze do złamania tym sposobem.
Polega na przeszukiwaniu algorytmów szyfrowania w celu znalezienia ich słabych punktów, które można wykorzystać. Ataki analityczne mogą wykorzystywać uczenie maszynowe (ML) do pomocy w analizie statystycznej szyfrogramu.
To podejście wykorzystuje informacje o fizycznej implementacji systemu, aby spróbować zlokalizować prawidłowy klucz. Opiera się na informacjach o czasie, zużyciu energii, wyciekach elektromagnetycznych, a nawet dźwiękach.
Podejście to koncentruje się na przechwytywaniu komunikacji i wprowadzaniu atakującego między dwie strony. Ataki MITM mogą być stosowane do wykorzystywania słabości w implementacji szyfrowania lub procesie wymiany kluczy.
Zalety i wady szyfrowania
Szyfrowanie zapewnia bezpieczeństwo i prywatność danych, ale – jak każda inna technologia – ma swoje wady i zalety. Zrozumienie ich może pomóc w podejmowaniu świadomych decyzji dotyczących tego, kiedy i jak używać szyfrowania.
Zalety
- zwiększone bezpieczeństwo,
- prywatność danych,
- zgodność z przepisami,
- bezpieczna komunikacja,
- zaufanie i wiarygodność,
- ochrona przed naruszeniami danych.
Wady
- ograniczenie wydajności,
- złożone zarządzanie kluczami,
- wyzwania związane z odzyskiwaniem danych,
- złożoność początkowej konfiguracji,
- problemy z interoperacyjnością,
- koszty.
Podsumowanie
Algorytmy szyfrowania kodują informacje tak, że bez odpowiedniego klucza są nie do odczytania. Ważne jest, aby zrozumieć znaczenie szyfrowania. Tylko wówczas można dokonywać świadomych wyborów odnośnie algorytmu zastosowanego do ochrony informacji cyfrowych przed nieautoryzowanym dostępem.
Najczęściej zadawane pytania
Czym jest szyfrowanie w prostych słowach?
Jakie są dwa rodzaje szyfrowania?
Jaki jest przykład szyfrowania?
Źródła
- Monoalfabetyczne szyfrowanie podstawieniowe (MASCs) (Nku)
- 16.3: Szyfry transpozycyjne – Mathematics LibreTexts (Math.libretexts)
- Najlepsze praktyki operacyjne zarządzania kluczami szyfrowania (Cisa)
- plaintext – słownik | CSRC (Csrc.nist)
- ciphertext – słownik | CSRC (Csrc.nist)
- Algorytmy Chacha20 (Xilinx.github)
- Agorytmy Poly1305 (Xilinx.github)
- Schneier nt. bezpieczeństwa: Twofish (Schneier)
- Strona Serpent (Cl.cam.ac)