Puncte:4

Nu văd cât de util este un ECDH

drapel ph

Îmi este greu să înțeleg utilitatea utilizării unui ECDH față de criptarea tradițională asimetrică. Ambele părți trebuie să facă schimb de chei publice pentru a calcula ECDH, așa că de ce nu și-ar cripta mesajele cu cheile publice pe care tocmai le-au schimbat?

Singurul caz de utilizare pentru ECDH la care mă gândesc este dacă Alice își pierde mesajul original după ce l-a trimis lui Bob, cu ECDH îl poate încă decripta. Dar de ce l-ar pierde? Acest exemplu mi se pare prea artificios.

Știe cineva exemple/scenarii/cazuri de utilizare bune în care ECDH strălucește/este necesar?

drapel mu
Dan
Pentru moment ignorând autentificarea -- includeți ECDH efemer ("ECDHE") în întrebarea dvs.? dacă da, imaginați-vă dacă cheia privată a lui Bob sau Alice este compromisă. Acum totul este descoperit, toată istoria din trecut. Același motiv pentru care TLS1.3 a eliminat RSA pentru transportul cheii. Privește secretul înainte și secretul înapoi.
WizardOfMenlo avatar
drapel ph
O altă preocupare este cea a eficienței. DH (și mecanismul KEM în general) sunt de obicei folosite pentru a stabili un secret comun comun, care apoi poate fi folosit cu criptografie simetrică (care este de obicei ordine de mărime mai rapidă).Cu siguranță puteți folosi PKE pentru a realiza același lucru (de fapt, PKE-urile și KEM-urile sunt echivalente), dar utilizarea directă a unui KEM este de obicei mai naturală. DH se poate face, de asemenea, într-o manieră neinteractivă, ceea ce este destul de util în protocoalele asincrone complexe, cum ar fi Signal.
Puncte:9
drapel my

Îmi este greu să înțeleg utilitatea utilizării unui ECDH față de criptarea tradițională asimetrică.

Singurul caz de utilizare pentru ECDH la care mă gândesc este dacă Alice își pierde mesajul original după ce l-a trimis lui Bob, cu ECDH îl poate încă decripta.

De fapt, avantajul ECDH este exact opusul acestuia - este atât de Alice (sau Bob) nu pot decriptați mesajul mai târziu.

Adică, atât Alice, cât și Bob generează valorile private ECDH, le folosesc pentru acel schimb și apoi le pune la zero (și cheile simetrice de asemenea) după ce mesajele au fost schimbate. Apoi, nici Alice, nici Bob nu pot recupera cheile secrete și, prin urmare, nu pot decripta mesajul.

De ce este acesta un avantaj? Să presupunem că una dintre cele două părți a fost ulterior subminată (fie de un hacker, fie de un mandat legal) - în acest caz, mesajul este încă sigur. „Da, domnule judecător, ați emis un mandat, dar literalmente nu avem (și nu putem obține) informațiile pe care le cereți”.

Această proprietate este cunoscută sub numele de Perfect Forward Secrecy; îl puteți obține, de asemenea, utilizând criptarea cheii publice (generarea unei perechi de chei publice/private înainte de schimb și ștergerea cheii private ulterior) - totuși, această abordare nu are niciun avantaj deosebit față de ECDH.

Maarten Bodewes avatar
drapel in
Nu este faptul că generarea perechilor de chei este eficientă pentru DH și ECDH principala diferență? Securitatea directă este bună, dar dacă serverul sau clientul trebuie să genereze o pereche de chei 4K RSA pentru fiecare stabilire a cheii, atunci eficiența protocolului ar putea deveni problematică.
poncho avatar
drapel my
@MaartenBodewes: da, cu RSA, e scump - totuși, dacă ai vrea, ai putea să o faci cu (să zicem) ElGammal...
Puncte:4
drapel ng

ECDH este cunoscut ca a Mecanism de încapsulare cheie, care, după cum menționați, este similar cu criptarea cheii publice, dar nu este același. Există multe motive pentru a prefera KEM-urile, o să menționez rapid unul. În primul rând, rețineți că un KEM este (formal) un tuplu de trei algoritmi $(\mathsf{KGen}, \mathsf{Encaps}, \mathsf{DCaps})$, Unde

  1. $\mathsf{KGen}$ ia ca intrare un parametru de securitate $1^\lambda$, și scoate o pereche de taste $(sk, pk)$

  2. $\mathsf{Encaps}$ ia ca intrare o cheie publică $pk$ (și poate ceva aleatoriu, care este adesea doar implicit) și returnează o pereche $(k, c)$ a unei chei derivate $k$, și „text cifrat” $c$

  3. $\mathsf{Decapsule}$ ia ca intrare o cheie secretă $sk$ și „text cifrat” $c$, și scoate o altă cheie derivată $k'$.

