La primitive de chiffrement authentifié déterministe avec données associées (AEAD déterministe) fournit un chiffrement avec une propriété déterministe: le chiffrement des mêmes données produit toujours le même texte chiffré. Ce type de chiffrement est utile pour l'encapsulage de clé ou pour certains schémas de recherche sur des données chiffrées (pour en savoir plus, consultez la RFC 5297, section 1.3). En raison de sa propriété déterministe, les implémentations de cette primitive peuvent entraîner une perte de confidentialité, car un pirate informatique n'a besoin que de découvrir le texte chiffré d'un message donné pour identifier d'autres instances de ce message.
Le chiffrement AEAD déterministe possède les propriétés suivantes:
- Secrecy: rien n'est connu du texte brut, à l'exception de sa longueur et de l'égalité des textes bruts répétés.
- Authenticité: il est impossible de modifier le texte brut chiffré sous-jacent au texte chiffré sans que la modification ne soit détectable.
- Symétrique: le chiffrement du texte brut et le déchiffrement du texte chiffré s'effectuent avec la même clé.
- Déterministe: tant que la clé principale n'est pas modifiée, le chiffrement d'un texte brut deux fois avec les mêmes paramètres génère le même texte chiffré.
Données associées
Le chiffrement AEAD déterministe peut également être utilisé pour lier le texte chiffré à des données associées spécifiques. Par exemple, si vous disposez d'une base de données avec les champs user-id
et encrypted-medical-history
: dans ce scénario, user-id
peut être utilisé en tant que données associées lors du chiffrement de encrypted-medical-history
. Cela empêche un pirate informatique de transférer l'historique médical d'un utilisateur à un autre.
Choisir un type de clé
Nous vous recommandons d'utiliser le type de clé AES256_SIV pour tous les cas d'utilisation.
Garanties de sécurité
- Niveau d'authentification d'au moins 80 bits
- Le texte brut et les données associées peuvent avoir des longueurs arbitraires (dans la plage 0..232 octets).
- Niveau de sécurité de 128 bits contre les attaques de récupération de clé, ainsi que dans les attaques multi-utilisateurs avec jusqu'à 232 clés. Cela signifie que si un pirate informatique obtient 232 chiffrements du même message chiffré avec 232 clés, il doit effectuer 2128 calculs pour obtenir une seule clé.
- Possibilité de chiffrer de manière sécurisée 238 messages, à condition que chacun d'eux fasse moins de 1 Mo.
Exemple d'utilisation
Je souhaite chiffrer les données de manière déterministe et lier le texte chiffré à son contexte.