VPN autorius WireGuard išleido naują RDRAND naujinį

Jasonas A. Donenfeldas, VPN WireGuard autorius paviešino prieš kelias dienas naujas įgyvendinimas atnaujinta iš atsitiktinių skaičių generatoriaus RDRAND, kuri yra atsakinga už /dev/random ir /dev/urandom įrenginius Linux branduolyje.

Lapkričio pabaigoje Jasonas buvo įtrauktas į atsitiktinio valdiklio prižiūrėtoją ir dabar paskelbė pirmuosius savo pertvarkymo darbo rezultatus.

Skelbime minima, kad naujasis diegimas išsiskiria pereiti prie BLAKE2s maišos funkcijos, o ne SHA1 entropijos maišymo operacijoms.

Pats BLAKE2s turi puikią savybę, kad viduje yra pagrįstas
ChaCha permutacija, kurią RNG jau naudoja plėtrai, taigi
neturėtų kilti problemų dėl naujumo, originalumo ar nuostabaus procesoriaus
elgesys, nes jis pagrįstas tuo, kas jau naudojama.

Be to, pažymima, kad pakeitimas taip pat pagerino pseudoatsitiktinių skaičių generatoriaus saugumą atsikratant varginančio SHA1 algoritmo ir išvengiant RNG inicijavimo vektoriaus perrašymo. Kadangi BLAKE2s algoritmas savo našumu lenkia SHA1, jo naudojimas taip pat turėjo teigiamos įtakos pseudoatsitiktinių skaičių generatoriaus veikimui (sistemos su Intel i7-11850H procesoriumi bandymai parodė, kad greitis padidėjo 131%).) .

Kitas privalumas, kuris išsiskiria, yra entropijos mišinio perkėlimas į BLAKE2 yra naudojamų algoritmų suvienodinimas: BLAKE2 naudojamas ChaCha šifre, kuris jau naudojamas atsitiktinių sekų ištraukimui.

BLAKE2 paprastai yra greitesnis ir tikrai saugesnis, Tai tikrai labai sulaužyta. Be to, dabartinė RNG versija nenaudoja visos SHA1 funkcijos, kaip nurodo ir leidžia tam tikru būdu perrašyti IV su RDRAND išvestimi nedokumentuotas, net jei RDRAND nėra sukonfigūruotas kaip „patikimas“, kuris o tai reiškia galimus kenkėjiškus IV variantus.

O jo trumpas ilgis reiškia kad būtų tik pusė paslapties paduodamas atgal į maišytuvą tai suteikia mums tik 2^80 bitų paslapties. Kitaip tariant, ne tik maišos funkcijos pasirinkimas yra pasenęs, tačiau jos naudojimas taip pat nėra labai geras.

Taip pat buvo patobulintas kriptografiškai saugus CRNG pseudoatsitiktinių skaičių generatorius, naudojamas atsitiktiniam skambučiui.

Taip pat minima, kad patobulinimai apsiriboja skambučio ribojimu į RDRAND generatorių lėtai išskiria entropiją, kuri gali pagerinti našumą 3,7 karto. Jasonas parodė, kad skambutis RDRAND Tai prasminga tik situacijoje, kai CRNG dar nėra pilnai inicijuotas, tačiau jei CRNG inicijavimas baigtas, jo reikšmė neturi įtakos generuojamo srauto kokybei, o tokiu atveju tai galima padaryti be iškvietimo. RDRAND.

Šiuo kompromisu siekiama išspręsti šias dvi problemas ir kartu išlaikyti bendroji struktūra ir semantika kuo artimesnė originalui.
Tiksliau:

a) Užuot perrašę IV maišą naudodami RDRAND, įdedame į dokumentuotus BLAKE2 „druskos“ ir „asmeninius“ laukus, kurie yra sukurtas specialiai tokiam naudojimui.
b) Kadangi ši funkcija grąžina visos maišos rezultatą į entropijos kolektorius, grąžiname tik pusę ilgio hash, kaip ir anksčiau. Tai padidina sukurti išankstinę paslaptį nuo 2^80 iki 2^128 daug patogiau.
c) Užuot naudoję tik neapdorotą „sha1_transform“ funkciją, vietoj to naudojame visą ir tinkamą BLAKE2s funkciją su užbaigimu.

Numatyta, kad pakeitimai bus įtraukti į 5.17 branduolį ir jau buvo peržiūrėtos kūrėjų Ted Ts'o (antrasis atsitiktinės tvarkyklės prižiūrėtojas), Gregas Kroah-Hartmanas (atsakingas už Linux branduolio stabilumą) ir Jeanas-Philippe'as Aumassonas (BLAKE2 algoritmų autorius /3).

Galiausiai, jei jus domina galimybė apie tai sužinoti daugiau, išsamią informaciją galite rasti sekanti nuoroda.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje