McEliece-féle titkosító rendszer

aszimmetrikus titkosító algoritmus

A kriptográfiában a McEliece-féle titkosító rendszer, egy aszimmetrikus titkosító algoritmus, melyet Robert McEliece, amerikai matematikus fejlesztett ki 1978-ban.[1]

Ez volt az első olyan algoritmus, ahol a titkosítási folyamatban véletlen-számokat használtak. Az algoritmus soha nem keltett különös figyelmet a titkosítással foglalkozó közösségben, de ez a módszer “jelölt” lehet a ‘post-kvantum titkosítási’ módszerek között, mivel immunis támadásokra, a Shor-algoritmust felhasználva, és – még általánosabban – mellékosztály állapotokat használ Fourier mintavétellel.[2]

Egy közelmúltban nyilvánosságra került tanulmány szerint a kvantumszámítógépek alkalmazásakor a titkosító kulcsok mérete megnégyszereződik.[3] Az algoritmus az P-hard [4]). elméleten alapul. A magán kulcs leírására egy hibajavító kódot választottak, mely elég hatékony dekódolási algoritmusként ismert, és képes a hibákat kijavítani.

Az eredeti algoritmus a bináris Goppa kódokat használja; ezeket könnyű dekódolni a Patterson-féle algoritmus miatt.[5] A nyilvános kulcs a magán kulcsból származtatható azzal, hogy elrejtik a kódot, mint általános lineáris kód. Ezért generátor mátrix permutálásával, két véletlenszerűen kiválasztott invertált és mátrix-szal.

Számos titkosító rendszer létezik, különféle kódokkal. A legtöbb nem biztonságos; strukturális dekódolással könnyen feltörhető.

A McEliece, a Goppa kóddal ellenáll a kriptoanalízisnek. A következőkben ismertetjük a támadást és annak kivédését.[6]

A McEliece-féle titkosító rendszernek van néhány előnye, például az RSA-hoz képest. A titkosítás és a titkosítás feloldása gyorsabb, és a kulcs méretének növelésekor a biztonság még gyorsabban nő.

Sokáig azt gondolták, hogy a McEliece-féle titkosító rendszer nem használható digitális aláírásra. Azonban a Niederreiter sémára épülő aláírás megvalósítható, mely a McEliece duális változata.

A McEliece-féle titkosító rendszer fő hátránya az, hogy a nyilvános és a magán kulcsok is nagy mátrixok. A nyilvános kulcs 512 kilobit hosszú. Ez azért van így, mert a gyakorlatban ritkán használják. Van egy kivétel, a Freenet-féle entrópia alkalmazás.[7]

Eljárás definiálása szerkesztés

A McEliece három algoritmust tartalmaz: egy probabilista kulcs generáló algoritmust, mely létrehozza a nyilvános-, és a magán kulcsokat, a probabilisztikus titkosító algoritmust, és a determinisztikus titkosítást feloldó algoritmust. Minden - McEliece-t alkalmazó - használónak vannak biztonsági paraméterei:  .

Kulcs generálás szerkesztés

1. Vera kiválaszt egy bináris   -lineáris   kódot, mely képes a   hibákat javítani. Ez lehet egy hatékony dekódoló algoritmus, és generál egy   generátor mátrixot, .

2. Vera kiválaszt egy véletlenszerű   bináris nem szinguláris   mátrixot.

3. Vera kiválaszt egy véletlenszerű  ,   permutációmátrixot.

4. Vera kiszámolja a   mátrixot:  .

5. Vera nyilvános kulcsa:  ; magán kulcsa:  .

Üzenet kódolása szerkesztés

Tegyük fel, hogy Sándor küld egy m üzenetet Verának, kinek a nyilvános kulcsa:  .

1. Sándor kódolja az m üzenetetet, mint egy   hosszúságú bináris stringet,

2. Sándor kiszámolja a   vektort,

3. Sándor generál egy véletlenszerű  -bites vektort,  , mely tartalmazza a  -t,

4. Sándor kiszámolja a titkos szöveget, mint  .

Üzenet megfejtése szerkesztés

  megérkezésekor, Vera a következő lépéseket teszi:

1. Vera kiszámolja a   inverzét (azaz:  ),

2. Vera kiszámolja a  ,

3. Vera dekódoló algoritmust használ a   kódra,hogy dekódolja a   -  ,

4. Vera kiszámolja:  .

Az üzenet megfejtésének bizonyítása szerkesztés

