Konfiguracja sprzętu i oprogramowania

Internetowe klucze szyfrowania. Kryptografia klucza publicznego

Ilość informacji w kluczu jest zwykle mierzona w bitach.

W przypadku nowoczesnych algorytmów symetrycznych (AES, CAST5, IDEA, Blowfish, Twofish) główną cechą siły kryptograficznej jest długość klucza. Szyfrowanie kluczami 128-bitowymi lub większymi jest uważane za silne, ponieważ odszyfrowanie informacji bez klucza zajmuje lata potężnych superkomputerów. W przypadku algorytmów asymetrycznych opartych na zagadnieniach teorii liczb (problem faktoryzacji — RSA, problem logarytmów dyskretnych — Elgamal), ze względu na ich specyfikę, minimalna wiarygodna długość klucza wynosi obecnie 1024 bity. W przypadku algorytmów asymetrycznych opartych na teorii krzywych eliptycznych (ECDSA, GOST R 34.10-2001, DSTU 4145-2002) minimalna wiarygodna długość klucza wynosi 163 bity, ale zalecane są długości 191 bitów i więcej.

W tej metodologii zarówno nadawca, jak i odbiorca używają tego samego klucza do szyfrowania i odszyfrowywania, który zgodzili się użyć przed interakcją. Jeśli klucz nie został naruszony, odszyfrowanie automatycznie uwierzytelnia nadawcę, ponieważ tylko nadawca ma klucz do zaszyfrowania informacji i tylko odbiorca ma klucz do odszyfrowania informacji. Ponieważ nadawca i odbiorca są jedynymi osobami, które znają ten klucz symetryczny, tylko interakcja tych dwóch użytkowników zostanie naruszona, gdy klucz zostanie złamany. Problemem, który będzie istotny dla innych kryptosystemów, jest pytanie, jak bezpiecznie dystrybuować klucze symetryczne (tajne).

Algorytmy szyfrowania symetrycznego używają kluczy, które nie są bardzo długie i mogą szybko szyfrować duże ilości danych.

Jak korzystać z systemów kluczy symetrycznych:

Symetryczny klucz tajny jest bezpiecznie generowany, dystrybuowany i przechowywany.

Nadawca tworzy podpis elektroniczny obliczając funkcję haszującą dla tekstu i dołączając wynikowy ciąg do tekstu

Nadawca używa szybkiego symetrycznego algorytmu szyfrowania i deszyfrowania wraz z tajnym kluczem symetrycznym do odebranego pakietu (tekst wraz z dołączonym podpisem elektronicznym) w celu uzyskania zaszyfrowanego tekstu. Uwierzytelnianie odbywa się domyślnie w ten sposób, ponieważ tylko nadawca zna symetryczny tajny klucz i może zaszyfrować ten pakiet. Tylko odbiorca zna tajny klucz symetryczny i może odszyfrować ten pakiet.

Nadawca przesyła zaszyfrowany tekst. Symetryczny klucz tajny nigdy nie jest przesyłany przez niezabezpieczone kanały komunikacyjne.

Odbiorca używa tego samego symetrycznego algorytmu szyfrowania i deszyfrowania wraz z tym samym kluczem symetrycznym (który odbiorca już posiada) do zaszyfrowanego tekstu, aby odzyskać oryginalny tekst i podpis cyfrowy. Jego udane odzyskanie uwierzytelnia kogoś, kto zna tajny klucz.

Odbiorca oddziela podpis elektroniczny od tekstu.

Odbiorca tworzy kolejny podpis elektroniczny, obliczając funkcję skrótu dla otrzymanego tekstu.

Odbiorca porównuje te dwa podpisy elektroniczne, aby sprawdzić integralność wiadomości (brak jej zniekształcenia)

Dostępne dziś narzędzia wykorzystujące metodologię symetryczną to:

Kerberos, który został zaprojektowany do uwierzytelniania dostępu do zasobów w sieci, a nie do weryfikacji danych. On używa centralna baza dane, które przechowują kopie tajnych kluczy wszystkich użytkowników.

Sieci bankomatów (ATM BankingNetworks). Systemy te są oryginalnymi rozwiązaniami banków, które są ich właścicielami i nie są na sprzedaż. Używają również symetrycznych metodologii.

Porównanie z asymetrycznymi kryptosystemami

Zalety

prędkość (według AppliedCryptography – 3 rzędy wielkości wyższa)

łatwość wdrożenia (ze względu na prostsze operacje)

krótsza długość klucza wymagana dla porównywalnej trwałości

wiedza (ze względu na wiek)

Wady

złożoność zarządzania kluczami w dużej sieci. Oznacza kwadratowy wzrost liczby par kluczy, które muszą być generowane, przesyłane, przechowywane i niszczone w sieci. Dla sieci 10 abonentów wymagane jest 45 kluczy, dla 100 już 4950, dla 1000 - 499500 itd.

złożoność wymiany kluczy. Do zastosowania konieczne jest rozwiązanie problemu niezawodnej transmisji kluczy do każdego abonenta, ponieważ do przesłania każdego klucza do obu stron potrzebny jest tajny kanał.

Aby zrekompensować niedociągnięcia szyfrowania symetrycznego, obecnie powszechnie stosuje się łączony (hybrydowy schemat kryptograficzny), w którym klucz sesji jest przesyłany przy użyciu szyfrowania asymetrycznego, które jest wykorzystywane przez strony do wymiany danych przy użyciu szyfrowania symetrycznego.

Ważną właściwością szyfrów symetrycznych jest niemożność wykorzystania ich do potwierdzenia autorstwa, ponieważ klucz jest znany każdej ze stron.

W tej metodologii klucze do szyfrowania i deszyfrowania są różne, chociaż są tworzone razem. Jeden klucz jest znany wszystkim, a drugi jest trzymany w tajemnicy. Chociaż możliwe jest szyfrowanie i odszyfrowywanie za pomocą obu kluczy, dane zaszyfrowane jednym kluczem można odszyfrować tylko za pomocą drugiego klucza.

Wszystkie asymetryczne kryptosystemy podlegają atakom brute-force i dlatego muszą używać znacznie dłuższych kluczy niż te używane w symetrycznych kryptosystemach, aby zapewnić równoważny poziom ochrony. Ma to natychmiastowy wpływ na zasoby obliczeniowe wymagane do szyfrowania, chociaż algorytmy szyfrowania oparte na krzywej eliptycznej mogą złagodzić ten problem. Bruce Schneier w Applied Cryptography: Protocols, Algorithms and Source Code w C podaje następujące dane o równoważnych długościach kluczy.

Aby uniknąć niskiej szybkości algorytmów szyfrowania asymetrycznego, dla każdej wiadomości generowany jest tymczasowy klucz symetryczny i tylko on jest szyfrowany algorytmami asymetrycznymi. Sama wiadomość jest szyfrowana przy użyciu tego tymczasowego klucza sesji i algorytmu szyfrowania/odszyfrowywania. Ten klucz sesji jest następnie szyfrowany publicznym asymetrycznym kluczem odbiorcy i algorytm symetryczny szyfrowanie. Następnie zaszyfrowany klucz sesji wraz z zaszyfrowaną wiadomością jest przesyłany do odbiorcy. Odbiorca używa tego samego algorytmu szyfrowania asymetrycznego i swojego klucza prywatnego do odszyfrowania klucza sesji, a powstały klucz sesji służy do odszyfrowania samej wiadomości.

