COMPLESSITÀ COMPUTAZIONALE

Per distinguere algoritmi pesanti da algoritmi leggeri si fa affidamento al concetto di complessità computazionale, definito come l’andamento in funzione dell’input del numero di operazioni necessarie per portare a termine l’algoritmo stesso

Possiamo classificare gli algoritmi in due famiglie:

  • Algoritmi con tempo polinomiale: , con esponente più grande in ,
  • Algoritmi con tempo esponenziale: , con costante, o

Di conseguenza i problemi possono essere classificati in base agli algoritmi che li risolvono:

  • Facile, se esiste un algoritmo polinomiale in grado di risolverlo su una macchina di Turing deterministica

  • Difficile, se non sono stati fino ad ora individuati algoritmi che lo risolvono in tempo polinomiale

La chiave di volta nel creare funzioni sicure sta nello scegliere parametri che fanno si che il problema di risalire alle informazioni protette sia Difficile

DIMENSIONAMENTO DELLE CHIAVI

Per far si che le chiavi siano sicure e necessario selezionare una dimensione per cui il problema di ricerca esaustiva diventi Difficile

NEXT