KEM-ul este corect dacă $k = k'$ în cele din urmă, de ex. cele două chei derivate sunt de acord. Noțiunea de securitate a KEM-urilor este similară cu cea a PKE, ceea ce înseamnă că există o modalitate naturală de a extinde noțiunile tradiționale de securitate IND-CPA/IND-CCA.

Rețineți că se poate construi un KEM folosind orice PKE, având $\mathsf{Encaps}_{pk}(r) = \mathsf{Enc}_{pk}(r)$, Unde $r$ este aleatorietatea folosită de KEM (aceasta este ideea de „criptare uniform aleatorie a cheilor” pe care ați menționat-o). Poate ar trebui să scriem în mod explicit $\mathsf{Enc}_{pk}(f(r))$ este o funcție a aleatoriei --- nu mă voi deranja să fiu acest lucru explicit.

Deci de ce să-i pese de KEM-uri? Deși există și alte lucruri pe care le puteți menționa, a major Ideea este că există anumite proprietăți pe care KEM-urile „naturale” (cum ar fi ECDH) le au și că un KEM construit din abordarea „criptare chei aleatoare” le face nu avea. Aceasta înseamnă că ECDH nu este „doar” un KEM și poate fi folosit în aplicații în care criptarea cheilor aleatoare nu funcționează.

Poate că proprietatea cea mai evidentă spre care trebuie indicată este „non-interactivitatea”. În special, ECDH poate fi scris ca

  1. ambele părți schimbând o pereche de chei Diffie Hellman $(g, g^{s_i})$, și apoi
  2. calculând o funcție simplă a acestor perechi de taste.

Dacă încercăm să scriem asta cu sintaxa unui KEM, am putea spune asta $\mathsf{KGen}(1^\lambda)$ produce o pereche de chei $(g, s_0, g^{s_0})$, și asta $\mathsf{Encaps}_{g^{s_0}}(r) = (g, s_1, g^{s_1})$ produce o altă pereche de chei, în care modelăm „textul cifrat” ca $g^{s_1}$. Aceasta are o foarte proprietate curioasă totuși --- $g^{s_1}$, „textul cifrat” al schemei, face nu depind de cheia publică (în afară de generatorul de grup $g$, care poate fi standardizat ca parametru public).

Aceasta este o proprietate destul de surprinzătoare și una pe care schema „criptare cheie aleatorie” nu o are. Este cunoscut ca fiind o schemă de schimb de chei non-interactiv (NIKE). Proprietatea este ambele

  1. util în practică --- „Clichet dublu” al semnalului folosește această proprietate într-un mod cheie, ceea ce face dificilă „introducerea” unui alt KEM de utilizat pentru semnal și

  2. teoretic non-trivial --- construirea generică a NIKE necesită unele primitive fanteziste, cum ar fi criptarea FHE/funcțională. Există rezultate cunoscute care arată că probabil că nu este posibil să construiești NIKE folosind grilaje (și în mod plauzibil coduri) cu „parametri mici”.

De fapt (excluzând schemele bazate pe zăbrele cu parametri mari), cunosc doar un NIKE post-cuantic, și anume CSIDH.Aceasta înseamnă că o modificare simplă a semnalului să fie post-cuantică

  • folosește CSIDH,
  • folosește o variantă mai puțin eficientă a unei scheme NIST PQC (să zicem o schemă bazată pe zăbrele cu parametri mici) sau
  • modifică într-un fel protocolul Signal în sine, de obicei cu o anumită eficiență.

Deși există lucruri mai nuanțate pe care le puteți spune pentru a compara PKE și KEM-urile, teoretic există o foarte beneficiu mare pentru ECDH --- este un NIKE eficient, care nu sunt deloc obișnuite.

