Norme de cryptage de données nationales. Norme nationale du cryptage des données de sécurité de l'information

Le célèbre chercheur, le fondateur de la cryptoanalyse algébrique de Nicolas Courtois, fait valoir que le Cipher Gost de Nicolas Courtois, qui aurait dû devenir une norme internationale, effectivement piraté et s'attend à une multitude de publications qui devraient développer ses idées sur l'incohérence de cette algorithme.

Voici de brefs extraits de ce travail, qui peuvent être considérés comme une attaque alarmiste au milieu de la normalisation internationale (l'auteur était également connu d'AES, mais son travail a ensuite eu un grand effet théorique sur la cryptualyse, mais n'a pas conduit aujourd'hui à attaques pratiques sur les AES elle-même). Mais il est possible qu'il s'agisse d'un véritable avertissement sur le début de la scène "plongée dans le cuit d'un aéronef" pouvant se terminer par l'effondrement de la norme de cryptage nationale, comme il était avec l'algorithme de hachage SHA-1 et la Algorithme de hash de facto MD5.

Le GOST 28147-89 a été normalisé en 1989 et devint pour la première fois la norme officielle de protection des informations confidentielles, mais la spécification de chiffrement est restée fermée. En 1994, la norme a été déclassifiée, publiée et traduite en anglais. Par analogie avec AES (et contrairement aux des), GOST est autorisé à protéger les informations secrètes sans restrictions, conformément à la manière dont cela est indiqué dans la norme russe. Donc GOST n'est pas un analogue de DES, mais d'un concurrent 3-des avec trois clés indépendantes ou AES-256. De toute évidence, GOST est un chiffre suffisamment grave qui satisfait aux critères militaires créés en calculant les applications les plus graves. Au moins deux ensembles de blocs S GOST S ont été identifiés sur la base d'applications utilisées par les banques russes. Ces banques ont besoin de communications secrètes avec des centaines de succursales et la protection des milliards de dollars du détournement de fonds frauduleux.

GOST est un chiffre à blocs avec une structure de pare-feu simple, avec une taille de bloc d'un 64 bits, une clé de 256 bits et 32 \u200b\u200brounds. Chaque tour contient une addition avec une clé de module 2 ^ 32, un ensemble de huit blocs S 4 bits et un simple décalage cyclique de 11 bits. La fonction GOST est la possibilité de stocker un secret S-Blocks, qui peut être représenté comme une seconde clé qui augmente un matériau clé efficace jusqu'à 610 bits. Un ensemble de S-Blocks a été publié en 1994 dans le cadre de la spécification de la fonction de hachage GOST-R 34.11-94 et, comme l'a écrit Schnayer, a été utilisé par la Banque centrale de la Fédération de Russie. Il est également entré dans la norme RFC4357 dans la partie "ID-gostr3411-94-cryptoproparamset". Dans les codes source à la fin du livre Schnayer, une erreur (dans les blocs S). La mise en œuvre de référence la plus précise de l'invariant d'origine russe peut être trouvée dans la bibliothèque OpenSSL. Si les blocs S Secret sont utilisés quelque part, ils peuvent être extraits des implémentations logicielles et de la puce, sur lesquelles des travaux appropriés ont été publiés.

GOST - un concurrent sérieux

En plus d'une très grande taille de clé, GOST a un coût significativement plus faible d'exécution par rapport aux AES et à tout autre système de cryptage. En fait, cela signifie beaucoup moins d'AES, ce qui est nécessaire quatre fois plus de vannes logiques matérielles pour des raisons d'un niveau de sécurité déclaré considérablement réduit.

Il n'est pas surprenant que GOST soit devenu une norme en ligne, en particulier, elle est incluse dans de nombreuses cryptobiba, telles que Openssl et Crypto ++, et devient de plus en plus populaire à l'extérieur du pays de leur origine. En 2010, GOST a été déclaré pour la normalisation de l'ISO en tant que norme de cryptage mondial. Un grand nombre d'algorithmes pourraient devenir des normes internationales. ISO / CEI 18033-3: 2010 décrit les algorithmes suivants: Ciphers de quatre 64 bits - TDEA, MISTY1, CAST-128, HIGHT - et trois Cippes de 128 bits - AES, Camellia, Semences. GOST est invité à ajouter à la même norme ISO / CEI 18033-3.

Pour la première fois dans l'histoire de la normalisation industrielle, nous traitons un tel algorithme concurrentiel en termes d'optimalité entre le coût des coûts et de la sécurité. GOST a 20 ans de tentatives de cryptanalyse et jusqu'à récemment, sa sécurité militaire n'a pas été douteuse.

Comme il est devenu récemment connu de l'auteur de la correspondance privée, la plupart des pays ont pris la parole contre le vote de l'ISO à Singapour, cependant, les résultats de ce vote seront toujours pris en compte à la session plénière ISO SC27, de sorte que GOST est toujours dans la processus de normalisation au moment de la publication de ce travail.

Opinions d'experts sur GOST

Rien de l'information et de la littérature existantes sur le GTST ne donne pas de raison de croire que le chiffre peut être dangereux. Au contraire, la grande taille de la clé et un grand nombre de rondes font GOST, à première vue, adaptés à des décennies d'utilisation.

Tous ceux qui sont familiers à Moore sont conscients que, en théorie, des clés de 256 bits resteront en sécurité au moins 200 ans. GOST a été largement exploré par les principaux experts cryptographiques connus dans le domaine de l'analyse des chiffres à blocs, tels que Schneier, Biryukov, Dankelman, Wagner, de nombreux scientifiques australiens, japonais et russes, des experts de la cryptographie de l'ISO et tous les chercheurs ont exprimé sa raison peut être ou devrait être en sécurité. Bien qu'une large compréhension ait atteint l'opinion que la structure de la structure GOST est extrêmement faible, par exemple, par rapport au DES, en particulier, la diffusion n'est pas si bonne, mais elle a toujours été déterminée par le fait que cela devrait être compensé par Un grand nombre de rondes (32), ainsi que de non linéarité et de diffusion fournies par l'ajout de module.

Biryukov et Wagner ont écrit: "Un grand nombre de rondes (32) et une conception de Faistel bien étudiée, associée à des substitutions de Shannon cohérentes - des permutations, offrent une base solide de gost." Dans le même travail, nous lisons: "Après un coût important de temps et d'efforts, il n'y avait pas de progrès dans la cryptualyse de la norme en littérature ouverte." Ainsi, il n'y avait aucune attaque significative qui permettrait de décrypter ou de récupérer une clé dans un scénario réaliste, lorsque GOST est utilisé dans le cryptage avec une multitude de clés aléatoires différentes. En revanche, beaucoup de travail sur les attaques sur les touches faibles de Gost, des attaques avec des clés connectées, des attaques sur la restauration des blocs S Secret sont connues. La crypto-2008 était représentée par le piratage d'une fonction de hachage basée sur ce chiffre. Dans toutes les attaques, l'attaquant a un niveau de liberté beaucoup plus important qu'il n'est généralement autorisé. Dans les applications de cryptage traditionnelles utilisant des clés sélectionnables au hasard, il n'y avait pas d'attaques cryptographiques graves sur GOST, qu'en 2010, il a été exprimé par la phrase finale: «Malgré les efforts considérables de cryptoanisme au cours des 20 dernières années, GOST n'est toujours pas piraté "(Axel Poschmann, San Ling et Huaxiong Wang: Crypto standardisé de 256 bits pour 650 GE Gost Revisited, à Ches 2010, LNCS 6225, p. 219-233, 2010).

Analyse linéaire et différentielle de GOST

Nous lisons: "contre la cryptanalyse différentielle et linéaire du gost est probablement plus stable que DES." L'évaluation principale de la sécurité GOST a été donnée en 2000, Gabidulin et al. Leurs résultats sont très impressionnants: lorsque le niveau de sécurité est 2 ^ 256, il y a suffisamment de cinq tours pour protéger le gost de la cryptanalalyse linéaire. De plus, même lors du remplacement de S-Blocks sur le fonctionnement identique et non linéaire de l'addition MODULO 2 ^ 32 - Le chiffre est toujours des racks contre la cryptanalyse linéaire après 6 tours de 32. La cryptanalyse différentielle du gost semble relativement plus facile et attiré plus d'attention. Pour 2 ^ 128 Chercheurs de niveau de sécurité (Vitaly V. Shorin, Vadim V. Jelezniakov et Ernst M. Gabidulin: cryptanalyse linéaire et différentielle du GTST russe, pré-empreinte soumise à la pré-empreinte d'Elsevier, le 4 avril 2001) a assumé une résistance suffisante au niveau de 7 rounds . Selon eux, pirater le gost dans plus de cinq rounds est "extrêmement difficile". De plus, deux chercheurs japonais ont montré qu'une attaque différentielle directe classique avec une caractéristique différentielle est extrêmement faible de la probabilité de passer à travers un grand nombre de tours. Basé sur la base de l'étude d'une caractéristique différentielle itérative plutôt "bonne" pour un nombre limité de rondes (qui en soi a une probabilité de ne pas dépasser 2-11,4 par tour), les valeurs de l'ensemble de l'ensemble approprié les clés de moins de la moitié sont obtenues. Pour un gant à terme, une telle attaque avec une seule caractéristique ne fonctionnera que avec une clé négligeable de la commande 2-62 clés (et même dans cette petite partie, il aura la probabilité d'au plus 2-360).

Les attaques plus complexes incluent plusieurs différentiels suivant des modèles spécifiques, par exemple, à l'aide de S-Blocks individuels ayant zéro différentiel, tandis que sur d'autres bits, il n'y a pas de zéro. Discours sur les attaques - distincts basés sur des propriétés de diffusion médiocres du GTST. Le meilleur de ces attaques fonctionne contre 17 rounds ronds, dépend de la clé et présente une différence extrêmement faible des données aléatoires à la sortie afin qu'elle puisse être utilisée pour l'utiliser pour obtenir des informations sur la clé.

Attaques de glissement et de réflexion

Selon Biryukov et Wagneru, la structure du GOST, qui inclut l'ordre inverse de la connexion dans les derniers tours, le rend résistant aux attaques de glissades (appelées "attaques de diapositives"). Cependant, en raison de la présence d'une grande similitude de soi dans le chiffrement, il vous permet d'effectuer l'inversion des clés sur une combinaison de points fixes et des propriétés de "réflexion" (appelées "attaques réfléchissantes") pour certaines clés faibles. La complexité de cette attaque 2 ^ 192 et 2 ^ 32 de textes ouverts sélectionnés.

Résultats récents

Les nouvelles attaques reflètent également et réellement piraté GOST, qui a été présentée à la Conférence de la FSE 2011. Ces attaques étaient également ouvertes de manière indépendante par l'auteur de ce travail. L'attaque nécessite 2 ^ 132 octets de mémoire, qui est effectivement pire que les attaques plus lentes avec une mémoire plus petite.

De nombreuses nouvelles attaques basées sur la similitude de soi se produisent contre toutes les clés GOST et vous permettent de pirater un gant de qualité complète avec une clé de 256 bits, et pas seulement pour les clés faibles, comme c'était auparavant. Toutes ces attaques nécessitent beaucoup moins de mémoire et elles sont beaucoup plus rapides.

Ces nouvelles attaques peuvent être considérées comme des exemples d'un nouveau paradigme général de Cryptanasalya Block Ciphers intitulé «Réduction de la complexité algébrique», avec un résumé de ces attaques dans de nombreux cas particuliers d'attaques avec des points fixes bien connus, des glissements, des involutions et des cycles bien connus. Il est important que, parmi la famille de toutes ces attaques, il existe ceux qui permettent à la cryptualyse gosée sans réflexion et sans points symétriques qui se manifestent pendant les calculs. Un exemple est la simple attaque du piratage du gost sans réflexions dans ce travail.

Cryptanalyse algébrique et attaques avec une petite complexité de données sur des cantons avec un nombre réduit de rondes

Les attaques algébriques sur les chiffres de bloc et de streaming peuvent être représentées comme un problème résolvant un grand système d'équations algébriques booléennes, qui suit la géométrie et la structure d'un schéma cryptographique privé. L'idée elle-même remonte à Shannon. En pratique, il a été présenté pour DES (pour la première fois introduit par l'auteur de ce travail) comme méthode de codage formel et peut craquer 6 tours dans un seul texte extérieur connu. La manipulation avec des équations se produit sur la base des algorithmes XL, des bases de Greobner, de la méthode Elimlin, des solveurs SAT.

En pratique, des attaques algébriques sont mises en œuvre contre le très petit nombre de tours de chiffrement à blocs, mais ont déjà conduit à pirater des chiffres en streaming, il existe également des succès dans les chiffres de superhaïdes du piratage pour les micro-équipements. En raison des difficultés de la mémoire et des estimations, les coûts des calculs sont combinés à d'autres attaques.

Comment pirater GOST?

Attaque algébrique de GRONT de qualité complète plus en détail dans la publication à l'étude. Dans les travaux précédents, l'auteur a déjà défini 20 attaques algébriques à GOST et s'attend à un grand nombre d'entre eux dans un proche avenir. L'attaque proposée dans ce travail n'est pas la meilleure d'entre elles, mais ouvre un simple (au moins pour la compréhension des cryptographes) la voie des développements ultérieurs pour créer une méthodologie spécifique au GTST.

Le résultat pratique est toujours modeste: 2 ^ 64 Texte ouvert connu et 2 ^ 64 Mémoire pour stocker des paires "Ouvrir le texte / CIPHERText" vous permet de craquer GOST dans 2 ^ 8 plus rapidement que le simple buste. Mais en termes de cryptanalyse, il fait une déclaration entièrement juste que "Gost a piraté".

conclusions

GOST conçu pour assurer la sécurité militaire depuis 200 ans. La plupart des principaux experts qui ont étudié GOST ont été accordés à un accord "malgré des efforts cryptanalytiques importants depuis 20 ans, GOST n'est toujours pas piraté". En 2010, GOST est promu ISO 18033 en tant que norme de cryptage globale.

La base d'idées sur la cryptanalyse algébrique s'est produite il y a plus de 60 ans. Mais au cours des 10 dernières années, des solutions logicielles efficaces (partielles) ont été développées pour résoudre de plusieurs problèmes de NP-complets. Un certain nombre de chiffres de streaming a été piraté. Un seul chiffre d'un bloc a été piraté par cette méthode - en soi faible Keeloq. Dans ce travail, l'auteur se réveille d'une importance importante, en réellement utilisé, Cipher Gost. Il note que c'est le premier cas de l'histoire lorsque la cryptoanalyse algébrique a été piratée par un chiffre d'état standardisé.

La simple attaque "Mitm avec une réflexion" chez GOST est déjà présentée à la Conférence FSE 2011. Dans le travail considéré dans cet article, une autre attaque n'est représentée que pour illustrer le fait de combien d'attaques sur gost sont déjà apparues maintenant, beaucoup de Quelles sont plus rapides, et elle-même l'attaque algébrique nécessite beaucoup moins de mémoire et ouvre un espace presque inépuisable pour un chiffre d'attaque ennemi de différentes manières. De plus, dans ce travail, l'absence de la nécessité d'utiliser la propriété de réflexion pour le piratage.

L'auteur affirme: il est évident que GOST a de graves défauts et ne fournit désormais pas le niveau de résistance requis par l'ISO. De nombreuses attaques chez GOST sont présentées dans le cadre de la confirmation du paradigme de la réduction de la complexité algébrique.

Enfin, le chercheur note en particulier certains faits qui ne sont toujours pas disponibles pour le lecteur, mais sont connus de la chercheuse, qui sont importants lors du processus de normalisation de l'ISO. Cette attaque n'est pas simplement une attaque «certification» sur GOST, ce qui est plus rapide que la force brute. En fait, la normalisation du GOST serait désormais extrêmement dangereuse et irresponsable. C'est ainsi parce que certaines des attaques sont possibles de mettre en œuvre dans la pratique. Certaines clés GOST en pratique peuvent même être déchiffrées, qu'ils soient des clés ou des clés faibles des applications de Gosti Véritables privées. Dans les travaux précédents, l'auteur dirige une prise en compte détaillée des cas d'attaques pratiques. Il est également important que "c'est le premier cas de l'histoire lorsqu'un chiffrement de bloc normalisé sérieux, créé pour protéger les secrets du niveau militaire et destiné à protéger les secrets d'État des gouvernements, des grandes banques et d'autres organisations, a été piratée par une mathématique attaque."

Cet algorithme est obligatoire pour une utilisation en tant que cryptage d'algorithme dans les organisations d'État de la Fédération de Russie et un certain nombre de commerciaux.

Description de l'algorithme

Le schéma d'algorithme est montré à la Fig. 3.1. Comme on peut le voir, le diagramme de cet algorithme est assez simple, ce qui simplifie sans ambiguïté sa mise en œuvre du logiciel ou du matériel.

L'algorithme GOST 28147-89 chiffre les informations par blocs 64 bits, qui sont divisées en deux sous-blocs 32 bits (N1 et N2). Le sous-bloc de N1 est traité d'une certaine manière, après quoi sa valeur est pliée

