NTRUEncrypt

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 17. december 2015; checks kræver 20 redigeringer .

NTRUEncrypt ( forkortelse for Nth-degree TRUNcated polynomial ring eller Number Theorists aRe Us) er et kryptografisk system med offentlig nøgle, tidligere kaldet NTRU .

NTRUEncrypt-kryptosystemet, baseret på et gitterkryptosystem , blev skabt som et alternativ til RSA og Elliptic Curve Cryptosystems (ECC) . Algoritmens stabilitet sikres af vanskeligheden ved at finde den korteste gittervektor , som er mere modstandsdygtig over for angreb udført på kvantecomputere . I modsætning til sine konkurrenter RSA , ECC , Elgamal bruger algoritmen operationer på ringen af ​​trunkerede polynomier med en grad, der ikke overstiger :

Et sådant polynomium kan også repræsenteres af en vektor

Som enhver ung algoritme er NTRUEncrypt dårligt forstået, selvom den officielt blev godkendt til brug i finansiering af Accredited Standards Committee X9 . [en]

Der er en open source- implementering af NTRUEncrypt . [2]

Historie

NTRUEncrypt, oprindeligt kaldet NTRU, blev opfundet i 1996 og introduceret til verden på CRYPTO , RSA Conference , Eurocrypt . Grunden, der fungerede som begyndelsen på udviklingen af ​​algoritmen i 1994 , var artiklen [3] , som talte om letheden ved at knække eksisterende algoritmer på kvantecomputere, hvilket, som tiden har vist, ikke er langt væk [4] . Samme år udviklede matematikerne Jeffrey Hoffstein, Jill Pipher og Joseph H. Silverman, som udviklede systemet sammen med grundlæggeren af ​​NTRU Cryptosystems, Inc. (senere omdøbt til SecurityInnovation), patenterede Daniel Lieman deres opfindelse. [5]

Ringe af trunkerede polynomier

NTRU opererer på højst gradspolynomier

hvor koefficienterne  er heltal. Med hensyn til operationerne af addition og multiplikation modulo et polynomium , danner sådanne polynomier en ring R , kaldet ringen af ​​trunkerede polynomier , som er isomorf til kvotientringen

NTRU bruger den trunkerede polynomiumring R sammen med modulo de coprime tal p og q til at reducere polynomiernes koefficienter.

Algoritmen bruger også inverse polynomier i ringen af ​​trunkerede polynomier. Det skal bemærkes, at ikke ethvert polynomium har en invers, men hvis der findes et inverst polynomium, så er det let at beregne det. [6] [7]

Følgende muligheder vil blive valgt som et eksempel:

Parameterbetegnelser N q s
Parameterværdier elleve 32 3

Generering af offentlig nøgle

For at sende en besked fra Alice til Bob kræves en offentlig og privat nøgle. Både Bob og Alice kender den offentlige nøgle, kun Bob kender den private nøgle, som han bruger til at generere den offentlige nøgle. For at gøre dette vælger Bob to "små" polynomier f g fra R . Polynomiers "småhed" er underforstået i den forstand, at den er lille i forhold til et vilkårligt polynomium modulo q : i et vilkårligt polynomium skal koefficienterne være tilnærmelsesvis ensartet fordelt modulo q , mens de i et lille polynomium er meget mindre end q . Småheden af ​​polynomier bestemmes ved hjælp af tallene df og dg :

Grunden til at polynomierne er valgt på denne måde er, at f sandsynligvis vil have en invers, men g  vil bestemt ikke ( g (1) = 0, og element nul har ingen invers).

Bob skal holde disse polynomier hemmelige. Dernæst beregner Bob de inverse polynomier og , det vil sige sådan, at:

og .

Hvis f ikke har et inverst polynomium, så vælger Bob et andet polynomium f .

Den hemmelige nøgle er et par , og den offentlige nøgle h beregnes med formlen:

Eksempel

Lad os for eksempel tage df =4 og dg =3. Så kan man som polynomier vælge

Dernæst søges der for polynomiet f inverse polynomier modulo p =3 og q =32:

Det sidste trin er at beregne den offentlige nøgle h selv :

Kryptering

Nu hvor Alice har den offentlige nøgle, kan hun sende den krypterede besked til Bob. For at gøre dette skal du repræsentere meddelelsen som et polynomium m med koefficienter modulo pvalgt fra området (- p /2, p /2]. Det vil sige, m er et "lille" polynomium modulo q . Dernæst skal Alice vælg et andet "lille" polynomium r , som kaldes "blændende", defineret af tallet dr :