W asymetrycznych kryptosystemach ważne jest, aby klucze sesji i klucze asymetryczne były porównywalne pod względem zapewnianego przez nie poziomu bezpieczeństwa. Jeśli używany jest krótki klucz sesji (np. 40-bitowy DES), nie ma znaczenia, jak duże są klucze asymetryczne. Hakerzy nie będą ich atakować, ale klucze sesji. Asymetryczne klucze publiczne są podatne na ataki siłowe, po części dlatego, że trudno je zastąpić. Jeśli atakujący pozna tajny klucz asymetryczny, to nie tylko bieżące, ale także wszystkie późniejsze interakcje między nadawcą a odbiorcą zostaną naruszone.

Jak korzystać z systemów z kluczami asymetrycznymi:

Asymetryczne klucze publiczne i prywatne są bezpiecznie generowane i dystrybuowane. Tajny klucz asymetryczny jest przekazywany jego właścicielowi. Publiczny klucz asymetryczny jest przechowywany w bazie danych X.500 i administrowany przez urząd certyfikacji (w języku angielskim, CertificationAuthority lub CA). Oczekuje się, że użytkownicy będą ufać, że taki system bezpiecznie tworzy, dystrybuuje i administruje kluczami. Co więcej, jeśli twórca kluczy i osoba lub system, który nimi administruje, nie są tym samym, to użytkownik końcowy musi wierzyć, że twórca kluczy faktycznie zniszczył ich kopię.

Podpis elektroniczny tekstu jest tworzony przez obliczenie jego funkcji skrótu. Odebrana wartość jest szyfrowana za pomocą asymetrycznego tajnego klucza nadawcy, a następnie odebrany ciąg znaków jest dodawany do przesyłanego tekstu (tylko nadawca może złożyć podpis elektroniczny).

Tworzony jest tajny klucz symetryczny, który posłuży do zaszyfrowania tylko tej wiadomości lub sesji interakcji (klucz sesji), następnie za pomocą algorytmu symetrycznego szyfrowania/odszyfrowywania i tego klucza szyfrowany jest tekst źródłowy wraz z dodanym do niego podpisem elektronicznym – otrzymuje się tekst zaszyfrowany (tekst zaszyfrowany).

Teraz musimy rozwiązać problem przekazania klucza sesji odbiorcy wiadomości.

Nadawca musi mieć klucz publiczny asymetrycznego urzędu certyfikacji (CA). Przechwytywanie niezaszyfrowanych żądań dotyczących tego klucza publicznego jest powszechną formą ataku. Może istnieć cały system certyfikatów uwierzytelniających klucz publiczny urzędu certyfikacji. Standard X.509 opisuje szereg metod uzyskiwania kluczy publicznych CA przez użytkowników, ale żadna z nich nie jest w stanie całkowicie zabezpieczyć się przed podszywaniem się pod klucz publiczny CA, co jednoznacznie dowodzi, że nie ma takiego systemu, w którym autentyczność klucza publicznego CA można zagwarantować.

Nadawca prosi urząd certyfikacji o asymetryczny klucz publiczny odbiorcy wiadomości. Proces ten jest podatny na atak, w którym atakujący zakłóca komunikację między nadawcą a odbiorcą i może modyfikować ruch przesyłany między nimi. Dlatego asymetryczny klucz publiczny odbiorcy jest „podpisywany” przez urząd certyfikacji. Oznacza to, że urząd certyfikacji użył swojego asymetrycznego tajnego klucza do zaszyfrowania asymetrycznego klucza publicznego odbiorcy. Tylko urząd certyfikacji zna asymetryczny klucz prywatny urzędu certyfikacji, więc istnieją gwarancje, że asymetryczny klucz publiczny odbiorcy pochodzi z urzędu certyfikacji.

Po otrzymaniu asymetryczny klucz publiczny odbiorcy jest odszyfrowywany przy użyciu asymetrycznego klucza publicznego urzędu certyfikacji i algorytmu asymetrycznego szyfrowania/deszyfrowania. Oczywiście zakłada się, że CA nie został naruszony. Jeśli okaże się, że został naruszony, wyłącza to całą sieć jego użytkowników. Dlatego możesz samodzielnie zaszyfrować klucze publiczne innych użytkowników, ale gdzie jest pewność, że nie zostaną naruszone?

Klucz sesji jest teraz zaszyfrowany przy użyciu algorytmu asymetrycznego szyfrowania i deszyfrowania oraz klucza asymetrycznego odbiorcy (uzyskanego z urzędu certyfikacji i odszyfrowanego).

Zaszyfrowany klucz sesji jest dołączany do zaszyfrowanego tekstu (który zawiera również dodany wcześniej podpis elektroniczny).

Cały odebrany pakiet danych (tekst zaszyfrowany, który oprócz tekstu oryginalnego zawiera jego podpis elektroniczny oraz zaszyfrowany klucz sesji) jest przesyłany do odbiorcy. Ponieważ zaszyfrowany klucz sesji jest przesyłany przez niezabezpieczoną sieć, jest oczywistym celem różnych ataków.

Odbiorca wyodrębnia zaszyfrowany klucz sesji z odebranego pakietu.

Teraz odbiorca musi rozwiązać problem z odszyfrowaniem klucza sesji.

Odbiorca musi mieć klucz publiczny asymetrycznego urzędu certyfikacji (CA).

Używając tajnego klucza asymetrycznego i tego samego algorytmu szyfrowania asymetrycznego, odbiorca odszyfrowuje klucz sesji.

Odbiorca stosuje ten sam symetryczny algorytm szyfrowania-deszyfrowania i odszyfrowany klucz symetryczny (sesyjny) do zaszyfrowanego tekstu i otrzymuje tekst jawny wraz z podpisem elektronicznym.

Odbiorca oddziela podpis elektroniczny od oryginalnego tekstu.

Odbiorca żąda od urzędu certyfikacji asymetrycznego klucza publicznego nadawcy.

Po odebraniu tego klucza odbiorca odszyfrowuje go przy użyciu klucza publicznego urzędu certyfikacji i odpowiedniego algorytmu asymetrycznego szyfrowania i deszyfrowania.

Funkcja skrótu tekstu jest następnie deszyfrowana przy użyciu klucza publicznego nadawcy i algorytmu asymetrycznego szyfrowania i deszyfrowania.

Funkcja skrótu otrzymanego tekstu źródłowego jest ponownie obliczana.

Dwie funkcje skrótu są porównywane w celu sprawdzenia, czy tekst nie został zmodyfikowany.

Funkcje systemu

Podanie

Algorytmy kryptosystemowe z klucz publiczny może być zastosowane

Jako niezależne środki ochrony przesyłanych i przechowywanych informacji

Jako środek dystrybucji kluczy. Zwykle za pomocą algorytmów kryptosystemu klucza publicznego dystrybuowane są klucze o małej objętości. A transmisja dużych przepływów informacji odbywa się przy użyciu innych algorytmów.

Jako środek uwierzytelniania użytkownika.

Zalety: Przewaga szyfrów asymetrycznych nad symetrycznymi polega na tym, że nie ma potrzeby uprzedniego przesyłania tajnego klucza bezpiecznym kanałem.

W kryptografii symetrycznej klucz jest utrzymywany w tajemnicy dla obu stron, podczas gdy w kryptosystemie asymetrycznym tylko jeden jest utrzymywany w tajemnicy.

Przy szyfrowaniu symetrycznym konieczna jest aktualizacja klucza po każdej transmisji, podczas gdy w kryptosystemach asymetrycznych para (E,D) może pozostać niezmieniona przez dłuższy czas.

