Kryptografia klucza publicznego, zwana także kryptografią asymetryczną, jest podstawowym elementem współczesnego cyberbezpieczeństwa. Polega na użyciu dwóch odrębnych kluczy: klucza publicznego i klucza prywatnego. Klucze te są powiązane matematycznie, jednak wyprowadzenie klucza prywatnego wyłącznie z klucza publicznego jest niewykonalne obliczeniowo. Ta właściwość jest ważna dla różnych funkcji kryptograficznych, w tym szyfrowania, deszyfrowania i podpisów cyfrowych, które są niezbędne dla bezpiecznej komunikacji i uwierzytelniania.
Uwierzytelnianie to proces weryfikacji tożsamości użytkownika, urządzenia lub podmiotu w systemie komputerowym. Kryptografię klucza publicznego można wykorzystać do uwierzytelniania za pomocą mechanizmów takich jak podpisy cyfrowe i infrastruktura klucza publicznego (PKI). Rola klucza publicznego w tych procesach jest kluczowa, a zrozumienie jego zastosowania wymaga zrozumienia kilku zasad kryptograficznych i teorii liczb.
Podpisy cyfrowe i uwierzytelnianie
Podpis cyfrowy to technika kryptograficzna, która umożliwia podmiotowi podpisanie fragmentu danych, dając odbiorcy pewność co do pochodzenia i integralności danych. Schemat podpisu cyfrowego zazwyczaj obejmuje trzy główne algorytmy:
1. Generowanie klucza: generuje parę kluczy, klucz publiczny i klucz prywatny.
2. Podpisywanie: Używa klucza prywatnego do złożenia podpisu na danych.
3. Weryfikacja: Posługuje się kluczem publicznym w celu sprawdzenia autentyczności podpisu.
Jak działają podpisy cyfrowe
1. Generowanie klucza: Osoba generuje parę kluczy. Klucz prywatny jest utrzymywany w tajemnicy, natomiast klucz publiczny jest szeroko rozpowszechniany.
2. podpisanie: Osoba fizyczna używa swojego klucza prywatnego do podpisania wiadomości. Odbywa się to poprzez utworzenie skrótu wiadomości, a następnie zaszyfrowanie skrótu kluczem prywatnym w celu utworzenia podpisu.
3. Weryfikacja: Każdy, kto ma dostęp do klucza publicznego, może zweryfikować podpis. Odszyfrowują podpis za pomocą klucza publicznego w celu pobrania skrótu, a następnie porównują go z haszem odebranej wiadomości. Jeśli oba skróty są zgodne, podpis jest ważny i stanowi dowód, że wiadomość została podpisana przez posiadacza klucza prywatnego i że wiadomość nie została zmieniona.
Przykład podpisu cyfrowego do uwierzytelnienia
Weźmy pod uwagę Alicję, która chce wysłać podpisaną wiadomość do Boba. Alicja wykonuje następujące kroki:
1. Alicja generuje parę kluczy (klucz publiczny i klucz prywatny).
2. Alicja pisze wiadomość i tworzy hash tej wiadomości.
3. Alicja szyfruje skrót swoim kluczem prywatnym w celu utworzenia podpisu.
4. Alicja wysyła wiadomość wraz z podpisem do Boba.
5. Bob otrzymuje wiadomość i podpis. Następnie używa klucza publicznego Alicji do odszyfrowania podpisu i pobrania skrótu.
6. Bob hashuje odebraną wiadomość i porównuje ją z odszyfrowanym skrótem. Jeśli są zgodne, Bob może być pewien, że wiadomość rzeczywiście została podpisana przez Alicję i nie została zmodyfikowana.
Infrastruktura klucza publicznego (PKI)
PKI to platforma zarządzająca kluczami i certyfikatami, zapewniająca skalowalną i bezpieczną metodę dystrybucji kluczy publicznych. Zawiera takie komponenty jak:
- Urzędy certyfikacji (CA): Zaufane podmioty wydające certyfikaty cyfrowe, czyli dokumenty elektroniczne wiążące klucz publiczny z tożsamością podmiotu.
- Organy rejestracyjne (RA): Podmioty weryfikujące tożsamość osób lub organizacji przed wydaniem certyfikatu.
- Certyfikaty: Dokumenty cyfrowe zawierające klucz publiczny i tożsamość właściciela klucza, podpisane przez urząd certyfikacji.
- Listy unieważnionych certyfikatów (CRL): Listy certyfikatów, które zostały unieważnione przed datą wygaśnięcia.
Uwierzytelnianie za pomocą certyfikatów
W PKI uwierzytelnianie może odbywać się przy użyciu certyfikatów cyfrowych. Gdy podmiot przedstawia certyfikat, odbiorca może zweryfikować jego ważność, sprawdzając podpis urzędu certyfikacji i upewniając się, że certyfikat nie został unieważniony. Odbiorca może następnie użyć klucza publicznego zawartego w certyfikacie do weryfikacji podpisu cyfrowego lub ustanowienia bezpiecznego kanału komunikacji.
Podstawy matematyczne
Bezpieczeństwo kryptografii klucza publicznego opiera się na zasadach teorii liczb, takich jak trudność rozkładania na czynniki dużych liczb całkowitych lub obliczania logarytmów dyskretnych. Dwa podstawowe pojęcia w tym kontekście to algorytm euklidesowy i twierdzenie Eulera.
Algorytm Euklidesa
Algorytm Euklidesa służy do znajdowania największego wspólnego dzielnika (NWD) dwóch liczb całkowitych. Jest niezbędny do generowania kluczy w kryptosystemach RSA (Rivest-Shamir-Adleman). Algorytm opiera się na zasadzie, że NWD dwóch liczb dzieli także ich różnicę.
Funkcja Phi Eulera
Funkcja Phi Eulera, oznaczona jako φ(n), zlicza liczby całkowite do n, które są względnie pierwsze do n. Dla liczby pierwszej p, φ(p) = p – 1. Dla dwóch liczb względnie pierwszych m i n, φ(mn) = φ(m)φ(n).
Twierdzenie Eulera
Twierdzenie Eulera stwierdza, że dla każdej liczby całkowitej a i n, która jest względnie pierwsza:
![]()
Twierdzenie to jest ważne dla algorytmu RSA, gdzie zapewnia, że szyfrowanie i deszyfrowanie są względem siebie odwrotne.
Algorytm RSA
RSA jest jednym z najczęściej używanych kryptosystemów klucza publicznego. Obejmuje trzy główne etapy:
1. Generowanie klucza: Wybierz dwie duże liczby pierwsze, p i q. Oblicz n = pq i φ(n) = (p-1)(q-1). Wybierz liczbę całkowitą e taką, że 1 < e < φ(n) i gcd(e, φ(n)) = 1. Oblicz d tak, że ed ≡ 1 (mod φ(n)). Klucz publiczny to (e, n), a klucz prywatny to (d, n).
2. Szyfrowanie: Biorąc pod uwagę wiadomość m, oblicz szyfrogram c = m^e mod n.
3. Deszyfrowanie: Mając zaszyfrowany tekst c, oblicz wiadomość m = c^d mod n.
Uwierzytelnianie w RSA
W RSA uwierzytelnianie można osiągnąć poprzez odwrócenie ról szyfrowania i deszyfrowania:
1. Nadawca (Alicja) szyfruje skrót wiadomości swoim kluczem prywatnym, tworząc podpis cyfrowy.
2. Odbiorca (Bob) odszyfrowuje podpis kluczem publicznym Alicji w celu sprawdzenia hasha.
Przykład RSA do uwierzytelniania
1. Alicja generuje klucze RSA: klucz publiczny (e, n) i klucz prywatny (d, n).
2. Alicja pisze wiadomość i tworzy skrót.
3. Alicja szyfruje skrót swoim kluczem prywatnym w celu utworzenia podpisu.
4. Alicja wysyła wiadomość i podpis do Boba.
5. Bob używa klucza publicznego Alicji do odszyfrowania podpisu i pobrania skrótu.
6. Bob hashuje odebraną wiadomość i porównuje ją z odszyfrowanym skrótem. Jeśli są zgodne, podpis jest ważny.
Klucze publiczne odgrywają ważną rolę w uwierzytelnianiu w kryptografii klucza publicznego. Podpisy cyfrowe i PKI wykorzystują klucze publiczne, aby zapewnić autentyczność i integralność wiadomości. Podstawy matematyczne, takie jak algorytm Euklidesa i twierdzenie Eulera, zapewniają niezbędne gwarancje bezpieczeństwa dla tych procesów kryptograficznych. Rozumiejąc te zasady, można docenić solidność i niezawodność mechanizmów uwierzytelniania opartych na kluczu publicznym w zabezpieczaniu komunikacji cyfrowej.
Inne niedawne pytania i odpowiedzi dotyczące Podstawy klasycznej kryptografii EITC/IS/CCF:
- Czy kryptografia klucza publicznego została wprowadzona do użytku w szyfrowaniu?
- Czy zbiór wszystkich możliwych kluczy danego protokołu kryptograficznego jest w kryptografii nazywany przestrzenią kluczy?
- Czy w szyfrze przesunięciowym litery na końcu alfabetu są zastępowane literami z początku alfabetu zgodnie z arytmetyką modularną?
- Co według Shannona powinien zawierać szyfr blokowy?
- Czy protokół DES wprowadzono w celu poprawy bezpieczeństwa kryptosystemów AES?
- Czy bezpieczeństwo szyfrów blokowych zależy od wielokrotnego łączenia operacji dezorientacji i dyfuzji?
- Czy funkcje szyfrowania i deszyfrowania muszą pozostać tajne, aby protokół kryptograficzny pozostał bezpieczny?
- Czy kryptoanalizę można wykorzystać do bezpiecznej komunikacji przez niezabezpieczony kanał komunikacyjny?
- Czy Internet, GSM i sieci bezprzewodowe należą do niebezpiecznych kanałów komunikacyjnych?
- Czy wyczerpujące wyszukiwanie klucza jest skuteczne w przypadku szyfrów podstawieniowych?
Zobacz więcej pytań i odpowiedzi w artykule Podstawy klasycznej kryptografii EITC/IS/CCF

