Kryptosystém McEliece - McEliece cryptosystem

v kryptografie, Kryptosystém McEliece je asymetrické šifrování algoritmus vyvinutý v roce 1978 uživatelem Robert McEliece.[1] Bylo to první takové schéma, které se používalo randomizace v procesu šifrování. Algoritmus v kryptografické komunitě nikdy nebyl příliš akceptován, ale je kandidátem na „postkvantová kryptografie ", protože je imunní vůči útokům pomocí Shorův algoritmus a - obecněji - měření stavů cosetu pomocí Fourierova vzorkování.[2]

Algoritmus je založen na tvrdosti dekódování generál lineární kód (o kterém je známo, že je NP-tvrdé[3]). Popis soukromého klíče, an kód pro opravu chyb je vybrán, pro který je známý efektivní dekódovací algoritmus a který je schopen opravit chyby. Původní algoritmus používá binární kódy Goppa (podpole kódy geometrické Kódy Goppa křivky rodu 0 nad konečnými poli charakteristiky 2); tyto kódy lze efektivně dekódovat díky algoritmu podle Pattersona.[4] Veřejný klíč je odvozen od soukromého klíče maskováním vybraného kódu jako obecného lineárního kódu. K tomu je kód matice generátoru je narušen dvěma náhodně vybranými invertibilními maticemi a (viz. níže).

Varianty tohoto kryptosystému existují a používají různé typy kódů. U většiny z nich se ukázalo, že jsou méně bezpečné; byli rozbiti strukturální dekódování.

Společnost McEliece s kódy Goppa dosud odolávala dešifrování. Nejúčinnější útoky známé použití dekódování sady informací algoritmy. Dokument z roku 2008 popisuje útok i opravu.[5] Další práce ukazuje, že pro kvantové výpočty musí být velikosti klíčů zvětšeny čtyřikrát kvůli vylepšení dekódování informační sady.[6]

Kryptosystém McEliece má některé výhody oproti například RSA. Šifrování a dešifrování jsou rychlejší.[7] Po dlouhou dobu se předpokládalo, že McEliece nelze použít k výrobě podpisy. Podpisové schéma však může být vytvořeno na základě Niederreiter schéma, duální varianta schématu McEliece. Jednou z hlavních nevýhod McEliece je, že soukromý a veřejný klíč jsou velké matice. Pro standardní výběr parametrů je veřejný klíč dlouhý 512 kilobitů.

Definice schématu

McEliece se skládá ze tří algoritmů: pravděpodobnostní algoritmus generování klíčů, který vytváří veřejný a soukromý klíč, pravděpodobnostní šifrování algoritmus a deterministický dešifrovací algoritmus.

Všichni uživatelé v nasazení McEliece sdílejí sadu běžných parametrů zabezpečení: .

Generování klíčů

Princip je ten, že Alice zvolí lineární kód z nějaké rodiny kódů, pro které zná efektivní dekódovací algoritmus, a to veřejně známé, ale dekódovací algoritmus udržujte v tajnosti Takový dekódovací algoritmus vyžaduje nejen znalost , ve smyslu znát libovolnou matici generátoru, ale vyžaduje znalost znalosti parametrů použitých při zadávání ve vybrané rodině kódů. Například pro binární kódy Goppa by touto informací byl polynom Goppa a vyhledávače kódů. Proto může Alice publikovat vhodně popletenou matici generátoru veřejně.

Kroky jsou konkrétněji následující:

  1. Alice vybere binární soubor -lineární kód schopný (efektivně) korigovat chyby z některé velké skupiny kódů, např. binární kódy Goppa. Tato volba by měla vést k efektivnímu dekódovacímu algoritmu . Nechť také být libovolná generátorová matice pro . Jakýkoli lineární kód má mnoho generátorových matic, ale pro tuto rodinu kódů je často přirozená volba. Vědět to odhalí takže by to mělo být tajné.
  2. Alice vybere náhodně binární ne-singulární matice .
  3. Alice vybere náhodně permutační matice .
  4. Alice počítá matice .
  5. Alicin veřejný klíč je ; její soukromý klíč je . Všimněte si, že lze zakódovat a uložit jako parametry použité pro výběr .

Šifrování zpráv

Předpokládejme, že si Bob přeje poslat zprávu m Alici, jejíž veřejný klíč je :

  1. Bob zakóduje zprávu jako binární řetězec délky .
  2. Bob vypočítá vektor .
  3. Bob generuje náhodný -bitový vektor obsahující přesně ty (vektor délky a hmotnost )[1]
  4. Bob počítá šifrovací text jako .

Dešifrování zprávy

Po obdržení , Alice k dešifrování zprávy provede následující kroky:

  1. Alice počítá inverzní funkci (tj. ).
  2. Alice počítá .
  3. Alice používá dekódovací algoritmus dekódovat na .
  4. Alice počítá .

Doklad o dešifrování zprávy

Všimněte si, že , a to je tedy permutační matice má váhu .

Kód Goppa lze opravit až chyby a slovo je nanejvýš na dálku z . Proto správné kódové slovo je získáno.

Násobení inverzní funkcí z dává , což je prostá textová zpráva.

Klíčové velikosti

