Niederreiters kryptosystem

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 16 mars 2019; kontroller kräver 3 redigeringar .

Niederreiters  kryptosystem är ett kryptosystem med offentlig nyckel baserat på teorin om algebraisk kodning , utvecklat 1986 av Harald Niederreiter [1] . Till skillnad från McEliece-kryptosystemet använder Niederreiters kryptosystem en kodkontrollmatris . Niederreiters kryptosystem tillåter skapandet av digitala signaturer och är en kandidat för post-kvantkryptering , eftersom det är resistent mot attacker med Shor-algoritmen .

Algoritmen som används i Niederreiters kryptosystem är baserad på svårigheten att avkoda fullständiga linjära koder .

Trots att detta kryptosystem har blivit hackat förblir vissa av dess modifieringar kryptoresistenta [2]

Operationsalgoritm

Nyckelgenerering

  1. Alice väljer en felkorrigerande kod framför Galois-fältet . Denna kod måste ha en effektiv avkodningsalgoritm [3] .
  2. Alice genererar en kodkontrollmatris .
  3. Alice väljer en slumpmässig icke degenererad matris över fältet och någon permutationsmatris [3] .
  4. Alice beräknar matrisen
  5. Alices publika nyckel är . Den privata nyckeln är uppsättningen .

Meddelandekryptering

I detta fall är meddelanden alla vektorer med koordinater från fältet med en vikt som inte överstiger . Således är meddelanden alla möjliga fel som den valda koden kan fixa [2] . Anta att Bob vill skicka ett meddelande till Alice vars publika nyckel är .

  1. Bob presenterar sitt meddelande som en binär längdsekvens , med en vikt som inte överstiger .
  2. Bob beräknar chiffertexten med formeln: . Således är chiffertexten i Niederreiters kryptosystem det bullriga chiffrerade felvektorsyndromet [ 2] .

Meddelandeavkodning

Efter att ha tagit emot meddelandet gör Alice följande:

  1. Alice räknar ut . Observera att eftersom permutationsmatrisen är  , sammanfaller vikten med vikten och överstiger inte , och därför kan avkodningsalgoritmen för hitta felvektorn som motsvarar syndromet [3] .
  2. Alice använder en snabb avkodningsalgoritm för att koden ska hitta [3] .
  3. Alice beräknar meddelandet .

Det ursprungliga kryptosystemet och dess modifieringar

I det ursprungliga kryptosystemet föreslog Niederreiter att man skulle använda Reed-Solomon-koder och inte använda en permutationsmatris . Ett sådant system visade sig dock vara instabilt och hackades av Sidelnikov och Shestakov 1992 [4] . Författarna har visat att det är möjligt att gissa strukturen för den privata nyckeln från den publika nyckeln och välja sådana matriser och , att . Efter det, för att öka systemets kryptografiska styrka , föreslogs det att använda en permutationsmatris . Dessutom dök olika modifieringar av systemet upp, till exempel:

Fördelar och nackdelar med systemet

Fördelar

Nackdelar

Tabellen nedan visar olika parametrar för McEliece, Niederreiter och RSA kryptosystem, och visar tydligt deras fördelar och nackdelar [6] .

McEliece n=1024, k=524, t=101 binär kod Niederreiters kryptosystem n=1024, k=524, t=101 binär kod RSA 1024-bitars moduler e=17
Storlek på offentlig nyckel i byte 67072 32750 256
Antal bitar användbar information 512 276 1024
Antal binära operationer för kryptering 514 femtio 2402
Antal binära operationer för dekryptering 5140 7863 738112

Likvärdighet mellan kryptografisk säkerhet för Niederreiter-systemet och McEliece-systemet

Som visas i den ursprungliga uppsatsen om Sidelnikov-systemet [7] , kan attackera Niederreiter-systemet polynomiskt reduceras till att attackera McEliece-systemet och vice versa.

Låt syndromet vara känt . Sedan kan vi beräkna en vektor med några sådana att . Vektorn kommer att behandlas som en chiffertext i McEliece-systemet. Om en kryptografisk attack med komplexitet för McEliece-systemet hittas, det vill säga en algoritm för att beräkna vektorn , som är hemlig information i detta system, är känd, kan vektorn , som är en hemlighet för Niederreiter-systemet, representeras som . Således är komplexiteten i definitionen densamma som komplexiteten i definitionen av .

Om en kryptoattack med komplexitet för Niederreiter-systemet är känd, är det möjligt att, med hjälp av vektorn som chiffertext , beräkna vektorerna och .

Bygga en digital signatur