Ved at bruge disse polynomier opnås den krypterede meddelelse med formlen:

I dette tilfælde vil enhver, der kender (eller kan beregne) det blændende polynomium r , kunne læse meddelelsen m .

Eksempel

Antag at Alice ønsker at sende en besked repræsenteret som et polynomium

og valgte et "blindende" polynomium, for hvilket dr = 3:

Så vil chifferteksten e klar til at blive sendt til Bob være:

Dekryptering

Nu, efter at have modtaget den krypterede besked e , kan Bob dekryptere den ved hjælp af sin private nøgle. Først får han et nyt mellempolynomium:

Hvis vi skriver chifferteksten, får vi kæden:

og endelig:

Efter at Bob har beregnet polynomiet a modulo q, skal han vælge dets koefficienter fra området (- q /2, q /2] og derefter beregne polynomiet b opnået fra polynomiet a ved reduktionsmodulo p:

siden .

Nu, ved at bruge den anden halvdel af den hemmelige nøgle og det resulterende polynomium b , kan Bob dekryptere meddelelsen:

Det er let at se det

Det resulterende polynomium c er faktisk den oprindelige meddelelse m .

Eksempel : Bob modtog en krypteret besked e fra Alice

Ved at bruge den hemmelige nøgle f får Bob et polynomium a

med koefficienter, der hører til intervallet (- q /2, q /2]. Dernæst transformerer du polynomium a til polynomium b , hvilket reducerer koefficienterne modulo p.

Det sidste trin er at gange polynomiet b med den anden halvdel af den private nøgle

Hvilket er den originale besked, som Alice sendte.

Modstand mod angreb

Fuld opregning

Det første af de mulige angreb er brute -force angrebet . Her er flere varianter af opregning mulige: enten at sortere gennem alle og kontrollere for små koefficienter for resultaterne , som ifølge ideen skulle have været små, eller at sortere gennem alle , også kontrollere for små koefficienter af resultatet . I praksis er plads mindre end plads , derfor bestemmes holdbarhed af plads . Og vedholdenheden af ​​et individuelt budskab bestemmes af rummet .

Møde i midten

Der er en mere optimal variant af opregningsmøde i midten foreslået af Andrew Odlyzhko . Denne metode reducerer antallet af muligheder til kvadratroden:

Sikkerhed for den private nøgle = = ,

Og vedholdenheden af ​​en enkelt besked = = .

Et møde-i-midt-angreb bytter den tid, der er nødvendig til beregning, med den nødvendige hukommelse til at gemme midlertidige resultater. Så hvis vi vil sikre systemets stabilitet , skal vi vælge en størrelsesnøgle .

Multiple message attack

Et ret alvorligt angreb på en enkelt besked, som kan undgås ved at følge en simpel regel – send ikke den samme besked flere gange. Essensen af ​​angrebet er at finde en del af koefficienterne for det blændende polynomium r . Og de resterende koefficienter kan simpelthen sorteres fra, og derved læse beskeden. Da den samme krypterede meddelelse med forskellige blændende polynomier er , hvor i=1, … n. Du kan evaluere et udtryk , der er nøjagtigt lig med . For et tilstrækkeligt stort antal transmitterede meddelelser (f.eks. for n = 4, 5, 6) er det muligt, baseret på koefficienternes lillehed, at genvinde det meste af det blændende polynomium .

Gitterbaseret angreb

Betragt et gitter genereret af rækkerne af en 2 N × 2 N matrix med determinant , bestående af fire blokke med størrelse N × N :

Da den offentlige nøgle er , derfor indeholder dette gitter en vektor med størrelse 2 N , som først indeholder koefficienterne for vektoren f , ganget med koefficienten , derefter koefficienterne for vektoren g . Opgaven med at finde en sådan vektor, for store N og korrekt udvalgte parametre, anses for vanskelig at løse.

Valgt chiffertekstangreb

Det valgte chiffertekstangreb er det farligste angreb. Det blev foreslået af Éliane Jaulmes og Antoine Joux [8] i 2000 på CRYPTO-konferencen. Essensen af ​​dette angreb er at vælge sådan et polynomium a(x), så . Samtidig interagerer Eve ikke med hverken Bob eller Alice.