Megjegyezzük, hogy  , és   egy permutációs mátrix, így   súlyozása többnyire  .

A Goppa kód,   ki tudja javítani a   hibákat, és az   szó  -től  -re van, azért a korrekt kód szó:   megkapható. Az   inverzével szorozva, adódik  , mely a megfejtett üzenet.

Kulcs méretek szerkesztés

McEliece eredetileg a következő biztonsági paramétereket javasolta:  , mely 524*(1024-524) = 262,000 bites nyilvános kulcsot eredményez.[1]

Egy későbbi analízis azt ajánlja, hogy   legyen a paraméterek nagysága, 80 bitre, ha standard algebrai dekódolást használunk, vagy  , ha lista dekódolást alkalmazunk a Goppa kódra, mely megnöveli a nyilvános kulcsot 520,047 és 460,647 bitre, megfelelően.[6]

Támadások szerkesztés

Egy sikeres ellenséges támadás, ismerve a   nyilvános kulcsot, de a magán kulcsot nem, eredményezheti a szöveg kikövetkeztetését a titkos írásból  . Az ilyen kísérletek nem működnek.

Ez a fejezet tárgyalja az irodalomból ismert támadási stratégiákat a McEliece rendszer ellen.

A nyers erő módszer szerkesztés

A támadó esetleg kitalálhatja, mi a  , és képes alkalmazni a Patterson algoritmust.[5]

Ez nem valószínű n és t nagy értékeire, mivel túl sok lehetőség van a  ,   és  -kre.

Egy olyan támadási stratégia, mely nem igényli a  -t, az “információ készlet dekódolása” koncepcióra épülhet.

McEliece megemlít egy egyszerű támadási formát: ki kell választani k-t az n koordinátából véletlenszerűen abban a reményben, hogy egy k sem hibás (azaz, a kiválasztott   vektor koordinátái közül egy sem 1 bites), és kalkulálja az m-t.

Azonban, ha a k, n, és t paramétereket gondosan választották, akkor annak a valószínűsége, hogy nem lesz hiba ebben a k elemű halmazban:  , és így ez elhanyagolható.

Információ készlet dekódolás szerkesztés

Az ‘információ készlet dekódolás’ algoritmus a leghatékonyabb támadási módszer a McEliece-, és a Niederreiter-féle titkosítási rendszerek ellen.

Számos forma ismert.

Egy hatékony eljárás az, amely a minimális, és maximális súlyozású kódszóra épül.[8] 2008-ban Bernstein, Lange és Peters[6] leírtak egy praktikus támadási módot a McEliece-féle titkosító rendszer ellen.[9] Mivel a támadás zavarbaejtően párhuzamos (nincs szükség a csomópontok közötti kommunikációra), végrehajtható egy számítógép klaszteren néhány nap alatt.

Irodalom szerkesztés

Kapcsolódó szócikkek szerkesztés

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a McEliece cryptosystem című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Források szerkesztés

  1. a b See (R. J. McEliece 1978)
  2. H. Dinh, C. Moore, A. Russell (2010. augusztus 17.). „The McEliece Cryptosystem Resists Quantum Fourier Sampling Attacks”.  
  3. Daniel J. Bernstein (2009. szeptember 23.). „Grover vs. McEliece”.  
  4. (1978) „On the Inherent Intractability of Certain Coding Problems”. IEEE Transactions on Information Theory IT-24, 203–207. o.  
  5. a b N. J. Patterson (1975). „The algebraic decoding of Goppa codes”. IEEE Transactions on Information Theory IT-21, 384–386. o.  
  6. a b c (2008. augusztus 8.) „Attacking and defending the McEliece cryptosystem”. Proc. 2nd International Workshop on Post-Quantum Cryptography 5299, 31–46. o. DOI:10.1007/978-3-540-88403-3_3.  
  7. 1978 Cryptosystem Resists Quantum Attack”, 2010. augusztus 18.. [2011. április 16-i dátummal az eredetiből archiválva] (Hozzáférés: 2012. augusztus 29.) 
  8. (1998) „Cryptanalysis of the Original McEliece Cryptosystem”. Advances in Cryptology — ASIACRYPT’98 1514, 187–199. o. DOI:10.1007/3-540-49649-1.  
  9. Jacques Stern (1989). „A method for finding codewords of small weight”. Coding Theory and Applications 388, 106–113. o, Kiadó: Springer Verlag. DOI:10.1007/BFb0019850.