McEliece původně navrhoval velikosti bezpečnostních parametrů ,[1] což má za následek velikost veřejného klíče 524 * (1024–524) = 262 000 bitů[je zapotřebí objasnění ]. Nedávná analýza navrhuje velikosti parametrů pro 80 kousky zabezpečení při použití standardního algebraického dekódování nebo při použití dekódování seznamu pro kód Goppa, což vede k velikosti veřejného klíče 520 047 a 460 647 bitů.[5] Pro odolnost vůči kvantovým počítačům, velikosti s kódem Goppa byly navrženy, což dalo velikost veřejného klíče 8 373 911 bitů.[8]

Útoky

Útok se skládá z protivníka, který zná veřejný klíč ale ne soukromý klíč, odvodit holý text z nějakého zachyceného šifrovacího textu . Takové pokusy by neměly být možné.

McEliece má dvě hlavní větve útoků:

Hrubá síla / nestrukturované útoky

Útočník to ví což je matice generátoru kód který je kombinatoricky schopen opravit chyby. Útočník může tuto skutečnost ignorovat je ve skutečnosti zmatek strukturovaného kódu vybraného z konkrétní rodiny a místo toho stačí použít algoritmus pro dekódování libovolným lineárním kódem. Existuje několik takových algoritmů, například procházení každým kódovým slovem kódu, dekódování syndromu nebo dekódování sady informací.

Dekódování obecného lineárního kódu je však známo NP-tvrdé,[3] a všechny výše uvedené metody mají exponenciální dobu běhu.

V roce 2008 Bernstein, Lange a Peters[5] popsal praktický útok na původní kryptosystém McEliece pomocí metody Stern Information Set Decoding.[9]Za použití parametrů původně navržených McEliecem by útok mohl být proveden za 260.55 bitové operace. Protože útok je trapně paralelní (komunikace mezi uzly není nutná), lze ji provádět za několik dní na skromných počítačových klastrech.

Strukturální útoky

Útočník se místo toho může pokusit obnovit „strukturu“ serveru , čímž se obnoví efektivní dekódovací algoritmus nebo jiný dostatečně silný a efektivní dekódovací algoritmus.

Rodina kódů, ze kterých je zcela vybráno, určuje, zda je to pro útočníka možné. Pro McEliece bylo navrženo mnoho rodin kódů a většina z nich byla zcela „rozbitá“ v tom smyslu, že byly nalezeny útoky, které obnoví účinný dekódovací algoritmus, jako například Kódy Reed-Solomon.

Původně navrhované binární kódy Goppa zůstávají jednou z mála navrhovaných skupin kódů, které do značné míry odolávaly pokusům o vytvoření strukturálních útoků.

Reference

  1. ^ A b C McEliece, Robert J. (1978). „Kryptosystém veřejného klíče založený na teorii algebraického kódování“ (PDF). Zpráva o pokroku DSN. 44: 114–116. Bibcode:1978DSNPR..44..114M.
  2. ^ Dinh, Hang; Moore, Cristopher; Russell, Alexander (2011). Rogaway, Philip (ed.). Kryptosystémy McEliece a Niederreiter, které odolávají kvantovým Fourierovým vzorkovacím útokům. Pokroky v kryptologii - CRYPTO 2011. Přednášky v informatice. 6841. Heidelberg: Springer. str. 761–779. doi:10.1007/978-3-642-22792-9_43. ISBN  978-3-642-22791-2. PAN  2874885.
  3. ^ A b Berlekamp, ​​Elwyn R .; McEliece, Robert J .; Van Tilborg, Henk C.A. (1978). "O vrozené neodolatelnosti určitých problémů s kódováním". Transakce IEEE na teorii informací. IT-24 (3): 384–386. doi:10.1109 / TIT.1978.1055873. PAN  0495180.
  4. ^ N. J. Patterson (1975). "Algebraické dekódování kódů Goppa". Transakce IEEE na teorii informací. IT-21 (2): 203–207. doi:10.1109 / TIT.1975.1055350.
  5. ^ A b C Bernstein, Daniel J .; Lange, Tanja; Peters, Christiane (8. srpna 2008). Útok a obrana kryptosystému McEliece. Proc. 2. mezinárodní workshop o postkvantové kryptografii. Přednášky z informatiky. 5299. 31–46. CiteSeerX  10.1.1.139.3548. doi:10.1007/978-3-540-88403-3_3. ISBN  978-3-540-88402-6.
  6. ^ Bernstein, Daniel J. (2010). Sendrier, Nicolas (ed.). Grover vs. McEliece (PDF). Postkvantová kryptografie 2010. Přednášky v informatice. 6061. Berlín: Springer. str. 73–80. doi:10.1007/978-3-642-12929-2_6. ISBN  978-3-642-12928-5. PAN  2776312.
  7. ^ „eBATS: ECRYPT Benchmarking asymetrických systémů“. bench.cr.yp.to. 25. srpna 2018. Citováno 1. května 2020.
  8. ^ Daniel Augot; et al. (7. září 2015). „Počáteční doporučení dlouhodobě bezpečných postkvantových systémů“ (PDF). PQCRYPTO: Postkvantová kryptografie pro dlouhodobé zabezpečení.
  9. ^ Jacques Stern (1989). Metoda pro hledání kódových slov malé váhy. Teorie kódování a aplikace. Přednášky z informatiky. 388. Springer Verlag. 106–113. doi:10.1007 / BFb0019850. ISBN  978-3-540-51643-9.

externí odkazy