W dużych sieciach liczba kluczy w asymetrycznym kryptosystemie jest znacznie mniejsza niż w symetrycznym.

Wady: Zaletą algorytmu szyfrowania symetrycznego nad szyfrowaniem asymetrycznym jest to, że ten pierwszy jest stosunkowo łatwy do zmodyfikowania.

Chociaż wiadomości są bezpiecznie zaszyfrowane, odbiorca i nadawca są „podkreślani” przez sam fakt wysłania zaszyfrowanej wiadomości.

Algorytmy asymetryczne używają dłuższych kluczy niż symetryczne. Poniżej znajduje się tabela porównująca długość klucza algorytmu symetrycznego z długością klucza algorytmu asymetrycznego o podobnej sile kryptograficznej:

Proces szyfrowania-odszyfrowywania przy użyciu pary kluczy jest o dwa do trzech rzędów wielkości wolniejszy niż szyfrowanie-deszyfrowanie tego samego tekstu przy użyciu algorytmu symetrycznego.

W czystej postaci asymetryczne kryptosystemy wymagają znacznie większych zasobów obliczeniowych, dlatego w praktyce stosuje się je w połączeniu z innymi algorytmami.

W przypadku EDS wiadomość jest wstępnie haszowana, a za pomocą klucza asymetrycznego podpisywany jest tylko stosunkowo niewielki wynik funkcji haszującej.

Do szyfrowania wykorzystuje się je w postaci hybrydowych kryptosystemów, w których duże ilości danych są szyfrowane szyfrem symetrycznym na kluczu sesji, a sam klucz sesji jest przesyłany za pomocą szyfru asymetrycznego.

W kryptografii kryptoanaliza liniowa jest metodą ataku kryptoanalitycznego, która wykorzystuje przybliżenia liniowe do opisu działania szyfru.

Kryptoanaliza liniowa została wynaleziona przez japońskiego kryptologa Mitsuru Matsui. Algorytm zaproponowany przez niego w 1993 roku (na Eurocrypt-93) pierwotnie miał na celu złamanie DES i FEAL. Następnie liniowa kryptoanaliza została rozszerzona na inne algorytmy. Obecnie, obok kryptoanalizy różnicowej, jest to jedna z najczęstszych metod łamania szyfrów blokowych. Opracowano ataki szyfrujące blokowe i strumieniowe.

Odkrycie kryptoanalizy liniowej dało impuls do budowy nowych schematów kryptograficznych.

Zasada działania

Kryptanaliza przebiega w dwóch etapach. Pierwszym z nich jest budowanie relacji między tekstem jawnym, tekstem zaszyfrowanym i kluczem, które są prawdziwe z dużym prawdopodobieństwem. Drugim jest użycie tych proporcji, wraz ze znanymi parami tekstu jawnego-tekst zaszyfrowany, w celu uzyskania bitów klucza.

Ochrona przed kryptoanalizą liniową

Aby zaatakować szyfr blokowy za pomocą kryptoanalizy liniowej, wystarczy, jak opisano powyżej, uzyskać zależność liniową, która jest znacznie przesunięta w prawdopodobieństwie od 1/2. W związku z tym pierwszym celem przy projektowaniu szyfru odpornego na ataki jest zminimalizowanie błędu probabilistycznego, aby zapewnić, że taki związek nie istnieje. Innymi słowy, należy upewnić się, że przy każdej zmianie tekstu lub klucza w otrzymanym szyfrogramie dokładnie połowa bitów zmienia swoją wartość na przeciwną, a każdy bit zmienia się z prawdopodobieństwem 1/2. Zwykle osiąga się to poprzez wybór wysoce nieliniowych skrzynek S i zwiększenie dyfuzji.

Takie podejście zapewnia dobre uzasadnienie bezpieczeństwa szyfru, ale aby rygorystycznie udowodnić bezpieczeństwo przed kryptoanalizą liniową, projektanci szyfrów muszą wziąć pod uwagę bardziej złożone zjawisko, efekt linearhulle.

Nieco bardziej ogólna teoria dowodzenia bezpieczeństwa przed klasą ataków oparta na liniowej kryptoanalizie opiera się na koncepcji dekorelacji. Teoria sugeruje, że urządzenie jest tak zwanym modułem dekorelacji, skutecznie blokującym propagację tradycyjnych charakterystyk liniowych i różniczkowych. Należy zauważyć, że szyfry, które są optymalne w przypadku niektórych wąskich klas ataków, są zwykle słabe w przypadku innych rodzajów ataków.

Zarządzanie kluczami (KM) jest tak ważnym i rozwiniętym obszarem kryptografii, że wymaga osobnego i szczegółowego rozważenia. Ogromny zestaw różnych funkcji jest przypisany do systemów MC, zapewniających różnorodne podstawowe i nowo nabyte właściwości kryptosystemów, w które są wyposażone. Takie schematy mogą wykonywać przechowywanie, przekazywanie, szyfrowanie (tj. prywatność), uwierzytelnianie, depozyt i udostępnianie kluczy. Jedyną wspólną właściwością systemów CM jest to, że w wyniku różnych przekształceń muszą dostarczyć do kryptosystemu klucz (symetryczny lub asymetryczny), na którym będzie wykonywany główny proces szyfrowania dokumentu. Techniczne wdrożenia systemów zarządzania kluczami publicznymi (PKI -- PublicKeyInfrastructure)

W zależności od tego, jaki typ klucza generuje w rezultacie system CM, dzieli się je na systemy sterowania z kluczami symetrycznymi i systemy sterowania z kluczami asymetrycznymi. Symetryczne systemy zarządzania kluczami są dalej podzielone na systemy z początkowymi kluczami głównymi i systemy z zerowymi informacjami początkowymi. Systemy depozytowe kluczy i systemy udostępniania tajnych są traktowane jako osobny materiał. Niestety, ta sekcja nie mogę zakryć nawet połowy różne schematy Oparte na nich protokoły CC i kryptograficzne - do tej pory naukowcy opracowali ponad sto różnych schematów. Coraz powszechniejsze obecnie wprowadzenie trzeciego podmiotu kryptooperacji - zaufanych osób o różnych funkcjach i uprawnieniach - wygenerowało całą falę protokołów, które zapewniają nowe właściwości kryptosystemów (odwołanie, potwierdzenie daty/godziny podpisania, deponowanie kluczy itp.).

Z wstępną częściową instalacją

Wszystkie systemy zarządzania kluczami symetrycznymi, niezależnie od liczby uczestników zaangażowanych w proces, są klasyfikowane przede wszystkim do systemów, w których kanały bezpieczeństwa są już ustanowione między podmiotami (czyli istnieją tajne klucze główne), oraz systemy, w których ten kanał jest nie. W pierwszym przypadku głównym celem systemu zarządzania kluczami jest albo generowanie kluczy sesji, albo aktualizacja informacji o kluczu, albo najczęściej wymiana tajnego klucza pomiędzy dwoma subskrybentami, którzy wcześniej takiego klucza nie posiadali bezpośrednio, chociaż łańcuch zaufane relacje (na przykład poprzez wspólnego przyjaciela) już istniały. W drugim przypadku, gdy dwóch użytkowników nie posiada żadnych wspólnych tajnych informacji, muszą zainstalować klucz i w taki sposób, aby atakujący nasłuchujący całej wymiany wiadomości nie mógł stworzyć swojej „trzeciej” kopii klucza.

