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
- 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;
- $d_A = \operatorname{BLAKE2}(\texttt{Tasta A}\mathbin\|s)$
- $d_{A'} = \operatorname{BLAKE2}(\texttt{Cheie A primă}\mathbin\|s)$
- 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.