Kryptosystem McEliece'a
W kryptografii kryptosystem McEliece jest algorytmem szyfrowania asymetrycznego opracowanym w 1978 roku przez Roberta McEliece'a . Był to pierwszy taki schemat wykorzystujący randomizację w procesie szyfrowania. Algorytm nigdy nie zyskał dużej akceptacji w społeczności kryptograficznej, ale jest kandydatem do „ kryptografii postkwantowej ”, ponieważ jest odporny na ataki przy użyciu algorytmu Shora i – bardziej ogólnie – mierzenia stanów kosetowych za pomocą próbkowania Fouriera.
Algorytm opiera się na twardości dekodowania ogólnego kodu liniowego (o którym wiadomo, że jest NP-trudny ). Do opisu klucza prywatnego wybiera się kod korekcji błędów błędy. Oryginalny algorytm wykorzystuje binarne kody Goppa (kody podpól geometrycznych kodów Goppa krzywej rodzaju-0 na polach skończonych o charakterystyce 2); kody te można skutecznie dekodować dzięki algorytmowi opracowanemu przez Pattersona. Klucz publiczny jest wyprowadzany z klucza prywatnego poprzez maskowanie wybranego kodu jako ogólnego kodu liniowego. macierz generatora kodu zakłócana przez dwie losowo wybrane odwracalne macierze ( poniżej).
Istnieją warianty tego kryptosystemu, wykorzystujące różne typy kodów. Większość z nich okazała się mniej bezpieczna; zostały złamane przez dekodowanie strukturalne.
McEliece z kodami Goppa do tej pory opierał się kryptoanalizie. Najbardziej skuteczne znane ataki wykorzystują dekodowania zestawu informacji . Artykuł z 2008 roku opisuje zarówno atak, jak i poprawkę. Inny artykuł pokazuje, że w przypadku obliczeń kwantowych rozmiary kluczy muszą zostać zwiększone czterokrotnie ze względu na ulepszenia w dekodowaniu zbioru informacji.
Kryptosystem McEliece ma pewne zalety w porównaniu np. z RSA . Szyfrowanie i deszyfrowanie jest szybsze. Przez długi czas uważano, że McEliece nie może być używany do tworzenia podpisów . Jednak schemat podpisu można zbudować w oparciu o Niederreitera , podwójny wariant schematu McEliece. Jedną z głównych wad McEliece jest to, że klucze prywatny i publiczny są dużymi macierzami. Dla standardowego wyboru parametrów klucz publiczny ma długość 512 kilobitów.
Definicja schematu
McEliece składa się z trzech algorytmów: probabilistycznego algorytmu generowania klucza, który tworzy klucz publiczny i prywatny, probabilistycznego algorytmu szyfrowania i deterministycznego algorytmu deszyfrowania.
Wszyscy użytkownicy we wdrożeniu McEliece współużytkują zestaw wspólnych parametrów bezpieczeństwa: .
Generowanie klucza
Zasada jest taka, że Alicja wybiera kod liniowy pewnej rodziny kodów, dla których zna wydajny algorytm dekodowania, i podaje do algorytm dekodowania w tajemnicy. Taki algorytm dekodowania wymaga nie tylko znajomości znajomości parametrów używanych podczas określania w wybranej rodzinie kodów. Na przykład w przypadku binarnych kodów Goppa informacją tą byłby wielomian Goppa i lokalizatory kodu. macierz generatora .
Dokładniej, kroki są następujące:
- Alicja wybiera kod binarny zdolny do (skutecznego) korygowania jakiejś dużej rodziny kodów, np. binarnej Goppa kody. Ten wybór powinien dać początek wydajnemu algorytmowi dekodowania. . też będzie dowolną macierzą generatora dla . Każdy kod liniowy ma wiele macierzy generatora, ale często istnieje naturalny wybór dla tej rodziny kodów. o tym ujawniłaby, należy to zachować w tajemnicy.
- Alicja wybiera losową macierz binarną inną niż pojedyncza . \
- Alicja wybiera losową macierz permutacji .
- Alicja oblicza } .
- Klucz publiczny Alicji to ; jej klucz prywatny to . , że można i zapisać jako parametry używane .
Szyfrowanie wiadomości
Załóżmy, że Bob chce wysłać wiadomość m do Alicji, której kluczem publicznym jest :
- Bob koduje wiadomość jako ciąg binarny o długości .
- Bob oblicza wektor .
- Bob generuje losowy wektor zawierający dokładnie (wektor o długości i wadze )
- Bob oblicza tekst zaszyfrowany jako .
Odszyfrowanie wiadomości
Po otrzymaniu Alice wykonuje następujące kroki, aby odszyfrować wiadomość: do
- Alice oblicza odwrotność (tj .
- Alicja oblicza .
- Alicja używa algorytmu dekodowania dekodowania do .
- Alicja oblicza .
Dowód odszyfrowania wiadomości
do permutacji , więc ma wagę .
Kod Goppa poprawić błędy do słowo znajduje się najwyżej w odległości od do . Dlatego uzyskuje się poprawne słowo kodowe
Mnożenie przez odwrotność daje , który jest zwykłą wiadomością tekstową.
Kluczowe rozmiary
Ponieważ macierz ma wolny wybór , często wyraża się tak aby ostatnie kolumny odpowiadają macierzy tożsamości . Zmniejsza to rozmiar klucza do . McEliece pierwotnie sugerował rozmiary parametrów bezpieczeństwa , co skutkowało rozmiarem klucza publicznego 524 * (1024-524) = 262 000 bity. Niedawna analiza sugeruje rozmiary parametrów dla 80 bitów bezpieczeństwa przy użyciu standardowego dekodowania algebraicznego lub rozmiary i odpowiednio 460 647 bitów. Aby uzyskać odporność na komputery kwantowe, rozmiary z kodem Goppa, podając rozmiar klucza publicznego 8 373 911 bitów. W jego rundzie 3 przedłożenia do NIST po standaryzacji kwantowej najwyższy poziom bezpieczeństwa, poziom 5, jest podany dla zestawów parametrów 6688128, 6960119 i 8192128. Parametry to n = 6688 , , , odpowiednio.
Ataki
Atak polega na tym, że przeciwnik, który zna klucz publiczny, tekst jawny z przechwyconego tekstu zaszyfrowanego . Takie próby powinny być niewykonalne.
Istnieją dwie główne gałęzie ataków na McEliece:
Brute-force / ataki nieustrukturyzowane
Atakujący wie generatora kodu do który jest kombinatorycznie w stanie poprawić . Atakujący może zignorować fakt, że jest tak naprawdę zaciemnieniem kodu strukturalnego wybranego z określonej rodziny, a zamiast tego po prostu użyj algorytmu do dekodowania z dowolnym kodem liniowym. Istnieje kilka takich algorytmów, takich jak przeglądanie każdego słowa kodowego kodu, dekodowanie zespołu lub dekodowanie zbioru informacji .
Wiadomo jednak, że dekodowanie ogólnego kodu liniowego jest NP-trudne , a wszystkie wyżej wymienione metody mają wykładniczy czas działania.
W 2008 roku Bernstein, Lange i Peters opisali praktyczny atak na oryginalny kryptosystem McEliece przy użyciu metody dekodowania zbioru informacji autorstwa Sterna. Wykorzystując parametry pierwotnie sugerowane przez McEliece'a, atak można było przeprowadzić w 2 operacjach 60,55 bitowych. Ponieważ atak jest żenująco równoległy (nie jest wymagana komunikacja między węzłami), można go przeprowadzić w kilka dni na skromnych klastrach komputerowych.
Ataki strukturalne
tego próbować odzyskać „strukturę” odzyskując w ten sposób wydajny algorytm dekodowania inny wystarczająco silny, wydajny algorytm dekodowania
Rodzina kodów, z których jest to możliwe dla atakującego. Zaproponowano wiele rodzin kodów dla McEliece, a większość z nich została całkowicie „zepsuta” w tym sensie, że znaleziono ataki, które odzyskują wydajny algorytm dekodowania, takie jak kody Reeda-Solomona .
Pierwotnie proponowane binarne kody Goppa pozostają jedną z nielicznych sugerowanych rodzin kodów, które w dużej mierze oparły się próbom opracowania ataków strukturalnych.
Kandydat na szyfrowanie postkwantowe
Wariant tego algorytmu połączony z NTS-KEM został zgłoszony i wybrany podczas trzeciej rundy konkursu NIST na szyfrowanie postkwantowe .
Linki zewnętrzne
- Alfreda J. Menezesa; Scott A. Vanstone; AJ Menezes; Paul C. van Oorschot (1996). „Rozdział 8: Szyfrowanie kluczem publicznym” . Podręcznik kryptografii stosowanej . Prasa CRC. ISBN 978-0-8493-8523-0 .
- „Komputery kwantowe? Złamany internetowy kod bezpieczeństwa przyszłości” . Nauka Codzienna . Politechnika w Eindhoven . 1 listopada 2008 r.
- „Klasyczny McEliece” . (Zgłoszenie do projektu standaryzacji kryptografii postkwantowej NIST )