Puncte:15

Există un protocol de criptare asimetrică care oferă în mod arbitrar multe chei publice aparent fără legătură pentru o singură cheie privată?

drapel cn

Caut un protocol de criptare cu următoarele proprietăți.

  • Alice are o cheie privată $x$. Folosind această cheie privată, ea alege cheia publică $p$ corespunzătoare acestei chei private. L-a informat pe Bob despre această cheie publică. Bob folosește apoi această cheie publică pentru a cripta un mesaj către Alice.
  • Mai târziu, Alice vrea să primească din nou un mesaj. Ea creează cheia publică $q$ folosind la fel cheie privată $x$. Bob folosește apoi această cheie publică pentru a cripta un mesaj pentru Alice.
  • Bob nu ar trebui să poată deduce din $p$ & $q$ că cele două chei publice $p$ și $q$ au fost generate folosind aceeași cheie privată $x$.
  • Alice nu ar trebui să aibă mai mult de o cheie privată.
  • Protocolul ar trebui să permită lui Alice să producă în mod arbitrar multe chei publice, dacă li se permite să fie arbitrar lungi.

Există un astfel de protocol?

drapel za
pentru o implementare reală, verificați clientul bitcoin Electrum, acesta creează o singură cheie privată care poate fi folosită pentru a crea orice număr de chei/portofele/adrese bitcoin publice
drapel jp
[BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) face acest lucru. Vedeți și https://crypto.stackexchange.com/q/22274/21238
Puncte:15
drapel us

O astfel de schemă poate fi creată generic, după cum urmează. Lăsa $(Gen,Enc,Dec)$ să fie o schemă de criptare cu cheie publică și să fie $F$ să fie o funcție pseudoaleatoare. Apoi, cheia privată „master” a schemei este o cheie simetrică $k$ pentru PRF. Pentru a genera o nouă cheie publică, alegeți o cheie aleatorie $\rho$ (sau dacă aveți stat, atunci utilizați un contor) și calculați aleatoriu $r \leftarrow F_k(\rho)$. Apoi, folosește $r$ (și un generator pseudoaleator adecvat, dacă este necesar) pentru a genera o nouă pereche de chei $(pk,sk) \leftarrow Gen(r)$. Pentru a vă asigura că este posibilă decriptarea, trebuie să știți $r$ sau $\rho$, ca să poți face $\rho$ parte a cheii publice. Alternativ, dacă păstrați starea, decriptorul poate stoca toate $\rho$lui sau $r$și apoi încercați-le pe toate (folosind o metodă de redundanță și o schemă securizată CCA pentru a ști când reușiți).

DannyNiu avatar
drapel vu
$\rho$ poate fi necesar să facă parte din cheia publică pentru ca cheia privată corespunzătoare să fie identificată rapid.
Yehuda Lindell avatar
drapel us
@DannyNiu Într-adevăr, am scris asta în răspuns.
Bobson avatar
drapel us
De altfel, această schemă funcționează și pentru criptarea simetrică, sub rezerva diferențelor obișnuite dintre criptarea simetrică și asimetrică. A și B ar trebui să fi partajat în prealabil cheia de bază, dar oricine din mijloc nu ar putea spune dacă două mesaje au folosit aceeași bază.
drapel sa
Pentru sistemele cripto simetrice obișnuite, este de obicei dificil să distingem textele cifrate de aleatoriu, așa că ele satisfac deja acest lucru.
Nat avatar
drapel de
Nat
Partajarea $r$ în cheia publică ar fi sigură? Se pare că ar trebui să fie $\rho .$
Yehuda Lindell avatar
drapel us
scuze; ai dreptate. Trebuie să fie partajarea de $\rho$ și nu de $r$. O sa il repar.
Puncte:5
drapel sa

Pentru a completa răspunsul generic, iată o construcție concretă bazată pe ElGamal.

ElGamal bazat pe un grup $G$ de ordine $p$ cu generator $g$ are o cheie publică $y = g^a$, Unde $a$ este cheia privată.

Pentru a crea o nouă cheie publică, alegeți un număr aleatoriu $s$ și calculează $(u,v)$ la fel de $u=g^s$ și $v=y^s$.

Pentru a cripta $m$ cu $(u,v)$, alegeți un număr aleatoriu $r$ și calculează $(x,w)$ la fel de $x=u^r$ și $w = v^r m$.

Pentru a decripta $(x,w)$, calculează $wx^{-a}$.

În ipoteza DDH, $(u,v)$ nu se distinge de o pereche aleatorie, așa că este bine. Este ușor să arătați că schema este sigură sub DDH.

Exercițiu pentru cititor: este util să ne dăm seama de ce această schemă este în esență doar ElGamal.

Extensiile la spații de mesaje mai utile sunt triviale folosind tehnici standard.

Această schemă (cu câteva trucuri suplimentare) a fost folosită pentru a construi malware teoretic mai bun. (Din câte știu eu, nu a fost niciodată folosit pentru a construi malware real.)

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.