I kryptografi er læring-med-fejl nøgleudveksling en kryptografisk algoritme, der gør det muligt for to parter at oprette og udveksle en hemmelig nøgle, som de bruger til at kryptere beskeder mellem sig. RLWE-KEX ( Ring Learning with Errors Key Exchange ) er en af de offentlige nøglealgoritmer , der er designet til at beskytte mod en modstander, der har en kvantecomputer . Dette er vigtigt, fordi de offentlige nøglekrypteringssystemer, der er almindeligt brugt i dag, let brydes af en kvantecomputer [1] . RLWE-KEX er en af mange post-kvantekryptografiske algoritmer baseret på kompleksiteten af at løse matematiske problemer relateret til kryptografi på gitter [2] .
Siden 1980'erne har sikkerheden ved kryptografisk nøgleudveksling og digitale signaturer på internettet primært været baseret på et lille antal større offentlige nøglekryptosystemer. Den kryptografiske styrke af disse algoritmer er baseret på et lille antal problemer, som er svære at beregne med klassiske metoder, men ganske let løses ved hjælp af en kvantecomputer [3] . Disse problemer er faktoriseringen af to omhyggeligt udvalgte primtal , vanskeligheden ved at beregne den diskrete logaritme i et valgt endeligt felt, og vanskeligheden ved at beregne den diskrete logaritme i en valgt gruppe af punkter på en elliptisk kurve . Der er en opfattelse af, at kvantecomputere vil være tilgængelige om 10-15 år [4] . Hvis kvantecomputere med tilstrækkelig hukommelse blev bygget, ville alle offentlige nøglekryptosystemer baseret på disse tre klassiske hårde problemer blive ekstremt sårbare [1] . Denne type offentlig nøglekryptering bruges i dag til at beskytte internetsider , computerautorisationsoplysninger og for at forhindre computere i at modtage skadelig software [5] .
Kryptografi, der ikke kan brydes af en kvantecomputer, kaldes kvantesikker eller postkvantekryptografi . En klasse af disse algoritmer er baseret på konceptet " læring med fejl " introduceret af Oded Regevi 2005 [6] . En specialiseret form for fejlindlæring opererer i en polynomialring over et begrænset felt . Denne specialiserede formular kaldes Errored Learning Ring eller RLWE [7] .
Der er mange kryptografiske algoritmer , der fungerer ved hjælp af RLWE-paradigmet. Der er offentlige nøglekryptosystemer , homomorfe krypteringsalgoritmer og RLWE digitalt signerede algoritmer ud over den offentlige nøgle. Nøgleudveksling er en type asymmetrisk kryptering , der etablerer en delt hemmelig nøgle mellem to interagerende agenter på et kommunikationslink. Et klassisk eksempel på en nøgleudveksling er Diffie-Hellman-protokollen (og, som dens forlængelse, Elliptic Curve Diffie-Hellman-protokollen ). Centralen består af en transmission fra den ene ende af linjen og en transmission fra den anden ende af linjen [8] .
RLWE nøgleudveksling er designet som en kvantesikker erstatning for protokoller , der bruges til sikkert at generere hemmelige nøgler over ikke-pålidelige kommunikationskanaler. Ligesom Diffie-Hellman-protokollen giver RLWE den kryptografiske egenskab " perfekt fremad hemmeligholdelse " [9] , som har til formål at reducere effektiviteten af masseovervågningsprogrammer og sikre, at der ikke er nogen langsigtede hemmelige nøgler, der kan kompromitteres, hvilket giver mulighed for massedekryptering.
Ved hjælp af et primtal q arbejder RLWE i ringen af polynomier modulo polynomiet Ф(х) med koefficienter i feltet af heltal modulo q (ring F q [x]/Φ(x)) [10] [8] . Polynomiet a(x) udtrykkes som følger:
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-1Koefficienterne for dette polynomium er heltal modulo q . Polynomium Φ(x) = x n +1 , hvor n er en potens af 2 (i de fleste tilfælde er værdier for n = 256, 512 eller 1024).
RLWE-KEX bruger polynomier, der betragtes som "små" med hensyn til et mål kaldet den "uendelige" norm [11] . Den uendelige norm for et polynomium er værdien af den største polynomiekoefficient, når koefficienterne betragtes som elementer i mængden { ,..., 0, …, }. For at sikre algoritmens sikkerhed er det nødvendigt at generere tilfældige polynomier s(x) , der er små i forhold til den uendelige norm. Dette gøres ved tilfældigt at generere koefficienter for polynomiet ( s n-1 , …, s 0 ), som er garanteret eller med stor sandsynlighed for at være små. Der er to almindelige måder:
Lad tilfældige små polynomier følge fordelingen, betegnet som D . Tallet q vil være et ulige primtal, således at q ≡ 1 mod 4 og
q ≡ 1 mod 2n for at minimere antallet af tilfældige bitudvælgelsesoperationer på den indstillede grænse [14] . Dette vil give dig mulighed for at implementere algoritmen mest effektivt [15] . Graden af polynomiet Ф(x) er graden af 2 [16] .
Lad et fast polynomium a(x) være fælles for alle netværksbrugere, genereret ved hjælp af en kryptografisk sikker pseudo-tilfældig talgenerator . Ved at tage a(x) vælges små polynomier s(x) og e(x) tilfældigt , idet s(x) er den private nøgle i den offentlige nøgleudveksling. Den tilsvarende offentlige nøgle vil være polynomiet t(x) = a(x)s(x) + e(x) [11] . Nøgleudvekslingssikkerhed er baseret på vanskeligheden ved at finde et par små polynomier s'(x) og e'(x), således at for en given t(x) a(x)s'(x) + e'(x) = t(x) .
Nøgleudvekslingen finder sted mellem nøgleudvekslingsagenterne Alice , mærket A , og Bob , mærket B. Både A og B kender q , n , a(x) og kan generere små polynomier ifølge fordelingen D [10] [17] .
Alices indledende handlinger [17] :
Bobs handlinger [17] :
Alices næste skridt [17] :
Hvis nøgleudvekslingen fungerer korrekt, vil strengene u n-1 , …, u 0 for Alice og Bob matche [18] . Afhængigt af de valgte parametres specifikationer n , q , σ og b , er der mulighed for , at t A (x) og t B (x) vil matche. Parametrene for nøgleudvekslingen skal vælges således, at sandsynligheden for denne nøgleudvekslingsfejl er meget lav - meget mindre end sandsynligheden for uopdagelig korruption eller enhedsfejl.
Udvekslingen fungerer i ringen af polynomier af grad ikke mere end n-1 modulo polynomiet Φ(х) . Det antages, at n er en potens af 2 , og q er primtal, q ≡ 1 mod 4 . Baseret på Peikerts arbejde foreslog Sing to sæt parametre for RWLE-KEX [19] .
For 128 -bit sikkerhed: n = 512 , q = 25601 og Φ(x) = x 512 + 1
For 256 -bit sikkerhed: n = 1024 , q = 40961 og Φ(x) = x 1024 + 1
Da nøgleudvekslingen bruger tilfældig begrænset sampling, er der en chance for, at de samme nøgler vil blive genereret for Alice og Bob . Antag, at en Gauss-parameter er σ = eller ensartet sampling bruges med b = 5 , så er sandsynligheden for offentlig nøglematchningsfejl mindre end 2 −71 og 2 −75 for 128 bit parametre og mindre end 2 −91 og 2 −97 for 256 bitparametre, henholdsvis [19] .
Alkim, Duka, Popplemann og Schwabe (november 2015) anbefaler følgende parametre: n = 1024 , q = 12289 og Φ(x) = x 1024 + 1 , da de sikrer effektiviteten og sikkerheden af algoritmen. I tilfælde af 256 -bit sikkerhed giver dette sæt en matchfejlssandsynlighed på 2 -110 [20] .
Den beregningsmæssige kompleksitet ved at bryde RLWE-KEX er af samme størrelsesorden som at løse det korteste vektorproblem (SVP) i et ideelt gitter [21] . Den bedste måde at evaluere den praktiske sikkerhed af et givet sæt gitterparametre på er BKZ 2.0-reduktionsalgoritmen . . I overensstemmelse med BKZ 2.0-algoritmen vil de vigtigste udvekslingsparametre angivet ovenfor give mere end henholdsvis 128 og 256 bits sikkerhed [22] .
I 2014 lavede Douglas Stebila en patch til OpenSSL 1.0.1f. baseret på arbejdet udgivet i bogen "Post-quantum key exchange for the TLS protocol from the ring learning with errors problem" . Syngas arbejdssoftware er på GitHub .[23] .
En anden anvendelse af algoritmen er arbejdet fra Zhang, Ding, Snook og Dagdelen "Post Quantum Authenticated Key Exchange from Ideal Lattices" . . Konceptet med at skabe en Diffie-Hellman-algoritme blev først introduceret af de franske forskere Aguilar, Gaborite, Lacharme, Schreck og Zemor ved PQCrypto 2010 i deres rapport "Noisy Diffie-Hellman Protocols" (utilgængeligt link) . Dato for adgang: 1. december 2015. Arkiveret fra originalen 24. september 2015. . Dette emne blev derefter udvidet og markerede begyndelsen på Peukerts mere stringente studier i hans arbejde . [24] .