Hvis vi tager chifferteksten , hvor , får vi et polynomium . Da koefficienterne for polynomiet f og g tager værdierne "0", "1" og "-1", vil koefficienterne for polynomiet a tilhøre mængden {-2py , -py , 0, py, 2py}. Hvis py er valgt sådan, at , så når man reducerer modulo af polynomiet a(x), vil kun koefficienter lig med -2py eller 2py blive givet . Lad nu den i -te koefficient være lig med 2py , så vil polynomiet a(x) efter moduloreduktion blive skrevet som:

,

og polynomiet b(x) :

,

beregn endelig:

.

Hvis vi nu betragter alle mulige i , så i stedet for individuelle , kan vi komponere et polynomium K og den dekrypterede meddelelse vil have formen:

,

eller hemmelig nøgle:

,

Sandsynligheden for at finde nøglekomponenter på denne måde er omkring 0,1 ... 0,3 for en nøgle på størrelse 100. For store nøgler (~500) er denne sandsynlighed meget lille. Ved at anvende denne metode et tilstrækkeligt antal gange kan du gendanne nøglen fuldstændigt.

For at beskytte mod denne type angreb bruges den avancerede NTRU-FORST- krypteringsmetode . Til kryptering bruges et blændende polynomium , hvor H  er en kryptografisk stærk hashfunktion , og R  er et tilfældigt sæt bits . Efter at have modtaget beskeden, dekrypterer Bob den. Dernæst krypterer Bob den nyligt dekrypterede besked på samme måde som Alice gjorde. Derefter sammenligner den den med den modtagne. Hvis beskederne er identiske, så accepterer Bob beskeden, ellers afviser han den.

Holdbarhed og ydeevne parametre

På trods af det faktum, at der er hurtige algoritmer til at finde det inverse polynomium, foreslog udviklerne til kommerciel brug som en hemmelig nøgle f at tage:

,

hvor F  er et lille polynomium. Den således valgte nøgle har følgende fordele:

En af undersøgelserne arkiveret 6. oktober 2016 på Wayback Machine viste, at NTRU er 4 størrelsesordener hurtigere end RSA og 3 størrelsesordener hurtigere end ECC .

Som tidligere nævnt foreslår udviklerne, for at sikre den høje stabilitet af algoritmen, kun at bruge de anbefalede parametre angivet i tabellen:

Anbefalede parametre

Betegnelse N q s df dg dr Garanteret holdbarhed
NTRU167:3 167 128 3 61 tyve atten Moderat holdbarhed
NTRU251:3 251 128 3 halvtreds 24 16 Standard modstandsniveau
NTRU503:3 503 256 3 216 72 55 Det højeste niveau af holdbarhed
NTRU167:2 167 127 2 45 35 atten Moderat holdbarhed
NTRU251:2 251 127 2 35 35 22 Standard modstandsniveau
NTRU503:2 503 253 2 155 100 65 Det højeste niveau af holdbarhed

Noter

  1. Security Innovations NTRUEncrypt vedtaget som X9-standard for databeskyttelse . Hentet 15. marts 2022. Arkiveret fra originalen 13. august 2016.
  2. NTRUEncrypt og NTRUSign i Java . Hentet 1. november 2011. Arkiveret fra originalen 19. november 2011.
  3. Algoritmer til kvanteberegning: diskrete logaritmer og factoring (downlink) . Hentet 30. oktober 2011. Arkiveret fra originalen 18. juni 2010. 
  4. NIST demonstrerer 'universel' programmerbar kvanteprocessor . Hentet 30. oktober 2011. Arkiveret fra originalen 30. november 2011.
  5. NTRU Public Key Algorithms IP Assurance Statement for 802.15.3 . Hentet 30. oktober 2011. Arkiveret fra originalen 9. april 2016.
  6. JH Silverman, Almost Inverses and Fast NTRU Key Creation Arkiveret 24. marts 2012 på Wayback Machine , NTRU Cryptosystems Technical Report #014.
  7. JH Silverman, Invertibility in Truncated Polynomial Rings Arkiveret 14. maj 2012 på Wayback Machine , NTRU Cryptosystems Technical Report #009.
  8. Jaulmes É., Joux A. Et valgt krypteringsangreb mod NTRU //Annual International Cryptology Conference. - Springer, Berlin, Heidelberg, 2000. - S. 20-35.

Links