Funcția unidirecțională

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

O funcție unidirecțională ( funcție unidirecțională în limba engleză sau pur și simplu OWF) este o funcție matematică „ușor de calculat”, dar „dificil de inversat[1] [2] .

„Ușor de calculat” înseamnă că există algoritmi care pot calcula funcția f (x) în timp polinomial (în dimensiunea intrării ). „Dificil de inversat” înseamnă că nici un algoritm probabilistic polinomial ( clasa de complexitate temporală PP ) nu poate calcula o imagine din spate a lui f (x) decât dacă este o probabilitate neglijabilă, când x este ales aleatoriu.

Rețineți că, spre deosebire de conceptul de dificultate cel mai des întâlnit în teoria complexității de calcul , „dificil”, în contextul funcțiilor unidirecționale, se referă la dificultatea în cazul mijlociu și nu la dificultatea în cel mai rău caz.

Definiție formală

O functie este unidirecțional dacă există un algoritm care mapează în timp polinomial în pentru fiecare și pentru fiecare algoritm PPT aleatoriu , orice polinom iar pentru valorile de suficient de mari avem că:

unde probabilitatea este la alegerea dintr-o distribuție discretă uniformă pe și asupra întâmplării de .

Funcție slabă într-un singur sens

O funcție slabă într-un singur sens, pe de altă parte, este de așa natură încât orice PPT aleatoriu încercând să calculeze orice preimagine a eșuează cu o probabilitate deloc neglijabilă. Într-un mod formal, se spune că este o funcție slab unidirecțională dacă poate fi calculată în timp polinomial și există un polinom astfel încât pentru orice algoritm aleatoriu iar pentru valorile de suficient de mare:

unde probabilitatea este la alegerea dintr-o distribuție discretă uniformă pe și asupra întâmplării de

Permutare unidirecțională

O functie este o permutație unidirecțională dacă:

  • este o funcție unidirecțională
  • este bijectiv

Conjectura OWF

Funcțiile unidirecționale sunt una dintre cele mai rudimentare primitive din criptografia modernă , iar existența lor este necesară pentru marea majoritate a obiectelor criptografice de interes. Existența funcțiilor unidirecționale este, de fapt, echivalentă cu existența generatoarelor pseudorandom [3] , a funcțiilor pseudorandom [4] , a semnăturilor digitale [5] , a dovezilor de cunoaștere zero pentru fiecare limbaj NP [6] și a multor alte elemente.

Mai mult, existența funcțiilor unidirecționale implică faptul că P ≠ NP [7] .

Candidați

Există un număr de candidați pentru funcții unidirecționale. Unele dintre ele sunt [8] [9] :

Notă

  1. ^ Venturi , p. 54 .
  2. ^ Katz , p. 242 .
  3. ^ Johan HÅstad, Russell Impagliazzo și Leonid A. Levin, A Pseudorandom Generator from any One-way Function , în SIAM Journal on Computing , vol. 28, nr. 4, 1999-01, pp. 1364–1396, DOI : 10.1137 / s0097539793244708 . Adus pe 23 martie 2020 .
  4. ^ Goldreich, Oded., How to construct random functions , Massachusetts Institute of Technology, Laboratory for Computer Science, 1983,OCLC 13335506 . Adus pe 23 martie 2020 .
  5. ^ J. Rompel, Funcțiile unidirecționale sunt necesare și suficiente pentru semnături sigure , în Proceedings of the XXI-lea simpozion anual ACM on Theory of computing - STOC '90 , ACM Press, 1990, DOI : 10.1145 / 100216.100269 . Adus pe 23 martie 2020 .
  6. ^ Oded Goldreich, Silvio Micali și Avi Wigderson, Furnizarea unor fundații solide pentru criptografie: despre lucrările lui Shafi Goldwasser și Silvio Micali , Asociația pentru mașini de calcul, 9 octombrie 2019, ISBN 978-1-4503-7266-4 . Adus pe 23 martie 2020 .
  7. ^ Venturi , p. 57 .
  8. ^ Venturi , p. 56 .
  9. ^ Goldreich , pp. 55-58 .

Bibliografie

Elemente conexe