2 en 1: chiffrement avec protection de sécurité

Les tâches classiques résolues par les méthodes cryptographiques sont d'assurer la confidentialité et d'assurer l'authenticité / l'immitabilité des données stockées et transmises. Plus tôt (jusque vers le milieu des années 2000), le cryptage (confidentialité) et les fonctions de génération d'un code d'insertion / d'authentification (résistance à l'imitation) ont été utilisés pour résoudre ces problèmes. Dans le même temps, le cryptage et la fonction de génération de l'insert ont été mis en œuvre par des mécanismes cryptographiques distincts, ce qui a causé beaucoup de problèmes. Tout d'abord, cela est lié à la gestion des informations de clé: lors de l'utilisation d'une clé pour le chiffrement et la sécurité, un certain nombre de schémas, par exemple AES-CBC + AES-CBC-MAC, sont complètement instables. Afin de sécuriser de telles constructions, il est nécessaire de générer des clés supplémentaires en utilisant, par exemple, les fonctions de génération de clés dérivées (KDF). Ceci, à son tour, conduit à une complication importante des protocoles cryptographiques utilisant des schémas similaires. De plus, l'utilisation cohérente de deux mécanismes n'est pas toujours la solution la plus rapide en termes de performances.

Depuis le début du 21e siècle, des tentatives ont commencé pour créer des mécanismes de cryptage avec protection contre les imitations (parfois le terme «cryptage authentifié» peut être trouvé dans le cryptage anglais authentifié), ce qui résoudrait ces deux tâches à la fois.

La prochaine étape dans le développement de tels mécanismes peut être considérée comme des mécanismes de cryptage avec sécurité et données associées (de l'anglais. AEAD - Authenticated Encryption with Associated Data). Une caractéristique des mécanismes AEAD est qu'ils peuvent traiter simultanément deux types de données: les données pour lesquelles il est nécessaire d'assurer la confidentialité et la sécurité (par exemple, les données de paquets IP), et les données pour lesquelles il est nécessaire d'assurer uniquement la sécurité sans confidentialité - elles sont aussi appelées " données supplémentaires protégées »(« données associées »,« données supplémentaires authentifiées »- il peut s'agir de l'en-tête de paquet IP). L'une des applications les plus populaires pour les mécanismes AEAD est divers protocoles de protection des données cryptographiques, par exemple, le récemment adopté IETF TLS 1.3 RFC 8446à propos de ce qui a déjà été écrit sur Habré . Ainsi, cette RFC 8446 considère les algorithmes de chiffrement authentifié utilisés dans le protocole (vous pouvez lire sur les principes qui sous - tendent le protocole TLS 1.3 ici ).

Les mécanismes AEAD peuvent être construits sur la base de différentes conceptions: chiffrements de flux et de blocs, mappages de compression (fonctions de hachage), maintenant des constructions populaires de type «éponge» (de l'anglais «sponge»). Une variété d'options peut être vue, en particulier, sur le site Web du concours CAESAR et dans diverses revues sur ce concours, voir par exemple ici et ici. Soit dit en passant, le concours lui-même a été organisé en 2013 juste pour déterminer le meilleur mécanisme AEAD au lieu de l'AES-GCM largement utilisé (le mode GCM a été normalisé par le NIST en 2007), pour lequel à cette époque un certain nombre d'attaques étaient proposées ( ici et ). Parallèlement, des exigences fonctionnelles supplémentaires ont été présentées aux candidats au CAESAR, telles que la capacité de travailler «en ligne», la possibilité de parallélisation, l'absence d'inversions, la protection contre une mauvaise utilisation de l'initialisation et des vecteurs ponctuels, la présence de précalculs, l'incrémentation des données, les simulations intermédiaires, la réutilisation des éléments fixes associés Les données. Nous expliquons plus en détail.

Travail "en ligne": souvent afin d'assurer la confidentialité / résistance à l'imitation, il est d'abord nécessaire de former complètement l'ensemble du paquet de données qui sera traité, et ensuite seulement de commencer la procédure de traitement. Les mécanismes qui permettent le fonctionnement "en ligne" ne nécessitent pas cela, ils peuvent travailler avec le flux de données en temps réel entrant, en le traitant "à la volée". Par parallélisation des mécanismes AEAD, nous entendons la possibilité de répartir l'informatique entre plusieurs processeurs. L'absence d'inversions signifie l'utilisation dans le mécanisme AEAD uniquement de la fonction de cryptage ou uniquement de la fonction de décryptage. Cette caractéristique est importante du point de vue de la mise en œuvre: pour certains chiffres (tels que Grasshopper, AES), le chiffrement et le déchiffrement sont mis en œuvre en utilisant respectivement différentes transformations,l'absence d'inversions signifie une zone de puce plus petite dans les implémentations matérielles ou moins de logiciels dans les logiciels. Avec les précalculs, tout est simple - c'est l'occasion, après avoir choisi une clé, d'effectuer un certain nombre de calculs préliminaires qui accéléreront encore le traitement des données entrantes.

L'incrément de données et la réutilisation de données associées fixes dans un sens peuvent également être attribués à des calculs préalables. Par incrémentation, on entend la possibilité de recalculer rapidement l'insert, dans le cas où nous aurions ajouté des données supplémentaires aux données déjà traitées, sans retraiter toutes les données. L'utilisation de données associées fixes est la possibilité d'effectuer des précalculs pour les données fréquemment rencontrées afin que chaque fois qu'elles apparaissent, elles ne soient pas traitées à nouveau. La dernière propriété (les inserts d'imitation intermédiaires) est, en un sens, également un travail "à la volée", c'est-à-dire la possibilité de vérifier du côté de la réception l'exactitude des données pendant le traitement, sans attendre la fin du transfert. Ainsi, si la vérification de l'insert de simulation intermédiaire échoue,tous les flux de données ultérieurs n'ont pas besoin d'être traités, ce qui économise du temps et des ressources.

Il s'est avéré qu'il est extrêmement difficile de créer un mécanisme AEAD qui satisfait simultanément un éventail aussi large d'exigences. Cela a entraîné la prolongation répétée du concours CAESAR, le report des délais car le jury n'a pas pu choisir un gagnant - tous les participants avaient des ensembles de propriétés différents - et le concours s'est terminé uniquement au printemps 2019 en sélectionnant plusieurs participants avec des propriétés différentes.

Le prototype du mode AEAD domestique, appelé plus tard MGM (Multi Linear Galois Mode), a été introduit pour la première foisen 2017, MGM est un mode de fonctionnement à chiffrement par blocs. Le mode se compose de deux parties, chacune basée sur son propre compteur. Le premier compteur est utilisé pour générer une séquence, qui est ensuite utilisée pour le chiffrement. Le principe de fonctionnement est similaire au compteur du mode CTR (voir GOST R 34.13-2015 ou ISO / IEC 10116), mais il a une différence significative: la valeur initiale du compteur est obtenue en utilisant le chiffrement à partir d'un vecteur d'initialisation unique (nonce). Le deuxième compteur est utilisé pour construire une fonction multilinéaire, sur la base de laquelle un insert d'imitation est généré. Les premier et deuxième compteurs fonctionnent différemment, le premier incrémente la moitié droite du bloc et le second incrémente la gauche. Le mode de fonctionnement est indiqué sur la figure.



IciEk - chiffrement de bloc arbitraire avec longueur de bloc nbit, A1,...,Ah- blocs de données associées, P1,...,Pq- blocs de texte en clair, nonce- vecteur d'initialisation de longueur unique n1bit, - opération d'addition au niveau du bit, - opération de multiplication sur le terrain GF(2128), MSBS- troncature du bloc de longueur en longueur S, len(A)||len(C)- la longueur en bits des données et du texte chiffré associés, respectivement, incr,incl- fonctions d'incrémentation.

Dans le rapport et dans l' article, vous pouvez trouver une description détaillée des principes de construction du mode MGM. En bref, la tâche suivante a été résolue pendant le développement: créer un mode de fonctionnement fonctionnel et bien parallélisé pour les chiffrements par blocs qui ne seraient pas sensibles aux attaques connues, en particulier, les attaques appliquées avec succès au mode GCM. Les caractéristiques suivantes du mode sont présentées dans le rapport mentionné:

  • parallélisation
  • travailler en ligne
  • manque d'inversions,
  • (.. , MGM ),
  • ,
  • ( ()),
  • .

Contrairement à de nombreux modes actuellement utilisés, MGM a réussi à obtenir une justification formelle de la stabilité dans le modèle de la sécurité dite prouvable , qui peut être résumée sous la forme de deux théorèmes qui évaluent le nombre sûr de blocs en texte brut qui peuvent être traités à l'aide du mode MGM sans changement de clé. Nous regrettons les lecteurs et ne donnons ici que leur libellé, ceux qui veulent voir la preuve complète et faire fondre le cerveau à fond peuvent se référer à la publication originale. Le premier théorème parle de garantir la confidentialité des informations.

Théorème
, q, σ, :

AdvMGMPerm({0,1}n)Priv3(σ+4q)22n



La seconde concerne la sécurité de l'authentification des données (sa résistance à l'imitation).

