Questa indicazione di funzione hash è lì per supportare l'elaborazione in streaming. Una firma su alcuni dati inizia sempre elaborando il messaggio da firmare (o verificare) con una funzione hash, ad es. SHA-256. Quindi , l'output della funzione hash è quello che viene utilizzato nelle restanti operazioni di crittografia.
La "firma" stessa, ovvero la cosa binaria che GnuPG aggiunge alla fine dell'email, contiene la specifica completa di quale funzione hash usare, quindi l'intestazione Hash:
all'inizio è concettualmente ridondante. Tuttavia, il punto qui è che la struttura binaria prodotta da GnuPG si trova nella fine dell'email. Il software di posta elettronica del destinatario deve quindi, una volta ricevuto l'e-mail, leggerlo per intero, per raggiungere l'oggetto GnuPGP alla fine, quindi leggere l'e-mail di nuovo completo per cancellarlo. D'altra parte, se un'indicazione di hash esplicita appare proprio all'inizio dell'email, allora l'hashing può verificarsi mentre l'email viene letta per la prima volta: questa è elaborazione in streaming .
Questo ha senso se si considera che PGP è stato progettato un buon ventesimo anno fa. A quel tempo, il software non poteva permettersi di mantenere un file di dati da 2 MB nella RAM; l'elaborazione in streaming era importante. Bene, l'elaborazione del flusso è ancora importante, ma non più per le dimensioni dei dati che si trovano comunemente nelle e-mail. Nel corso degli anni, le dimensioni medie dell'e-mail non sono cresciute tanto velocemente quanto le dimensioni medie della RAM. Al giorno d'oggi, eseguiamo l'elaborazione in streaming per i file video di grandi dimensioni, non per le e-mail. Quindi questa intestazione "Hash:" può essere considerata un residuo dei vecchi tempi.
Fa ancora parte del formato di armatura ASCII per i messaggi firmati in chiaro , tuttavia; in teoria, è possibile rimuoverlo solo se la funzione hash è MD5. Poiché le informazioni sono ridondanti, è possibile che GnuPG accetterebbe di elaborare un messaggio in arrivo privo dell'intestazione "Hash:". O no. Ti incoraggio a provare; ma tieni presente che potresti riscontrare problemi di interoperabilità in caso di deviazione dallo standard.
PGP / MIME non usa "armatura ASCII" ma MIME, essendo l'oggetto firma un file allegato, come se fosse un'immagine. MIME si preoccupa meno dell'elaborazione in streaming rispetto al PGP originale.