Le funzioni hash sono una particolare tipologia di funzioni crittografiche.

Le funzioni hash sono funzioni che prendono in input un messaggio di dimensione qualsiasi e danno in output un messaggio di lunghezza fissa .

Esse sono fortemente dipendenti dai Bit del messaggio in ingresso.

Le funzioni hash sono molto veloci ed efficienti. Essendo cosi veloci posso eseguirne molte.

Ne esistono molte di funzioni hash : SHA1,SHA256 , MD5, RIPEMD160, …

Attualmente si utilizza SHA2, SHA1 è stato attaccato nel 2017.

Proprietà delle Funzioni Hash

Collision-Free

Untitled

<aside> ⚠️ Nessuno è in grado di trovare due $X,Y$ tali che $H(X)=H(Y)$

</aside>

Attenzione , le Collisioni Esistono e sono molte, perchè il numero di output è prestabilito ma abbiamo infiniti input.

Untitled

Però si dice collision-free in quanto non siamo capaci di trovarle. Esistono degli algoritmi che mi permettono di trovarle , però non sono in grado di eseguirli.

Detto ciò possiamo assumere che :

$$ H(x)=H(y) \implies x =y $$

Per cosa usiamo le Funzioni Hash ??

Preimage Resistant

Untitled