2001 visade Nicolas Courtois, Matthew Finiaz och Nicolas Sandrier [8] att Niederreiters kryptosystem kan användas för att skapa en elektronisk signatur .

Meddelandesignatur

Låt vara  den publika nyckeln till Niederreiters kryptosystem med en -linjär kod. För att underteckna ett dokument måste du:

  1. Välj en hashfunktion som ger tecken vid utgången. Således kan resultatet av en given hashfunktion representeras som ett syndrom och försöka avkodas;
  2. Beräkna hash ;
  3. För varje beräkna ;
  4. Hitta det minsta antalet så att syndromet kommer att vara möjligt att avkoda. Låt vara  resultatet av att avkoda syndromet ;
  5. Signaturen för dokumentet är ett par .

Signaturverifiering

  1. Beräkna ;
  2. Beräkna ;
  3. Jämför och : om de matchar är signaturen korrekt.

Ett exempel på hur systemet fungerar

Låt Reed-Solomon-koden över Galois-fältet konstruerat modulo det irreducerbara polynomet väljas för kodning med det genererande polynomet

Sedan är den genererande matrisen för koden:

Kodkontrollmatris:

Observera att avståndet för denna kod , det vill säga antalet korrigerbara fel .

Nyckelgenerering

Låt matrisen väljas . Sedan dess inversa matris

Låt en permutationsmatris väljas

I det här fallet kommer systemets publika nyckel att vara matrisen:

Kryptering

Låt det valda meddelandet representeras som en viktvektor på 2.

Krypterat meddelande:

Dechiffrera

Godkänd vektor

För det beräknar vi det avkodningsbara syndromet

Med hjälp av Reed-Solomon-avkodningsalgoritmen avkodar vi .

Skaffa en vektor

Sedan beräknar vi den ursprungliga vektorn

Se även

Anteckningar

  1. Niederreiter H. Kryptosystem och algebraisk kodningsteori av knäppsäckstyp  (engelska) // Problems of Control and Information Theory - 1986. - Vol. 15, Iss. 2. - S. 159-166.
  2. 1 2 3 4 Samokhina M. A. Modifieringar av Niederreiters kryptosystem, deras säkerhet och praktiska tillämpningar // Proceedings of the Moscow Institute of Physics and Technology - M. : 2009. - V. 1, no. 2. - S. 121-127. — ISSN 2072-6759
  3. 1 2 3 4 5 Khan E. , Gabidulin E. , Honary B. , Ahmed H. Modifierad Niederreiter-typ av GPT-kryptosystem baserat på reducerbara rangkoder  // Des . Koder Cryptogr. — Springer US , Springer Science+Business Media , 2014. — Vol. 70, Iss. 1. - S. 231-239. — ISSN 0925-1022 ; 1573-7586 - doi:10.1007/S10623-012-9757-4
  4. Sidelnikov V. M. , Shestakov S. O. Om ett krypteringssystem baserat på generaliserade Reed–Solomon-koder // Discrete Math. matematik. - 1992. - Vol. 4, nummer. 3. - S. 57-63. — ISSN 2305-3143 ; 0234-0860
  5. Gabidulin E. M. Teori om koder med maximal rangdistans // Probl. överföring av information - 1985. - T. 21, nr. 1. - S. 3-16.
  6. 1 2 3 Canteaut A. , Sendrier N. Cryptanalysis of the Original McEliece Cryptosystem  // Advances in Cryptology - ASIACRYPT 1998 : International Conference on the Theory and Applications of Cryptology and Information Security, Peking, Kina, 18-22 oktober 1998, Proceedings - Berlin : Springer Berlin Heidelberg , 1998. - P. 187-199. - ( Lecture Notes in Computer Science ; Vol. 1514) - ISBN 978-3-540-65109-3 - ISSN 0302-9743 ; 1611-3349 - doi:10.1007/3-540-49649-1_16
  7. Sidelnikov V. M. Öppen kryptering baserad på binära Reed-Muller-koder // Diskr. matematik. - 1994. - V. 4, nummer. 3. - S. 191-207. — ISSN 2305-3143 ; 0234-0860
  8. Courtois N. , Finiasz M. , Sendrier N. How to Achieve a McEliece-Based Digital Signature Scheme  // Advances in Cryptology - ASIACRYPT 2001 : 7th International Conference on the Theory and Application of Cryptology and Information Security, Gold Coast, Australien, 9-13 december 2001, Proceedings / C. Boyd - London : Springer Science + Business Media , 2001. - P. 157-174. - ( Lecture Notes in Computer Science ; Vol. 2248) - ISBN 978-3-540-42987-6 - ISSN 0302-9743 ; 1611-3349 - doi:10.1007/3-540-45682-1

Litteratur