Lucrez la un proiect care folosește un concept de bit-commitment pentru a autentifica informații.
Trebuie să selectez o combinație de obiecte în siguranță dintr-un hash securizat, apoi să distribui acel hash mai târziu. Apoi, un client știe că numai serverul autentificat a selectat acea combinație de obiecte înainte de distribuirea hash-ului din care a derivat combinația.
Cu alte cuvinte, trebuie să selectez o combinație de obiecte în mod determinist dintr-o cheie criptografică.
Cred că adaptarea acest ar fi o idee bună după cum urmează.
Fie x un hash, adică un număr întreg de l-biți (l>128) care provine dintr-o funcție hash securizată sau prf.
Trebuie să selectez M obiecte dintr-un set de N.
Și să fie S setul de obiecte selectate.
afirm că $log_2 C(M,N) > 128$.
inițializați setul S la gol
pentru J := N-M + 1 la N do
T := (x mod J) + 1 \ această linie este schimbată din linkul de mai sus din RandInt(1, J)
dacă T nu este în S atunci
introduceți T în S
altfel
introduceți J în S
Întrebări principale:
Dacă se oferă combinația de M obiecte din setul N, poate cineva inversa algoritmul de mai sus pentru a obține hash-ul.
Dacă da, știe cineva o modalitate sigură de a selecta în mod determinist o combinație de obiecte dintr-un hash?
Trebuie să selectez o combinație de obiecte determinist dintr-o cheie criptografică în așa fel încât să se poată folosi doar forța brută pentru a determina cheia criptografică folosită pentru a deriva combinația de M obiecte dintre N. Pentru a inversa cele de mai sus, ar trebui să rezolv o grămadă de probleme de aritmetică modulară. În caz contrar, aș crede că ar funcționa și o funcție unu-la-unu care poate prelua un întreg și obține combinația. Această funcție trebuie, de asemenea, să fie eficientă.
Mulțumiri