Trovato questo al punto di risposta da un altro forum.
Questi tipi di crittografia primitiva possono essere distinte dagli obiettivi di sicurezza che soddisfano (nella semplice protocollo di "aggiungendo a un messaggio"):
Integrità: Può il destinatario essere sicuri che il messaggio non ha stato modificato per errore?
Autenticazione: Il destinatario può essere sicuro che il messaggio provenga dal mittente?
Non ripudio: Se il destinatario trasmette il messaggio e la prova a una terza parte, può la terza parte essere sicura che il messaggio sia stato originato dal mittente? (Si prega di notare che io sto parlando di non ripudio nel senso di crittografia, non nel senso giuridico.) Importante è anche questa domanda:
Tasti: fa il primitivo bisogno di una chiave segreta condivisa, o pubblico-privato coppie di chiavi? Penso che la risposta breve sia meglio spiegata con una tabella:
Cryptographic primitive | Hash | MAC | Digital
Security Goal | | | signature
------------------------+------+-----------+-------------
Integrity | Yes | Yes | Yes
Authentication | No | Yes | Yes
Non-repudiation | No | No | Yes
------------------------+------+-----------+-------------
Kind of keys | none | symmetric | asymmetric
| | keys | keys
Si ricorda che l'autenticazione senza confidenza con le chiavi utilizzate è inutile. Per le firme digitali, un destinatario deve essere sicuro che la chiave di verifica appartiene effettivamente al mittente. Per i MAC, un destinatario deve essere sicuro che la chiave simmetrica condivisa sia stata condivisa solo con il mittente.
Click here for more info
Mi spiace, cosa significa che "anche se un utente malintenzionato ha accesso a un oracolo che possiede la chiave segreta e genera MAC per i messaggi scelti dall'attaccante, ** l'autore dell'attacco non può indovinare il MAC per altri messaggi ** '? Se un attaccante ha accesso a un oracolo che possiede la chiave segreta, può generare anche MAC per altri messaggi, inviandoli come input per l'oracolo, non è vero? – tonix
@tonix Questa frase viene utilizzata solo per definire una funzione MAC sicura. Questo ipotetico scenario è il caso peggiore di uno scenario più realistico, in cui l'attaccante potrebbe osservare più coppie plaintext-MAC, e quindi provare a forgiare/indovinare il MAC di un messaggio che l'attaccante vuole inviare. – ZillGate
Alcune altre persone hanno modificato queste definizioni: una funzione di hash non fornisce integrità, mentre l'autenticazione è ciò che ora chiamiamo integrità (cfr crypto.stanford.edu/~dabo/cryptobook). Questa modifica è per il migliore imo –