avec la valeur de la sous-discblock N2 (addition est effectuée par module 2), les sous-blocs sont modifiés dans des endroits. Une telle conversion est effectuée un certain nombre de tours: 16 ou 32, en fonction du mode de fonctionnement de l'algorithme (décrit ci-dessous). Les opérations suivantes sont effectuées dans chaque tour:

1. Entrer dans la clé. Le contenu de la sous-discblock / VI se plie dans le module 2 32 avec une partie de la clé KX.

La clé de cryptage de l'algorithme GOST 28147-89 a une dimension de 256 bits et la KH est sa partie 32 bits, c'est-à-dire que la clé de cryptage de 256 bits est représentée comme une concaténation de connexions 32 bits (Fig. 3.2 ):

Sti Ati, AG2, Yu, AG4, K5, KB, K7.

Pendant le processus de cryptage, l'une de ces bouchons est utilisée - en fonction du nombre rond et du mode de fonctionnement de l'algorithme.

Figure. 3.1. Schéma de l'algorithme GOST 28147-

Figure. 3.2. Algorithme de clé de cryptage GOST 28147-89

2. Remplacement tabulaire. Après avoir superposé la clé, la touche latérale / VI est divisée en 8 parties de 4 bits, chacune étant remplacée séparément en fonction de la table de remplacement pour cette partie du sous-bloc. Les remplacements de table (boîte de substitution, S-Box) sont souvent utilisés dans les algorithmes de cryptage modernes, il vaut donc la considération plus en détail.

Un remplacement de table est utilisé de cette manière: l'entrée du bloc de données d'une dimension spécifique est alimentée (dans ce cas - 4 bits), dont la représentation numérique détermine le numéro de sortie. Par exemple, nous avons la boîte en S du type suivant:

4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1.

Laissez le bloc de 4 bits "0100" est venu à l'entrée, c'est-à-dire la valeur 4. Selon le tableau, la valeur de sortie sera de 15, c'est-à-dire "1111" (0 est remplacé par 4, 1 à 11, la valeur 2 ne change pas, etc.).

Comme on peut le voir, le schéma d'algorithme est très simple, ce qui signifie que la plus grande charge sur les données de cryptage relève de la table de remplacement. Malheureusement, l'algorithme a la propriété qu'il existe des tables de fond "faibles", lorsque l'utilisation de l'algorithme peut être décrite avec des méthodes cryptanalytiques. Par exemple, la table dans laquelle la sortie est égale au nombre de faiblesses:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

3. Le décalage cyclique bitwise à gauche de 11 bits.

Modes de fonctionnement de l'algorithme

L'algorithme GOST 28147-89 a 4 modes de fonctionnement:

□ Mode de remplacement simple;

□ Haming Mode;

N mode de gamming de rétroaction;

□ Mode de développement des contacts de vol.

Ces modes sont quelque peu différents de ceux généralement acceptés (décrits à la section 1.4), il convient donc de les considérer plus en détail.

Ces modes ont un but différent, mais utilisent la même transformation de chiffrement ci-dessus.

Mode de remplacement simple

En mode de remplacement simple, 32 tours décrits ci-dessus sont simplement implémentés pour crypter chaque information de 64 bits. Les bouchons 32 bits sont utilisés dans la séquence suivante:

□ KO, KL, K2, KZ, K4, K5, KB, AG7, KO, ATI, etc. - en rondes du 1er au 24;

□ K1, KB, K5, K4, KZ, K2, K \\, KO -B ronde du 25 au 32ème.

Le décryptage en mode de remplacement simple est complètement réalisé, mais avec une séquence d'application légèrement différente de la connexion:

□ ko, k \\, k2, k4, k4, k5, kb, kp - en rondes du 1er au 8;

□ KP, KB, K5, K4, KZ, K2, K \\, KO, K1, KB, etc. - en rondes du 9ème au 32ème.

Semblable au mode ERV standard, en raison du cryptage de bloc distinct, le mode de remplacement simple est spécifié de manière catégorique pour utiliser des données dans le cryptage; Il ne doit être utilisé que pour chiffrer d'autres clés de cryptage dans plusieurs régimes.

Mode Hamming

Dans la gamme de mode hydraulique (Fig. 3.3), chaque unité de texte ouverte est bloquée par le module 2 avec un bloc de 64 bits ciphers gamma. Le gamma Cipher est une séquence spéciale produite à l'aide des transformations décrites ci-dessus comme suit:

1. Dans les registres N1 et N2, leur remplissage initial est enregistré par une valeur de 64 bits, appelée "Syncopusca" (Sync-Rope, est pratiquement un analogue du vecteur d'initialisation dans les modes BFC, BFC et OFB).

2. Il est crypté avec le contenu des registres / VI et N2 (dans ce cas - Syntacques) en mode de remplacement simple.

3. Le contenu des plis n1 dans le module (2 32 - 1) avec une constante CI \u003d 2 24 + 2 16 + 2 8 + 4, le résultat de l'addition est enregistré dans le registre / VI.

4. Le contenu de N2 se développe dans le module 2 avec une constante C2 \u003d 2 24 + 2 16 + 2 8 +1, le résultat de l'addition est écrit au registre N2.

5. Le contenu des registres / VI et N2 sont introduits à la sortie en tant que bloc de gamma chiffré de 64 bits (c'est-à-dire dans ce cas / VI et N2 forment le premier bloc du gamma).

6. Si le prochain bloc gamma est requis (c'est-à-dire qu'il est nécessaire de poursuivre le cryptage ou le déchiffrement), retourne à l'étape 2.

Pour le déchiffrement, le gamma est effectué de la même manière, puis l'opération XOR est à nouveau appliquée aux bits du texte crypté et de la gamma.

Pour développer le même gamma du chiffre de l'utilisateur, déchiffrer le cryptogramme, il doit y avoir la même clé et la même signification de Sync-Drum, qui ont été utilisées lors de l'utilisation des informations cryptées. Sinon, il ne sera pas possible d'obtenir le texte source du crypté.

Dans la plupart des implémentations de l'algorithme GOST 28147-89, le syncopier n'est pas un élément secret, mais le tambour Sync peut être aussi secret que la clé de cryptage. Dans ce cas, on peut supposer que la longueur effective de la clé de l'algorithme (256 bits) augmente par un autre 64 bits de synputilisateurs, qui peuvent être considérés comme un élément clé supplémentaire.

Mode de frappe de retour

En mode de rétroaction en mode de gammage en tant que registres de remplissage / VI et L / 2, à partir du 2e bloc, un bloc précédent de la gamma est utilisé et le résultat du cryptage du bloc précédent du texte ouvert est utilisé (Fig. 3.4) . Le premier bloc de ce mode est généré par le précédent similaire à celui précédent.

Figure. 3.4. Développer un chiffre gamma en mode gammage de retour d'information

MODE DE DÉVELOPPEMENT D'IMITHODS

L'imitrobristentage est une somme de contrôle cryptographique calculée à l'aide de la clé de cryptage et destinée à vérifier l'intégrité des messages. Pour le calculer, il existe un mode d'algorithme spécial GOST 28147-89.

La génération d'imitheds est effectuée comme suit:

1. Le premier bloc d'informations 64 bits pour lequel le Simprisenger est calculé est écrit aux registres N1 et N2 et est crypté dans le mode de remplacement simplement abrégé, dans lequel les 16 premiers tours de 32 sont effectués.

2. Le résultat obtenu est additionné par module 2 avec le bloc d'informations suivant tout en maintenant le résultat en N1 et N2.

3. M et N2 sont à nouveau cryptés dans un mode de remplacement abrégé, etc. jusqu'au dernier bloc d'informations.

Le simplicateur est considéré comme une teneur en 64 bits résultant de registres N1 et N2 ou une partie de celui-ci. Le plus souvent utilisé IMITAVID 32 bits, c'est-à-dire la moitié du contenu des registres. Cela suffit, car, comme n'importe quelle somme de contrôle, l'imitrock est principalement destiné à protéger contre les distorsions aléatoires d'informations. Pour protéger les mêmes données, d'autres méthodes cryptographiques sont utilisées - principalement une signature numérique électronique (voir section 1.1).

Le simprocope est utilisé comme suit:

1. Lors du cryptage des informations, une simplicité de texte ouvert est calculée et envoyée avec le CIPHERText.

2. Après le déchiffrement, le simpristening est à nouveau calculé et comparé à l'envoi.

3. Si la simplicité calculée et attribuée ne correspond pas au texte de chiffrement, il a été déformé pendant la transmission ou utilisé des touches incorrectes utilisées lorsqu'elle est déchiffrée.

La simplicité est particulièrement utile pour vérifier le décryptage correct des informations clés lors de l'utilisation de schémas multi-section.

Le Simpristenger est un analogue du code d'authentification de message MAC calculé en mode CSA; La différence est que lors du calcul de la simplicité, le syncopier n'est pas utilisé, alors que le vecteur d'initialisation est utilisé lors du calcul de Mac.

Algorithme de résistance de Cryptost

En 1994, la description de l'algorithme GOST 28147-89 a été traduite en anglais et publiée; Après cela, les résultats de son analyse effectués par des spécialistes étrangers ont commencé à apparaître; Cependant, de nombreuses attaques approchaient de presque réalisables ont été trouvées au cours d'une période considérable.

□ Longueur de grande taille - 256 bits; Avec le syncopionel secret, la longueur effective de la clé augmente à 320 bits;

□ 32 tours de conversion; Déjà après 8 rounds, l'effet complet de la dispersion des données d'entrée est atteint: la modification d'un bit du bloc de texte ouvert affectera tous les bits du bloc CIPHERText et vice versa, c'est-à-dire une offre de réserve multiple.

Considérez les résultats de la cryptanalyse de l'algorithme GOST 28147-89.

Analyse des tables de remplacement

Étant donné que les tableaux de substitution de la norme ne sont pas donnés, dans un certain nombre d'œuvres (par exemple, c), il est suggéré que l'organisation "compétente" peut donner à la fois des tables de substitution "bonnes" et "mauvaises". Cependant, Bruce Schneier appelle de telles hypothèses «rumeurs» dans l'expert le plus célèbre. Il est clair que la résistance à la crypte de l'algorithme dépend en grande partie des propriétés des tables appliquées utilisées, respectivement, il existe des tables de remplacement faibles (exemple, voir ci-dessus), dont l'utilisation peut simplifier l'ouverture de l'algorithme. Cependant, la capacité d'utiliser diverses tables de remplacement semble être une idée très digne, au cours de laquelle la faveur, vous pouvez apporter deux faits suivants de l'histoire de la norme de chiffrement des des chiffres (voir section 3.15):

□ Les attaques utilisant des caractéristiques spécifiques des tables de remplacement spécifiques à la fois linéaire et différentielle. Lorsque vous utiliserez d'autres tables de cryptanalyse devra commencer en premier;

□ Des tentatives ont été faites pour renforcer la Cryptanalysyse linéaire et différentielle en utilisant des tables de remplacement plus résistantes; De telles tables, vraiment plus persistantes, ont été proposées, par exemple, dans le S 5 des algorithme; Mais, hélas, il était impossible de remplacer DES sur S 5 des S 5 des, car les tables de substitution sont strictement définies dans la norme, respectivement, la mise en œuvre de l'algorithme ne supporte certainement pas la possibilité de changer les tables vers d'autres.

Dans un certain nombre de papiers (par exemple, et), il est conclu à tort que les tables secrètes de la substitution de l'algorithme GOST 28147-89 peuvent faire partie de la clé et augmenter sa longueur effective (qui est insignifiante, depuis l'algorithme a une très grande clé de 256 bits). Cependant, il a été prouvé que des tables de remplacement secrètes peuvent être calculées à l'aide de l'attaque suivante, qui peut être appliquée à pratiquement:

1. La touche zéro est définie et la recherche de "zéro vecteur" est effectuée, c'est-à-dire les valeurs Z \u003d / (0), où / () est la fonction de la ronde de l'algorithme. Cette étape prend environ 2 opérations de cryptage.

2. Avec le vecteur zéro, les valeurs des tables de remplacement sont calculées, ce qui ne prend plus que 2 11 opérations.

Modifications de l'algorithme et de leur analyse

Les travaux ont effectué la cryptanalyse des modifications de l'algorithme GOST 28147-89:

□ L'algorithme GOST-H, dans lequel, par rapport à l'algorithme d'origine, modifié la procédure d'utilisation de la fiche, nommément, dans les rondes du 25ème à la fiche 32ème, elles sont utilisées dans la commande directe, c'est-à-dire dans le même manière comme dans les tours précédents de l'algorithme;

□ Algorithme GOST® 20 rond, dans une ronde dont une opération XOR est utilisée pour superposer la clé au lieu d'ajouter 2 32 modulo.

Selon les résultats de l'analyse, il a été conclu que GOST-H et GOST © affaiblissent l'algorithme initial GOST 28147-89, puisque les deux ont des classes de clés faibles. Il convient de noter que, en termes de cryptoanalysis GOST ©, le mot dans le mot répète la section dédiée à la cryptanalyse de l'algorithme GOST 28147-89, qui est sorti en 2000, travail bien connu (sans référence à l'original) . Cela fait de doute sur le professionnalisme des auteurs du travail et du reste de ses résultats.

Une modification très intéressante de l'algorithme est proposée dans le travail: les tables s \\ ... SS doivent être différentes; Dans chaque tour de l'algorithme, leur permutation devrait être effectuée sur une loi spécifique. Cette permutation peut être dépendante de la clé de cryptage et peut-être que le secret (c'est-à-dire de faire partie de la clé de cryptage plus grande par rapport à la clé source 256 bits). Selon leurs auteurs, ces deux options améliorent considérablement la résistance de l'algorithme contre la cryptanalyse linéaire et différentielle.

Et une autre modification associée aux tables de remplacement est fournie dans les travaux, dans lesquelles l'une des méthodes possibles de calcul des tables de substitution de clé de cryptage sont analysées. Les auteurs du travail ont conclu qu'une telle dépendance affaiblit l'algorithme, car elle conduit à la présence de clés faibles et à certaines vulnérabilités d'algorithme potentielles.

Analyse de l'algorithme à terme

Il y a des attaques et le gant-28147-89 à terme sans modification. L'une des premières ouvertures dans lesquelles l'analyse de l'algorithme a été réalisée est un travail bien connu - est consacré aux attaques utilisant la faiblesse de la procédure d'expansion de la clé d'un certain nombre d'algorithmes de cryptage bien connus. En particulier, l'algorithme à grain complet GOST 28147-89 peut être ouvert à l'aide de la cryptanalyse différentielle sur les touches connectées, mais uniquement dans le cas de l'utilisation de tables de remplacement faibles. La variante 24 rond de l'algorithme (dans laquelle les 8 premiers rondes sont manquantes) est ouverte de la même manière que toutes les tables de substitution, toutefois, de fortes tables de substitution (par exemple, le C) rendent une telle attaque est absolument impraticable.

Scientifiques nationaux A. G. RostovTsev et E. B. B. MOVENKO En 2001, une méthode fondamentalement nouvelle de cryptanalyse a été proposée dans le travail (selon les auteurs, de manière significative plus efficace que la cryptanalyse linéaire et différentielle) en formant une fonction cible du texte ouvert bien connu correspondant à la CIPHERText et la valeur de la clé souhaitée et trouvant son extremum correspondant à la valeur de clé vraie. Ils ont également trouvé une grande classe de touches faibles de l'algorithme GOST 28147-89, qui vous permet d'ouvrir l'algorithme à l'aide de seulement 4 textes ouverts sélectionnés et de leur correspondant à des chiffres de textes avec une complexité assez faible. L'algorithme de cryptoanalyse a continué au travail.

En 2004, un groupe de spécialistes de la Corée a proposé une attaque avec laquelle l'utilisation de la cryptoanalyse différentielle sur les clés correspondantes peut être obtenue avec une probabilité de 91,7% 12 bits de la clé secrète. Pour l'attaque, vous avez besoin de 2 35 textes ouverts sélectionnés et 2 36 opérations de cryptage. Comme on peut le voir, cette attaque est pratiquement inutile pour la réelle autopsie de l'algorithme.

). Dans le même temps, le nombre de notes sur cet algorithme dans les médias russes et les blogs des utilisateurs russes augmente: les résultats des attaques de la norme russe et contiennent des opinions sur ses caractéristiques opérationnelles. Les auteurs (A, par conséquent, les lecteurs) Ces notes compensent souvent l'impression que l'algorithme de cryptage domestique est moralement obsolète, lente et possédant des vulnérabilités qui le rendent exposé à des attaques sensiblement plus que des algorithmes de cryptage étrangers avec une longueur de clé similaire. Nous aimerions cette série de notes sur une forme abordable pour parler de la situation actuelle avec la norme russe. Dans la première partie, toutes les attaques publiques cryptographiques internationales bien connues seront couvertes par GOST 28147-89, estimations actuelles de sa résistance. Dans les publications futures, nous examinerons également les propriétés de la norme en termes de construction efficace de mise en œuvre.

Nicolas Courtois - "Génial et horrible"

Commençons par l'histoire des activités de Nicolas Courtois, qui est l'auteur d'un cycle complet d'œuvres dédiées à la norme russe du cryptage Block ().

