Salaustekniikassa oppiminen virheen kanssa avaimen vaihto on salausalgoritmi, jonka avulla kaksi osapuolta voivat luoda ja vaihtaa salaisen avaimen, jota ne käyttävät viestien salaamiseen keskenään. RLWE-KEX ( Ring Learning with Errors Key Exchange ) on yksi julkisen avaimen algoritmeista , joka on suunniteltu suojaamaan vastustajalta, jolla on kvanttitietokone . Tämä on tärkeää, koska nykyään yleisesti käytössä olevat julkisen avaimen salausjärjestelmät rikkoutuvat helposti kvanttitietokoneella [1] . RLWE-KEX on yksi monista post-kvanttisalausalgoritmeista, jotka perustuvat hilasalaukseen liittyvien matemaattisten ongelmien ratkaisemisen monimutkaisuuteen [2] .
1980-luvulta lähtien salausavainten vaihdon ja digitaalisten allekirjoitusten turvallisuus Internetissä on perustunut pääasiassa pieneen määrään suuria julkisen avaimen salausjärjestelmiä. Näiden algoritmien kryptografinen vahvuus perustuu pieneen määrään ongelmia, joita on vaikea laskea klassisilla menetelmillä, mutta melko helposti ratkaistavissa kvanttitietokoneella [3] . Näitä ongelmia ovat kahden huolellisesti valitun alkuluvun tekijöihin jakaminen , diskreetin logaritmin laskemisen vaikeus valitussa äärellisessä kentässä ja diskreetin logaritmin laskemisen vaikeus valitussa pisteryhmässä elliptisellä käyrällä . On olemassa mielipide, että kvanttitietokoneet ovat saatavilla 10-15 vuoden kuluttua [4] . Jos rakennettaisiin kvanttitietokoneita, joissa on riittävästi muistia, kaikki näihin kolmeen klassiseen kovaan ongelmaan perustuvat julkisen avaimen salausjärjestelmät tulisivat erittäin haavoittuvia [1] . Tämän tyyppistä julkisen avaimen salausta käytetään nykyään suojaamaan Internet-sivustoja , tietokoneiden valtuutustietoja ja estämään tietokoneita vastaanottamasta haittaohjelmia [5] .
Kryptografiaa, jota kvanttitietokone ei voi rikkoa, kutsutaan kvanttiturvalliseksi tai postkvanttisalaukseksi . Yksi näiden algoritmien luokka perustuu Oded Regevin esittämään " virheiden kanssa oppimisen " käsitteeseenvuonna 2005 [6] . Erityinen virheoppimisen muoto toimii polynomirenkaassa äärellisen kentän päällä . Tätä erikoismuotoa kutsutaan Errored Learning Ringiksi tai RLWE:ksi [7] .
On monia salausalgoritmeja, jotka toimivat RLWE-paradigman avulla. Julkisen avaimen lisäksi on olemassa julkisen avaimen salausjärjestelmiä , homomorfisia salausalgoritmeja ja digitaalisesti allekirjoitettuja RLWE- algoritmeja . Avainten vaihto on eräänlainen epäsymmetrinen salaus , joka muodostaa jaetun salaisen avaimen kahden vuorovaikutuksessa olevan agentin välille viestintälinkissä. Klassinen esimerkki avaintenvaihdosta on Diffie-Hellman-protokolla (ja sen laajennuksena elliptisen käyrän Diffie-Hellman-protokolla ). Vaihto koostuu yhdestä lähetyksestä linjan toisesta päästä ja yhdestä lähetyksestä linjan toisesta päästä [8] .
RLWE-avainvaihto on suunniteltu kvanttiturvalliseksi korvaajaksi protokollille , joita käytetään luomaan turvallisesti salaisia avaimia epäluotettavilla viestintäkanavilla. Kuten Diffie-Hellman-protokolla, RLWE tarjoaa salausominaisuuden " täydellisesti eteenpäin salassapito " [9] , jonka tavoitteena on vähentää massavalvontaohjelmien tehokkuutta ja varmistaa, ettei ole olemassa pitkäaikaisia salaisia avaimia, jotka voivat vaarantua, mikä mahdollistaisi joukkosalauksen purkamisen.
Alkulukua q käyttäen RLWE toimii polynomin renkaassa modulo polynomin Ф(х) kertoimilla kokonaislukujen kentässä modulo q (rengas F q [x]/Φ(x)) [10] [8] . Polynomi a(x) ilmaistaan seuraavasti:
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-1Tämän polynomin kertoimet ovat kokonaislukuja modulo q . Polynomi Φ(x) = x n +1 , jossa n on 2 :n potenssi (useimmissa tapauksissa n:n arvot = 256, 512 tai 1024).
RLWE-KEX käyttää polynomeja, joita pidetään "pieninä" suhteessa mittaan, jota kutsutaan "äärettömäksi" normiksi [11] . Polynomin ääretön normi on suurimman polynomikertoimen arvo, kun kertoimia pidetään joukon { ,…, 0, …, } elementteinä. Algoritmin turvallisuuden varmistamiseksi on tarpeen generoida satunnaisia polynomeja s(x) , jotka ovat pieniä suhteessa äärettömään normiin. Tämä tehdään generoimalla satunnaisesti kertoimet polynomille ( s n-1 , …, s 0 ), jotka ovat taattuja tai suurella todennäköisyydellä pieniä. On olemassa kaksi yleistä tapaa:
Seuraakoon satunnaiset pienet polynomit jakaumaa, jota merkitään D :llä . Luku q on pariton alkuluku siten, että q ≡ 1 mod 4 ja
q ≡ 1 mod 2n , jotta minimoidaan satunnaisten bittien valintaoperaatioiden määrä asetetulla rajalla [14] . Näin voit toteuttaa algoritmin tehokkaimmin [15] . Polynomin Ф(x) aste on 2: n aste [16] .
Olkoon kiinteä polynomi a(x) yhteinen kaikille verkon käyttäjille, generoituna kryptografisesti suojatulla näennäissatunnaislukugeneraattorilla . Ottaen a(x) , pienet polynomit s(x) ja e(x) valitaan satunnaisesti , s(x) on yksityinen avain julkisen avaimen vaihdossa. Vastaava julkinen avain on polynomi t(x) = a(x)s(x) + e(x) [11] . Avaintenvaihdon suojaus perustuu vaikeuteen löytää pari pieniä polynomia s'(x) ja e'(x) siten, että tietylle t(x) a(x)s'(x) + e'(x) = t(x) .
Avainten vaihto tapahtuu avaintenvaihtoagenttien Alicen , merkintä A , ja Bobin , nimeltä B , välillä. Sekä A että B tietävät q , n , a(x) ja voivat generoida pieniä polynomeja jakauman D mukaisesti [10] [17] .
Liisan ensimmäiset toimet [17] :
Bobin toimet [17] :
Liisen seuraavat askeleet [17] :
Jos avainten vaihto toimii oikein, merkkijonot u n-1 , …, u 0 Alicelle ja Bobille vastaavat [18] . Valittujen parametrien n , q , σ ja b ominaisuuksista riippuen on mahdollista , että t A (x) ja t B (x) täsmäävät. Avaintenvaihdon parametrit on valittava siten, että tämän avaimenvaihtovirheen todennäköisyys on hyvin pieni – paljon pienempi kuin havaitsemattoman vioittumisen tai laitevian todennäköisyys.
Vaihto toimii polynomin renkaassa, jonka aste on enintään n-1 moduloi polynomia Φ(х) . Oletetaan, että n on 2: n potenssi ja q on alkuluku, q ≡ 1 mod 4 . Peikertin työn perusteella Sing ehdotti kahta parametrijoukkoa RWLE-KEX:lle [19] .
128 - bittiselle suojaukselle: n = 512 , q = 25601 ja Φ (x) = x 512 + 1
256 - bittinen suojaus: n = 1024 , q = 40961 ja Φ(x) = x 1024 + 1
Koska avainten vaihto käyttää satunnaista rajoitettua otantaa, on mahdollista, että samat avaimet luodaan Alicelle ja Bobille . Oletetaan, että Gaussin parametri on σ = tai tasaista näytteenottoa käytetään b = 5 :n kanssa , jolloin julkisen avaimen sovitusvirheen todennäköisyys on pienempi kuin 2 -71 ja 2 -75 128 - bittisille parametreille ja pienempi kuin 2 -91 ja 2 -97 arvolle 256 bittiparametrit, vastaavasti [19] .
Alkim, Duka, Popplemann ja Schwabe (marraskuu 2015) suosittelevat seuraavia parametreja: n = 1024 , q = 12289 ja Φ(x) = x 1024 + 1 , koska ne varmistavat algoritmin tehokkuuden ja turvallisuuden. Jos kyseessä on 256 - bittinen suojaus, tämä sarja tarjoaa täsmäysvirhetodennäköisyyden 2 −110 [20] .
RLWE-KEX:n katkaisun laskennallinen monimutkaisuus on samaa luokkaa kuin lyhimmän vektorin ongelman (SVP) ratkaiseminen ideaalisessa hilassa [21] . Paras tapa arvioida tietyn hilaparametrijoukon käytännön turvallisuutta on BKZ 2.0 - pelkistysalgoritmi . . BKZ 2.0 -algoritmin mukaisesti yllä luetellut tärkeimmät vaihtoparametrit tarjoavat vastaavasti yli 128 ja 256 bitin suojauksen [22] .
Vuonna 2014 Douglas Stebila teki korjaustiedoston OpenSSL 1.0.1f:lle. perustuu kirjassa "Post-quantum key exchange for the TLS protocol from the ring learning with errors Problem" julkaistuun työhön . Syngan työohjelmisto on GitHubissa .[23] .
Toinen algoritmin sovellus on Zhangin, Dingin, Snookin ja Dagdelenin työ "Post Quantum Authenticated Key Exchange from Ideal Lattices" . . Diffie-Hellman-algoritmin luomisen käsitteen esittelivät ensimmäisenä ranskalaiset tutkijat Aguilar, Gaborite, Lacharme, Schreck ja Zemor PQCrypto 2010 -tapahtumassa raportissaan "Noisy Diffie-Hellman Protocols" (linkki ei saatavilla) . Käyttöpäivä: 1. joulukuuta 2015. Arkistoitu alkuperäisestä 24. syyskuuta 2015. . Tätä aihetta laajennettiin sitten ja se merkitsi alkua Peukertin tiukemmille tutkimuksille työssään . [24] .