Przypadek, w którym dwóch abonentów może już komunikować się ze sobą bezpiecznym kanałem, a jednocześnie chce wymieniać „świeże” kluczowe informacje, w rzeczywistości nie zawiera praktycznie żadnych niuansów. Trzeba tylko zwrócić uwagę na niemożność ponownego wysłania przez atakującego przechwyconego wcześniej pakietu z tymi samymi informacjami. W tym celu do systemu wprowadzane są liczniki autoinkrementacji i/lub znaczniki daty/czasu.

Nieco większym zainteresowaniem cieszą się systemy z trzema podmiotami: dwoma subskrybentami i zaufanym serwerem kluczy. W takim przypadku serwer jest uważany za obsługujący duża liczba równych klientów, z każdym z nich serwer ustanowił już bezpieczny kanał komunikacji, czyli odbyła się wymiana kluczy. Teraz, na pewnym etapie funkcjonowania systemu, dwóch klientów serwera, którzy nigdy wcześniej nie komunikowali się ze sobą, miało ochotę wymienić się pewnymi prywatnymi informacjami.

W takiej sytuacji klasyczny protokół ustanawiania klucza sesji wygląda mniej więcej tak: --Gość A jest wyznaczony, wywoływany abonent to B, zaufany serwer to S, klucz, na który a priori wymienił A i S to „A-S”, klucz pomiędzy abonentem B i S to „B-S”.

Klucze bez preinstalacji

Zadaniem protokołów tej klasy jest stworzenie identycznych kluczowych informacji dla dwóch abonentów na podstawie wiadomości przesyłanych otwartymi kanałami komunikacyjnymi i to w taki sposób, aby żadna osoba trzecia, która zapisuje wszystkie przeszłe negocjacje, nie mogła otrzymać tego klucza . Na pierwszy rzut oka zadanie wydaje się całkowicie nie do rozwiązania, ale metody osiągnięcia tego celu istnieją i są bardzo niezawodne. Podstawą takich protokołów są schematy bardzo podobne do szyfrowania asymetrycznego.

Początkowo wszystkie strony zaangażowane w wymianę kluczy uzgadniają dużą liczbę pierwszą P (co nie jest tajemnicą). Dowolnych dwóch subskrybentów (A i B), którzy chcą utworzyć tajny klucz sesji:

Tworzą odpowiednio dwie duże liczby losowe (a i b), a także ich odwrotności modulo p (a-1 modp i b-1 mod p) i trzymają je w tajemnicy w swoich systemach.

Dzwoniący generuje klucz sesji k(k< р-2) и возводит его в степень а по модулю р, после чего отправляет полученное выражение вызываемому абоненту: M1=ka mod p.

Strona wywoływana podnosi otrzymaną wiadomość do potęgi b i odsyła ją z powrotem: M2 = (M1b mod p) = (kab mod p).

Dzwoniący odszyfrowuje otrzymany numer przez odwrócenie numeru a i odsyła: M3 = (M2-b mod p) = (kb mod p).

Na koniec abonent B odszyfrowuje ostatnią wiadomość przez odwrócenie liczby bi uzyskuje żądany klucz sesji: k= (MS-b mod p) = (k mod p).

Kryptografia asymetryczna, która wydawała się rozwiązywać problem poufności wiadomości bez uprzedniego przesyłania tajnego klucza bezpiecznym kanałem, przeniosła ten problem tylko w nieco inny obszar. Na pierwszy rzut oka na system asymetryczny wydaje się, że „przeszukaj sieć w poszukiwaniu klucza publicznego odbiorcy, zaszyfruj nim wiadomość i – osiągnięto poufność”. Ale w tym miejscu pojawia się pośredniczący atakujący - to on może hipotetycznie umieścić swój klucz publiczny pod nazwą subskrybenta odbiorcy i jego adresem pocztowym na wielu serwerach w sieci. W przyszłości, po otrzymaniu dowolnego listu, odszyfrowuje go swoim kluczem prywatnym, odczytuje i wysyła do prawdziwego odbiorcy, po zaszyfrowaniu go prawdziwym kluczem publicznym, który naprawdę zna. Jednocześnie schematy EDS nie zapisują, jeśli atakujący zmienił klucze publiczne zarówno nadawcy, jak i odbiorcy. Te rozważania prowadzą do tego, że nadal potrzebny jest wstępny bezpieczny kanał - do przesłania klucza publicznego i adresu pocztowego lub przynajmniej jakiegoś potwierdzającego bloku danych (na przykład sumy skrótu klucza publicznego).