En octobre 2010, le processus d'envisage de l'inclusion de l'algorithme GOST 28147-89 à la norme internationale ISO / CEI 18033-3 a été lancée. Déjà en mai 2011, un article d'une cryptographie réputée de Nicolas Courtois, noté par une attitude très ambiguë envers lui de la communauté cryptographique mondiale est apparue sur les archives électroniques Eprint. Les publications curos sont un exemple triste de manipuler avec des concepts qui n'ouvrent aucune nouvelle propriété de l'objet à l'étude, mais avec une demande de sensation provoque la diffusion dans l'environnement incompétent d'opinions erronées sur ses propriétés valides.

Méthode algébrique

Le raisonnement de Curvo est construit autour de deux classes de méthodes de cryptanalyse: méthodes algébriques et différentiel. Considérez la première classe de méthodes.

La méthode simplifiée de cryptoanalyse algébrique peut être décrite comme étant en train d'élaborer et de résoudre un vaste système d'équations, chacune des solutions correspondant à l'objectif de cryptanalitique (par exemple, si le système est compilé sur une paire de textes ouverts et cryptés, tous Les solutions de ce système correspondent aux clés dans lesquelles ce texte ouvert est converti en ce crypté). C'est-à-dire que dans le cas du problème de la cryptanalyse du chiffrement, l'essence de la méthode algébrique de cryptoanalyse est que la clé est due à la solution du système d'équations polynomiales. La principale difficulté est que, en tenant compte des détails d'un chiffre particulier, il est nécessaire de rendre un système plus simple que possible que le processus de résolution de la résolution dura le moins possible. Ici, le rôle clé est joué par les particularités de chaque chiffre spécifique analysé.

La méthode algébrique, exploitée par le tour, peut décrire brièvement cela. À la première étape, ces propriétés de GOST 28147-89 sont utilisées comme existence d'un point fixe pour une partie de la conversion de cryptage, ainsi que du point dit de réflexion (point de réflexion). Grâce à ces propriétés d'un nombre suffisamment grand de paires de textes chiffrées à ciel ouvert, plusieurs paires sont sélectionnées, ce qui nous permettent de considérer les transformations non de 32, mais seulement sur 8 rounds. La deuxième étape est que, selon les résultats des 8ème transformations rondes obtenues à la première étape, le système d'équations non linéaires est construit, qui sont inconnus dans lesquels sont des bits clés. En outre, ce système est résolu (cela semble simplement, mais en réalité est la partie la plus touchée de la méthode, car le système est constitué d'équations non linéaires).

Comme indiqué ci-dessus, nulle part dans le travail, il n'y a aucune description détaillée et analyse de la complexité de la deuxième étape de la définition clé. C'est la complexité de la deuxième étape qui détermine la complexité de l'ensemble de la méthode dans son ensemble. Au lieu de cela, l'auteur dirige les "faits" notoires, sur la base qui fait la considération des estimations. Il est fait valoir que ces "faits" sont basés sur les résultats des expériences. L'analyse des "faits" de l'œuvre des cloos en général est donnée dans le travail des auteurs nationaux. Les auteurs de ces travaux ont noté que nombre des "faits" présentés sans aucune preuve étaient faux avec des contrôles expérimentaux. Les auteurs de l'article ont continué et que les cloos ont effectué une analyse de la complexité de la deuxième étape à l'aide d'algorithmes et d'évaluations bien fondés. La consommation de main-d'œuvre résultant du fait de l'évaluation montre l'inapplicabilité complète de l'attaque représentée. Outre les auteurs nationaux, de grands problèmes découlant du cycle avec des estimations et la justification de leurs propres méthodes, ont également noté, par exemple dans le travail.

Méthode différentielle

Considérons la deuxième méthode du cycle, qui est basée sur la cryptanalyse différentielle.

