mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-25 11:34:18 +00:00
1 KiB
1 KiB
8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/debolezza di una funzione di hashing crittografico che si presenta quando l'input della funzione è formato concatenando direttamente due dati.
hash("builtin" + "security") == hash("built" + "insecurity")
Causa
Certe funzioni di hashing, come quelle basate sul design di Merkle-Damgard, cifrano il plaintext dividendolo in blocchi di dimensione fissa processati consecutivamente.
Se si conosce l'hash fino a un certo blocco, determinare l'hash per una quantità limitata di blocchi successivi è molto più facile.
Prevenzione
-
Utilizzare un separatore che non appare nel testo:
hash("builtin" + "," + "security")
-
Utilizzare un indicatore della lunghezza del primo dato:
hash(len("builtin") + "builtin" + "security")