Jednak technologie asymetryczne dokonały znacznie większego przełomu w schematach dystrybucji kluczy niż symetryczne - wynaleziono certyfikaty. Certyfikat to blok informacji zawierający dane jednoznacznie identyfikujące subskrybenta, jego klucz publiczny i adres transportowy, a ten blok informacji jest podpisany za pomocą EDS innej osoby. Subskrybent, o którym mowa w certyfikacie, nazywany jest właścicielem klucza, podmiot sieciowy, który podpisał certyfikat, nazywany jest osobą poświadczającą (w prawie Federacji Rosyjskiej „On podpis cyfrowy" - Centrum weryfikacji). Załóżmy, że subskrybent A nigdy nie komunikował się z subskrybentem C i nie może zweryfikować autentyczności swojego klucza publicznego, ale zarówno A, jak i C komunikowali się z jakimś subskrybentem B - wtedy B może występować jako osoba poświadczająca i podpisać certyfikat dla właściciela klucza C. Następnie subskrybent A, po otrzymaniu certyfikatu i zweryfikowaniu podpisu B, którego klucza publicznego ma pewność, może odtąd polegać na kluczu publicznym subskrybenta C.

Na czym polega „przełom” w schemacie dystrybucji kluczy? Wspaniałą rzeczą w certyfikatach jest to, że ich użycie można ze sobą łączyć. Rzeczywiście załóżmy, że dwóch abonentów A i D, którzy chcieli się porozumieć, nie mogło znaleźć wspólnego znajomego, ale okazało się, że A zna niektórych B, a D zna niektórych C, którzy się znają. Tak więc B może wysłać A certyfikat o kluczu C, a C może wysłać A certyfikat o kluczu D. W rezultacie A zyskuje pewność, że klucz publiczny D, który ma w rękach, jest prawdziwy. W ten sposób zbudowano łańcuch zaufania, który w swej istocie reprezentuje ten sam wstępny bezpieczny kanał pomiędzy A i D (nadawca i odbiorca), ale ten kanał został złożony (i według bardzo prostego i pewnego schematu) z kilku już istniejących, oczyszczonych kanały. Możliwość takiej konstrukcji bezpiecznego kanału „na żądanie” z kilku krótkich już istniejących jest zaletą otwartej kryptografii.

Obecnie rozwój opisywanego schematu na całym świecie jest bardzo intensywny. Pojawiły się następujące główne trendy. Najpierw zaczęły pojawiać się podmioty, których jedyną funkcją jest przechowywanie i certyfikacja kluczy – urzędy certyfikacji (English CertificationAuthority – CA). Po drugie, duzi producenci aktywnie włączyli się w proces tworzenia łańcuchów zaufania. oprogramowanie. Rzeczywiście, jeśli użytkownik komputera nabywa licencjonowane oprogramowanie w markowym, zapieczętowanym pudełku z hologramem i innymi fizycznymi stopniami ochrony, wówczas zadanie sfałszowania klucza publicznego znajdującego się na tym dysku staje się o rząd wielkości trudniejsze. Posiadając kilka niezawodnych kluczy publicznych dużych producentów oprogramowania, użytkownik jest już w stanie zbudować wiele łańcuchów zaufania dla milionów subskrybentów. A sami producenci oprogramowania otrzymują w formie dywidendy możliwość autentycznego wysyłania aktualizacji oprogramowania przez sieć, podpisanych tymi samymi kluczami, których otwarte połówki zostały umieszczone na oryginalnej płycie CD.

V deszczowy dzień dla rosji 7 lipca 2016 r., wraz z podpisaniem pakietu poprawek Yarovaya, prezydent Putin polecił rządowi zwrócić uwagę na stosowanie ustawy „o odpowiedzialności za użycie niecertyfikowanych środków kodowania (szyfrowania) w sieciach komunikacyjnych i (lub) przy przekazywaniu komunikatów w internetowej sieci informacyjnej i telekomunikacyjnej” , a także „rozwój i utrzymanie przez uprawniony organ w zakresie bezpieczeństwa Federacja Rosyjska rejestr organizatorów rozpowszechniania informacji w Internecie, udostępniający na żądanie uprawnionych organów informacje niezbędne do dekodowania otrzymywanych, przesyłanych, dostarczanych i (lub) przetwarzanych wiadomości elektronicznych w przypadku ich dodatkowego kodowania.

FSB została poinstruowana o zatwierdzenie procedury certyfikacji środków kodowania przy przekazywaniu wiadomości w Internecie, ustalenie wykazu środków podlegających certyfikacji, a także procedury przekazywania kluczy szyfrowania do uprawnionego organu w zakresie bezpieczeństwa państwa. Jest to konieczne, aby agencje wywiadowcze mogły w razie potrzeby uzyskać klucze i odszyfrować ruch HTTPS oraz inne zaszyfrowane dane użytkownika. Środek ten wchodzi w życie teraz, czyli półtora roku przed wejściem w życie normy o obowiązkowym przechowywaniu całego ruchu przez okres do sześciu miesięcy.

W dniu 12 sierpnia 2016 r. Federalna Służba Bezpieczeństwa Federacji Rosyjskiej opublikowała zarządzenie nr 432 z dnia 19 lipca 2016 r. Nr 432 „W sprawie zatwierdzenia procedury przekazywania przez organizatorów informacji w internetowej sieci informacyjnej i telekomunikacyjnej do Federalnej Służby Bezpieczeństwa Federacji Rosyjskiej z informacjami niezbędnymi do dekodowania otrzymanych, przesłanych, dostarczonych i (lub) przetworzonych wiadomości elektronicznych użytkowników sieci informacyjnej i telekomunikacyjnej „Internet”.

To zamówienie określa procedurę uzyskiwania kluczy szyfrowania od właścicieli serwerów i innych usług internetowych. Procedura jest dość logiczna i prosta.

1. Organizator rozpowszechniania informacji w Internecie przekazuje informacje do rozszyfrowania na podstawie wniosku uprawnionej jednostki podpisanego przez kierownika (zastępcę kierownika).

4. Informacje są przesyłane na nośniku magnetycznym pocztą lub za pomocą e-mail. Alternatywnie można skoordynować z FSB dostęp specjalistów do informacji do dekodowania.


Dział Organizacyjno-Analityczny Służby Naukowo-Technicznej został wyznaczony upoważnionym wydziałem FSB do pozyskiwania kluczy szyfrujących Służba Federalna bezpieczeństwo Federacji Rosyjskiej.

Dla odniesienia, do nośniki magnetyczne odnieść się dyski magnetyczne, karty magnetyczne, taśmy magnetyczne i bębny magnetyczne.

Jeśli właściciel serwera odmówi podania klucza wymaganego do odszyfrowania HTTPS lub innego zaszyfrowanego ruchu, może zostać ukarany grzywną w wysokości miliona rubli.

Jeszcze przed publikacją konkretnej procedury przekazywania kluczy przedstawiciele niektórych firm internetowych wyrażali wątpliwości co do możliwości egzekwowania prawa dotyczącego przekazywania kluczy szyfrujących. Mówią, że podczas korzystania z protokołu HTTPS klucze szyfrowania nie mogą być technicznie przechowywane.

Ale, jak mówią, szeryf nie przejmuje się problemami Indian. Procedura została ustalona - należy jej przestrzegać.

(PROCHOWIEC). W przypadku korzystania z tego samego algorytmu wynik szyfrowania zależy od klucza. W przypadku nowoczesnych algorytmów silnej kryptografii utrata klucza praktycznie uniemożliwia odszyfrowanie informacji.

Dla nowoczesnych algorytmów symetrycznych (AES , CAST5 , IDEA , Blowfish , Twofish ) główną cechą siły kryptograficznej jest długość klucza. Rozważane jest szyfrowanie kluczami 128-bitowymi lub większymi mocny, ponieważ odszyfrowanie informacji bez klucza zajmuje lata potężnych superkomputerów. W przypadku algorytmów asymetrycznych opartych na zagadnieniach teorii liczb (problem faktoryzacji - RSA , problem logarytmów dyskretnych - Elgamal), ze względu na ich cechy minimalna wiarygodna długość klucza wynosi obecnie 1024 bity. W przypadku algorytmów asymetrycznych opartych na wykorzystaniu teorii krzywych eliptycznych (ECDSA, GOST R 34.10-2001, DSTU 4145-2002) minimalna wiarygodna długość klucza wynosi 163 bity, ale zalecane są długości 191 bitów i więcej.

Kluczowa klasyfikacja

Klucze kryptograficzne różnią się w zależności od algorytmów, w których są używane.

  • Klucze tajne (symetryczne)- klucze stosowane w algorytmach symetrycznych (szyfrowanie, generowanie kodów uwierzytelniających). Główna właściwość kluczy symetrycznych: aby wykonać zarówno w przód, jak i w odwrotną transformację kryptograficzną (szyfrowanie / deszyfrowanie, obliczanie MAC / weryfikacja MAC), należy użyć tego samego klucza (lub tego samego klucza do odwrotna transformacja można łatwo obliczyć na podstawie klucza do bezpośredniej konwersji i na odwrót). Z jednej strony zapewnia to większą poufność wiadomości, z drugiej stwarza problemy z dystrybucją kluczy w systemach z duża ilość użytkowników.
  • Klawisze asymetryczne- klucze stosowane w algorytmach asymetrycznych (szyfrowanie, EDS); ogólnie rzecz biorąc, są para kluczy, ponieważ składają się z dwóch kluczy:
    • prywatny klucz(pl:Klucz prywatny) - klucz znany tylko jego właścicielowi. Tylko zachowanie w tajemnicy swojego klucza prywatnego przez użytkownika gwarantuje brak możliwości sfałszowania dokumentu i podpisu cyfrowego w imieniu osoby certyfikującej.
    • klucz publiczny(pl:Public key) – klucz, który można opublikować i wykorzystać do weryfikacji autentyczności podpisanego dokumentu, a także do zapobiegania oszustwom ze strony certyfikującego w postaci odmowy podpisania dokumentu. Klucz publiczny podpisu jest obliczany jako wartość jakiejś funkcji klucza prywatnego, ale znajomość klucza publicznego nie pozwala określić prywatny klucz.

Główną właściwością pary kluczy jest to, że łatwo jest obliczyć klucz publiczny na podstawie tajnego klucza, ale obliczenie tajnego klucza na podstawie znanego klucza publicznego jest prawie niemożliwe. W algorytmach Podpis EDS zwykle ustawiany na kluczu prywatnym użytkownika i sprawdzany na kluczu publicznym. Więc każdy może sprawdzić, czy dany użytkownik ustawić dany podpis. W ten sposób algorytmy asymetryczne zapewniają nie tylko integralność informacji, ale także ich autentyczność. Natomiast w przypadku szyfrowania wiadomości są szyfrowane kluczem publicznym i odszyfrowywane tajnym kluczem. Tak więc tylko adresat i nikt inny (w tym nadawca) może odszyfrować wiadomość. Zastosowanie algorytmów asymetrycznych usuwa problem dystrybucji kluczy użytkownika w systemie, ale stwarza nowe problemy: niezawodność otrzymanych kluczy. Problemy te są mniej lub bardziej skutecznie rozwiązywane w ramach infrastruktury klucza publicznego (PKI).

  • Klucze sesji (sesji)- klucze generowane między dwoma użytkownikami, zwykle w celu ochrony kanału komunikacji. Zwykle kluczem sesji jest wspólny sekret- informacje generowane na podstawie klucza tajnego jednej strony i klucza publicznego drugiej strony. Istnieje kilka protokołów generowania kluczy sesji i wspólnych sekretów, w tym w szczególności algorytm Diffie-Hellmana.
  • podłącz- kluczowe informacje generowane podczas działania algorytmu kryptograficznego opartego na kluczu. Często podklucze są generowane na podstawie specjalnej procedury wdrażania klucza.

Zobacz też


Fundacja Wikimedia. 2010 .

Zobacz, co „Klucz (kryptografia)” znajduje się w innych słownikach:

    Klucz: Wikisłownik zawiera wpis dla "klucza" Wody gruntowe płyną na powierzchnię ziemi ... Wikipedia

    Klucz to narzędzie do otwierania zamka. Klucz nastawny, klucz nastawny do odkręcania połączeń śrubowych. Klucz (kryptografia) Informacje używane przez algorytm do przekształcania wiadomości podczas szyfrowania lub deszyfrowania. Klucz ... ... Wikipedia

    Termin ten ma inne znaczenia, patrz Klucz(e). Klucz w dziurce od klucza B... Wikipedia

    - (po grecku, z tajemnicy kryptos, a ja piszę grapho). Pismo w znakach umownych (zaszyfrowane), znane tylko tym, którzy otrzymują specjalny klucz do czytania. Słownik wyrazów obcych zawartych w języku rosyjskim. Chudinov A.N., 1910. KRYPTOGRAFIA ... ... Słownik wyrazów obcych języka rosyjskiego

    Niemiecka kryptomaszyna Lorenz była używana podczas II wojny światowej do szyfrowania najbardziej tajnych wiadomości Kryptografia (z innych greckich ... Wikipedia

    Główny artykuł: Historia kryptografii Kserokopia telegramu Zimmermanna Podczas I wojny światowej kryptografia, aw szczególności kryptoanaliza, stała się jednym z narzędzi walki. Znane fakty ... Wikipedia

    Spis treści 1 Imperium Rosyjskie 1.1 Armia 1.2 Marynarka wojenna 2 Imperium Brytyjskie 3 F ... Wikipedia

    KRYPTOGRAFIA- (z greckiego „cryptos” tajemnica, ukryta) sztuka pisania tajne kody i ich odszyfrowanie. Stąd wzięło się pojęcie „kryptogramu”, czyli czegoś zapisanego szyfrem lub w innej formie zrozumiałej tylko dla tych, którzy mają do niego klucz. V… … Symbole, znaki, emblematy. Encyklopedia

    Kryptografia klucza publicznego/KRYPTOGRAFIA KLUCZA PUBLICZNEGO- Zaprojektowany przez Whitfielfa Diffi. Używa pary kluczy, z których każda ma następujące właściwości: wszystko zaszyfrowane przez jeden z nich może zostać odszyfrowane przez drugie; mając jeden klucz z pary, zwany publicznym... Słownik na społeczeństwo informacyjne i nowa gospodarka

    Termin ten ma inne znaczenia, patrz Klucz. Klucz w dziurce od klucza ... Wikipedia

Klucz szyfrowania to tajne informacje używane do szyfrowania danych. To klucz szyfrowania określa siłę algorytmu szyfrowania.

Zarządzanie kluczami szyfrującymi jest jednym z najtrudniejszych zadań kryptografii stosowanej, które pojawia się przy budowie i eksploatacji systemów ochrony informacji kryptograficznej. Niedociągnięcia w różnych elementach systemu zarządzania kluczami – generowanie, przechowywanie, użytkowanie, dystrybucja – są głównymi przyczynami kompromitacji systemów bezpieczeństwa informacji. W związku z tym system bezpieczeństwo informacji Szczególną uwagę przywiązuje się do zarządzania cyklem życia klucza Stealthphone, od wygenerowania do usunięcia lub zmiany.

Kontrola jakości kluczy

Podczas generowania kluczy, zarówno przy użyciu rozwiązania sprzętowego i programowego Stealthphone Key Hard, jak i przy użyciu rozwiązania programowe Stealthphone Key Soft lub Stealthphone Tell, jakość kluczy jest stale monitorowana pod kątem ich niezawodności.

Generatory sprzętu wykorzystują czujniki losowe liczby, w oparciu o procesy fizyczne, których właściwości zostały potwierdzone specjalnymi badaniami laboratoryjnymi i zapewniają najwyższej jakości wygenerowane klucze szyfrowania.

Generatory oprogramowania są zbudowane na zasadzie ciągłej akumulacji entropii - naprawdę losowej sekwencji - i jej dalszego wykorzystania podczas wykonywania procedury generowania klucza

Dla wszystkich typów generacji wykonywanych jest kilka różnych procedur sterowania dynamicznego. charakterystyka statystyczna wygenerowane klucze.

Kluczowa klasyfikacja

  • Wszystkie klucze szyfrowania są podzielone na klucze szyfrowania danych i klucze szyfrowania kluczy. Oznacza to, że każdy klucz szyfrujący służy albo wyłącznie do szyfrowania danych (w tym mowy) albo wyłącznie do szyfrowania kluczy, w szczególności tych, na których szyfrowane są dane i mowa.
  • Wszystkie klucze są podzielone na długoterminowe i jednorazowe. Klucze długoterminowe są używane wielokrotnie przez pewien czas; klucze jednorazowe są używane raz do zaszyfrowania fragmentu danych lub mowy. Klucze długoterminowe obejmują wszystkie klucze szyfrowania kluczy, a także klucze szyfrowania danych w smartfonie lub komputerze; w przypadku kluczy długoterminowych przewidziane są procedury ich wymiany, zaplanowane lub nieplanowane - w przypadku utraty lub kompromisu.
  • Ponadto klucze szyfrowania mogą być uporządkowane w określonej hierarchii:
    • Na samej górze znajduje się klucz uwierzytelniający, który nie jest nigdzie przechowywany i jest generowany w wyniku procedury uwierzytelnienia abonenta przez urządzenie na podstawie hasła.
      • Dalej jest klucz główny zaszyfrowany przy użyciu klucza uwierzytelniania. Klucz główny szyfruje:
        • wszystkie klucze szyfrowania klucze szyfrowania danych
        • wszystkie klucze szyfrowania danych przechowywane w sprzętowym szyfratorze Stealthphone Hard lub telefon komórkowy(tablet).
    • Następny poziom to klucze szyfrowania kluczy szyfrowania danych. Klucze te są szyfrowane przy użyciu klucza głównego i służą do generowania kluczy sesji.
    • Na dolnym poziomie znajdują się klucze szyfrujące dane. Każdy taki klucz jest zaszyfrowany.
  • Do szyfrowania mowy używane są tylko jednorazowe klucze sesji, które są niszczone pod koniec konwersacji; ilość danych mowy zaszyfrowanych jednym kluczem sesji, więc czas jednej zaszyfrowanej sesji konwersacji również jest ograniczony.
  • Do szyfrowania przesyłanych danych wykorzystywane są tylko jednorazowe klucze; ilość danych zaszyfrowanych jednym kluczem sesji jest ograniczona; podczas szyfrowania, na przykład, dużego pliku, można użyć kilku kluczy sesji.

Przechowywanie długoterminowych kluczy szyfrujących

Klucze szyfrowania długoterminowego są przechowywane tylko w postaci zaszyfrowanej. W zależności od używanego produktu są one przechowywane w koderze sprzętowym (Stealthphone Hard) lub w koderze programowym (Stealthphone Soft, Stealthphone Tell).

Cechy systemu kluczy w systemie bezpieczeństwa informacji Stealthphone

W systemie Stealthphone bezpieczna wymiana informacji jest możliwa tylko w ramach jednej kryptosieci (sieci Stealthphone).

Każda para subskrybentów tej samej kryptonetu ma wspólny zestaw 4 różnych kluczy parowania, z których każdy odpowiada jednemu rodzajowi szyfrowania danych. Klucze parowania są używane w procedurze generowania kluczy sesji.

Dane głosowe są szyfrowane przy użyciu klucza sesji, który jest generowany przez połączenie klucza uzyskanego metodą ECDH i klucza komunikacyjnego tajnej pary współdzielonej przez dwóch abonentów do szyfrowania mowy.

Inne rodzaje danych są szyfrowane kluczami jednorazowymi, które są losowo i równie prawdopodobne, generowane po stronie nadawcy danych. Aby odbiorca mógł odszyfrować dane, jednorazowy klucz, podobnie jak same dane, jest szyfrowany algorytmem szyfrowania symetrycznego Tiger i przesyłany wraz z zaszyfrowanymi danymi. W tym przypadku szyfrowanie kluczy jednorazowych odbywa się na podstawie tajnego klucza sparowanego połączenia wspólnego dla dwóch abonentów, odpowiadającego rodzajowi szyfrowanych danych.

Klucze parowania szyfrowania mowy dla wszystkich abonentów sieci Stealthphone mogą być ułożone w kwadratowej tabeli (macierzy) o rozmiarze N × N zgodnie z następującą zasadą:

  • przekątna macierzy zawiera zero elementów
  • na przecięciu rzędu A i kolumny B znajduje się wspólny tajny klucz komunikacji w parach do szyfrowania mowy subskrybentów o kryptonumerach A i B
  • matryca jest symetryczna względem przekątnej.

W podobny sposób można tworzyć macierze kluczy parami dla innych typów danych.

Łącząc 4 macierze otrzymujemy ukośnie symetryczną pełną macierz kluczy parowania sieci Stealthphone (kompletną macierz kluczy), zawierającą wszystkie niezbędne klucze parowania dla wszystkich typów bezpiecznej wymiany informacji pomiędzy każdą parą abonentów.

Wiersz matrycy o numerze A tworzy zbiór wszystkich par kluczy komunikacyjnych do wymiany zaszyfrowanych informacji subskrybenta o kryptonumerze A z pozostałymi abonentami kryptosieci. Całkowita liczba kluczy parowania dla każdego abonenta do wymiany zaszyfrowanych informacji ze wszystkimi innymi abonentami sieci wynosi 4×(N - 1), gdzie N jest liczbą abonentów sieci.

Macierz kluczy parowania sieci Stealthphone, jak również wszystkie inne klucze abonenckie, jest generowana przez administratora sieci za pomocą kompleksu Stealthphone Key Soft. Klucze są zapisywane na urządzeniach abonenckich w miejscu pracy administratora za pomocą kompleksu Stealthphone Key lub przez samego abonenta za pomocą komputer osobisty, używając tablicy kluczy przygotowanych wcześniej przez administratora.

Aby zachować maksymalny poziom bezpieczeństwa i uprościć administrację systemem zarządzania kluczami, możliwe jest wstępne pobieranie kluczy na urządzenia abonenckie bez konieczności ich przepisywania w przypadku zmiany struktury sieci (w przypadku usunięcia/dodawania lub zmiany praw dostępu subskrybentów), kompromitowanie kluczy innych subskrybentów oraz zaplanowana zmiana klucze wszystkich abonentów kryptonetu.

W ten sposób, bootstrap klucze w urządzeniach abonenckich mogą wystarczyć na kilka lat pracy bez przepisywania.

klucza publicznego, zauważył, że wymóg ten zaprzecza całej istocie kryptografii, a mianowicie zdolności do zachowania powszechnej tajemnicy w komunikacji.

Drugim zadaniem jest konieczność stworzenia takich mechanizmów, za pomocą których nie byłoby możliwe zastąpienie któregokolwiek z uczestników tj. potrzebować podpis cyfrowy . W przypadku korzystania z komunikacji w szerokim zakresie celów, na przykład w celach komercyjnych i prywatnych, wiadomości i dokumenty elektroniczne muszą mieć odpowiednik podpisu zawartego w dokumentach papierowych. Konieczne jest stworzenie metody, dzięki której wszyscy uczestnicy będą przekonani, że wiadomość e-mail została wysłana przez konkretnego uczestnika. Jest to silniejszy wymóg niż uwierzytelnianie.

Diffie i Hellman osiągnęli znaczące wyniki, proponując sposób rozwiązania obu problemów, który radykalnie różni się od wszystkich poprzednich podejść do szyfrowania.

Przyjrzyjmy się najpierw wspólnym cechom. algorytmy szyfrowania z kluczem publicznym i wymaganiami dla tych algorytmów. Zdefiniujmy wymagania, jakie powinien spełniać algorytm, który wykorzystuje jeden klucz do szyfrowania, a inny do odszyfrowania, a ustalenie klucza deszyfrującego jest niemożliwe obliczeniowo, jeśli znany jest tylko algorytm szyfrowania i klucz szyfrowania.

Ponadto niektóre algorytmy, takie jak RSA, mają następującą cechę: każdy z dwóch kluczy może być używany zarówno do szyfrowania, jak i deszyfrowania.

Najpierw rozważymy algorytmy, które mają obie właściwości, a następnie przejdziemy do algorytmów z kluczem publicznym, które nie mają drugiej właściwości.

Opisując szyfrowanie symetryczne i szyfrowanie kluczem publicznym, będziemy używać następującej terminologii. klucz używany w szyfrowanie symetryczne, zadzwonimy sekretny klucz. Dwa klucze używane do szyfrowania klucza publicznego będą nazywane klucz publiczny oraz prywatny klucz. Klucz prywatny jest utrzymywany w tajemnicy, ale będziemy go nazywać kluczem prywatnym, a nie tajnym, aby uniknąć pomyłek z kluczem używanym w szyfrowanie symetryczne. Klucz prywatny będzie oznaczony jako KR, a klucz publiczny - KU.

Założymy, że wszyscy uczestnicy mają dostęp do swoich kluczy publicznych, a klucze prywatne są tworzone lokalnie przez każdego uczestnika i dlatego nie powinny być rozpowszechniane.

Uczestnik może w dowolnym momencie zmienić swój klucz prywatny i opublikować klucz publiczny tworzący parę, zastępując nim stary klucz publiczny.

Diffie i Hellman opisują wymagania, które: algorytm szyfrowania z kluczem publicznym.

  1. Utworzenie pary jest łatwe obliczeniowo (klucz publiczny KU, klucz prywatny KR).
  2. Biorąc pod uwagę klucz publiczny i niezaszyfrowaną wiadomość M, obliczeniowo łatwo jest utworzyć odpowiednią zaszyfrowaną wiadomość:
  3. Odszyfrowanie wiadomości za pomocą klucza prywatnego jest obliczeniowo łatwe:

    M = D KR [C] = D KR ]

  4. Znając klucz publiczny KU , niemożliwe jest obliczeniowo określenie klucza prywatnego KR .
  5. Jest obliczeniowo niemożliwe, znając klucz publiczny KU i zaszyfrowaną wiadomość C, aby odzyskać oryginalną wiadomość M.

    Można dodać szóste wymaganie, chociaż nie dotyczy ono wszystkich algorytmów klucza publicznego:

  6. Funkcje szyfrowania i deszyfrowania można stosować w dowolnej kolejności:

    M = E ku]