Marc Ilunga avatar
drapel tr
Răspuns frumos cu detalii despre KEM-uri. Sunt totuși confuz cu privire la modul în care ECDH se potrivește paradigmei KEM. Nu este clar cum este definită corectitudinea aici
Mark avatar
drapel ng
Dacă doriți ca ECDH să fie un NIKE, trebuie să modelați că aveți un grup criptografic $(G, g)$ standardizat ca parametri publici și să adăugați un pas final de post-procesare în care $k= KDF(g^{s_0} , g^{s_1}, g^{s_0s_1})$ pentru o funcție de derivare a cheilor $KDF$. Am omis acest lucru, deoarece este „direct” în cazul ECDH. Rețineți că corectitudinea KEM-urilor devine mai puțin simplă atunci când aveți de-a face cu primitive, cum ar fi KEM-uri bazate pe cod/redare --- ele sunt în general doar „corecte din punct de vedere statistic”, de ex. corectează cu probabilitate $\geq 1-\delta$ pentru $\delta$ foarte mici.
Mark avatar
drapel ng
Aceasta este o diferență semnificativă, deoarece (în special împotriva adversarilor activi) există anumite atacuri de „amplificare a erorilor” disponibile în această setare care nu sunt disponibile în setarea KEM-urilor perfect corecte.
Maarten Bodewes avatar
drapel in
„ECDH este cunoscut ca un mecanism de încapsulare cheie” Nu? Nu este ECDH cunoscut ca un algoritm de acord cheie? Uneori mă întreb dacă criptografii înțeleg limbajul normal. Dacă algoritmul ECDH nu încapsulează nimic, atunci nu poate fi un mecanism de încapsulare, nu?
Mark avatar
drapel ng
@MaartenBodewes, din păcate, [terminologia este standard](https://en.wikipedia.org/wiki/Key_encapsulation_mechanism). Și KEM-urile pot fi folosite pentru schimbul de chei, dar sunt denumite separat de PKE (care poate fi folosit și) pentru a sublinia diferența sintactică dintre cele două --- într-una, puteți „alege cheia secretă”, în cealaltă, nu poți.
kelalaka avatar
drapel in
Sunt de acord cu @MaartenBodewes în acest sens. Nu există nicio cheie încapsulată, doar o parte a informațiilor de construcție cheie. Deci DH este un acord cheie. Dacă cineva se referă la [this](https://info.isl.ntt.co.jp/crypt/eng/psec/dl/iso/psec-kem_v2.2_20080414e.pdf), ei bine, nu este un document bun.
Mark avatar
drapel ng
Da, dar dacă se face referire la cercetarea din jurul standardizării NIST PQC (care are jumătate din obiectivul său de a standardiza un KEM/PKE), terminologia KEM este standard. Vezi, de exemplu, [acest lucrare influentă a lui Hofheinz et al](https://eprint.iacr.org/2017/604.pdf), care se concentrează pe gestionarea cazului de „corectitudine neperfectă” la care am făcut aluzie acum 2 comentarii.
meshcollider avatar
drapel gb
Cred că a fi singur KEM este o noțiune mai slabă. De exemplu, ECDH oferă autentificarea implicită a cheii publice a expeditorului/încapsulatorului, în timp ce, în general, un KEM nu o face (singura intrare este cheia publică a receptorului). [Această lucrare](https://eprint.iacr.org/2019/1356) introduce split-KEM din acest motiv și susține că CSIDH *ar putea* să satisfacă ipotezele de securitate, dar nu face o revendicare în acest sens.
Maarten Bodewes avatar
drapel in
@Mark NIST în prezent pare să evalueze numai KEM, deși un KEM este derivat dintr-un mecanism de acord cheie similar cu DH.
drapel cn
KEM-urile @MaartenBodewes și acordul cheie cu 2 mesaje sunt, în toate intențiile și scopurile, același lucru.
Maarten Bodewes avatar
drapel in
Niciun acord cheie nu este KEM. Sheesh. Și se numește TMKE unde E este pentru Instituție când vorbim despre ideea generică.
President James K. Polk avatar
drapel sh
ECDH nu este un mecanism cheie de încapsulare.
drapel cn
@MaartenBodewes Da, fiecare acord cheie cu două mesaje este, de asemenea, un mecanism de încapsulare cheie. Primul mesaj este cheia publică, al doilea mesaj este textul cifrat. Și invers, fiecare mecanism de încapsulare a cheilor este, de asemenea, un acord cu două mesaje cheie. Faptul că aparent nu-ți place termenul nu schimbă deloc asta.
Maarten Bodewes avatar
drapel in
Dacă folosește text cifrat pentru a încapsula o cheie principală, atunci sunt de acord. Nu sunt de acord când se generează o cheie principală din cheile publice / private, de obicei urmată de un KDF, ceea ce este *cu siguranță* cazul pentru ECDH (pentru a o aduce înapoi la răspuns).
drapel cn
Atunci nu cunoașteți definiția unui KEM. ââï¸

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.