Funzione unidirezionale

funzione facile da calcolare, ma difficile da invertire

Una funzione unidirezionale (funzione one-way in inglese o semplicemente OWF) è una funzione matematica "facile da calcolare" ma "difficile da invertire"[1][2].

"Facile da calcolare" significa che esistono algoritmi che possono calcolare la funzione f(x) in tempo polinomiale (nella dimensione dell'input). "Difficile da invertire" significa che nessun algoritmo probabilisticamente polinomiale (classe di complessità temporale PP) può calcolare una controimmagine di f(x) a meno di una probabilità trascurabile, quando x viene scelta in modo casuale.

Si noti che, a differenza del concetto di difficoltà più comunemente diffuso nella teoria della complessità computazionale, "difficile", nel contesto delle funzioni unidirezionali, si riferisce alla difficoltà nel caso medio e non a quella nel caso peggiore.

Definizione formale modifica

Una funzione  è unidirezionale se esiste un algoritmo che in tempo polinomiale mappa   in   per ogni   e per ogni algoritmo casuale PPT  , ogni polinomio   e per valori di   sufficientemente grandi si ha che:

 

dove la probabilità è sulla scelta delle   da una distribuzione discreta uniforme su   e sulla casualità di  .

Funzione unidirezionale debole modifica

Una funzione unidirezionale debole, invece, è tale per cui ogni algoritmo casuale PPT   che prova a calcolare una qualsiasi preimmagine di   fallisce con probabilità non trascurabile. In modo formale, si dice che   è una funzione debolmente unidirezionale se è calcolabile in tempo polinomiale ed esiste un polinomio   tale che per ogni algoritmo casuale   e per valori di   sufficientemente grandi:

 

dove la probabilità è sulla scelta delle   da una distribuzione discreta uniforme su   e sulla casualità di  

Permutazione unidirezionale modifica

Una funzione   è una permutazione unidirezionale se:

  • è una funzione unidirezionale
  • è biettiva

Congettura OWF modifica

Le funzioni unidirezionali sono una delle primitive più rudimentali della moderna crittografia e la loro esistenza è necessaria per la stragrande maggioranza degli oggetti crittografici di interesse. L'esistenza delle funzioni unidirezionali, infatti, è equivalente all'esistenza dei generatori pseudocasuali[3], delle funzioni pseudocasuali[4], delle firme digitali[5], delle prove a conoscenza zero per ogni linguaggio NP[6] e di molti altri oggetti.

L'esistenza delle funzioni unidirezionali, inoltre, implica che P ≠ NP[7].

Candidati modifica

Esistono numerosi candidati per le funzioni unidirezionali. Alcuni di essi sono[8][9]:

Note modifica

  1. ^ Venturi, p. 54.
  2. ^ Katz, p. 242.
  3. ^ Johan HÅstad, Russell Impagliazzo e Leonid A. Levin, A Pseudorandom Generator from any One-way Function, in SIAM Journal on Computing, vol. 28, n. 4, 1999-01, pp. 1364–1396, DOI:10.1137/s0097539793244708. URL consultato il 23 marzo 2020.
  4. ^ Goldreich, Oded., How to construct random functions, Massachusetts Institute of Technology, Laboratory for Computer Science, 1983, OCLC 13335506. URL consultato il 23 marzo 2020.
  5. ^ J. Rompel, One-way functions are necessary and sufficient for secure signatures, in Proceedings of the twenty-second annual ACM symposium on Theory of computing - STOC '90, ACM Press, 1990, DOI:10.1145/100216.100269. URL consultato il 23 marzo 2020.
  6. ^ Oded Goldreich, Silvio Micali e Avi Wigderson, Providing Sound Foundations for Cryptography: On the Work of Shafi Goldwasser and Silvio Micali, Association for Computing Machinery, 9 ottobre 2019, ISBN 978-1-4503-7266-4. URL consultato il 23 marzo 2020.
  7. ^ Venturi, p. 57.
  8. ^ Venturi, p. 56.
  9. ^ Goldreich, pp. 55-58.

Bibliografia modifica

Voci correlate modifica

Collegamenti esterni modifica