Inom kryptografi är inlärning-med-fel nyckelutbyte en kryptografisk algoritm som tillåter två parter att skapa och utbyta en hemlig nyckel, som de använder för att kryptera meddelanden sinsemellan. RLWE-KEX ( Ring Learning with Errors Key Exchange ) är en av de publika nyckelalgoritmerna som är designade för att skydda mot en motståndare som har en kvantdator . Detta är viktigt eftersom de kryptografiska systemen med offentlig nyckel som används idag lätt bryts av en kvantdator [1] . RLWE-KEX är en av många post-kvantkryptografiska algoritmer baserade på komplexiteten i att lösa matematiska problem relaterade till gitterkryptografi [2] .
Sedan 1980-talet har säkerheten för utbyte av kryptografiska nycklar och digitala signaturer på Internet i första hand baseras på ett litet antal stora kryptosystem med offentliga nyckel. Den kryptografiska styrkan hos dessa algoritmer är baserad på ett litet antal problem som är svåra att beräkna med klassiska metoder, men som ganska enkelt kan lösas med hjälp av en kvantdator [3] . Dessa problem är faktoriseringen av två noggrant utvalda primtal , svårigheten att beräkna den diskreta logaritmen i ett valt ändligt fält, och svårigheten att beräkna den diskreta logaritmen i en vald grupp av punkter på en elliptisk kurva . Det finns en uppfattning om att kvantdatorer kommer att finnas tillgängliga om 10-15 år [4] . Om kvantdatorer med tillräckligt med minne byggdes skulle alla kryptosystem med offentlig nyckel baserade på dessa tre klassiska svåra problem bli extremt sårbara [1] . Denna typ av offentlig nyckelkryptering används idag för att skydda webbplatser , datorbehörighetsinformation och för att förhindra att datorer tar emot skadlig programvara [5] .
Kryptografi som inte kan brytas av en kvantdator kallas kvantsäker eller postkvantkryptografi . En klass av dessa algoritmer är baserad på konceptet " inlärning med fel " introducerat av Oded Regevår 2005 [6] . En specialiserad form av felinlärning verkar i en polynomring över ett ändligt fält . Denna specialiserade form kallas Errored Learning Ring eller RLWE [7] .
Det finns många kryptografiska algoritmer som använder RLWE-paradigmet. Det finns publika nyckelkryptosystem , homomorfa krypteringsalgoritmer och RLWE digitalt signerade algoritmer utöver den publika nyckeln. Nyckelutbyte är en typ av asymmetrisk kryptering som upprättar en delad hemlig nyckel mellan två interagerande agenter på en kommunikationslänk. Ett klassiskt exempel på ett nyckelutbyte är Diffie-Hellman-protokollet (och, som dess förlängning, Elliptic Curve Diffie-Hellman-protokollet ). Växeln består av en överföring från ena änden av linjen och en överföring från den andra änden av linjen [8] .
RLWE-nyckelutbyte är designad som en kvantsäker ersättning för protokoll som används för att säkert generera hemliga nycklar över opålitliga kommunikationskanaler. Liksom Diffie-Hellman-protokollet tillhandahåller RLWE den kryptografiska egenskapen " perfekt framåtsekretess " [9] , som syftar till att minska effektiviteten av massövervakningsprogram och att se till att det inte finns några långsiktiga hemliga nycklar som kan äventyras, vilket möjliggör bulkdekryptering.
Med hjälp av ett primtal q, arbetar RLWE i ringen av polynom modulo polynomet Ф(х) med koefficienter i fältet för heltal modulo q (ring F q [x]/Φ(x)) [10] [8] . Polynomet a(x) uttrycks enligt följande:
a(x) = a 0 + a 1 x + a 2 x 2 + … + a n-3 x n-3 + a n-2 x n-2 + a n-1 x n-1Koefficienterna för detta polynom är heltal modulo q . Polynom Φ(x) = x n +1 , där n är en potens av 2 (i de flesta fall värden för n = 256, 512 eller 1024).
RLWE-KEX använder polynom som anses vara "små" med avseende på ett mått som kallas den "oändliga" normen [11] . Den oändliga normen för ett polynom är värdet på den största polynomkoefficienten när koefficienterna betraktas som element i mängden { ,..., 0, …, }. För att säkerställa algoritmens säkerhet är det nödvändigt att generera slumpmässiga polynom s(x) som är små med avseende på den oändliga normen. Detta görs genom att slumpmässigt generera koefficienter för polynomet ( s n-1 , …, s 0 ), som garanteras eller med stor sannolikhet är små. Det finns två vanliga sätt:
Låt slumpmässiga små polynom följa fördelningen, betecknade som D . Talet q kommer att vara udda primtal så att q ≡ 1 mod 4 och
q ≡ 1 mod 2n för att minimera antalet slumpmässiga bitvalsoperationer på den inställda gränsen [14] . Detta gör att du kan implementera algoritmen mest effektivt [15] . Graden av polynomet Ф(x) är graden 2 [16] .
Låt ett fast polynom a(x) vara gemensamt för alla nätverksanvändare, genererat med hjälp av en kryptografiskt säker pseudoslumptalsgenerator . Med a(x) väljs små polynom s(x) och e(x) slumpmässigt , s(x) är den privata nyckeln i den publika nyckelutbytet. Motsvarande publika nyckel kommer att vara polynomet t(x) = a(x)s(x) + e(x) [11] . Nyckelutbytessäkerhet baseras på svårigheten att hitta ett par små polynom s'(x) och e'(x) så att för en given t(x) a(x)s'(x) + e'(x) = t(x) .
Nyckelutbytet sker mellan nyckelutbytesagenterna Alice , märkt A , och Bob , märkt B. Både A och B känner till q , n , a(x) och kan generera små polynom enligt fördelningen D [10] [17] .
Alices första handlingar [17] :
Bobs handlingar [17] :
Alices nästa steg [17] :
Om nyckelutbytet fungerar korrekt kommer strängarna u n-1 , …, u 0 för Alice och Bob att matcha [18] . Beroende på detaljerna för de valda parametrarna n , q , σ och b , finns det en möjlighet att t A (x) och t B (x) kommer att matcha. Parametrarna för nyckelutbytet måste väljas så att sannolikheten för detta nyckelutbytesfel är mycket låg - mycket mindre än sannolikheten för oupptäckbar korruption eller enhetsfel.
Utbytet fungerar i ringen av polynom av grad inte mer än n-1 modulo polynomet Φ(х) . Det antas att n är potensen 2 och q är primtal, q ≡ 1 mod 4 . Baserat på Peikerts arbete föreslog Sing två uppsättningar parametrar för RWLE-KEX [19] .
För 128 -bitars säkerhet: n = 512 , q = 25601 och Φ(x) = x 512 + 1
För 256 -bitars säkerhet: n = 1024 , q = 40961 och Φ(x) = x 1024 + 1
Eftersom nyckelutbytet använder slumpmässigt begränsat urval, finns det en chans att samma nycklar kommer att genereras för Alice och Bob . Antag att en Gaussisk parameter är σ = eller enhetlig sampling används med b = 5 , då är sannolikheten för matchningsfel för publik nyckel mindre än 2 −71 och 2 −75 för 128 bitars parametrar och mindre än 2 −91 och 2 −97 för 256 bitparametrar, respektive [19] .
Alkim, Duka, Popplemann och Schwabe (november 2015) rekommenderar följande parametrar: n = 1024 , q = 12289 och Φ(x) = x 1024 + 1 eftersom de säkerställer effektiviteten och säkerheten för algoritmen. I fallet med 256 -bitars säkerhet ger denna uppsättning en matchningsfelsannolikhet på 2 −110 [20] .
Beräkningskomplexiteten för att bryta RLWE-KEX är av samma ordning som att lösa det kortaste vektorproblemet (SVP) i ett idealiskt gitter [21] . Det bästa sättet att utvärdera den praktiska säkerheten för en given uppsättning gitterparametrar är BKZ 2.0-reduktionsalgoritmen . . I enlighet med BKZ 2.0-algoritmen kommer huvudväxlingsparametrarna ovan att ge mer än 128 respektive 256 bitars säkerhet [22] .
2014 gjorde Douglas Stebila en patch för OpenSSL 1.0.1f. baserat på arbetet publicerat i boken "Post-quantum key exchange for the TLS protocol from the ring learning with errors problem" . Syngas arbetsmjukvara finns på GitHub .[23] .
En annan tillämpning av algoritmen är arbetet av Zhang, Ding, Snook och Dagdelen "Post Quantum Authenticated Key Exchange from Ideal Lattices" . . Konceptet att skapa en Diffie-Hellman-algoritm introducerades först av de franska forskarna Aguilar, Gaborite, Lacharme, Schreck och Zemor vid PQCrypto 2010 i deras rapport "Noisy Diffie-Hellman Protocols" (ej tillgänglig länk) . Datum för åtkomst: 1 december 2015. Arkiverad från originalet den 24 september 2015. . Detta ämne utökades sedan och markerade början på Peukerts mer rigorösa studier i hans arbete . [24] .
Public key kryptosystem | |||||||||
---|---|---|---|---|---|---|---|---|---|
Algoritmer |
| ||||||||
Teori |
| ||||||||
Standarder |
| ||||||||
Ämnen |
|