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:

  1. 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.
  2. Alicja wybiera losową macierz binarną inną niż pojedyncza . \
  3. Alicja wybiera losową macierz permutacji .
  4. Alicja oblicza } .
  5. 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 :

  1. Bob koduje wiadomość jako ciąg binarny o długości .
  2. Bob oblicza wektor .
  3. Bob generuje losowy wektor zawierający dokładnie (wektor o długości i wadze )
  4. Bob oblicza tekst zaszyfrowany jako .

Odszyfrowanie wiadomości

Po otrzymaniu Alice wykonuje następujące kroki, aby odszyfrować wiadomość: do

  1. Alice oblicza odwrotność (tj .
  2. Alicja oblicza .
  3. Alicja używa algorytmu dekodowania dekodowania do .
  4. 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