Chiffrement à authentification déterministe avec des données associées (AEAD déterministe)

La primitive de chiffrement authentifié déterministe avec données associées (Deterministic AEAD) fournit un chiffrement avec une propriété déterministe : le chiffrement des mêmes données génère toujours le même texte chiffré. Ce type de chiffrement est utile pour l'encapsulation de clés ou pour certains schémas de recherche sur des données chiffrées (pour en savoir plus, consultez la section 1.3 de la RFC 5297). 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 trouver 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étrie : le chiffrement du texte en clair et le déchiffrement du texte chiffré s'effectuent avec la même clé.
  • Déterministe : tant que la clé primaire 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 être utilisé pour lier le texte chiffré à des données associées spécifiques. Supposons que vous disposiez d'une base de données avec les champs user-id et encrypted-medical-history. Dans ce scénario, user-id peut être utilisé comme 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.

Les données associées sont facultatives. Si des données associées sont spécifiées, le déchiffrement ne réussit que si les mêmes données associées sont transmises aux appels de chiffrement et de déchiffrement.

Choisir un type de clé

Nous recommandons 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 de 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 textes chiffrés du même message chiffré avec 232 clés, il doit effectuer 2128 calculs pour obtenir une seule clé.
  • La possibilité de chiffrer de manière sécurisée 238 messages, à condition que chacun d'eux soit inférieur à 1 Mo.

Exemple d'utilisation

Consultez les sections Je souhaite chiffrer les données de manière déterministe et Je souhaite lier le texte chiffré à son contexte.