1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-22 10:44:17 +00:00
appunti-steffo/8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/hashing con più input.md
2023-09-21 02:46:23 +02:00

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")
    

Vedi anche

#Extra AWS signature version 1 is insecure