Puncte:3

Două funcții hash diferite pot crea două chei `ed25519` neconectabile din aceeași aleatorie?

drapel cn

Să presupunem următorul scenariu:

  1. Alice are acces la 32 de octeți de aleatorie adevărată $s$.
  2. Alice hashes $s$ cu SHA-512 și folosește hashul rezultat ca secret $d_{A}$ pentru Ed25519. Să presupunem că blocarea numărului și așa mai departe sunt implementate corect.
  3. Alice hashes $s$ cu o funcție hash diferită, să spunem BLAKE-2, sau hash $s$ de două ori cu SHA-512 și folosește rezultatul ca cheie secretă $d_{A'}$ pentru Ed25519.

Să presupunem un model de oracol aleatoriu și duritatea logaritmului discret. Atunci:

  1. Cele două chei publice rezultate pot fi legate la ambele să aparțină Alicei?
  2. Cele două chei publice rezultate pot fi folosite cumva pentru a prelua cheile secrete rezultate?

Mi se pare că ar fi mai bine să folosiți un singur CSPRNG aici și să scoateți suficientă aleatorie pentru două Ed25519 chei.Dar nici nu pot identifica probleme în abordarea de mai sus.

Puncte:3
drapel in

Funcțiile hash sunt candidate pentru oracole aleatorii. SHA-3 și BLAKE2 sunt aproape de a fi unul, dar nu SHA-512, deoarece are un atac de extensie de lungime la care nu ne așteptăm de la un RO.

Diferitele funcții hash produc deja ieșiri diferite chiar și SHA-512 și versiunea sa trunchiată SHA-512/256, deoarece valorile lor inițiale sunt diferite.

De fapt, nu aveți nevoie de două funcții hash pentru a obține ceea ce doriți.Puteți folosi o funcție hash pentru a separa domeniile cu prefixe inițiale. Utilizați BLAKE2 sau SHAKE256.

Hashing la curbele eliptice, draft ietf oferă o definiție frumoasă a separării domeniilor;

Protocoalele criptografice care folosesc oracole aleatorii sunt adesea analizate în ipoteza că oracolele aleatorii răspund doar la întrebările generate prin acel protocol. În practică, această ipoteză nu este valabilă dacă două protocoalele interogează același oracol aleatoriu. Concret, luați în considerare protocoale $P1$ și $P2$ acea interogare aleatorie oracol $R$: dacă $P1$ și $P2$ ambele interogare $R$ pe aceeași valoare $x$, analiza de securitate a unuia sau ambele protocoale pot fi invalidate.

O abordare comună pentru abordarea acestei probleme se numește domeniu separare, care permite unui singur oracol aleatoriu să simuleze mai multe, oracole independente. Acest lucru se realizează prin asigurarea că fiecare simulat Oracle vede interogări care sunt distincte de cele văzute de toate celelalte oracole simulate. De exemplu, pentru a simula două oracole $R1$ și $R2$ dat un singur oracol $R$, s-ar putea defini

$$R1(x) := R(\text{"R1"} \mathbin\| x)$$ $$R2(x) := R(\text{"R2"} \mathbin\| x)$$

În acest exemplu, $\text{"R1"}$ și $\text{"R2"}$ se numesc domeniu etichete de separare; se asigură că interogările să $R1$ și $R2$ nu poti rezultă interogări identice cu $R$. Astfel, este sigur de tratat $R1$ și $R2$ ca oracole independente

  1. Cele două chei publice rezultate pot fi legate la ambele să aparțină Alicei?

Nu, atâta timp cât funcția hash este sigură ca SHA3. BLAKE2/3, Agita. Utilizare;

  1. $d_A = \operatorname{BLAKE2}(\texttt{Tasta A}\mathbin\|s)$
  2. $d_{A'} = \operatorname{BLAKE2}(\texttt{Cheie A primă}\mathbin\|s)$
  1. Cele două chei publice rezultate pot fi folosite cumva pentru a prelua cheile secrete rezultate?

Curve25519 este o curbă sigură împotriva jurnalului discret (DLog) clasic. Are în jur de 126 de biți de securitate împotriva DLog clasic.

Rețineți că cu a Calculator cuantic criptografic (CQC) construit pentru algoritmul de finanțare al perioadei lui Shor, logaritmul discret al curbei eliptice nu va fi sigur. Cu toate acestea, funcțiile hash de dimensiune mai mare de 384 de ieșire vor fi protejate împotriva a lui Grovers sau Brassard și colab.metoda lui.

Prin urmare, secretul este securizat împotriva clasicului și CQC, cu toate acestea, cheile private nu sunt securizate împotriva CQC.


Rețineți că, de asemenea, beneficiați Twin Diversify pentru a lega două chei publice pentru a obține un anumit anonimat și mai târziu poți dovedi că îți aparțin fără a-ți dezvălui secretul.

Puncte:2
drapel gb

În modelul de oracol aleatoriu, acest lucru este sigur de făcut, deoarece puteți utiliza un singur oracol $\mathcal{O}$ și utilizați separarea domeniilor pentru a obține două oracole independente din acesta (de ex. $\mathcal{O}(1 \parallel \cdot)$ și $\mathcal{O}(2 \parallel \cdot)$, Unde $\paralel$ denotă concatenare). Apoi puteți considera ieșirile ca fiind total independente unele de altele.

Deci, în practică, se rezumă cu adevărat la ce funcție hash utilizați. Atâta timp cât este un bun candidat RO (cum ar fi SHA-3 de exemplu), poate fi folosit în același mod: $$x_1 = H(1 \paralel s)\ x_2 = H(2 \parallel s)$$

Deoarece cele două secrete produse sunt independente, răspunsul la ambele întrebări 1 și 2 este: nu. Indiferent dacă cheile secrete individuale pot fi sau nu recuperate din cheile publice (de exemplu, în câmp finit sau cripto cu curbă eliptică) este exact DLP, așa că atâta timp cât folosiți secretele într-o schemă sigură, acest lucru nu ar fi posibil. Singura modalitate de a lega cele două ar fi caracterul aleatoriu al semințelor inițiale $s$ pentru a fi dezvăluite - atunci oricine ar putea recalcula cele două chei individuale și ar putea vedea că într-adevăr se potrivesc. În caz contrar, chiar dacă cele două secrete individuale au fost scurse (de exemplu, dacă DLP-ul a fost spart), ele nu ar putea fi legate înapoi la $s$ sau reciproc datorită caracterului unic (rezistența pre-imagine) a funcției hash.

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.