Théorème
, q, σ, l, :

AdvMGMPerm({0,1}n)Auth3(σ+3q+l+2)22n+12s1



Il est à noter que lorsque l'on utilise l'approche de la «persistance prouvable», la question se pose toujours de l'exactitude des estimations obtenues (c'est-à-dire dans quelle mesure elles correspondent réellement à la réalité et sont adéquates pour la pratique). Dans ce cas, ils se sont avérés exacts, ce qui a confirmé les résultats d'un travail dans lequel les attaques théoriques pour le mode MGM sont indiquées si le volume de matière ne satisfait pas aux théorèmes ci-dessus.

Le tableau ci-dessous présente une comparaison du régime développé avec les finalistes du concours CAESAR selon les caractéristiques ci-dessus.



Dans le tableau, BC - chiffrement par bloc, SC - chiffrement par flux, Dedic - conception originale (n'utilise pas le chiffrement), Sponge - utilise une éponge, est indiqué comme primitive utilisée.

Comme vous pouvez le voir, il a été possible de développer un régime qui satisfasse un ensemble suffisamment important d'exigences opérationnelles et, ce qui est extrêmement important, d'obtenir une justification formelle de sa durabilité.

En septembre de l'année dernière, Rosstandart a approuvé le régime MGM dans ses recommandations de normalisation R 1323565.1.026–2019 «Technologies de l'information. Sécurité des informations cryptographiques. Bloquer les modes de chiffrement qui implémentent le chiffrement authentifié . » En outre, au début de cette année, l'IANA a attribué des identifiants et Rosstandart a adopté des recommandations pour la normalisation de la R 1323565.1.030-2020 «Technologies de l'information. Sécurité des informations cryptographiques. L'utilisation d'algorithmes cryptographiques dans le protocole de sécurité de la couche transport (TLS 1.3) " d'utiliser des algorithmes cryptographiques russes dans le protocole TLS 1.3, - et en utilisant simplement le mode MGM.

All Articles