Când spunem că o soluție este nepractic, nu vrem să spunem că nu poate funcționa deloc; in schimb, ne referim ca are deficiente serioase fata de alte modalitati de a rezolva aceeasi problema. De exemplu, s-ar putea folosi un avion pentru a merge în vizită la vecinul tău care locuiește la 100 de metri distanță; am fi cu toții de acord că există metode considerabil mai ușoare, așa că folosirea avionului este „nepractică”.
Problema pe care QKD încearcă să o rezolve este comunicarea securizată; adică cum poate Alice să-i trimită un mesaj lui Bob într-un mod „securizat”. Desigur, pentru a încerca să determinăm caracterul practic, ar trebui să luăm în considerare celelalte soluții posibile și modul în care acestea se compară cu soluția QKD. În acest caz, alternativele evidente includ un sistem bazat în întregime simetric (de exemplu, un sistem asemănător Kerberos) și ceva care utilizează criptografia postcuantică (de exemplu, Classic McEliece și Sphincs+) [1].
Linia de gânduri pe care o schițez mai jos este opinia majorității experților și ar trebui să fie relativ clară.
Iată o listă cu câteva puncte majore în care soluțiile diferă:
QKD necesită anumite tipuri de medii pentru a funcționa
În prezent, QKD poate fi demonstrat doar pe fibră optică de lungime scurtă până la medie (< 400 km) și comunicații în spațiu liber (îndreptați un laser către o țintă care se află în raza vizuală) [2]. Dacă rețeaua dvs. existentă care utilizează orice alt mediu de stocare într-o cantitate semnificativă (de exemplu, cuptor cu microunde sau satelit sau fibră optică la distanță lungă sau WiFi), ei bine, va trebui să reproiectați o mare parte a rețelei dvs. (și noroc în încercarea de a obține o conexiune sigură). de la, să zicem, la Londra la Tokyo).
În schimb, soluțiile alternative nu au o astfel de limitare.
Care sunt ipotezele de securitate?
Susținătorii QKD susțin adesea că „legile mecanicii cuantice implică teorema fără clonare, prin urmare datele dumneavoastră sunt sigure”. Deși prima parte este cu siguranță adevărată, nu înseamnă neapărat că datele sunt sigure. La urma urmei, legile mecanicii cuantice nu demonstrează că dispozitivul tău QKD funcționează de fapt așa cum a fost proiectat și nu demonstrează că nu există atacuri pe canale laterale (adică atacuri în care adversarul profită de informații dincolo de modelul abstract). oferă atacatorului) disponibile. Acestea sunt ipoteze de securitate pe care trebuie să le facă un utilizator QKD (în plus față de ipoteza relativ sigură „QM este o descriere bună a universului”). Acum, furnizorii QKD sunt conștienți de acest lucru și încearcă să ofere protecții - trebuie totuși să presupuneți că nu există ceva ce au ratat. Vezi de exemplu asta articol din The Register.
Când ne uităm la soluțiile alternative, acestea sunt bazate pe complexitate (adică presupun că problema de calcul pe care atacatorul trebuie să o rezolve este prea grea). La prima vedere, aceasta ar putea părea o presupunere mai puternică [3]; cu toate acestea, putem folosi destul de ieftin criptografie supraproiectată (de exemplu, combinația 5xAES256 sau AES-ChaCha-Serpent sau McEliece cu dimensiunea matricei dublă); a face acest lucru cu siguranță are un cost; cu toate acestea, un cost mult mai mic decât un sistem QKD. Prin urmare, aș numi acest punct o egalitate...
Cum plănuiți să autentificați schimbul de chei?
Schimbul simplu de chei vă poate proteja numai împotriva observatorilor pasivi. Dar adversarii din lumea reală tind să refuze să urmeze modelele noastre simpatice de atac idealizate. Dacă doriți (și o faceți) protecție împotriva adversarilor activi, care pot lansa atacuri de tip man-in-the-middle, aveți nevoie de schimb de chei autentificate (consultați de ex. această hârtie). Cum vă veți autentifica, având în vedere că nu există nicio schemă de semnătură cuantică fără presupuneri magice? Aveți două opțiuni:
(1) Cu o schemă de semnătură tradițională (securizată din punct de vedere informatic). Dar apoi, renunțați la motivul pentru care utilizați QKD în primul rând, și anume evita ipoteze de calcul. Dacă alegeți (1), atunci ar trebui să vă gândiți cu siguranță să rulați un frumos clasic protocol de schimb de chei autentificat cu securitate computațională, de ex. unul bazat pe LWE sau ipoteze teoretice de codificare. (*)
(2) Cu o scurtă cheie aleatorie pre-partajată, codificată în dispozitiv de către producător, apoi folosind Carter-Wegman MAC și QKD pentru a regenera materialul cheii partajate pe parcurs. Dar apoi, felicitări: ați înlocuit cu succes ipoteza durității de calcul bine studiată cu o ipoteza de configurare de încredere: ipoteza că producătorul este un terț de încredere, care a codificat sincer chei identice uniform aleatoare în dispozitive și, desigur, nu a păstrat nicio urmă a acestei chei și nici nu a împărtășit-o cu nimeni altcineva. Dacă sunteți familiarizat cu criptografie, acest lucru ar trebui să sune un clopoțel: evitarea acestui tip de ipoteză de configurare de încredere este întregul punct a criptografiei în primul rând. În acest caz, vă îndemn să considerați că „LWE este securizat” este a mult mai sigur presupunerea că „producătorii mei sunt perfect cinstiți, nu lacomi, nu pot fi corupti și nu vor păstra cheia și nu o vor împărtăși cu nimeni”.
(*) Pentru a fi complet, există două moduri în care ar trebui să reducem (1) puțin tonul: (a) s-ar putea prefera să aibă confidențialitate perfectă și autentificare computațională, deoarece prima este veșnică, iar cea de-a doua este la fața locului; (b) semnăturile pot fi construite din criptografia simetrică și, teoretic, este posibil ca criptografia simetrică să existe în timp ce criptografia cu chei publice (necesară pentru schimbul de chei) nu există. Acum, este o fereastră teoretică minusculă, dar dacă de asta vă temeți și sunteți gata să plătiți costul QKD pentru a face față acestei frici, este din punct de vedere tehnic un motiv valid.
Ce ai de gând să faci cu această cheie partajată?
QKD oferă doar o cheie pentru ambele părți; cum folosim această cheie pentru a proteja mesajul (care este, până la urmă, întregul scop al acestui exercițiu)?
Dacă intenționați să le utilizați pentru a vă cripta datele cu AES, atunci faceți din nou o presupunere de calcul și ați pierdut din nou această confidențialitate perfectă și frumoasă, cu care s-a promis QKD. Deci, din nou, nu plătiți prețul QKD pentru a obține o securitate perfectă, ci doar pentru a obține capacitatea de a vă baza pe presupunerea simetrică post-cuantică (de exemplu, „AES este securizat împotriva calculatoarelor cuantice”) în loc de presupunerea cheii publice. Și, amintiți-vă, una dintre alternativele noastre se baza deja doar pe această presupunere simetrică.
Pe de altă parte, dacă utilizați fluxul de chei generat de QKD pentru a cripta direct datele (cu un MAC sigur din punct de vedere informațional, s-ar spera), atunci ne confruntăm cu următoarea problemă - sistemele QKD nu sunt atât de rapide. Acum, acestea au devenit mai rapide de-a lungul timpului și, având în vedere că performanța este o problemă de inginerie, nu o limitare bazată pe fizică, pare plauzibil ca accelerarea să continue în timp. Cu toate acestea, viteza pe care o parcurg acum este mult mai mică decât viteza cu care rulează rețelele reale - acesta este un blocaj semnificativ de performanță.
Cost
În acest moment, sistemele QKD sunt scumpe (costul a scăzut, dar sunt încă scumpe). În schimb, soluțiile alternative pot fi implementate pe hardware standard ieftin.
Concluzia: alternativele sunt la fel de bune sau mai bune în toate punctele.
[1]: O a treia alternativă pe care am ales să nu o extind ar fi „one-time-pad”. Cred că și asta nu este practic; cu toate acestea ar putea suporta compararea cu un OTP...
[2]: Încurcarea cuantică a fost demonstrată ca o dovadă de concept între sol și satelit, cu toate acestea, este un drum lung de parcurs între ceea ce au și un sistem practic utilizabil.
[3]: „Mai puternic” înseamnă „trebuie să presupunem mai mult”. În acest caz, „mai puternic” este un lucru rău - vrem ca ipotezele noastre de securitate să fie cât mai slabe posibil.