Są to wystarczająco silne wymagania, które wprowadzają pojęcie . Funkcja jednokierunkowa wywoływana jest taka funkcja, w której każdy argument ma unikalną wartość odwrotną, podczas gdy łatwo jest obliczyć samą funkcję, ale trudno obliczyć funkcję odwrotną.

Zwykle „łatwe” oznacza, że ​​problem można rozwiązać w czasie wielomianowym długości wejścia. Tak więc, jeśli długość wejścia wynosi n bitów, to czas obliczania funkcji jest proporcjonalny do n a , gdzie a jest stałą stałą. Mówi się więc, że algorytm należy do klasy algorytmów wielomianowych P. Termin „twardy” oznacza bardziej skomplikowane pojęcie. W ogólnym przypadku przyjmiemy, że problem nie może zostać rozwiązany, jeśli wysiłek włożony w jego rozwiązanie jest większy niż czas wielomianu wartości wejściowej. Na przykład, jeśli długość danych wejściowych wynosi n bitów, a czas oceny funkcji jest proporcjonalny do 2 n , to jest to uważane za zadanie niewykonalne obliczeniowo. Niestety trudno jest określić, czy dany algorytm wykazuje taką złożoność. Co więcej, tradycyjne pojęcia złożoności obliczeniowej skupiają się na złożoności algorytmu w najgorszym przypadku lub w średnim przypadku. Jest to niedopuszczalne w przypadku kryptografii, gdzie wymagane jest, aby funkcja nie mogła być odwrócona dla wszystkich lub prawie wszystkich wartości danych wejściowych.

Powrót do definicji funkcja jednostronna z szyberdachem, który, jak funkcja jednokierunkowa, jest łatwy do obliczenia w jednym kierunku i trudny do obliczenia w przeciwnym kierunku, dopóki nie będą dostępne dodatkowe informacje. Dzięki tym dodatkowym informacjom można obliczyć inwersję w czasie wielomianowym. W ten sposób, funkcja jednokierunkowa z szyberdachem należącym do rodziny funkcje jednokierunkowe f k takie, że

Widzimy, że rozwój konkretnego algorytmu klucza publicznego zależy od odkrycia odpowiedniego funkcja jednostronna z szyberdachem.

Kryptanaliza algorytmów klucza publicznego

Jak w przypadku szyfrowanie symetryczne, algorytm szyfrowania z kluczem publicznym jest podatny na frontalny atak. Środek zaradczy jest standardowy: użyj dużych kluczy.

Kryptosystem klucza publicznego wykorzystuje pewne nieodwracalne funkcje matematyczne. Złożoność obliczania takich funkcji nie jest liniowa pod względem liczby bitów klucza, ale rośnie szybciej niż klucz. W związku z tym rozmiar klucza musi być wystarczająco duży, aby frontalny atak był niepraktyczny, i wystarczająco mały, aby umożliwić praktyczne szyfrowanie. W praktyce rozmiar klucza jest tak skonstruowany, że atak brute-force jest niepraktyczny, ale w rezultacie prędkość szyfrowania jest wystarczająco niska, aby algorytm mógł być używany do ogólnych celów. Dlatego szyfrowanie kluczem publicznym jest obecnie ograniczone głównie do aplikacji do zarządzania kluczami i podpisów, które wymagają szyfrowania małego bloku danych.

