Come regola generale, lo scopo dei dati associati (di seguito "AD") è quello di associare un testo cifrato al contesto in cui dovrebbe apparire, in modo che i tentativi di "taglia e incolla" un testo cifrato valido in un contesto diverso può essere rilevato e respinto.
Ad esempio, supponiamo che io stia crittando i valori che inserisco in un database di chiavi / valori, e io uso la chiave di registrazione come AD. Cosa fa? Beh, prima di tutto, meccanicamente significa ora che ogni volta che decodifico il valore, devo presentare la stessa chiave di AD o altrimenti la decrittografia fallirà con un errore di autenticità. Quindi la mia applicazione dovrà eseguire tale passaggio per decrittografare correttamente tutti i dati.
In secondo luogo, e più in profondità, è che utilizzando la chiave come AD, ho sventato un tipo di attacco di un insider - ad esempio, l'amministratore del database - potrebbe realisticamente attuare contro la mia applicazione: prendere due record nel database e scambia i loro valori. Senza l'annuncio, l'applicazione li decifrerebbe volentieri e presumerà ciecamente che legge il valore corretto per quelle chiavi. Con la chiave come annuncio, invece, l'applicazione noterebbe immediatamente che i valori non sono autentici, anche se l'autore dell'attacco non li ha mai effettivamente modificati, perché si verificano nel contesto sbagliato . Questo è solo un esempio tra i molti possibili, ma le applicazioni dei dati associati tendono ad avere quel sapore.
Un dettaglio importante che le persone spesso mancano dagli esempi è che i dati associati non devono necessariamente essere memorizzati o trasmessi con il testo cifrato. Qualsiasi valore non segreto dipendente dal contesto che le parti oneste sono in grado di inferire correttamente può essere utile come dati associati. Per esempio, se le parti stanno eseguendo un protocollo complesso che è stato formulato in termini di una macchina a stati, in modo che ogni parte corretta possa sempre dire il proprio stato e quello che dovrebbe essere una controparte onesta, quindi quegli stati, anche se sono " re implicito nel protocollo, può essere usato come annuncio. Questo è il tipo di cosa che rende le suite AEAD così interessanti per i progettisti di protocolli come TLS: è uno strumento che può essere utilizzato per ridurre la complessità di un protocollo sicuro.