L'AEAD deterministico fornisce la crittografia con una proprietà deterministica: la crittografia degli stessi dati produce sempre lo stesso testo crittografato. Questo tipo di crittografia è utile per il wrapping delle chiavi o per alcuni schemi per la ricerca di dati criptati (consulta RFC 5297, sezione 1.3 per ulteriori informazioni). A causa della sua proprietà deterministica, le implementazioni di questa primitiva possono portare alla perdita di segretezza perché un utente malintenzionato deve solo scoprire il testo crittografato di un determinato messaggio per identificarne altre istanze.
L'AEAD deterministico ha le seguenti proprietà:
- Riservatezza: non si conosce nulla del testo non crittografato, a parte la sua durata e l'uguaglianza dei testi non crittografato ripetuti.
- Autenticità: è impossibile modificare il testo non crittografato criptato alla base del testo crittografato senza che venga rilevato.
- Simmetrica: la crittografia del testo non crittografato e la decriptazione del testo crittografato vengono eseguite con la stessa chiave.
- Deterministico: a condizione che la chiave primaria non sia modificata, la crittografia due volte di un testo non crittografato con gli stessi parametri genera lo stesso testo crittografato.
Dati associati
L'AEAD deterministico può essere utilizzato anche per associare il testo crittografato a specifici dati associati. Supponi di avere un database con i campi user-id
e encrypted-medical-history
. In questo scenario, è possibile utilizzare user-id
come
dati associati durante la crittografia di encrypted-medical-history
. In questo modo, un utente malintenzionato non può trasferire la cronologia clinica di un utente da un utente all'altro.
Scegli un tipo di tasto
Consigliamo il tipo di chiave AES256_SIV per tutti i casi d'uso.
Garanzie di sicurezza
- Livello di sicurezza dell'autenticazione di almeno 80 bit.
- Il testo non crittografato e i dati associati possono avere lunghezze arbitrarie (entro l'intervallo di 0...232 byte).
- Livello di sicurezza a 128 bit contro gli attacchi di recupero delle chiavi e anche negli attacchi multiutente con un massimo di 232 chiavi: questo significa che se un utente malintenzionato riceve 232 testi criptati dello stesso messaggio criptati in 232 chiavi, deve eseguire 2128 calcoli per ottenere una singola chiave.
- La possibilità di criptare in modo sicuro 238 messaggi, a condizione che ciascuno abbia una lunghezza inferiore a 1 MB.
Esempio di caso d'uso
Vedi Voglio criptare i dati in modo deterministico e Voglio associare il testo crittografato al relativo contesto.