Inną formą ataku jest znalezienie sposobu na obliczenie klucza prywatnego na podstawie klucza publicznego. Nie da się tego matematycznie udowodnić podana forma atak jest wykluczony dla określonego algorytmu klucza publicznego. Zatem każdy algorytm, w tym szeroko stosowany Algorytm RSA, jest podejrzana.

Wreszcie istnieje forma ataku, która jest specyficzna dla sposobu wykorzystania systemów klucza publicznego. To jest atak na prawdopodobną wiadomość. Załóżmy na przykład, że wysyłana wiadomość składa się wyłącznie z 56-bitowego klucza sesji dla algorytmu szyfrowania symetrycznego. Przeciwnik może zaszyfrować wszystkie możliwe klucze za pomocą klucza publicznego i odszyfrować każdą wiadomość, która pasuje do przesyłanego zaszyfrowanego tekstu. W ten sposób, niezależnie od rozmiaru klucza w schemacie klucza publicznego, atak sprowadza się do ataku brute-force na 56-bitowy klucz symetryczny. Ochrona przed takim atakiem polega na dodaniu pewnej liczby losowych bitów do prostych wiadomości.

Podstawowe zastosowania algorytmów kluczy publicznych

Główne zastosowania algorytmów klucza publicznego to szyfrowanie/deszyfrowanie, tworzenie i weryfikacja podpisu oraz wymiana kluczy.

Szyfrowanie z kluczem publicznym składa się z następujących kroków:


Ryż. 7.1.

  1. Użytkownik B tworzy parę kluczy KU b i KR b używanych do szyfrowania i deszyfrowania przesyłanych wiadomości.
  2. Użytkownik B udostępnia swój klucz szyfrowania w jakiś bezpieczny sposób, tj. klucz publiczny KU b . Sparowany klucz prywatny KR b jest utrzymywany w tajemnicy.
  3. Jeśli A chce wysłać wiadomość do B, szyfruje wiadomość przy użyciu klucza publicznego B KU b .
  4. Gdy B otrzymuje wiadomość, odszyfrowuje ją za pomocą swojego klucza prywatnego KR b . Nikt inny nie może odszyfrować wiadomości, ponieważ tylko B zna ten klucz prywatny.

Jeśli użytkownik (system końcowy) bezpiecznie przechowuje swój klucz prywatny, nikt nie będzie mógł szpiegować przesyłanych wiadomości.

Tworzenie i weryfikacja podpisu składa się z następujących kroków:


Ryż. 7.2.
  1. Użytkownik A generuje parę kluczy KR A i KU A , służących do tworzenia i weryfikacji podpisu przesyłanych wiadomości.
  2. Użytkownik A udostępnia swój klucz weryfikacyjny w jakiś bezpieczny sposób, tj.
Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
tak
Nie
Dziekuję za odpowiedź!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję Ci. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!