La méthode générale de cryptanalyse différentielle est basée sur le fonctionnement des propriétés utilisées dans les primitives cryptographiques des mappages non linéaires associés à l'effet de la valeur clé sur la relation entre les différences de paires de valeurs de sortie d'entrée et de vapeur de ces mappages. Nous décrivons l'idée de base de la méthode différentielle de l'analyse cryptographique du chiffrement à blocs. En règle générale, les chiffres de blocs convertissent les données d'entrée par étapes avec un certain nombre de transformations dits rondes et chaque transformation ronde n'utilise pas la totalité de la clé, mais seulement une partie de celui-ci. Considérons un petit chiffre "tronqué", qui est différent du fait initial qu'il n'a pas le dernier tour. Supposons qu'il soit possible d'établir que, à la suite du cryptage utilisant un tel chiffre "tronqué" de deux textes ouverts, différant de certaines positions fixes, avec une probabilité élevée de ciIphertext, qui diffère également dans certaines positions fixes. Cette propriété montre que le chiffre "tronqué" est susceptible de laisser la relation entre certains textes ouverts et les résultats de leur cryptage. Pour utiliser ce inconvénient explicite pour restaurer une partie de la clé, vous devez avoir la possibilité de chiffrer des textes ouverts pré-sélectionnés sur la clé que nous souhaitons restaurer (appelé "attaque avec le texte ouvert sélectionné"). Au début de la procédure "Ouverture de la clé", un certain nombre de paires de texte ouvert sont générées de manière aléatoire dans les positions les plus fixes. Tous les textes sont cryptés avec un chiffre "complet". Les paires de ciparttext reçues sont utilisées pour restaurer ces bits de clé utilisées lors de la conversion de la dernière ronde comme suit. En utilisant une valeur rapide sélectionnée, la valeur des bits souhaitées de la clé à tous les ci-chiffres est utilisée pour convertir, inverser la dernière conversion de la dernière ronde. En fait, si nous devinions la valeur souhaitée des bits de clé, nous obtenons le résultat du travail du ciphérique "tronqué", et si nous ne devons pas deviner - nous "chiffrer les données encore plus", ce qui ne réduira que le Dépendance des blocs entre les blocs (différence dans certaines positions fixes). En d'autres termes, s'il y avait plusieurs paires de cipherext parmi les résultats de cette "finition", différant de nos positions fixes nous sont connues, cela signifie que nous devintions les bits de clé souhaité. Sinon, ces paires sont nettement moins importantes. Étant donné que chaque tour n'est utilisé qu'une partie de la clé, les bits (c'est-à-dire que les bits de la clé utilisées dans le dernier tour) ne sont pas autant que les bits en clé complète et peuvent simplement passer à travers les étapes ci-dessus. Dans ce cas, nous allons certainement observer la valeur correcte.

À partir de la description ci-dessus, il s'ensuit que le plus important de la méthode d'analyse différentielle est le nombre de ces positions dans des textes ouverts et des chiffres, les différences dans lesquelles ils jouent un rôle clé dans la restauration des principaux bits. La présence fondamentale de ces positions, ainsi que l'ensemble de leurs nombres dépend directement des propriétés de ces transformations non linéaires utilisées dans n'importe quel chiffre de bloc (généralement toute la "non linéarité" est concentrée dans les éléments stiers ou nœuds de remplacement).

Courtois utilise une méthode différentielle modifiée multiple. Immédiatement, nous notons que l'analyse du CLOI est effectuée pour les blocs S autres que ceux qui fonctionnent et offerts dans l'ISO. Le papier présente des caractéristiques différentielles (les nombres mêmes dans lesquels des blocs devraient différer) pour un petit nombre de tours. La justification de l'extension des caractéristiques à un plus grand nombre de tours, comme d'habitude, est basée sur des "faits". Courtois exprime, encore une fois, rien d'autre que son autorité, n'a pas renforcé l'hypothèse que la variation des blocs en S n'affectera pas la résistance du GOST 28147-89 contre son attaque (en même temps, les blocs S du 1er brouillon de travail L'ajout à la norme ISO / CEI 18033-3 n'a pas été prise en compte). L'analyse menée par les auteurs de l'article montre que même si nous prenons les "faits" déraisonnables de la Couroine et mener une analyse du GOST 28147-89 avec d'autres blocs S, puis l'attaque à nouveau n'est pas meilleure que l'extinction complète.

Une analyse détaillée du travail de la Couroisie avec une justification détaillée de la prévention des travaux prévisionnels de toutes les déclarations afin de réduire la résistance de la norme russe a été réalisée dans [].

Dans le même temps, le manque absolu de précision du calcul reconnaît même la racine elle-même! La prochaine diapositive est extraite de la présentation des bookcut sur les petites annonces de la FSE 2012.

Il convient de noter que les travaux du clocus ont été critiqués à plusieurs reprises par des chercheurs étrangers. Par exemple, ses travaux sur la construction d'attaques sur l'algorithme de cryptage AES Block avec l'aide de la méthode XSL contenaient les mêmes défauts fondamentaux que les travaux sur l'analyse de la norme russe: la plupart des estimations de l'intensité de la main-d'œuvre apparaissent dans le texte Complètement non fondé et une critique détaillée - peut être trouvé, par exemple, dans le travail. En outre, la Courtois elle-même reconnaît les refuses généralisés de publier ses travaux sur de grandes conférences cryptographiques et des magazines reconnues par des pairs, qui ne lui laissait souvent pas l'occasion d'effectuer la section des annonces courtes. Ceci, par exemple, peut être lu à la section 3 du travail. Voici quelques citations données par la Courois elle-même et liées à ses travaux:

  • "Je pense que les audiences de l'asiacrypt n'entraîneront pas que c'est intéressant." Asiacrypt 2011 Reviewer.
  • "... Il y a un gros problème gros, gros problème: cette attaque, qui est la principale contribution du papier a déjà été publiée à la FSE'11 (c'était même le meilleur papier), ...". Critique Crypto 2011.

Ainsi, la partie professionnelle du public cryptographique international appartient à la qualité des travaux de curos sans doute que, disons, de ne pas être confirmé par des calculs cohérents des déclarations de certains spécialistes russes sur leur capacité à craquer des AES pour 2 100 ou une autre "preuve" pour deux pages d'hypothèse sur l'inégalité des classes complexes P et NP.

Attack Isoba et Dinura-Dankelman-Shamir

L'idée générale d'Isoba () et de Dinura-Dankelman-Shamir (ci-après: Attack DDSH) () est de construire pour un certain (dépendant de la clé) un ensemble étroit de textes ouverts équivalents sur cet ensemble de transformation, qui a plus Simple que la conversion de chiffrement elle-même, structure. Dans le cas de la méthode ISOB, il s'agit d'un ensemble de blocs de ce type X 64 bits que f 8 -1 (swap (F 8 (z))) \u003d Z, où Z \u003d F 16 (x), via F 8 ( X) et F 16 (x) Les 8 premiers et les 16 premiers rondes de cryptage de GOST 28147-89 sont indiqués respectivement, par échange de sièges de 64 octets. Lorsque le texte ouvert comprend cela, cet ensemble de la transformation totale de 32 rond de GOST 28147-89 coïncide avec le résultat d'un 16 tour, qui est actionné par l'auteur de l'attaque. Dans le cas de la méthode DDS, il s'agit d'un ensemble de telle x que f 8 (x) \u003d x (point de conversion fixe F 8). Pour tout texte ouvert, la transformation GOST 28147-89 fonctionne exactement la même chose que ses 8 derniers tours, ce qui simplifie l'analyse.

La complexité de l'attaque en atobe est de 2 224 opérations de cryptage, des attaques DDSH - 2 192. Cependant, toutes les questions sur la question de savoir si les attaques ISOBE et DSH apportent de nouvelles restrictions sur les conditions d'utilisation de notre algorithme, supprime l'évaluation des exigences matérielles requises pour chacune des attaques: pour la méthode d'ISOB, 2 32 paires d'ouverture et Des textes cryptés sont nécessaires et pour la méthode DDSH - 2 64. Le traitement de tels volumes de matériau sans modification de la clé est une priori inacceptable pour tout chiffre de bloc avec une longueur de bloc 64: sur le matériau de 2 32, en tenant compte de l'objet de tâches de naissance (voir, par exemple), près de 1 / 2 Probabilité de blocs répétitifs, qui fourniront la déficience est la capacité de faire sur des textes cryptés certaines des conclusions sur les textes ouverts sans définition clé. La présence de 2,64 paires de textes ouverts et cryptés obtenus sur une veine, permet à l'ennemi d'effectuer des opérations de cryptage et de déchiffrement sans connaître cette clé. Cela est dû à une propriété purement combinatoire: un adversaire dans ce cas présente toute la table de conversion de cryptage. Une telle situation est absolument invalide dans toutes les exigences opérationnelles raisonnables. Par exemple, dans CSP Cryptopro, il existe une restriction technique sur le volume de chiffrement (sans transformation clé) d'un matériau de 4 Mo (voir). Ainsi, une interdiction stricte de l'utilisation de la clé sur le matériau de ce volume est inhérente à tout chiffre à blocs avec une longueur de bloc 64 du bit, et par conséquent, les attaques de la source et les DDS ne sont en aucun cas étroites l'utilisation du gost 28147-89 Algorithme tout en maintenant la durabilité maximale possible 2 256.

Bien entendu, il convient de noter que les chercheurs (Isoba et Dinur-Dankelman-Shamir) ont montré que certaines propriétés de l'algorithme GOST 28147-89 nous permettent de trouver des moyens d'analyse non pris en compte par les créateurs de l'algorithme. Un type simple de calendrier clé, une tâche sensiblement simplificatrice de création de mises en œuvre efficaces, permet également de créer quelques cas rares de clés et de textes ouverts afin de créer des descriptions plus simples des transformations produites par l'algorithme.

Le document démontre que cette propriété négative de l'algorithme peut être facilement éliminée avec la préservation complète des caractéristiques de performance, mais malheureusement, fait malheureusement partie de l'algorithme d'une forme universellement utilisée.

Notez que certaines négligence dans les estimations de l'intensité de la main-d'œuvre moyenne sont également présentes dans les travaux de Dinur, Dankelman et Shamir. Donc, lorsque la construction d'une attaque ne prête pas l'attention du moment suivant: Pour une part importante des clés, de nombreux textes ouverts x, telle que f 8 (x) \u003d x, est vide: les points fixes de 8 tours peuvent simplement être. L'existence de points fixes dépend également de la sélection des nœuds de remplacement. Ainsi, l'attaque ne s'applique qu'avec certains nœuds et clés de remplacement.

Il convient également de mentionner un autre travail avec l'attaque du GOST 28147-89. En février 2012, une version mise à jour de l'article (à partir de novembre 2011) est apparue sur l'archive électronique EPRINT de l'Association cryptographique internationale, qui contenait une nouvelle attaque chez GOST 28147-89. Les caractéristiques de l'attaque présentée sont les suivantes: le volume de matériau est 2 32 (comme dans isob) et la complexité - 2 192 (comme DDSH). Ainsi, cette attaque a amélioré une attaque DSH à temps record en termes de matériau de 2 64 à 2 32. Notez séparément que les auteurs ont dirigé honnêtement tous les calculs avec la justification de la complexité et du volume de matériau. Après 9 mois, une erreur fondamentale a été trouvée dans les calculs ci-dessus et depuis novembre 2012, la version mise à jour de l'article dans l'archive électronique ne contient plus de résultats concernant l'algorithme national.

Les attaques suggèrent que le violateur connaît "quelque chose" sur les clés

Nous remarquerons à nouveau qu'il existe également des travaux dans la littérature (voir, par exemple, et) sur les attaques de GOST 28147-89 dans le dossier de modèle avec des clés connectées. Ce modèle est basé sur l'hypothèse de la possibilité d'un violateur d'accéder à l'analyse non seulement pour les paires ouvertes et cryptées à l'aide du texte de la clé souhaité, mais également des paires de textes ouverts et cryptés obtenus à l'aide de touches (également inconnues) différentes de la valeur souhaitée. Collecteur régulier connu (par exemple, dans des positions de bits fixes). Ce modèle réussit vraiment à obtenir des résultats intéressants sur GOST 28147-89, cependant, dans ce modèle, aucun résultat moins solide ne peut être reçu, par exemple, l'utilisation la plus répandue de la norme AES dans les réseaux modernes (voir, par exemple). Notez que les conditions de conduite de telles attaques se produisent lors de l'utilisation de Cipher dans un protocole. Il convient de noter que les résultats de ce type, bien que l'intérêt académique incontournable pour l'étude des propriétés des transformations cryptographiques, mais ne sont pas liés à la pratique. Par exemple, tous les moyens de protection des informations cryptographiques CERTIFIÉS de Russie de Russie effectuent des exigences les plus strictes pour les systèmes de génération de clé de cryptage (voir, par exemple). Comme indiqué dans les résultats de l'analyse effectué en présence de 18 clés connexes et 2 10 paires de blocs de texte ouverts et cryptés, l'intensité de la main-d'œuvre de l'ouverture complète de la clé fermée, avec la probabilité de succès 1-10 -4 , est en effet 2 26. Toutefois, sous réserve des exigences susmentionnées pour le développement de la matière clé, la probabilité de détecter de telles clés est de 2 -4352, soit 2 4096 fois moins que si vous essayez simplement de deviner la clé secrète de la première tentative.

Les travaux liés au modèle avec les clés connectées incluent également le travail qui, en 2010, beaucoup de bruit dans les éditions électroniques russes, qui ne souffrent pas d'habitude, vérifiez soigneusement le matériel pendant la course aux sensations. Les résultats présentés en elle n'ont été appuyés par une sorte de justification stricte, mais contenaient des déclarations fortes sur la possibilité de pirater la norme d'État de la Fédération de Russie sur un ordinateur portable faible en secondes - en général, l'article a été écrit dans les meilleures traditions de Nicolas Courtois. Mais, malgré tout ce qui est tout à fait évident, familier avec les principes de base de la portée des publications au lecteur, le fond de l'article, c'était pour la rassuration du public russe après que le travail de Rudsky ait été écrit un texte détaillé et complet. contenant une analyse complète de ces défauts. Dans l'article avec le nom du locuteur "sur la signification zéro pratique de l'œuvre" Attaque de récupération de clé "sur le chiffre de blocage de GOST complet avec du temps et de la mémoire zéro", il est basé que la complexité moyenne de la méthode donnée dans une méthode n'est pas inférieure à la complexité de l'extinction complète.

Résidu sec: quelle est la persistance dans la pratique?

En conclusion, nous donnons une table contenant des données sur tous les résultats de la célèbre communauté cryptographique internationale, les résultats des attaques strictement décrites et raisonnables sur GOST 28147-89. Il convient de noter que la complexité est donnée dans les opérations du cryptage de l'algorithme GOST 28147-89, et la mémoire et le matériau sont indiqués dans les blocs de l'algorithme (64 bits \u003d 8 octets).

Attaque Intensité du travail Mémoire Matériau requis
Isoba 2 224 2 64 2 32
Dinur-Dankelman-Shamir, FP, 2DMITM 2 192 2 36 2 64
Dinur-Dankelman-Shamir, FP, Mémoire basse 2 204 2 19 2 64
2 224 2 36 2 32
Dinur-Dankelman-Shamir, Réflexion, 2DMITM 2 236 2 19 2 32
Buste 2 256 1 4
Nombre de nanosecondes avec l'émergence de l'univers 2 89

Malgré un cycle de recherche assez important dans la résistance de l'algorithme GOST 28147-89, à l'heure actuelle, pas une seule attaque, les conditions de la mise en œuvre seraient réalisables avec la durée associée du bloc dans 64 bits d'exigences opérationnelles . Cellation des paramètres de chiffrement (longueur du bit de la clé, longueur de bits) Les limitations du volume de matériau, qui peut être traitée sur une seule clé, est essentiellement strictement plus stricte que le volume minimum, nécessaire pour l'une des attaques actuellement connues à le moment. Par conséquent, lors de la réalisation des exigences opérationnelles existantes, aucune des GOST 28147-89 cryptanasalia n'a proposé à ce jour ne permet pas la clé de déterminer la complexité de la force brute moins complète.

Algorithme de cryptage GOST 28147-89, son utilisation et sa mise en œuvre du logiciel pour les ordinateurs de plate-forme Intel X86.


Andrei Vinokurov

Description de l'algorithme.

Termes et désignations.

La description de la norme de cryptage de la Fédération de Russie est contenue dans un document très intéressant intitulé «Algorithme de la transformation cryptographique du GOST 28147-89». Le fait que dans son titre au lieu du terme "cryptage" apparaisse plus de concept général " transformation cryptographique "N'est pas du tout par hasard. Outre plusieurs procédures de cryptage étroitement liées, le document décrit l'un construit sur les principes généraux avec eux pour développer des algorithmes. imitovka . Ce dernier n'est rien de plus qu'une combinaison de contrôle cryptographique, c'est-à-dire que le code généré à partir des données source à l'aide de la clé secrète de imitovashchie ou la protection des données contre les modifications non autorisées.

À différentes étapes des algorithmes Gost, les données qu'ils utilisent sont interprétées et sont utilisées de différentes manières. Dans certains cas, les éléments de données sont traités en tant que réseaux de bits indépendants, dans d'autres cas - en tant qu'intéger sans signe, en troisième, comme ayant un élément complexe de structure constitué de plusieurs éléments plus simples. Par conséquent, afin d'éviter toute confusion, un accord devrait être convenu.

Les éléments de données dans cet article sont indiqués par des lettres latines capitales avec un dessin incliné (par exemple, X.). À travers | X.| désigne la taille de l'élément de données X. dans les bits. Ainsi, si vous interprétez l'élément de données X.en tant que nombre non négatif, vous pouvez enregistrer l'inégalité suivante :.

Si l'élément de données consiste en plusieurs éléments plus petits, ce fait est indiqué comme suit: X.=(X. 0 ,X. 1 ,…,X N. –1)=X. 0 ||X. 1 ||…||X N. -une . La procédure de combinaison de plusieurs éléments de données à l'une est appelée concaté données et dénote le symbole "||". Naturellement, le ratio suivant doit être effectué pour les tailles d'éléments de données: | X.|=|X. 0 |+|X. 1 |+…+|X N. -1 | Lors de la spécification des éléments de données complexes et des opérations de concaténation, les composants des éléments de données sont répertoriés dans l'ordre croissant de l'ancienneté. En d'autres termes, si vous interprétez l'élément composite et tous les éléments de données inclus dans les entiers sans signe, vous pouvez enregistrer l'égalité suivante:

Dans l'algorithme, l'élément de données peut être interprété comme une matrice de bits individuels, dans ce cas, les bits indiquent la même lettre qu'un tableau, mais dans les minuscules, comme indiqué dans l'exemple suivant:

X.=(x. 0 ,x. 1 ,…,x N. –1)=x. 0 +2 1 · x. 1 +…+2 n.-une · x N. –1 .

Ainsi, si vous avez fait attention au GOST a adopté le soi-disant. Numérotation «Little-Endian» de décharges, c'est-à-dire À l'intérieur des mots à plusieurs chiffres de ceux-ci, les décharges binaires individuels et leurs groupes avec des nombres plus petits sont moins importants. Ceci est mentionné au paragraphe 1.3 de la norme: "Lors de l'addition et du déplacement cyclique de vecteurs binaires avec des décharges plus anciens, des rejets de lecteurs avec de grands nombres sont considérés." En outre, les éléments de standard 1.4, 2.1.1 et d'autres d'autres prescrivent pour commencer à remplir les registres de registre de stockage d'un dispositif de cryptage virtuel avec Younger, c'est-à-dire Des décharges moins importantes. Exactement la même procédure de numérotation est acceptée dans l'architecture des microprocesseurs d'Intel X86, c'est pourquoi, avec la mise en œuvre du logiciel du chiffre sur cette architecture, il n'existe aucune permutation supplémentaire de rejets dans les données Word.

Si une certaine opération qui a une signification logique est effectuée au-dessus des éléments de données, il est supposé que cette opération est effectuée au-dessus des bits correspondants des éléments. Autrement dit UNE. B.=(uNE. 0 b. 0 ,uNE. 1 b. 1 ,…,uN. –1 b N. -1) Où n.=|UNE.|=|B.|, et le symbole "" est noté par une opération logique binaire arbitraire; En règle générale, fait référence à l'opération excluant ou C'est aussi une opération de sommation 2:

La logique de la construction de chiffre et de la structure des informations clés du GOST.

Si vous examinez soigneusement le GOST 28147-89 d'origine, il est à noter qu'il contient une description des algorithmes de plusieurs niveaux. En haut du haut, il existe des algorithmes pratiques conçus pour chiffrer des tableaux de données et développer l'imitava pour eux. Tous reposent sur les trois algorithmes de bas niveau, appelés texte gost. cycles . Ces algorithmes fondamentaux sont mentionnés dans cet article comme cycles de base Pour les distinguer de tous les autres cycles. Ils ont les noms et désignations suivants, ces derniers sont entre crochets et la signification sera expliquée plus tard:

  • cryptage de cycle (32-S);
  • cycle de décryptage (32-P);
  • le cycle de développement de l'imitabilité (16-S).

À son tour, chacun des cycles de base est une répétition multiple d'une seule procédure appelée certitude plus loin dans le travail actuel. la principale étape de cryptocrémie .

Donc, pour comprendre l'invité, vous devez comprendre les choses suivantes:

  • quelle l'étape principale formation de cryptopéra;
  • comme les étapes de base sont les cycles de base;
  • comme trois cycles de base tous les algorithmes Gost pratiques sont consignés.

Avant de procéder à l'étude de ces problèmes, vous devez parler d'informations clés utilisées par les algorithmes Gost. Conformément au principe de Kirchhoff, qui est satisfait de tous les chiffres sociaux bien connus modernes, c'est son secret qui fournit le secret du message crypté. En invité, les informations clés sont composées de deux structures de données. En plus de réellement clé nécessaire pour tous les chiffres, il contient également remplacement de la table . Vous trouverez ci-dessous les principales caractéristiques des structures clés du GTST.

La principale étape de cryptocrémie.

L'étape principale de la cryptocrémie est intrinsèquement l'opérateur déterminant la conversion d'un bloc de données 64 bits. Un paramètre supplémentaire de cet opérateur est une unité 32 bits, utilisée par n'importe quel élément clé. Le schéma de l'algorithme d'étape principale est illustré à la figure 1.


Figure 1. Schéma de l'étape principale de l'algorithme de formation de cryptopéra GOST 28147-89.

Vous trouverez ci-dessous l'algorithme de l'étape principale:

Étape 0.

  • N. - Le bloc de données de 64 bits transformé, lors de l'exécution de l'étape de son plus jeune ( N. 1) et l'aîné ( N. 2) Les pièces sont traitées comme des entiers de 32 bits séparés sans signe. Afin que vous puissiez enregistrer N \u003d(N. 1 ,N. 2).
  • X. - élément clé 32 bits;

Étape 1

Achèvement avec la clé. La plus jeune moitié du bloc converti est pliée par le module 2 32 avec l'élément clé utilisé à l'étape, le résultat est transmis à l'étape suivante;

Étape 2.

Remplacement du patch. La valeur 32 bits obtenue à l'étape précédente est interprétée comme une matrice de huit blocs de code 4 bits: S \u003d.(S. 0 , S. 1 , S. 2 , S. 3 , S. 4 , S. 5 , S. 6 , S. 7), et S. 0 contient 4 des plus jeunes, et S. 7 - 4 bits les plus élevés S..

Ensuite, la valeur de chacun des huit blocs est remplacée par le nouveau, qui est sélectionnée par la table des remplacements comme suit: valeur de blocage S I.changer S I.- Article de commande (numérotation à partir de zéro) jE.Le nœud de remplacement (c'est-à-dire jE.- La ligne de la table de remplacement, la numérotation de zéro). En d'autres termes, il est sélectionné comme remplacement de la valeur de bloc de l'unité à partir de la ligne de numéro de remplacement, égal au numéro du bloc remplacé et le numéro de colonne égal à la valeur du bloc étant remplacé sous forme de 4 -bit nombre ineger non négatif. D'ici, il devient clair la taille de la table de remplacement: le nombre de lignes dedans est égal au nombre d'éléments de 4 bits dans un bloc de données de 32 bits, c'est-à-dire huit et le nombre de colonnes est égal à la Nombre de valeurs différentes du bloc de données à 4 bits égal à 2 4, seize.

Étape 3.

Changement cyclique de 11 bits à gauche. Le résultat de l'étape précédente est décalé de manière cyclique de 11 bits dans la direction des décharges de niveau de haut niveau et est transmis à l'étape suivante. Le diagramme du symbole d'algorithme indique la fonction du décalage cyclique de son argument de 11 bits à gauche, c'est-à-dire dans la direction des décharges seniors.

Étape 4.

Addition en bouteille: la valeur obtenue à l'étape 3 est bloquée par module 2 avec une moitié senior de l'unité convertie.

Étape 5.

Maillature de chaîne: la partie la plus jeune du bloc converti est décalée sur la place de l'aîné et le résultat de l'étape précédente est placé à sa place.

Étape 6.

La valeur obtenue du bloc transformé est renvoyée à la suite de la mise en œuvre de l'algorithme de l'étape principale de la cryptocrémie.

Cycles de transformation cryptographiques de base.

Comme indiqué au début de cet article, GOST fait référence à la classe de chiffres à blocs, c'est-à-dire que l'unité de traitement de l'information est un bloc de données. Par conséquent, il est assez logique de s'attendre à ce que des algorithmes de transformation cryptographique soient définis, c'est-à-dire pour chiffrer, déchiffrer et "comptabilité" dans la combinaison de contrôle d'un bloc de données. Ces algorithmes sont appelés cycles de base GOST, qui met l'accent sur leur importance fondamentale pour construire ce chiffre.

Les cycles de base sont construits à partir de Étapes de base transformation cryptographique considérée dans la section précédente. Dans le processus d'exécution de l'étape principale, un seul élément clé 32 bits est utilisé, tandis que la clé GOST contient huit éléments de ce type. Par conséquent, que la clé est complètement utilisée, chacun des cycles de base doit effectuer à plusieurs reprises l'étape principale avec différents éléments. Dans le même temps, il semble tout à fait naturel que, dans chaque cycle de base, tous les éléments clés doivent être utilisés le même nombre de fois, pour des considérations de la résistance de chiffrement, ce nombre doit être supérieur à un.

Toutes les hypothèses ci-dessus, s'appuyant juste pour le bon sens, étaient vraies. Les cycles de base sont conclus en plusieurs exécutions. Étape principale en utilisant différents éléments de clé et diffèrent les uns des autres uniquement par le nombre de répétitions de pas et de l'ordre d'utilisation des éléments clés. Vous trouverez ci-dessous cet ordre pour différents cycles.

Cryptage de cycle 32-S:

K. 0 ,K. 1 ,K. 2 ,K. 3 ,K. 4 ,K. 5 ,K. 6 ,K. 7 ,K. 0 ,K. 1 ,K. 2 ,K. 3 ,K. 4 ,K. 5 ,K. 6 ,K. 7 ,K. 0 ,K. 1 ,K. 2 ,K. 3 ,K. 4 ,K. 5 ,K. 6 ,K. 7 ,K. 7 ,K. 6 ,K. 5 ,K. 4 ,K. 3 ,K. 2 ,K. 1 ,K. 0 .


Figure 2a. Circuit de cycle 32-S

Cycle de déchiffrement 32-P:

K. 0 ,K. 1 ,K. 2 ,K. 3 ,K. 4 ,K. 5 ,K. 6 ,K. 7 ,K. 7 ,K. 6 ,K. 5 ,K. 4 ,K. 3 ,K. 2 ,K. 1 ,K. 0 ,K. 7 ,K. 6 ,K. 5 ,K. 4 ,K. 3 ,K. 2 ,K. 1 ,K. 0 ,K. 7 ,K. 6 ,K. 5 ,K. 4 ,K. 3 ,K. 2 ,K. 1 ,K. 0 .


Figure 2b. Décryptage du cycle de diagramme 32-P

Le cycle de développement de l'imitance de 16 s:

K. 0 ,K. 1 ,K. 2 ,K. 3 ,K. 4 ,K. 5 ,K. 6 ,K. 7 ,K. 0 ,K. 1 ,K. 2 ,K. 3 ,K. 4 ,K. 5 ,K. 6 ,K. 7 .


Figure 2b. Le schéma du cycle de développement de l'imitionnisme de 16 s.

Chacun des cycles a sa propre désignation alphanumérique correspondant au modèle " n-x "où le premier élément de désignation ( n.), définit le nombre de répétitions de l'étape principale du cycle et le deuxième élément de la désignation ( X.), Lettre, définit l'ordre du cryptage ("s") ou de déchiffrement ("P") pour utiliser des éléments clés. Cet ordre a besoin d'une explication supplémentaire:

Le cycle de déchiffrement doit être un cycle de cryptage inverse, c'est-à-dire que l'utilisation séquentielle de ces deux cycles à un bloc arbitraire doit être à la suite du bloc initial, qui est reflété dans le ratio suivant: C. 32-P ( C. 32-S ( T.))\u003d T.T.- bloc de données arbitraire de 64 bits, C. X ( T.) - le résultat de l'exécution du cycle X. au-dessus du bloc de données T.. Pour effectuer cette condition pour les algorithmes similaires à GOST, il est nécessaire que la commande utilise des éléments clés par les cycles correspondants s'inverse mutuellement. Dans la justice de la condition enregistrée pour le cas considéré, il est facile de garantir la comparaison des séquences ci-dessus pour les cycles de 32-S et 32-P. Une conséquence intéressante implique de ce qui précède: la propriété de cycle d'être un autre cycle inverse est mutuelle, c'est-à-dire que le cycle 32-S est inversé par rapport au cycle 32-p. En d'autres termes, le cryptage du bloc de données peut être effectué théoriquement à l'aide du cycle de déchiffrement, dans ce cas, le déchiffrement du bloc de données doit être effectué par le cycle de cryptage. Parmi les deux cycles inverse mutuellement, tout le monde peut être utilisé pour chiffrer, puis la seconde doit être utilisée pour déchiffrer les données, mais la norme GOST28147-89 fixe les rôles derrière les cycles et ne fournit pas l'utilisateur le droit de choisir dans cette affaire. .

Le cycle de développement de l'imitavar est deux fois les cycles de cryptage, l'ordre d'utilisation des éléments clés de celui-ci est le même que dans les 16 premières étapes du cycle de cryptage, qui n'est pas difficile à vérifier, en tenant compte des séquences ci-dessus, de sorte que cette commande dans La désignation du cycle est codée par la même lettre "s".

Les régimes de cycles de base sont illustrés sur les figures 2a-b. Chacun d'entre eux accepte comme un argument et renvoie un bloc de données de 64 bits en conséquence, indiqué dans les diagrammes. N.. Étape de symbole ( N.,X.) Indique l'exécution de l'étape principale de la formation de cryptopéra pour le bloc de données N. en utilisant un élément clé X.. Il existe une différence de plus entre le cryptage et le calcul des cycles, qui n'est pas mentionnée ci-dessus: à la fin des cycles de cryptage de base, les plus âgées et la plus jeune partie du bloc de résultat changent de place, il est nécessaire pour leur réversibilité mutuelle.

Les principaux modes de cryptage.

GOST 28147-89 fournit trois modes de cryptage de données suivants:

  • remplacement simple
  • gammer
  • gammer des commentaires,

et un autre mode de production d'imitabilité.

Dans l'un de ces modes, les données sont traitées par des blocs de 64 bits, qui sont divisés par un tableau soumis à une transformation cryptographique, raison pour laquelle GTOSt fait référence à des chiffres de blocage. Toutefois, dans deux modes de gymmation, il est possible de traiter un bloc de taille de données incomplète inférieur à 8 octets, ce qui est essentiel lors du cryptage des tableaux de données avec une taille arbitraire, qui peut ne pas être multiples de 8 octets.

Avant de procéder à la prise en compte de l'algorithme de transformation cryptographique spécifique, il est nécessaire d'expliquer les désignations utilisées dans les diagrammes dans les sections suivantes:

T. à propos de, T. W - des tableaux de données respectivement ouvertes et cryptées;

, – jE.Pour des blocs de 64 bits de données respectivement ouvertes et cryptées: , , le dernier bloc peut être incomplet:;

n. - le nombre de blocs de 64 bits dans la matrice de données;

C. X est la fonction de convertir un bloc de données 64 bits pour l'algorithme du cycle de base "x".

Maintenant, nous décrivons les principaux modes de cryptage:

Remplacement simple.

Le cryptage dans ce mode consiste à utiliser le cycle 32-S sur les blocs de données ouverts, le décryptage - le cycle de 32-P à des blocs de données cryptées. Ceci est le plus facile des modes, les blocs de données 64 bits sont traités de manière indépendante les uns des autres. Les régimes d'algorithmes de cryptage et de déchiffrement en mode de remplacement simple sont indiqués dans les figures 3A et B, respectivement, elles sont triviales et n'ont pas besoin de commentaires.


Photo. 3a. Algorithme pour le cryptage de données en mode de remplacement simple


Photo. 3b. Algorithme de décryptage de données en mode de remplacement simple

La taille d'une gamme de données ouvertes ou cryptées soumises à un cryptage respectivement ou de déchiffrement doit être Kattten 64 bits: | T. À propos de | \u003d | T. w | \u003d 64 · n. Après avoir effectué l'opération, la taille de la matrice de données résultante ne change pas.

Le mode de cryptage est simple remplacement comporte les fonctions suivantes:

  • Étant donné que les blocs de données sont cryptés indépendamment les uns des autres et de leur position dans la matrice de données, lorsque les deux blocs de texte ouverts identiques sont cryptés, les mêmes blocs de ciphertext sont obtenus et inversement. La propriété marquée permettra à Cryptoanalitics de conclure une conclusion sur l'identité des blocs de données source, si dans un tableau de données cryptées, il a été rempli de blocs identiques, qui n'est pas valide pour un chiffre grave.
  • Si la longueur de la matrice de données cryptée n'est pas multiple 8 octets ou 64 bits, le problème se produit que et comment compléter le dernier bloc de données incomplet de la matrice aux 64 bits complètes. Cette tâche n'est pas si simple, car il semble au premier abord. Des solutions évidentes comme "Ajouter un bloc incomplète par zéro Bits" ou, plus généralement, "ajouter un bloc incomplète d'une combinaison fixe de bits zéro et unité" peut être indiqué entre les mains de la cryptanique la possibilité de méthodes interactives pour déterminer le contenu de Ce bloc incomplet, et ce fait signifie un chiffre de résistance réduit. De plus, la longueur du ciphertext changera, ayant augmenté jusqu'au tout près, plusieurs 64 bits, qui est souvent indésirable.

À première vue, les fonctionnalités ci-dessus rendent presque impossible l'utilisation d'un mode de remplacement simple, car il ne peut être utilisé que pour chiffrer des tableaux de données avec une taille de plusieurs 64 bits qui ne contiennent pas de blocs de 64 bits en double. Il semble que pour toute donnée réelle, il est impossible d'assurer l'exécution de ces conditions. C'est presque le cas, mais il y a une exception très importante: rappelez-vous que la taille de la clé est de 32 octets et la taille de la table de remplacement est de 64 octets. En outre, la présence de blocs de 8 octets répétés dans la clé ou la table de remplacement parlera de leur très mauvaise qualité, il ne peut donc pas y avoir de ce type de répétition dans des éléments clés réels. Ainsi, nous avons découvert que le mode de remplacement simple convient parfaitement aux informations clés de cryptage, d'autant plus que d'autres modes à cet effet sont moins pratiques, car ils nécessitent un élément de données de synchronisation supplémentaire - Synchroopters (voir la section suivante). Notre hypothèse est vraie, GOST prescrit en utilisant un simple mode de remplacement uniquement pour chiffrer les données de clé.

Haming.

Comment pouvez-vous vous débarrasser des lacunes d'un simple mode de remplacement? Pour ce faire, il est nécessaire de permettre de chiffrer des blocs d'une taille inférieure à 64 bits et d'assurer la dépendance du bloc CIPHERText de son nombre, en d'autres termes, randomiser processus de cryptage. En invité, cela est atteint de deux manières différentes de deux modes de cryptage impliquant hardinage . Hardinage - Il s'agit d'une superposition (enlèvement) à ouvrir (chiffré) des données de la gamme cryptographique, c'est-à-dire les séquences d'éléments de données produites à l'aide d'un algorithme cryptographique donné pour obtenir des données cryptées (ouvertes). Pour superposer le gamma lors du cryptage et de la retirant, les opérations binaires inversées mutuellement doivent être utilisées, par exemple, addition et soustraction du module 2 64 pour les blocs de données 64 bits. Dans cette intestation, à cette fin, le fonctionnement de l'ajout battu du module 2 est utilisé, car il s'agit de l'arrière de lui-même et, de plus, le plus simplement mis en œuvre par le matériel. Hamming résout les deux problèmes mentionnés: Tout d'abord, tous les éléments de la gamma sont différents pour de vrais résidues cryptées et, par conséquent, le résultat du cryptage même deux blocs identiques dans une seule gamme de données seront différents. Deuxièmement, bien que les éléments de la gamma et sont produits par les mêmes parties de 64 bits, une partie d'un tel bloc avec une taille égale à la taille du bloc crypté peut être utilisée.

Nous nous tournons maintenant directement vers la description de la gamme de gamming. Gamma pour ce mode est obtenu comme suit: avec un certain générateur récurrent algorithmique de la séquence de nombres (RGPH), des blocs de données 64 bits sont produits, qui sont encore convertis par un cycle de 32-S, c'est-à-dire un cryptage dans une Mode de remplacement simple, le résultat des blocs gamma est obtenu. En raison du fait que l'imposition et l'élimination de la gamma sont effectuées en utilisant la même opération exclusive battue ou, les algorithmes de cryptage et de déchiffrement dans le mode Imaging Gamm sont identiques, leur schéma général est illustré à la figure 4.

RGPH utilisé pour générer un gamma est une fonction récurrente: - éléments de la séquence récurrente, f. - Fonction de conversion. Par conséquent, la question de son initialisation se pose inévitablement, c'est-à-dire à propos de l'élément en réalité, cet élément de données est le paramètre de l'algorithme de modes d'gamming, dans les diagrammes qu'il est indiqué comme étant S.et appelé cryptographie syncopusil , et dans notre invité - remplissage primaire l'un des registres de cryères. Pour certaines raisons, les développeurs GOST ont décidé d'utiliser le RGPH pour initialiser non directement synchroniser, mais le résultat de sa conversion le long du cycle 32-S: . La séquence d'éléments produits par le RGPH dépend entièrement de son remplissage initial, c'est-à-dire que les éléments de cette séquence sont la fonction de son nombre et le remplissage initial de la RGPH: où fI.(X.)=f.(fI. –1 (X.)), f. 0 (X.)=X.. Compte tenu de la transformation en fonction de l'algorithme de remplacement simple, la dépendance de la clé est ajoutée:

G i.jE.un élément gamma, K. - Clé.

Ainsi, la séquence d'éléments gamma pour une utilisation en mode de gammation est déterminée de manière unique par des données clés et syncopusca. Naturellement, un et même syncopower doivent être utilisés pour des procédures de cryptage réversibles dans les processus et le déchiffrement. À partir de l'exigence du caractère unique de la gamma, le non-respect de ce qui entraîne une diminution catastrophique de la résistance des chiffres, il s'ensuit que pour chiffrer deux réseaux de données différentes dans une seule clé, il est nécessaire de garantir l'utilisation de divers synchronisations synchronisées. Cela conduit à la nécessité de stocker ou de transmettre Syncopower via des canaux de communication ainsi que des données cryptées, bien que dans certains cas particuliers, il peut être prédéterminé ou calculé de manière particulière si le cryptage de deux tableaux est exclu sur une veine.

Envisagez maintenant que le RGPH en détail utilisé dans l'invité pour générer des éléments de la gamma. Tout d'abord, il convient de noter qu'il n'implique pas les exigences d'assurer des caractéristiques statistiques de la séquence produite par la séquence. RGPH est conçu par les développeurs GOST basés sur la nécessité de remplir les conditions suivantes:

  • la période de répétition de la séquence des nombres générés par le RGPH ne doit pas être fortement (en pourcentage de termes) diffère de la valeur maximale possible de la valeur de 2 64 comme spécifié
  • les valeurs voisines produites par RGPH doivent différer les unes des autres dans chaque pate, sinon la tâche CripTanalytics sera simplifiée;
  • La RGPH doit simplement être tout à fait implémentée à la fois du matériel et des logiciels sur les types de processeurs les plus courants, dont la plupart sont connus pour avoir un bit de 32 bits.

Sur la base des principes énumérés, les créateurs de Gost ont conçu un RGPH très réussi, qui présente les caractéristiques suivantes:

C. 0 =1010101 16 ;

C. 1 =1010104 16 ;

L'indice inférieur du nombre de nombres signifie son système de numéro, de sorte que les constantes utilisées à cette étape sont enregistrées dans un système de 16 riches.

La deuxième expression nécessite des commentaires, comme dans le texte du gost, quelque chose d'autre est donné: avec la même valeur de la constante C. une . Mais plus loin dans le texte de la norme reçoit un commentaire, qui s'avère sous l'exploitation du reste du module 2 32 -1 Il est compris pas le même que dans les mathématiques. La différence est que selon GOST (2 32 -1) mod.(2 32 -1) \u003d (2 32 -1), et non 0. En fait, il simplifie la mise en œuvre de la formule et une expression correcte mathématiquement pour elle est donnée ci-dessus.

  • la période de séquence répétée de la partie plus jeune est 2 32, pour la partie la plus ancienne 2 32 -1, pour la séquence entière, la période est de 2 32 (2 32 -1), la preuve de ce fait est assez simple, obtenez-vous. La première formule de deux est mise en œuvre pour une équipe, la seconde, malgré son apparence semblant volumineuse, pour deux commandes sur tous les processeurs modernes 32 bits - la première commande est l'ajout habituel de module 2 32 avec la mémorisation du bit de transfert et La deuxième commande ajoute le bit de transfert à la valeur résultante.

Le schéma de l'algorithme de cryptage en mode de gammation est illustré à la figure 4 ci-dessous, ci-dessous est expliqué au schéma:


Figure 4. Algorithme de cryptage (décryptage) des données dans la gamme de dommages.

Étape 0.

Définit les données source de la principale étape de cryptocrémie:

  • T. o (w) - une gamme de données arbitraires ouvertes (chiffrées), soumises à la procédure de cryptage (déchiffrement), au cours de la procédure, la matrice est soumise à une conversion de 64 bits en portions;
  • S. syncopyushka , Élément de données 64 bits requis pour initialiser le générateur gamma;

Étape 1

La transformation initiale des syncopies effectuée pour sa "randomisation", c'est-à-dire pour éliminer les schémas statistiques présents, le résultat est utilisé comme remplissage initial de la RGPH;

Étape 2.

Une étape du travail de RGPH, mettant en œuvre son algorithme récurrent. Pendant cette étape, l'aîné ( S. 1) et le plus jeune ( S. 0) Les parties de la séquence de données sont produites indépendamment les unes des autres;

Étape 3.

Haming. Le prochain élément de 64 bits développé par le RGPH est exposé à la procédure de cryptage sur le cycle 32-S, le résultat est utilisé comme élément gamma pour le cryptage (décryptage) du bloc suivant de données ouvertes (chiffrées) de la même taille. .

Étape 4.

Le résultat du fonctionnement de l'algorithme est un tableau de données crypté (déchiffré).

Voici les caractéristiques de la gamming en tant que mode de cryptage:

  1. Les mêmes blocs dans la gamme ouverte de données seront donnés lors de la cryptage divers blocs de chiffrement, ce qui permettra de cacher le fait de leur identité.
  2. Étant donné que la superposition gamma est traitée, le cryptage du bloc incomplet des données est facile à faire en tant que cryptage des bits de ce bloc incomplet, pour lequel les bits correspondants du bloc gamma sont utilisés. Ainsi, pour chiffrer un bloc incomplet en 1 bit en fonction de la norme, vous devez utiliser le bit le plus jeune du bloc gamma.
  3. Syncocrust, utilisé lorsque crypté, doit être transmis pour une utilisation lors de la décodage. Cela peut être atteint de la manière suivante:
  • stocker ou transmettre Syncopoplyer avec un tableau de données crypté, ce qui entraînera une augmentation de la taille de la matrice de données lorsqu'il est crypté sur la taille des syncopionnaires, soit 8 octets;
  • utilisez la valeur de synchronisation prédéfinie ou pour la produire de manière synchrone avec une source et un récepteur sur une loi spécifique, dans ce cas, il n'y a pas de changement de taille de la matrice de données transmise ou stockée;

Les deux méthodes se complètent, et dans ces rares cas où le premier ne fonctionne pas, le second, plus exotique peut être utilisé. La deuxième méthode a beaucoup moins d'application, car il est possible de faire un synchronisation un synchronisation prédéterminé dans le cas où cet ensemble d'informations clés est crypté avec une éventuelle réseau de données, ce qui n'est pas si souvent. Générez la synchronisation de manière synchrone à la source et le destinataire de la matrice de données n'est pas toujours possible, car elle nécessite une liaison difficile à rien dans le système. Ainsi, forçant à première vue, l'idée est utilisée comme une synchronisation-goutte -lage dans le système de transmission de messages cryptés Le nombre de messages transmis n'est pas approprié, car le message peut être perdu et n'atteint plus le destinataire, dans ce cas Il y aura une donnée sur les systèmes de cryptage source et récepteur. Par conséquent, dans le cas considéré, il n'ya aucune alternative à la transmission des syntacques avec un message crypté.

D'autre part, vous pouvez également donner un exemple inverse. Supposons que le cryptage des données soit utilisé pour protéger les informations sur le disque et mise en œuvre à un niveau bas, pour assurer un accès indépendant, les données sont cryptées par les secteurs. Dans ce cas, il est impossible de stocker la poudre de synchronisation avec des données cryptées, car la taille du secteur ne peut pas être modifiée, mais elle peut être calculée comme une fonction du nombre de la tête de disque, des numéros de piste (cylindre) et des numéros de secteur sur la piste. Dans ce cas, le syncopier est attaché à la position du secteur sur le disque, ce qui peut difficilement changer sans reformater le disque, c'est-à-dire sans détruire les données à ce sujet.

Le mode Hamming a une autre caractéristique intéressante. Dans ce mode, les bits de réseau de données sont cryptés indépendamment l'un de l'autre. Ainsi, chaque morceau de ciIphertext dépend du bit de texte ouvert correspondant et, bien entendu, le numéro de séquence du bit dans la matrice: . Cela implique que la modification du bit du ciphertext sur la valeur opposée entraînera une modification similaire du bit de texte ouvert à l'opposé:

où indique inversé par rapport à t. Valeur de bits ().

Cette propriété donne une attaquante la possibilité d'affecter les bits du CIPHERText de faire des modifications prévisibles et même ciblées sur le texte ouvert correspondant, obtenu après le décryptage informatique, sans avoir une clé secrète. Cela illustre bien connu dans la cryptologie sétéraité et authenticité Essence Diverses propriétés systèmes cryptographiques . En d'autres termes, les propriétés du cryptosystème fournissent une protection contre la familiarisation non autorisée avec le contenu du message et des modifications non autorisées au message sont indépendantes et que dans certains cas ne pouvant se croiser. Cela signifie qu'il existe des algorithmes cryptographiques qui assurent un certain secret des données cryptées et ne protègent pas contre les modifications et inversement, offrant une authenticité des données et ne limitant aucun moyen la possibilité de familiarisation avec eux. Pour cette raison, la propriété en question, les propriétés de la gamme de gamming ne doivent pas être considérées comme son inconvénient.

Rétroaction en gamming.

Ce mode est très similaire à la gamme de gammation et diffère de celui-ci uniquement par le procédé de production d'éléments gamma - l'élément suivant de la gamma est produit à la suite de la conversion sur le cycle du bloc précédent de données cryptées, et à Cryptez le premier bloc de l'unité de réseau de données, l'élément gamma est généré à la suite de la conversion sur le même cycle synchopian. Cela implique l'engagement des blocs - chaque bloc de CIPHertext dans ce mode dépend des blocs correspondants et de tous les blocs de texte ouvert. Par conséquent, ce mode est parfois appelé gamming avec des blocs d'engagement . Sur la durabilité des chiffres, le fait de l'engagement des blocs n'a aucune influence.

Le diagramme des algorithmes pour et de déchiffrer dans la plage de rétroaction est illustré à la figure 5 et en raison de sa simplicité dans les commentaires n'a pas besoin.


Figure 5. Algorithme de cryptage (décryptage) des données dans un mode de rétroaction de gamming.

Le cryptage en mode de gammure de retour a les mêmes caractéristiques que le cryptage dans la plage normale, à l'exception de l'effet des distorsions de CIPHERText au texte ouvert correspondant. Pour comparer, écrivez les fonctions de déchiffrement des blocs pour les deux modes mentionnés:

Hamming;

Marquage de retour;

Si dans la plage normale des changements de certains morceaux de CIPHERTEXT n'affecte que les bits correspondants du texte ouvert, alors dans le mode de gamming avec rétroaction, l'image est un peu plus compliquée. Comme on peut le voir à partir de l'équation correspondante, lors de la décodage du bloc de données en mode gammage de retour, l'unité de données ouverte dépend des blocs correspondants et antérieurs de données cryptées. Par conséquent, si vous faites des distorsions dans un bloc crypté, alors après le décryptage, deux blocs de données ouverts seront déformés - le correspondant et le prochec autrement sera, et la distorsion dans le premier cas sera le même caractère que dans le mode de gamming et dans le second cas - comme dans le mode simple remplacement. En d'autres termes, dans l'unité de données ouverte correspondante, les mêmes bits seront déformés comme dans le bloc de données cryptées et dans la prochaine unité de données ouverte, toutes les bits indépendamment les uns des autres avec probabilité 1 / 2 Modifiez vos valeurs.

Développement de l'imitabilité au tableau de données.

Dans les sections précédentes, nous avons discuté de l'impact de la distorsion de données cryptées sur les données ouvertes correspondantes. Nous avons constaté que lorsqu'il est déchiffré en mode de remplacement simple, l'unité de données ouverte correspondante s'avère être défausée de manière imprévisible et lors de la déchiffrement de l'unité dans le mode d'gammage, des modifications sont prévisibles. Dans le mode de rétroaction de gammation, deux blocs sont déformés, une manière prévisible et une autre manière imprévisible. Cela signifie-t-il que du point de vue de la protection contre l'imposition de fausses données, la gamme de gamming est mauvaise, et les modes de remplacement simple et de gammer avec des commentaires sont bons? - Dans aucun cas. Lors de l'analyse de cette situation, il est nécessaire de prendre en compte les changements imprévisibles dans le bloc de données décodé ne peut être détecté que dans le cas de la redondance de ces données très, et plus le degré de redondance est élevé, plus la détection de distorsion. La très grande redondance se produit, par exemple, pour les textes sur les langues naturelles et artificielles, dans ce cas, le fait de distorsion est détecté presque inévitable. Cependant, dans d'autres cas, par exemple, lors de la déformation des images sonores numérisées compressées, nous obtiendrons simplement une autre image pouvant percevoir notre oreille. La distorsion dans ce cas restera sans précédent si, bien sûr, il n'y a pas d'informations prioriales sur le caractère du son. La sortie ici est la suivante: car la capacité de certains modes de cryptage à détecter les distorsions apportées aux données cryptées est de manière significative sur la présence et la redondance des données cryptées, cette capacité n'est pas une propriété immanente des modes correspondants et ne peut pas être considéré comme leur avantage.

Pour résoudre le problème de la détection de distorsion dans une matrice de données cryptée avec une probabilité donnée dans GOST, un mode de transformation cryptographique supplémentaire est fourni - la production d'imitava. Simplement est une combinaison de contrôle qui dépend des données ouvertes et des informations clés secrètes. L'utilisation d'Imitovka a pour but de détecter toutes les modifications aléatoires ou délibérées dans la gamme d'informations. Le problème décrit dans le paragraphe précédent peut être résolu avec succès en ajoutant aux données d'imitava cryptées. Pour un attaquant potentiel, les deux tâches suivantes sont pratiquement non résolues si elle ne possède pas la clé:

  • calculer l'imitava pour une gamme ouverte donnée d'informations;
  • sélection de données ouvertes pour un imitava donné;

Le schéma de l'algorithme de production d'imitatement est illustré à la figure 6.


Figure 6. Algorithme de génération d'imitabilité pour la matrice de données.

Une partie du bloc obtenu à la sortie est prise comme IMITAVA, généralement 32 de son bit plus jeune. Lorsque vous choisissez la taille de l'imitava, il est nécessaire de prendre en compte que la probabilité d'une imposition réussie de fausses données est égale à 2 - | JE. | Pour une tentative de sélection, si un attaquant n'a pas de méthode de sélection plus efficace que d'une simple devinette. Lorsque vous utilisez l'imitance de 32 bits de taille, cette probabilité est égale à

Discussion sur les algorithmes cryptographiques de GOST.

La cryptographie est la résistance du GOST.

Lors du choix d'un algorithme cryptographique à utiliser dans un développement spécifique, l'un des facteurs déterminants est sa durabilité, c'est-à-dire la résistance aux tentatives de l'adversaire de la divulguer. La question de la raidité du chiffre sur la plus près porte sur deux questions interdépendantes:

  • est-il possible de révéler complètement ce chiffre?
  • si oui, à quel point il est difficile de faire pratiquement;

Les chiffres généralement impossibles à révéler sont appelés absolument ou théoriquement résistant. L'existence de tels chiffres est prouvée par le théorème de Shannon, cependant, le prix de cette résistance est la nécessité d'utiliser pour chiffrer chaque message clé qui n'est pas plus petit de la taille du message lui-même. Dans tous les cas, à l'exception d'un certain nombre de spéciaux, ce prix est excessif, par conséquent, dans la pratique, des chiffres qui n'ont pas de résistance absolue sont principalement utilisés. Ainsi, les schémas de cryptage les plus courants peuvent être décrits pour une heure finis ou, plus précisément, pour un nombre fini d'étapes, chacun d'entre eux étant des opérations sur des nombres. Pour eux, le concept de résistance pratique, exprimant la difficulté pratique de leur divulgation, est de la chose la plus importante. Une mesure quantitative de cette difficulté est le nombre d'opérations arithmétiques élémentaires et logiques, qui doivent être effectuées pour révéler le chiffre, c'est-à-dire pour un chiffrement spécifié avec une probabilité qui n'est pas inférieure à la valeur spécifiée, afin de déterminer le texte ouvert correspondant. . En même temps, en plus de la matrice de données décodée, la cryptanalytique peut être localisée des blocs de données ouvertes et les données cryptées correspondantes cryptées ou même la possibilité d'obtenir les données cryptées correspondantes pour toutes les données ouvertes sélectionnées - en fonction de la liste répertoriée et De nombreuses autres conditions non spécifiées distinguent des types individuels de cryptoanalyse.

Tous les cryptosystèmes modernes sont construits sur le principe de Kirchoff, c'est-à-dire que le secret des messages cryptés est déterminé par le secret clé. Cela signifie que même si l'algorithme de cryptage lui-même est connu pour la cryptanalitique, on ne peut toutefois pas déchiffrer le message s'il n'a pas la clé appropriée. Le chiffre est considéré comme bien conçu s'il n'y a pas de méthode pour l'ouvrir de manière plus efficace que celle de l'échappement dans l'espace clé, c'est-à-dire Pour toutes les clés possibles. GOST est susceptible de respecter ce principe - pendant les années de recherche intensive, aucun moyen efficace de sa cryptanalyse n'a été proposé. En termes de persévérance, il est une grande partie des ordres de grandeur dépassant l'ancienne norme de cryptage américain, des.

L'invité utilise une clé 256 bits et le volume d'espace clé est 2 256. Aucun des appareils électroniques actuels ou estimés dans un proche avenir ou qui aurait prétendument le dispositif électronique ne peut être choisi pendant moins de plusieurs centaines d'années. Cette valeur est devenue la norme réelle de la taille de la clé pour les cryptoalgorithmes symétriques ces jours-ci », donc la nouvelle norme de cryptage américain le supporte également. L'ancienne norme américaine, des avec sa taille de clé réelle de 56 bits et le volume d'espaces clés est que 2 56 n'est plus persistante à la lumière des possibilités de calcul moderne. Cela a été démontré à la fin des années 90 par plusieurs tentatives réussies par le piratage des des personnes en surpiquant. De plus, des des des moyens spéciaux de cryptualyse, tels que différencié et linéaire. À cet égard, des des OF peuvent être représentés plutôt une recherche ou un intérêt scientifique que pratique. En 1998, sa faiblesse cryptographique a été officiellement reconnue, l'Institut national des normes américaines a recommandé l'utilisation du triple cryptage sur DES. Et à la fin de 2001, une nouvelle norme de cryptage américaine a été officiellement approuvée, AES, construite sur d'autres principes et exempts des inconvénients de son prédécesseur.

Notes sur l'architecture de gost.

Il est bien connu que la norme de cryptage domestique est un représentant d'une famille de chiffres entiers construits sur les mêmes principes. Le "relatif" le plus célèbre est l'ancienne norme de cryptage américaine, l'algorithme des des algorithmes. Tous ces chiffres, comme GOST, contiennent des algorithmes de trois niveaux. Il y a toujours une certaine "étape de base", sur la base de laquelle des "cycles de base" sont similaires et des procédures pratiques pour le cryptage et le développement des imitovka sont construites sur elles. Ainsi, les spécificités de chacun des chiffres de cette famille ont conclu à son pas principal, plus précisément, même dans sa part. Bien que l'architecture des chiffres de blocs classiques, à laquelle appartiennent GOST appartiennent, est bien en dehors du sujet de cet article, il vaut toujours la peine de dire quelques mots sur son occasion.

Algorithmes "étapes de base de cryptopréformage" pour les chiffreurs comme GOST, de manière identique, et cette architecture est appelée réseau de feux équilibrés (Balanced Feistel Network) par le nom d'une personne qui l'a offerte la première. Circuit de conversion de données sur un cycle, ou comment l'appeler, rond montré à la figure 7.


Figure 7. Contenu de l'étape de cryptocre principale pour des chiffres de blocs tels que GOST.

L'entrée de l'étape principale sert un bloc de taille pair, la moitié plus ancienne et la plus jeune qui sont traitées séparément les unes des autres. Au cours de la conversion, la plus jeune moitié du bloc est placée à la place de l'aîné et l'aîné, combiné avec le fonctionnement du cassé " excluant ou »Avec le résultat de la fonction de calcul, en place plus jeune. Cette fonctionnalité qui prend un argument est une moitié basse de l'élément d'information de bloc et de clé ( X.) est une partie significative du chiffre et l'appelle fonction de cryptage . Pour différentes raisons, il s'est avéré bénéfique pour diviser le bloc crypté en deux caractères de taille: | N. 1 |=|N. 2 | - C'est ce fait qui reflète le mot "équilibré" dans le titre d'architecture. Cependant, les réseaux déséquilibrés de cryptage sont également utilisés de temps en temps, bien que pas aussi souvent que équilibrés. De plus, la cohérence de la consistance de chiffrement nécessite que la taille de l'élément clé ne soit pas inférieure à la moitié du bloc: dans l'intestin, les trois tailles sont de 32 bits .

Si elle est appliquée au schéma de l'étape principale de l'algorithme Gost, il devient évident que les blocs 1,2,3 algorithmes (voir Fig. 1) déterminent le calcul de sa fonction de cryptage et des blocages 4 et 5 définir la formation de la sortie. bloc de l'étape principale basée sur le contenu de l'unité d'entrée et des fonctions de cryptage. De plus en détail sur les architectures des chiffres de bloc modernes avec une clé secrète, vous pouvez lire dans un travail classique ou, sous forme adaptée, dans mon travail.

Dans la section précédente, nous avons déjà comparé des des et de GOST par durabilité, nous les comparerons maintenant au contenu fonctionnel et à la commodité de la mise en œuvre. Dans les cycles de cryptage GOST, l'étape principale est répétée 32 fois, pour DES, cette valeur est de 16. Toutefois, la fonction de cryptage GOST est nettement plus facile pour la fonction DES SIMILILE, dans laquelle il existe de nombreuses permutations de bits irréguliers. Ces opérations sont extrêmement inefficaces mises en œuvre sur des processeurs modernes non spécialisés. GOST ne contient pas de telles opérations. Il est donc beaucoup plus pratique pour la mise en œuvre du logiciel.

Aucun des projets Intel X86 considérés par l'auteur des implémentations de la plate-forme Intel X86, voire la moitié des performances proposées à votre attention dans cet article de la mise en œuvre du GTST malgré le double cycle le plus court. Tout ce qui précède suggère que les développeurs GOST ont appris à la fois des aspects positifs et négatifs de la DESA, et les possibilités actuelles et prometteuses de cryptanasalyse sont plus réalisées. Cependant, de prendre des affaires comme une base lors de la comparaison de la performance des implémentations de chiffres n'est plus pertinente. La nouvelle norme européenne de cryptage est bien meilleure en même temps - avec la même taille de la clé de la clé de 256 bits, AES fonctionne plus rapidement d'environ 14% - cela doit être comparé par le nombre d'opérations "élémentaires". De plus, GOST est pratiquement incapable de paralliser et les AES ont beaucoup plus la possibilité de l'occasion. Sur certaines architectures, cet avantage d'AES peut être moins sur les autres - plus. Donc, sur le processeur Intel Pentium, il atteint 28%. Les détails peuvent être trouvés dans.

Exigences de qualité et sources clés.

Toutes les clés et tables des remplaçants ne fournissent pas une durabilité maximale de chiffrement. Pour chaque algorithme de cryptage, il existe des critères d'évaluation pour les informations clés. Donc, pour l'algorithme des algorithmes, l'existence de la soi-disant " clés faibles "Lors de l'utilisation de laquelle la connexion entre les données ouvertes et cryptées n'est pas suffisamment masquée et que le chiffre est relativement simplement ouvert.

Une réponse complète à la question des critères de la qualité des clés et des tables de substrat GOST, si vous pouvez obtenir n'importe où, alors seuls les développeurs de l'algorithme. Les données correspondantes n'ont pas été publiées dans Open Print. Toutefois, selon la procédure établie, des données clés obtenues à partir d'une organisation autorisée devraient être utilisées pour chiffrer les informations relatives à l'organisation marginale. Cela peut indiquer indirectement la présence de techniques de vérification de données clés pour "coutures". Si la présence de clés faibles dans l'invité est une question de discussion, la présence de nœuds de remplacement faibles est sans aucun doute. Évidemment, le tableau de substitution «trivial», selon lequel toute valeur est remplacée par lui-même, est si faible que, lors de l'utilisation, le chiffrement est élémentaire élémentaire, quelle que soit la clé.

Comme indiqué précédemment, les critères d'évaluation des informations clés ne sont pas disponibles, mais certaines considérations générales peuvent être exprimées sur leur compte.

Clé

La clé doit être une gamme de bits statistiquement indépendants acceptant égal à la probabilité de la valeur de 0 et 1. Il est impossible d'exclure complètement que certaines valeurs clés spécifiques peuvent être "faibles", c'est-à-dire que le chiffre peut ne pas fournir un niveau de résistance donné en cas d'utilisation. Cependant, probablement, la proportion de telles valeurs dans la masse totale de toutes les clés possibles est négligeable. À tout le moins, des études intensives sur le chiffrement n'ont pas encore révélé une seule clé pour tout (c'est-à-dire les tables de remplacement proposées FAPSI). Par conséquent, les clés produites à l'aide d'un certain capteur de nombres vraiment aléatoires seront qualitativement d'une probabilité qui diffère de l'unité à une valeur négligeable. Si les touches sont générées à l'aide d'un générateur de nombres pseudo-aléatoires, le générateur utilisé doit fournir les caractéristiques statistiques ci-dessus et, en outre, avoir une résistance cryptique élevée, pas moins que celle du Gost lui-même. En d'autres termes, la tâche de déterminer le membre absent généré par le générateur de séquence des éléments ne doit pas être plus facile que la tâche d'ouvrir le chiffre. De plus, divers critères statistiques peuvent être utilisés pour rétablir des clés avec de mauvaises caractéristiques statistiques. En pratique, deux critères sont généralement suffisants - pour vérifier la distribution équilibrée des principaux bits entre les valeurs 0 et 1, le critère Pearson ("Hee Square") est généralement utilisé et vérifier l'indépendance des bits de clé, les critères de la série. Nous pouvons lire sur les critères mentionnés dans les manuels ou les ouvrages de référence sur les statistiques mathématiques.

La meilleure approche du développement des clés serait l'utilisation des capteurs matériels MC, mais cela n'est pas toujours acceptable pour des considérations économiques. Lors de la génération d'une petite gamme d'informations clés, une alternative raisonnable à l'utilisation d'un tel capteur est et est largement utilisée dans la pratique la méthode "de la roulette électronique", lorsque la partie ensuite générée des bits aléatoires dépend du moment de la pression de la clé de l'opérateur. sur le clavier de l'ordinateur. Dans ce schéma, la source de données aléatoires est un utilisateur informatique, plus précisément - les caractéristiques de temps de sa réaction. Dans cette presse, seuls quelques bits de données aléatoires peuvent être développés en même temps, de sorte que la vitesse totale des informations clés est faible à plusieurs bits par seconde. De toute évidence, cette approche ne convient pas aux grandes matrices de clés.

Dans le cas où il est nécessaire de déterminer une grande quantité d'informations essentielles, l'utilisation de divers capteurs logiciels de nombres pseudo-aléatoires est possible et est très largement répandu. Comme il y a une cryptoscopie élevée, l'utilisation du chiffre lui-même telle qu'elle est l'utilisation du schéma lui-même comme elle, il est simplement "couper" les tailles brouillées dans les "morceaux" de la taille souhaitée, pour GOST - 32 octets . Bien sûr, pour cette approche, nous aurons besoin d'une "clé de maîtrise", que nous pourrons obtenir la méthode de la roulette électronique décrite ci-dessus et avec elle à l'aide du chiffre dans le mode Gamma Generator, nous obtenons une gamme d'informations clés dont nous avons besoin. Donc, ces deux façons de développer des clés, «manuel» et «algorithmique», travaillent en tandem, complétant mutuellement. Les systèmes de génération de clés dans les systèmes de cryptographie de l'information «à bas budgétaire» sont presque toujours construits sur ce principe.

Remplacement de la table

La table de remplacement est un élément clé à long terme, c'est-à-dire qu'il agit sur une période beaucoup plus longue qu'une clé distincte. Il est supposé qu'il est commun à tous les sites de cryptage dans un système de protection cryptographique. Même avec une violation de la vie privée de la table, la durabilité des chiffres reste extrêmement élevée et ne diminue pas en dessous de la limite admissible. Par conséquent, il n'y a pas de besoin spécial de garder le secret de la table et dans la plupart des applications commerciales de Gost, il est fait. D'autre part, le tableau de substitution est un élément essentiel pour assurer la durabilité de l'ensemble du chiffre. Le choix d'une table inappropriée peut entraîner le fait que le chiffre sera facilement ouvert par des méthodes connues de cryptoanalyse. Critères pour le développement de nœuds de remplacement - le mystère de sept sceaux et FAPSI est peu susceptible de le partager avec un public dans un avenir proche le plus proche. En fin de compte, afin de dire si cette table de substitution est bonne ou mauvaise, il est nécessaire de procéder à une énorme quantité de travail - de nombreux milliers de personnes et d'heures de voiture. Une fois que la table sélectionnée et utilisée est sujette au remplacement de celui-ci et uniquement si le chiffre avec son utilisation s'est avéré vulnérable à l'un ou l'autre type de cryptanalyse. Par conséquent, le meilleur choix pour un utilisateur ordinaire Cipher prendra l'une des tables devenues publiques. Par exemple, à partir de la norme pour la fonction de hachage, il s'agit de "Centrobankovskaya"; Des informations sur ces tables peuvent être trouvées dans Open Print et même sur Internet, si vous avez l'air bien.

Pour ceux qui ne sont pas utilisés pour aller des chemins faciles, le système général d'obtention de tables de haute qualité est ci-dessous:

  1. En utilisant une technique, nous produisons un ensemble de huit nœuds de remplacement avec les caractéristiques garanties de la non linéarité. Il existe plusieurs techniques de ce type, l'un d'entre eux est l'utilisation de fonctions dits courlées.
  2. Vérifiez l'accomplissement des «critères de qualité» les plus simples - par exemple, ceux publiés pour les nœuds de remplacement des OF. Voici quelques considérations générales à ce sujet: chaque nœud de substitution peut être décrit par quatre fonctions logiques à partir de quatre arguments logiques. Si ces fonctions enregistrées dans formulaire minimum (C'est-à-dire avec la durée minimale possible de l'expression) ne suffira pas assez, un tel nœud de remplacement est rejeté. De plus, les fonctions individuelles dans l'ensemble de la table de substitution devraient différer de l'autre à suffisamment. À ce stade, de nombreuses tables sciemment de mauvaise qualité sont éclipsées.
  3. Pour les chiffres avec vos tables sélectionnées, construisez divers modèles ronds, correspondant à différents types de cryptoanalyse et mesurez les caractéristiques "profil" correspondantes. Ainsi, pour la cryptoanalyse linéaire, construire un analogue statistique linéaire du cycle de cryptage et calculer la caractéristique "profil" - l'indicateur de non-linéarité. S'il s'avère insuffisant, la table de remplacement est rejetée.
  4. Enfin, en utilisant les résultats du paragraphe précédent, exposez le chiffre avec le tableau des recherches intensives que vous avez choisi - tentative de cryptanalya par toutes les méthodes connues. Ce stade est le plus difficile et le plus fastidieux. Mais si cela est fait qualitativement, alors avec un degré élevé de probabilité, il peut être indiqué que le chiffrement avec les tables que vous choisissez ne sera pas ouvert avec des mortels simples et n'est pas exclu, ce ne sera pas sur les dents de la spéciale prestations de service.

C'est possible, cependant, il est beaucoup plus facile de faire. La chose est que les rondes plus volumineuses du chiffrement, moins l'effet sur la durabilité de l'ensemble du chiffre présente les caractéristiques de la résistance d'un tour. Guest Ahm 32 rond est plus que presque tous les chiffres ayant une architecture similaire. Par conséquent, pour la plupart des applications ménagères et commerciales, il suffit d'obtenir des nœuds de substitution que des réarrangements aléatoires indépendants de nombres de 0 à 15. Ceci peut être mis en œuvre pratiquement, par exemple, en mélangeant une terrasse à partir de seize cartes, chacune étant fixe une des valeurs de la plage spécifiée.

En ce qui concerne la table de remplacement, il est nécessaire de noter un autre fait intéressant. Aux cycles réversibles du cryptage "32-S" et "32-P", il n'est pas nécessaire que les nœuds des remplacements soient des permutations de nombres de 0 à 15. Tout fonctionne même s'il y a des éléments répétés dans le nœud de substitution et Remplacement, irréversible, - mais dans ce cas, la résistance à chiffrement est réduite. Pourquoi c'est exactement le cas, n'est pas considéré dans cet article, mais il est facile de s'assurer dans le fait. Pour ce faire, il suffit d'essayer d'abord crypter, puis déchiffrer le bloc de données à l'aide d'une table de substitution "défectueuse", dont les nœuds contiennent des valeurs répétitives.

Variations sur le sujet de GOST

Très souvent, pour une utilisation dans le système de protection des données cryptographiques, un algorithme est requis avec supérieur à celui de la performance de la mise en œuvre GOST, ce qui ne nécessite pas une telle résistance cryptique élevée. Un exemple typique de telles tâches constitue divers types de systèmes de négociation d'actions électroniques, gérant des sessions de commerce en temps réel. Ici, à partir des algorithmes de cryptage utilisés, il est nécessaire qu'il soit impossible de déchiffrer les données opérationnelles du système pendant la session (données sur les applications des applications, sur les transactions, etc.), pour son expiration, ces données sont généralement déjà disponibles. inutile pour les intrus. En d'autres termes, une persistance garantie n'est requise que quelques heures - c'est la durée typique de la session de trading. Il est clair que l'utilisation d'un gant à part entière dans cette situation tirerait des armes à feu sur les moineaux.

Comment faire cela et des cas similaires pour augmenter la vitesse du cryptage? La réponse réside sur la surface - utilise la modification du chiffre avec un nombre plus petit des étapes principales (rounds) dans les cycles de base. Combien de fois nous réduisons le nombre de tours de cryptage, augmente de vitesse en même temps. Le changement spécifié peut être atteint de deux manières - une diminution de la longueur de la clé et une diminution du nombre de "cycles de vue" de la clé. Rappelons que le nombre d'étapes fixes dans les cycles de cryptage de base est égal N.=n · M.n. - le nombre d'éléments 32 bits dans la clé, m. - le nombre de cycles utilisant des éléments clés dans la norme n.=8, m.\u003d 4. Vous pouvez réduire l'un de ces numéros, mais l'option la plus simple consiste à réduire la longueur de la clé et non au toucher de son utilisation.

Il est clair que le paiement de l'accélération sera réduit la résistance des chiffres. La principale difficulté réside dans le fait qu'il est assez difficile d'évaluer plus ou moins avec précision l'ampleur de cette réduction. De toute évidence, le seul moyen possible de le faire est d'étudier les options de chiffrement avec des cycles de conversion cryptographiques réduits "sur le programme complet". Il est clair que, d'abord, il nécessite l'utilisation d'informations fermées, que seuls les développeurs du GTST et, deuxièmement, sont très laborieux. Par conséquent, nous allons maintenant essayer d'évaluer, très et très grossier, ne procéder que des modèles généraux.

En ce qui concerne la stabilité du chiffrement au piratage des méthodes "étendues", c'est-à-dire à l'attaque "aérien", qu'ici est plus ou moins claire: la clé de 64 bits est quelque part sur le point d'accessibilité ce type d'attaque, Cipher avec une clé 96 bits et plus (rappelez-vous que la clé doit contenir un nombre entier d'éléments 32 bits) est assez résistant à celui-ci. En effet, il y a quelques années, l'ancienne standard de cryptage américain, DES, a été piratée à plusieurs reprises par écrasement, - au début, il a été piraté par un réseau informatique, organisé sur la base du réseau Internet mondial, puis spécialisé, c'est-à-dire. Conçu spécifiquement pour cette machine informatique. Nous approuverons que la version standard de la mise en œuvre du logiciel de GONT pour les transformateurs modernes est en cours de fonctionnement de FASTER DES. Ensuite, le "GOST réduit" 8 rond fonctionnera 16 fois plus vite que DES. Nous assumons également que, pour le passé, du moment de la Piratage des Dés, la performance de la technologie informatique en fonction de la loi de Moore a augmenté quatre d'entre eux. Nous obtenons ainsi de suite à la vérification d'une clé 64 bits pour "GOST réduit" avec huit cycles est 64 fois plus rapide que dans une fois l'essai d'une touche des unités de la clé. Ainsi, l'avantage de cette option du gost avant des des des des des des parties transversales est réduit de 2 64-56 \u003d 2 8 \u003d 256 à 256 / 64 \u003d 4 fois. D'accord, c'est une différence très illusoire, presque rien.

Il est beaucoup plus difficile d'évaluer la stabilité des modifications d'État affaiblies aux méthodes «intenses» de cryptanalyse. Cependant, le modèle global peut être traqué ici. Le fait est que les caractéristiques "profil" de nombreuses espèces de cryptanalyse les plus fortes dépendent de manière exponentielle du nombre de rondes de cryptage. Donc, pour la cryptoanalyse linéaire (LKA), ce sera une caractéristique de linéarité L. :

C. et - constantes, r est le nombre de tours. Une dépendance similaire existe pour la cryptanalyse différentielle. Dans sa "signification physique", toutes les caractéristiques de ce type - probabilité. Habituellement, la quantité de données source nécessaires à la cryptanalyse et sa complexité est inversement proportionnelle à ces caractéristiques. Il s'ensuit que ces taux d'intensité de main-d'œuvre augmentent de manière exponentielle avec une augmentation du nombre d'étapes de cryptage de base. Par conséquent, avec une diminution du nombre de tours, la complexité des types d'analyse les plus connus va changer, - très approximativement et approximativement, est la racine de ce degré de la quantité initiale. C'est une très grande perte de résistance.

D'autre part, GOST a été conçu avec une grande marge de force et est aujourd'hui résistant à toutes les espèces connues de cryptanalyse, y compris différentielle et linéaire. En ce qui concerne la LKA, cela signifie que pour sa conduite réussie, davantage de paires sont nécessaires "Le bloc ouvert est un bloc crypté" que "existe de nature", c'est-à-dire de plus de 2,64. Compte tenu de ce qui précède, cela signifie que pour une LCA réussie du GOST 16 rond, vous n'aurez pas besoin de moins de blocs ou de 25 octets ou 32 Go de données, et pour 8 ronds - au moins des blocs ou 2 19 octets ou 0.5 MB.

Les conclusions de tout ce qui précède sont données dans le tableau suivant, ce qui généralise les caractéristiques des options de GRAA réduites.

Numéro de rond Taille de la clé, bit Indice d'action rapide Caractéristiques de chiffrement probables (estimation très approximative)
24 192 1,33 Durable aux types de KA les plus célèbres ou être sur le point de la stabilité. La mise en œuvre pratique de la CA est impossible en raison des exigences élevées pour les données initiales et la complexité.
16 128 2 Théoriquement instable à certains types de cryptoanalyse, mais leur mise en œuvre pratique dans la plupart des cas est difficile en raison des exigences élevées pour les données initiales et l'intensité de la main-d'œuvre.
12 95 2,67 Instable à certains types de cryptoanalyse célèbres, mais il convient au secret de petites quantités de données (jusqu'à dix centaines de KRIB) pendant une courte période.
8 64 4 Instable à certains types de cryptoanalyse célèbres, mais il convient au secret de petites quantités de données (jusqu'à une douzaine de KB) pendant une courte période.

Les deux dernières options, avec 12 et 8 tours sont capables de fournir une protection très et très limitée dans le temps. Leur utilisation est justifiée uniquement dans les tâches, où seul le secret à court terme des données fermées est requis, environ quelques heures. La zone possible d'application de ces options de chiffrement faibles est la fermeture du trafic UDP de systèmes de négociation d'actions électroniques. Dans ce cas, chaque paquet de données (Datagramme, la moyenne "D" de l'abréviation UDP) est crypté sur une touche distincte 64 bits et la clé elle-même est cryptée sur une clé de session (clé dont la zone est une session de communication entre deux ordinateurs) et est transmis avec des données.

Avant de compléter avec la réduction des variantes GOST, je dirai que toutes les considérations ci-dessus sont très spéculatives. Standard fournit une persistance uniquement pour une option 32 rond. Et personne ne peut vous donner des garanties que la stabilité des variantes réduites du chiffrement de la fissure sera modifiée ci-dessus. Si vous avez toujours décidé de les utiliser dans vos développements, rappelez-vous que vous avez marché sur un sol très mou, qui peut venir de vos pieds à tout moment. Si les questions de vitesse de cryptage sont bientôt critiques pour vous, peut-être qu'il convient de penser à utiliser un chiffre plus rapide ou plus puissant? Une autre considération pour laquelle il devrait être fait est que les variantes GOST affaiblies seront aussi sensibles à la qualité des nœuds de remplacement utilisés.

La question considérée a un côté inversé. Et si le taux de cryptage est non critique et que les exigences de résistance sont très serrées? Vous pouvez augmenter la résistance du GOST de deux manières - les appelez classiquement «étendue» et «intense». Le premier n'est rien de plus qu'une simple augmentation du nombre de rondes de cryptage. Ce n'est pas tout à fait clair pour moi pourquoi cela peut en avoir vraiment besoin, car la norme nationale et sans cela fournit la résistance nécessaire. Toutefois, si vous subissez des niveaux plus nécessaires par la paranoïa (et tous les «avocats d'information» simplement obligés de souffrir, cette condition de la profession est que la question n'est que dans le degré de cas de l'affaire :), cela vous aidera à vous calmer quelque peu. Si vous n'êtes pas sûr de ce kgb-shifra ou de la table des remplacements que vous utilisez, il suffit de doubler, de mettre en place, etc. Nombre de tours - Sélectionnez la multiplicité en fonction de la gravité de votre cas. Cette approche vous permet d'augmenter vraiment la durabilité des chiffres, - si une cryptualalyse plus tôt était tout simplement impossible, c'est impossible dans la place!

Plus difficile et intéressant est la question, et s'il est possible d'augmenter la durabilité du chiffre, sans modifier le nombre et la structure des étapes de cryptage principales. Peu importe comment étonnamment, la réponse à cela est positive, bien que nous sottions à nouveau sur le sol pissile de la spéculation. Le fait est que dans l'invité, à l'étape principale de la transformation, il est supposé être remplacé 4 bits 4 par 4 bits, et en pratique (c'est plus devant) toutes les implémentations logicielles effectuent le remplacement de la toilette, c'est-à-dire 8 à 8 bits - cela se fait pour considérer l'efficacité. Si vous concevez immédiatement un tel remplacement en tant que 8 bits, nous améliorerons de manière significative les caractéristiques d'un tour. Premièrement, la caractéristique «diffusion» ou indicateur de «Avalanche» augmentera - un bit des données source et / ou la clé affectera le plus grand nombre de bits de résultat. Deuxièmement, pour de gros nœuds de substitution, vous pouvez obtenir des caractéristiques différentielles et linéaires plus basses, réduisant ainsi l'exposition au chiffre du même nom de cryptanalyse. Particulièrement pertinent pour les cycles GOST réduits, et pour les options de 8 et 12 rondes, une telle étape est simplement nécessaire. Cela compense quelque peu la perte de persévérance en eux de réduire le nombre de tours. Ce qui rend difficile l'utilisation de cette réception - c'est ce que la conception de tels nœuds de remplacement "élargis" devra être indépendamment. Et aussi le fait que les nœuds plus importants soient généralement conçus généralement sensiblement plus difficiles que de plus petite taille.

Utilisation non standard de la norme.

Bien entendu, le but principal de cryptoalgorithme gost est le cryptage et les données imitivores. Cependant, ils peuvent également trouver d'autres applications liées, naturellement, avec une protection des informations. Racontez brièvement à leur sujet:

1. Pour le cryptage en mode Gammation, GOST prévoit le développement d'un gamma cryptographique - une séquence de bits avec de bonnes caractéristiques statistiques avec une résistance cryptique élevée. En outre, ce gamma est utilisé pour modifier les données ouvertes, entraînant des données cryptées de données. Cependant, ce n'est pas la seule application possible de la gamme cryptographique. Le fait est que l'algorithme de sa production est un générateur de séquence de nombres pseudo-aléatoires (GPPSH) avec d'excellentes caractéristiques. Bien sûr, il n'est pas nécessaire d'utiliser un tel GPPSH où seules les caractéristiques statistiques de la séquence produite sont nécessaires et le cryptoscope n'est pas nécessaire, pas très raisonnable - il existe des générateurs beaucoup plus efficaces pour ces cas. Mais pour différentes applications liées à la protection des informations, une telle source sera tout à fait de la manière:

  • Comme indiqué ci-dessus, le gamma peut être utilisé comme des "matières premières" pour générer des clés. Pour cela, il vous suffit d'obtenir un segment de la gamma de la longueur souhaitée - 32 octets. De cette manière, les clés peuvent être faites selon les besoins et ne devront pas être stockées - si une telle clé est nécessaire, il suffira de fonctionner suffisamment. Il ne sera nécessaire de rappeler que de la manière dont la clé a été développée initialement, qui a utilisé la batterie de synchronisation et à partir de quel octet de la clé de gamma produite a commencé. Toutes les informations, à l'exception de la clé, sont inutiles. Cette approche vous permettra de contrôler facilement un système de clés plutôt compliqué et ramifié en utilisant une seule "clé principale".
  • Semblable à la précédente, la gamme peut être utilisée comme source "matières premières" pour générer des mots de passe. Il peut y avoir une question, pourquoi avez-vous besoin de les générer, il n'est pas plus facile que vous devez simplement les inventer. La défaillance d'une telle approche a été clairement démontrée par une série d'incidents dans des réseaux informatiques, dont la plus grande paralysie Internet en novembre 1988, causée par le «ver de Morris». Une façon de pénétrer dans le programme malveillant de l'ordinateur était la sélection des mots de passe: le programme a essayé d'entrer dans le système, traité de manière constante des mots de passe de sa liste interne de plusieurs centaines, et dans une proportion significative qu'elle a réussi à le faire. Le fantasme d'une personne à inventer des mots de passe était très pauvre. C'est pourquoi, dans ces organisations, où la sécurité est payée de l'attention, les mots de passe génèrent et distribuent l'administrateur système aux utilisateurs. Le développement de mots de passe est légèrement compliqué que le développement des clés, car la gamme binaire «brute» doit être convertie en une forme de symbole et non seulement «couper» en morceaux. De plus, des valeurs individuelles doivent être jetées pour garantir une probabilité égale de l'apparence de tous les caractères alphabet dans le mot de passe.
  • Une autre façon d'utiliser la gamme cryptographique est garantie de renforcer les données sur les médias magnétiques. Le fait est que même lors de l'écrasement des informations sur le support magnétique, des traces de données antérieures restent, ce qui peut restaurer l'examen pertinent. Pour détruire ces traces, cette écrasement doit être effectuée à plusieurs reprises. Il s'est avéré qu'il serait nécessaire de remplacer les informations sur le transporteur moins de fois si, avec une telle procédure d'utilisation de données aléatoires ou pseudo-aléatoires, qui resteront des experts inconnus essayant de restaurer les informations chauffées. Gamma Cipher ici sera aussi impossible.

2. Non seulement gamma cryptographique, mais aussi la transformation cryptographique elle-même, peut être utilisée pour les besoins qui ne sont pas directement liés au cryptage:

  • Nous savons que l'une de ces options d'utilisation de GOST est le développement d'imitavas pour les tableaux de données. Cependant, sur la base de tout chiffre à bloc, et le GTST, y compris, il est assez facile de construire un schéma de calcul de la fonction de hachage à sens unique, également appelé MDC dans la littérature, qui dans différentes sources est déchiffrée. code de détection des changements / manipulations (M.oIDIFICATION / M.anipulation RÉ.etection. C.ode) ou digérer le message (M.essage. RÉ.igest. C.oDE). Le premier décodage est apparu dans la littérature beaucoup plus tôt, le second, plus court, je pense, est venu avec ceux qui étaient incapables de se souvenir du premier :) - c'était une blague. MDC peut être utilisé directement dans les systèmes d'imitigateur comme analogue d'imittavIntage, non, de la clé secrète. De plus, MDC est largement utilisé dans les schémas de signature numérique électroniques (EDS), car la plupart de ces systèmes sont conçus de manière à signer un bloc de données de taille fixe pratique. Comme on le sait bien, la norme de la Fédération de Russie pour calculer la fonction de hachage unilatéral GOST P34.11-94 est construite sur la base de la norme GOST 28147-89.
  • Il est moins connu que sur la base de tout chiffre à bloc, et le GOST comprenant un schéma EDS complètement fonctionnel peut être construit, avec une signature de clé secrète et une combinaison d'inspection ouverte. Pour un certain nombre de raisons, ce régime n'a pas reçu de distribution pratique généralisée, mais dans certains cas, il est toujours considéré comme une alternative très attrayante aux systèmes «mathématiques» dominants d'EDS.

Littérature

Systèmes de traitement de l'information. Protection cryptographique. Algorithme de transformation cryptographique GOST 28147-89. État Com. URSS Selon les normes, M., 1989. FTP://ftp.wtc-aral.ru/pub/fr.crypt/gost-28147
Shannon Claude. Théorie mathématique des systèmes secrets. Dans la collection de «travaux sur la théorie de l'information et de la cybernétique», M., IL, 1963, p. 333-369. http://www.enlight.ru/crypto/articles/shannon/shann__i.htm.
Annonce de l'approbation de la norme de traitement de l'information fédérale (FIPS) 197, Standard de cryptage avancé (AES), Registre fédéral Vol. 66, Non. 235 / Jeudi 6 décembre 2001 / Avis, pp 63369-63371. http://csrc.nist.gov/encryption/aes/
Fayastel Horst. Cryptographie et sécurité informatique. Traduction de A. Rinokuburov par Horst Feistel. Cryptographie et confidentialité informatique, Américain scientifique, mai 1973, vol. 228, Non. 5, pp. 15-23. http://www.enlight.ru/crypto/articles/feistel/feist_i.htm.
Schnayer Bruce. Cryptographie appliquée. 2ème éd. Protocoles, algorithmes et textes source en langage C., M., "triomphe", 2002 http://www.ssl.stu.neva.ru/psw/Crypto/apl_rus/apl_crryp.htm
Menez Alfred, Van Oorschot Paul, Vanstone Scott. Manuel de cryptographie appliquée. TTP: //www.cacr.math.uwaterloo.ca/hac/
Vinokurov Andrey. Comment est le chiffrement de bloc? Manuscrit. http://www.enlight.ru/crypto/articles/vinokurov/blcyph_i.htm.
Vinokurov Andrey. Problèmes de cryptographie pour les octets infusés Email Online. http://www.enlight.ru/crypto/articles/ib/ib.htm.
Andrey Vinokurov, Eduard s'applique. Texte du rapport "Sur la mise en œuvre du logiciel des normes de cryptage de la Fédération de Russie et des États-Unis", Conférence sur l'informatisation, Moscou, Mephi, 28-29 janvier 2001. Publié dans le matériel de la conférence.
Informatique. Protection de l'information cryptographique. Fonction de trappe GOST R34.11-94, GosStandart RF, M., 1994.

Short Description Cipher

GOST 28147-89 - Standard soviétique et russe de cryptage symétrique introduit en 1990, est également la norme de la CEI. Nom complet - "Système de traitement des informations GOST 28147-89. Protection cryptographique. Algorithme de transformation cryptographique. " Bloc de chiffrement-algorithme. Lorsque vous utilisez la méthode de cryptage avec gamming, peut effectuer un flux d'un algorithme de chiffrement.

GOST 28147-89 - Cipher de bloc avec une touche 256 bits et 32 \u200b\u200bcycles de conversion fonctionnant avec des blocs de 64 bits. La base de l'algorithme de chiffrement est une chaîne de la Faistel. Le mode de cryptage de base selon GOST 28147-89 est un mode de remplacement simple (modes d'gammure plus complexes, gamming de retour et mode imitava sont également définis).

Le principe de fonctionnement de l'algorithme

L'algorithme n'est pas fondamentalement différent du DES. Il se produit également dans les cycles de cryptage (donc 32) selon le schéma Faistel (Fig. 2.9.).

Figure. 2.9 Algorithme de cryptage des tours GOST 28147-89.

Pour générer une fiche, la clé source 256 bits est divisée en huit blocs de 32 bits: K 1 ... K 8. Les clés K 9 9 ... K sont une répétition cyclique de clés K 1 ... K 8 (nombre de bits plus jeunes aux aînés). Les clés K 25 ... K 32 sont des clés K 1 ... K 8, remontant dans l'ordre inverse.

Après avoir effectué les 32 rounds de l'algorithme, les blocs A 33 et B 33 sont collés ensemble (l'attention doit être portée au fait que le bit plus ancien devient 33, et le plus jeune - B 33) - Le résultat est le résultat du résultat de la exploitation de l'algorithme.

Une fonction f.(UNE. jE. ,K. jE.) Calcule comme suit: A I et K I I sont pliés par module 2 32, puis le résultat est divisé en huit sous-séquences de 4 bits, chacune d'entre elles entrant dans son entrée. remplacement de la table de nœuds (par ordre de marge croissante des bits), appelée ci-dessous S-block. Le nombre total de S-blocs du GOST - huit, c'est-à-dire, autant que les sous-séquences. Toutes les personnes S-block Il s'agit d'une permutation de chiffres de 0 à 15. La première suivante 4 bits tombe sur l'entrée du premier bloc S, la seconde sur la deuxième entrée, etc. Les sorties des huit blocs S sont combinées dans un Mot 32 bits, puis le mot est décalé de manière cyclique (sur une décharge senior) par 11 bits. Les huit s-blocs peuvent être différents. En fait, ils peuvent être un élément clé supplémentaire, mais sont plus souvent un paramètre de régime pour un groupe spécifique d'utilisateurs. Le texte standard indique que l'alimentation de remplissage des nœuds de remplacement (S-Blocks) est effectuée de la manière prescrite, c'est-à-dire. Développeur de l'algorithme. Communauté de développeurs de SKU russes coordonnant les nœuds de remplacement utilisés sur Internet.

Le décryptage est effectué de la même manière que le cryptage, mais l'ordre de la connexion K I est inversé.

Modes d'opération Algorithme GOST 28147-89

L'algorithme GOST 28147-89 a quatre modes de fonctionnement.

1. Moderemplacement simple Prend les données d'entrée, dont la taille est raccourcie que 64e bits. Le résultat du cryptage est le texte d'entrée converti par 64 bits dans le cas du cryptage par le cycle "32-S" et dans le cas du déchiffrement - le cycle "32-P".

2. Modehardinage prend les données d'entrée de n'importe quelle taille, ainsi qu'un paramètre supplémentaire de 64 bits - synchronisation. Pendant le travail, le syncopier est converti au cycle "32-S", le résultat est divisé en deux parties. La première partie est formée par module 2 32 avec une valeur constante de 1010101 16. Si la deuxième partie est 2 32 -1, sa valeur ne change pas, sinon elle consiste dans le module 2 32 -1 avec une valeur constante de 1010104 16. La valeur obtenue par la combinaison des deux pièces transformées, appelées gamma Cipher, entre le cycle "32-S", son résultat est brièvement plié par le module 2 avec un bloc d'entrée 64 bits. Si ce dernier est inférieur à 64 chiffres, les décharges supplémentaires de la valeur obtenue sont supprimées. La valeur résultante est fournie à la sortie. S'il y a plus de données entrantes, l'action est répétée: l'unité est convertie des pièces 32 bits dans des pièces et ainsi de suite.

3. Modefeedback Gamming Prend également sur les données d'entrée de n'importe quelle taille et syncopower. L'unité de données d'entrée est pliée sur le module 2 avec le résultat de la conversion dans le cycle "32-З" de syncopie. La valeur résultante est fournie à la sortie. La valeur de synchronisation est remplacée dans le cas du cryptage par l'unité de sortie et, dans le cas d'une entrée de déchiffrement -, c'est-à-dire crypté. Si le dernier bloc de données entrantes est inférieur à 64 décharges, les dimensions supplémentaires de la gamma (la sortie du cycle "32-S") est supprimée. S'il y a plus de données entrantes, l'action est répétée: des résultats du cryptage de la valeur remplacée, la gamma de chiffrement est formée, etc.

4. Mode de développementimitovka Prend les données d'entrée, dont la taille est au moins deux blocs complets 64 bits et renvoie un bloc de données 64 bits, appelé imitavka. La valeur temporable de 64 bits est définie sur 0, ci-après, alors qu'il existe des données d'entrée, il est plié sur le module 2 avec le résultat de l'exécution du cycle "16 S", le bloc d'entrée est donné à l'entrée. Une fois les données d'entrée terminées, la valeur temporaire est renvoyée en conséquence.

Cryptoanalysis chiffrant

Le Cipher GOST 28147-89 utilise une clé de 256 bits et la taille de l'espace clé est 2 256. Aucune des applications générales actuelles ne choisit actuellement une clé pendant moins de plusieurs centaines d'années. La norme russe de GOST 28147-89 a été conçue avec une grande marge et une résistance à de nombreuses ordres de grandeur dépasse la norme américaine de la taille de sa taille réelle de 56 bits et un espace clé de seulement 2 56.

Il y a des attaques et le gant-28147-89 à terme sans modification. L'un des premiers travaux ouverts dans lesquels l'analyse de l'algorithme a été réalisée utilise des faiblesses pour élargir la clé d'un certain nombre d'algorithmes de cryptage connus. En particulier, l'algorithme à grain complet GOST 28147-89 peut être ouvert à l'aide de la cryptanalyse différentielle sur les touches connectées, mais uniquement dans le cas de l'utilisation de tables de remplacement faibles. La version 24 rondes de l'algorithme (dans laquelle les 8 premiers rounds manquants) est ouverte de la même manière que toutes les tables de substitution, toutefois, de fortes tables de remplacement rendent une telle attaque est absolument impraticable.

Scientifictions nationales A.G. Rostovtsev et E.B. En 2001, Makhovenko a proposé une méthode fondamentalement nouvelle de cryptanalyse en formant une fonction cible à partir d'un texte ouvert bien connu correspondant à la valeur de CIPHertext et à la valeur de la clé souhaitée et à la recherche de son extremum correspondant à la valeur de clé vraie. Ils ont également trouvé une grande catégorie de clés faibles de l'algorithme GOST 28147-89, qui vous permet d'ouvrir l'algorithme à l'aide de seulement 4 textes ouverts sélectionnés et correspondant aux chiffres avec une complexité suffisamment faible.

En 2004, un groupe de spécialistes de la Corée a proposé une attaque avec laquelle, utilisant une cryptoanalyse différentielle sur les clés connectées, il est possible d'obtenir une probabilité de 91,7% 12 bits de la clé secrète. Pour l'attaque, vous avez besoin de 2 35 textes ouverts sélectionnés et 2 36 opérations de cryptage. Comme on peut le voir, cette attaque est pratiquement inutile pour la réelle autopsie de l'algorithme.

La table de remplacement est un élément clé à long terme, c'est-à-dire qu'il agit sur une période beaucoup plus longue qu'une clé distincte. Il est supposé qu'il est commun à tous les sites de cryptage dans un système de protection cryptographique. La qualité du chiffre dépend de la qualité de cette table. Lorsque la table de substitution «forte», la durabilité des chiffres ne tombe pas en dessous de la limite admissible, même en cas de sa divulgation. Inversement, l'utilisation d'une table "faible" peut réduire la résistance de chiffrement à une limite faible inacceptable. Aucune information sur la qualité de la table de remplacement dans la table d'impression ouverte n'a été publiée, toutefois, l'existence de tables "faibles" ne cause pas de doutes - un exemple est la table de substitution "triviale" selon laquelle chaque valeur est remplacée par celle-ci. lui-même. Dans un certain nombre de papiers, il est conclu à tort que les tables secrètes de l'algorithme de remplacement GOST 28147-89 peuvent faire partie de la clé et augmenter sa longueur effective (qui est insignifiante, puisque l'algorithme a une très grande clé de 256 bits).