Introduction aux bases des chiffres modernes avec une clé symétrique

Annotation: Dans cette conférence, plusieurs objectifs ont été livrés. Montrer la différence entre traditionnel et chiffres modernes avec une clé symétrique. Créez des chiffres de bloc modernes et discutez de leurs caractéristiques. Expliquez pourquoi les chiffres de bloc modernes doivent être conçus comme des chiffres de substitution. Entrez les composants des chiffres de blocs, tels que des blocs P-blocs et des blocs S. Discutez et montrez la différence entre les deux classes de ciffs de canton: des chiffres de plongeurs et des chiffres non-firmes. Discutez de deux types d'attaques surtout à la divulgation des chiffres à blocs modernes: cryptanalyse différentielle et linéaire. Entrez le concept de "ciffs pour le flux" et montrez la différence entre des chiffres synchronisés et inconvenus. Discutez d'une rétroaction linéaire et non linéaire des registres de décalage pour la mise en œuvre des chiffres d'écoulement.

Ciphers traditionnels S. clé symétriqueque nous avons étudié jusqu'à présent, concentrez-vous sur des symboles. Avec l'avènement d'un ordinateur, un chiffre axé sur un bit était nécessaire. Parce que les informations qui doivent être cryptées ne sont pas toujours le texte; Cela peut également comprendre des chiffres, des graphiques, des données audio et vidéo. Il est pratique de convertir ces types de données au flux de bits pour chiffrer ce fil, puis transférer le flux crypté. De plus, lorsque le texte est traité au niveau de la décharge, chaque symbole est remplacé par 8 (ou 16) bit, ce qui signifie que le nombre de caractères devient 8 (ou 16) fois plus. Mélanger un plus grand nombre de caractères augmente la sécurité.

Ce chapitre fournit les fondements nécessaires à l'étude des chiffres de bloc et de flux modernes, qui sont discutés dans les trois chapitres suivants. La majeure partie de ce chapitre est consacrée à la discussion des idées générales des chiffres à blocs modernes et seulement une petite partie - les principes des chiffres de flux modernes.

7.1. Ciphers de bloc moderne

Le chiffrement de bloc moderne avec des clés symétriques est crypté par le bloc N -BIT du texte source ou déchiffre le bloc N -Bite du texte crypté. L'algorithme de cryptage ou de déchiffrement est utilisé par la clé K -bit. L'algorithme de déchiffrement doit être inversion de l'algorithme de cryptage, et les deux dans les travaux utilisent la même clé de secoue afin que le Bob puisse restaurer le message transmis par Alice. La figure 7.1 montre l'idée générale du cryptage et du déchiffrement dans un chiffrement à bloc moderne.


Figure. 7.1.

Si le message a une taille inférieure à N bits, vous devez ajouter un remplissage pour créer ce bloc N-montré; Si le message a plus de n bits, il doit être divisé en blocs N-montré, et si nécessaire, ajoutez le remplissage correspondant au dernier bloc. Les valeurs communes pour N sont généralement de 64, 128, 256 ou 512 bits.

Exemple 7.1.

Combien de bits supplémentaires doivent ajouter au message 100 caractères si un ASCII est utilisé pour le codage de 8 bits et un chiffrement en bloc accepte les blocs 64 bits?

Décision

Code 100 caractères utilisant ASCII 8 bits. Ce message contient 800 bits. Le texte source doit être divisé sans solde de 64. Si | M | et | Pad | - la longueur du message et la longueur du remplissage, puis

| M | + | Pad | \u003d\u003d 0 mod 64 -\u003e | Pad | \u003d -800 mod 64-\u003e 32 mod 64

Cela signifie que le message doit ajouter 32 bits de remplissage (par exemple, Zeros). Le texte comprendra ensuite 832 bits ou treize blocs de 64 chiffres. Notez que seul le dernier bloc contient le remplissage. Le codeur utilise l'algorithme de cryptage treize fois pour créer treize blocs de texte crypté.

Substitution ou transposition

Le chiffrement de bloc moderne peut être conçu pour servir de chiffrement de substitution ou de chiffrement de transposition. C'est la même idée qui est également utilisée dans les chiffres traditionnels, sauf que les caractères qui seront remplacés ou déplacés contiennent des bits au lieu de caractères.

Si le chiffre est conçu comme substitution de chiffrement, Bit 1 ou 0 valeurs dans le texte source peuvent être remplacées par 0 ou 1. Cela signifie que le texte source et le texte crypté peuvent avoir un nombre différent d'unités. Le bloc de texte source par 64 bits, contenant 12 zéros et 52 unités, peut être représenté dans le texte crypté 34 zéros et 30 unités. Si le chiffre est conçu comme réarrangement en chiffrement (transposition), les bits ne changent que l'ordre des éléments suivants (déplacement) tout en maintenant le même nombre de caractères dans les textes originaux et cryptés. Dans tous les cas, le nombre de textes de source N -BITE possibles ou de textes cryptés est 2 N, car chacun des bits utilisés dans le bloc peut avoir l'une des deux valeurs - 0 ou 1 .2 64 bloc 64 bits pour en trouver un ce qui a du sens. Si la veille pourrait essayer un milliard de blocs par seconde, puis il faudrait des centaines d'années avant que ce travail puisse apporter du succès.

b. Dans le second cas (réarrangement), EVA sait que dans le texte source, il existe exactement 10 unités, car la transposition ne modifie pas les nombres d'unités (ou zéros) dans le texte crypté. EVA peut commencer une attaque de recherche exhaustive en utilisant uniquement les blocs de 64 morsures qui ont exactement 10 unités. Il n'y a que (64!) / [(10!) (54!)] = 151 473 214 816 Des 2 64 mots de 64 bits, qui ont exactement 10 unités. Eva peut les vérifier en moins de 3 minutes s'il peut dépenser 1 milliard de tests par seconde.

Résistant à une attaque de recherche exhaustive, le chiffrement à bloc moderne doit être conçu comme un chiffre de substitution.

Le cryptage des données est extrêmement important pour protéger la vie privée. Dans cet article, je parlerai de différents types et des méthodes de cryptage utilisés pour protéger les données aujourd'hui.

Le saviez-vous?
À l'époque de l'empire romain, Julia Caesar a été utilisé par Julia Caesar afin de rendre des lettres et des messages illisibles pour l'ennemi. Il a joué un rôle important en tant que tactique militaire, surtout pendant les guerres.

Étant donné que les possibilités d'Internet continuent de croître, de plus en plus de nos entreprises sont organisées pour travailler en ligne. Parmi cela, le plus important est la banque Internet, paiement en ligne, courriels, Échange de messages privés et de services, etc., qui prévoient l'échange de données et d'informations confidentielles. Si ces données tombent dans les mains des autres, il peut nuire non seulement à un utilisateur distinct, mais à l'ensemble du système d'activité en ligne.

À cela n'est pas arrivé, certaines mesures de sécurité du réseau ont été prises pour protéger les données personnelles. Les principaux entre eux sont les processus de données de cryptage et de déchiffrement, appelées cryptographie. Il existe trois méthodes de base de cryptage utilisés dans la plupart des systèmes aujourd'hui: cryptage de hachage, symétrique et asymétrique. Dans les lignes suivantes, je vous dirai plus en détail de chacun de ces types de chiffrement.

Types de cryptage

Cryptage symétrique

Avec un cryptage symétrique, des données lisibles normales, appelées texte ordinaire, sont codées (cryptées), de sorte qu'il devient illisible. Ce brouillage des données est effectué à l'aide de la clé. Une fois que les données sont cryptées, elles peuvent être transmises en toute sécurité au récepteur. Le destinataire, les données cryptées sont décodées à l'aide de la même clé utilisée pour le codage.

Ainsi, il est clair que la clé est la partie la plus importante du cryptage symétrique. Il devrait être caché d'étrangers, car tout le monde qui lui a accès sera en mesure de déchiffrer des données privatives. C'est pourquoi ce type de cryptage est également appelé «clé secrète».

DANS systèmes modernesah, la clé est généralement une chaîne de données obtenue à partir d'un mot de passe fiable ou d'une source complètement aléatoire. Il est nourri au cryptage symétrique logicielqui l'utilise pour sceller les données d'entrée. Le brouillage des données est obtenu à l'aide d'un algorithme de cryptage symétrique, tel que la norme de cryptage de données (DES), une norme de cryptage étendue (AES) ou un algorithme international de cryptage de données (idée).

Restrictions

Le maillon le plus faible de ce type de cryptage est la sécurité de la clé, à la fois en termes de stockage et lorsque l'utilisateur authentifié est transmis. Si le pirate informatique est capable d'obtenir cette clé, il peut facilement déchiffrer des données cryptées, détruire toute la signification du cryptage.

Un autre inconvénient est expliqué par le fait que le logiciel qui traite les données ne peut pas fonctionner avec des données cryptées. Par conséquent, pour pouvoir utiliser ce logiciel, les données doivent d'abord être décodées. Si le logiciel lui-même est compromis, l'attaquant sera capable d'obtenir facilement des données.

Cryptage asymétrique

La clé de cryptage asymétrique fonctionne comme une clé symétrique, dans le fait qu'elle utilise la clé pour encoder les messages transmis. Cependant, au lieu d'utiliser la même clé, il utilise complètement différents pour déchiffrer ce message.

La clé utilisée pour le codage est disponible pour tous les utilisateurs de réseau. En tant que tel, il est connu comme une clé "publique". D'autre part, la clé utilisée pour le déchiffrement est gardée secrète et est destinée à être utilisée dans un manuel privé par l'utilisateur. Par conséquent, il est connu comme la clé "privée". Un cryptage asymétrique est également appelé cryptage clé open clé.

Étant donné que, avec cette méthode, la clé secrète requise pour déchiffrer le message ne doit pas être transmise à chaque fois, et elle n'est généralement connue que pour l'utilisateur (récepteur), la probabilité que le pirateier sera capable de déchiffrer le message de manière significative.

Diffie-Hellman et RSA sont des exemples d'algorithmes utilisant un cryptage à clé ouverte.

Restrictions

De nombreux hackers utilisent la "personne au milieu" comme formulaire d'attaque pour contourner ce type de cryptage. Dans le cryptage asymétrique, vous recevez une clé ouverte utilisée pour échanger de manière sécurisée des données avec une autre personne ou un autre service. Cependant, les pirates informatiques utilisent des réseaux de déception pour vous faire communiquer avec eux, tandis que vous avez été obligé de croire que vous êtes sur une ligne de sécurité.

Pour mieux comprendre ce type de piratage, considérez les deux parties interagissantes à Sasha et à Natasha, et Sergey Hacker avec intention d'intercepter leur conversation. Premièrement, Sasha envoie un message réseau, destiné à Natasha, demandant sa clé publique. Sergey intercepte ce message et reçoit une clé ouverte qui lui est associée et l'utilise pour chiffrer et transmettre un faux message, Natasha, contenant sa clé publique au lieu de Sasha.

Natasha pensant que ce message est venu de Sasha, le crypte maintenant avec l'aide de la clé ouverte de Sergey et l'envoie. Ce message a de nouveau intercepté Sergey, déchiffré, modifié (si désiré), crypté à nouveau avec l'aide d'une clé ouverte, que Sasha a initialement envoyé et renvoyé à Sasha.

Ainsi, lorsque Sasha reçoit ce message, il a été contraint de croire qu'il venait de Natasha et continue de suspecter un jeu malhonnête.

Frapper

La méthode de hachage utilise un algorithme appelé fonction de hachage à générer chaîne spéciale Des données données, connues sous le nom de hasch. Ce hachage a les propriétés suivantes:

  • les mêmes données produisent toujours le même hachage.
  • il est impossible de générer des données sources à partir du hachage seul.
  • Il n'est pas pratique d'essayer différentes combinaisons de données d'entrée pour essayer de générer le même hachage.

Ainsi, la principale différence entre le hachage et deux autres formes de cryptage de données réside dans le fait que, dès que les données sont cryptées (hachage), elles ne peuvent pas être récupérées comme une forme originale (déchiffrée). Ce fait garantit que même si le pirate pirate reçoit un hachage, il sera inutile pour lui, car il ne pourra pas déchiffrer le contenu du message.

Message Digest 5 (MD5) et l'algorithme de hachage sécurisé (SHA) sont deux algorithmes de hachage généralisés.

Restrictions

Comme mentionné précédemment, il est presque impossible de déchiffrer les données du hachage spécifié. Cependant, cela n'est vrai que si fort hachage est mis en œuvre. Dans le cas d'une faible mise en œuvre de la technique de hachage, en utilisant une quantité suffisante de ressources et d'attaques avec une force grossière, un piratage persistant peut trouver les données qui coïncident avec HASHE.

Combinaison de méthodes de cryptage

Comme indiqué ci-dessus, chacune de ces trois méthodes de cryptage souffre de certains inconvénients. Cependant, lorsqu'une combinaison de ces méthodes est utilisée, elles forment un système de cryptage fiable et hautement efficace.

Le plus souvent, les techniques de la clé secrète et ouverte sont combinées et utilisées ensemble. La méthode de clé secrète permet un décryptage rapide, tandis que la méthode de la clé ouverte offre plus de sécurité et plus moyen pratique Transférer la clé secrète. Cette combinaison de méthodes est appelée "enveloppe numérique". Programme de cryptage e-mail PGP est basé sur la technique d'enveloppe numérique.

Les trouvailles de bizutage appliquées en tant que test de fiabilité de mot de passe. Si le système stocke un cas de mot de passe, au lieu du mot de passe lui-même, il sera plus sûr, car même si le pirate informatique tombe entre les mains de ce hachage, il ne pourra pas le comprendre. Au cours de l'inspection, le système vérifiera le hachage du mot de passe entrant et verra si le résultat coïncide avec ce qui est stocké. Ainsi, le mot de passe réel ne sera visible que dans des moments courts lorsque cela doit être changé ou testé, ce qui réduira de manière significative la probabilité de son entrée dans les mains des autres.

Hazing est également utilisé pour authentifier les données à l'aide d'une clé secrète. Le hash est généré à l'aide de données et cette clé. Par conséquent, seules les données et le hachage sont visibles et la clé elle-même n'est pas transmise. Ainsi, si les modifications sont apportées avec les données ou avec hachage, elles seront facilement détectées.

En conclusion, nous pouvons dire que ces méthodes peuvent être utilisées pour coder efficacement les données dans un format illisible pouvant garantir leur sécurité. La plupart des systèmes modernes utilisent généralement une combinaison de ces méthodes de cryptage avec une forte mise en œuvre d'algorithmes pour améliorer la sécurité. Outre la sécurité, ces systèmes fournissent également de nombreux avantages supplémentaires, tels que la vérification de l'ID utilisateur et veiller à ce que les données obtenues ne puissent être forgées.

Sergey Panasenko,
Chef du département du développement de logiciels d'Ankad,
[Email protégé]

Concepts de base

Le processus de conversion de données ouvertes en crypté et inversement est appelé cryptage, et les deux composants de ce processus sont appelés cryptage et décryptage en conséquence. Mathématiquement, la transformation semble être les dépendances suivantes décrivant les opérations avec les informations source:

C \u003d ek1 (m)

M "\u003d dk2 (c),

où m (message) - informations ouvertes (dans la littérature sur la protection de l'information est souvent le nom "Texte source");
C (texte cipher) - le chiffrement (ou la cryptogramme) obtenu à la suite d'un cryptage;
E (cryptage) - la fonction de cryptage qui effectue des transformations cryptographiques au-dessus du texte source;
K1 (clé) - fonction E paramètre E, appelé clé de cryptage;
M "- informations obtenues à la suite du déchiffrement;
D (déchiffrement) - la fonction de déchiffrement qui effectue les transformations cryptimographiques de cryptage inverse sur le ciphertext;
K2 - La clé avec laquelle les informations décryptes sont exécutées.

Le concept de "clé" dans la norme GOST 28147-89 (algorithme de cryptage symétrique) est déterminé comme suit: "L'état secret spécifique de certains paramètres de l'algorithme de conversion cryptographique, qui fournit un choix d'une conversion de l'ensemble de toutes sortes. pour cet algorithme Transformations ". En d'autres termes, la clé est un élément unique avec lequel vous pouvez modifier les résultats de l'algorithme de cryptage: le même texte source lors de l'utilisation de différentes clés sera crypté différemment.

Pour le résultat du déchiffrement avec le message initial (c'est-à-dire à M "\u003d M" \u003d m), effectuant simultanément deux conditions. Premièrement, la fonction de déchiffrement D doit correspondre aux fonctions de cryptage de E. Deuxièmement, la clé de déchiffrement K2 doit correspondre à la clé de cryptage clé .

Si un algorithme de cryptage crypto-résistant a été utilisé pour le cryptage, alors en l'absence de la touche correcte K2, il n'est pas possible d'obtenir m "\u003d M. Cryptoptely est la principale caractéristique des algorithmes de cryptage et indique le degré de complexité de l'obtention de la code source de la clé cryptée du K2.

Les algorithmes de cryptage peuvent être divisés en deux catégories: symétrique et cryptage asymétrique. Pour le premier, le rapport entre les touches de cryptage et de déchiffrement est définie comme K1 \u003d K2 \u003d K (c'est-à-dire les fonctions E et D Utilisez la même clé de cryptage). Avec un cryptage asymétrique, la clé de cryptage K1 est calculée par clé K2 de manière à ce que la transformation inverse ne soit pas possible, par exemple, selon la formule K1 \u003d AK2 MOD P (A et P - Les paramètres de l'algorithme utilisé).

Cryptage symétrique

Son histoire d'algorithmes de cryptage symétriques sont menées avec l'Antiquité: c'est ainsi que l'empereur romain que Julius Caesar au premier siècle avant notre ère a été utilisé par les informations de dissimulation d'informations. ER, et l'algorithme les a inventés est connu sous le nom de cryptosystème de César.

L'algorithme de cryptage des des des des des des des des des des des des des affaires, développé en 1977, jusqu'à récemment, était «Norme américaine», car le gouvernement de ce pays a recommandé de l'appliquer pour la mettre en œuvre. divers systèmes Données de cryptage. Malgré le fait que l'initialement prévu soit prévu au plus 10-15 ans, tente de le remplacer qu'en 1997.

Nous ne considérerons pas les des affaires en détail (presque tous les livres de la liste des matériaux supplémentaires l'ont description détaillée), mais se référer à des algorithmes de cryptage plus modernes. Il convient de noter que la principale raison de modifier la norme de cryptage est son cryptoscope relativement faible, dont la cause est que la clé de la clé des technes n'est que 56 signification bits. Il est connu que tout algorithme crypto-résistant peut être piraté par une attente toutes les options possibles pour les touches de cryptage (la méthode dite de la force grossière - force brute. Attaque). Il est facile de calculer qu'un groupe de 1 million de transformateurs, chacun calculera 1 million de touches par seconde, vérifiez 256 options pour les clés des Touches de la part dans près de 20 heures. Et puisque selon les normes actuelles, cette puissance de calcul est assez réelle, Il est clair que la clé 56 bits est trop courte et algorithme des. Il est nécessaire de remplacer plus "fort".

Aujourd'hui, deux algorithmes de cryptage de crypto-crypto modernes sont de plus en plus utilisés: la norme nationale GOST 28147-89 et la nouvelle US Cryptostandart - AES (Standard de cryptage avancé).

GOST standard 28147-89

L'algorithme défini par GOST 28147-89 (figure 1) a une longueur de la clé de cryptage de 256 bits. Il chiffre des informations par des blocs de 64 bits (de tels algorithmes sont appelés bloc), qui sont ensuite divisés 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-réseau N2 (addition est effectuée selon le module 2, c'est-à-dire une opération de logique XOR est utilisée - "hors ou"), puis le Les sous-blocs sont changés dans des endroits. Cette transformation Un certain nombre de fois est effectué ("rondes"): 16 ou 32, en fonction du mode de fonctionnement de l'algorithme. Dans chaque tour, deux opérations sont effectuées.

Le premier est l'imposition de la clé. Le contenu de la sous-rotation N1 se plie dans le module 2 avec une partie 32 bits de la clé KX. Clé Le cryptage est représenté comme une contenue de 32 bits Confection: K0, K1, K2, K3, K4, K5, K6, 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.

Deuxième opération - remplacement tabulaire. Après avoir appliqué la clé, le sous-bloc N1 est divisé en 8 parties de 4 bits, chacun remplacé conformément au tableau de remplacement de cette partie du sous-bloc. Ensuite, le décalage cyclique binaire du sous-document laissé à 11 bits est effectué.

Remplacement de tableBoîte de substitution - S-Box) sont souvent utilisés dans des algorithmes de cryptage modernes, il convient donc d'expliquer comment une telle opération est organisée. Les valeurs de sortie de la table sont enregistrées dans le tableau. Le bloc de données d'une dimension spécifique (dans notre cas - 4 bits) a sa propre représentation numérique, qui détermine le nombre de la valeur de sortie. Par exemple, si la boîte en S a le formulaire 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1, et l'entrée à 4 bits Bloc "0100" (valeur 4), puis, selon le tableau, la valeur de sortie sera égale à 15, c'est-à-dire "1111" (0 A 4, 1 A 11, 2 A 2 ...).

L'algorithme, défini par GOST 28147-89, prévoit quatre modes de fonctionnement: remplacement simple, préjudice, gamming avec retour et génération d'imitorés. Ils utilisent la même transformation de chiffrement décrite ci-dessus, mais étant donné que le but des modes est différent, cette conversion est effectuée dans chacune d'elles de différentes manières.

En mode remplacement simplepour chiffrer chaque bloc d'informations 64 bits, 32 rounds décrits ci-dessus sont effectués. Dans le même temps, la prise 32 bits est utilisée dans la séquence suivante:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1, etc. - en rondes du 1er au 24;

K7, K6, K5, K4, K3, K2, K1, K0 - En rondes du 25 au 32ème.

Décryptage B. ce mode Il est effectué de la même manière, mais avec une séquence d'application légèrement différente de la connexion:

K0, K1, K2, K3, K4, K5, K6, K7 - en rondes du 1er au 8;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6, etc. - en rondes du 9ème au 32ème.

Tous les blocs sont cryptés indépendamment l'un de l'autre, c'est-à-dire le résultat du cryptage de chaque bloc dépend uniquement de son contenu (le bloc de texte correspondant). S'il existe plusieurs blocs identiques du texte original (ouvert), les blocs correspondants de CIPHERText seront également identiques, ce qui donne un supplément informations utiles Pour essayer d'ouvrir la cryptoanisme de chiffrement. Par conséquent, ce mode est principalement utilisé pour chiffrer la clé de cryptage eux-mêmes (plusieurs systèmes sont très souvent implémentés, dans lesquels les touches sont cryptées les unes sur les autres). Pour le cryptage des informations elles-mêmes, deux autres modes d'exploitation - les gammures de diplôme et de retour d'information sont destinés.

DANS mode Haming Chaque unité de texte ouvert est bloquée par module 2 avec un bloc gamma de chiffrement de 64 bits. Le Cipher Gamma est une séquence spéciale qui donne certaines opérations avec des registres N1 et N2 (voir Fig. 1).

1. Dans les registres N1 et N2, leur remplissage initial est enregistré - la valeur 64 bits appelée Syncopionel.

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

3. Le contenu du registre N1 consiste dans le module (232 - 1) avec la constante C1 \u003d 224 + 216 + 28 + 24 et le résultat de l'addition est enregistré dans le registre N1.

4. Le contenu du registre N2 est formé par module 232 avec une constante C2 \u003d 224 + 216 + 28 + 1 et le résultat de l'addition est écrit au registre N2.

5. Le contenu des registres N1 et N2 sont introduits à la sortie sous la forme d'un bloc gamma de chiffrement de 64 bits (dans ce cas, N1 et N2 forment le premier bloc de la gamma).

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'opération 2.

Pour déchiffrer, le gamma est produit de la même manière, puis l'opération XOR est à nouveau appliquée aux bits du texte crypté et de la gamma. Étant donné que cette opération est réversible, dans le cas d'une gamma correctement générée, le texte source (tableau) est obtenu.

Cryptage et décryptage en mode gamming

Pour déterminer le chiffrement de l'utilisateur, la même clé, la même clé et la même valeur de la synchronisation de la synchronisation, utilisée lors du cryptage des informations, devrait être la même clé. 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 secret, mais il existe des systèmes où le syncopier est le même élément secret que la clé de cryptage. Pour de tels systèmes, la longueur effective de la clé de l'algorithme (256 bits) augmente par un autre 64 bits de synchronisation secrète, qui peut également être considérée comme un élément clé.

Dans le mode de rétroaction de gammage pour remplir les registres N1 et N2, à partir du 2e bloc, pas du bloc précédent de la gamma, mais le résultat du cryptage du bloc précédent du texte ouvert (Fig. 2). Le premier bloc de ce mode est généré par le précédent similaire à celui précédent.

Figure. 2. Développer un chiffre gamma en mode de gammure de retour.

Considérant le mode génération d'imitheds, Il devrait être déterminé par le concept de génération de génération. 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. Lors de la génération d'un imitOD, les opérations suivantes sont effectuées: la première unité de 64 bits du réseau d'informations pour lequel la simplicité est calculée est écrite dans les registres N1 et N2 et cryptées dans le mode abrégé de remplacement simple (les premiers 16 rounds de 32 sont effectués). 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.

Le cycle est répété jusqu'au dernier bloc d'information. À la suite de ces transformations, des contenus 64 bits de registres N1 et N2 ou une partie de celui-ci sont appelés simplicité. La taille de la simplicité est sélectionnée, en fonction de la fiabilité requise des messages: la longueur du SIMPSTAB, r bit est la probabilité que la modification du message reste inaperçue, égale à 2-r. 32 bits de Le simpristening est utilisé, c'est-à-dire la moitié des registres. Cela suffit, car, comme toute somme de contrôle, l'imiton est conçue principalement pour protéger contre les distorsions aléatoires d'informations. Pour protéger les mêmes données sur la modification de données délibérées, d'autres méthodes cryptographiques sont utilisées - principalement une signature numérique électronique.

Lors de l'échange d'informations, le Simpristenger est une sorte de moyen de contrôle supplémentaire. Il est calculé pour le texte ouvert lorsqu'il est crypté des informations et est envoyé avec le CIPHERText. Après le décryptage, une nouvelle valeur imitative est calculée, ce qui est comparé à l'envoi. Si les valeurs ne correspondent pas - cela signifie que le ciphertext a été déformé pendant la transmission ou lorsque le déchiffrement a été utilisé des touches incorrectes. Il est particulièrement utile pour la simplicité de vérifier le décryptage correct information clé Lors de l'utilisation de plusieurs régimes.

L'algorithme de GOST 28147-89 est considéré comme un algorithme très fort - il n'est maintenant pas proposé pour sa divulgation. méthodes efficacesque ceux mentionnés ci-dessus la méthode "force grossière". Sa haute résistance est obtenue principalement en raison de la grande longueur de la clé - 256 bits. Lors de l'utilisation de syncopies secrètes, la longueur de la clé effective augmente à 320 bits et la transe de la table de substitution ajoute des bits supplémentaires. De plus, la résistance de Cryptost dépend du nombre de rondes de transformations, qui, selon GOST 28147-89, devraient être 32 (l'effet complet de la dispersion des données d'entrée est atteint après 8 rounds).

Standard AES.

Contrairement à l'algorithme GOST 28147-89, qui est resté longtemps secret, standard américain cryptage AES.La raison du remplacement du DES a été choisie lors d'une concurrence ouverte, où toutes les organisations et individus intéressés pourraient étudier et commenter des demandeurs d'algorithmes.

Le concours de remplacement de DES a été annoncé en 1997 par l'Institut national des normes et des technologies des États-Unis (Institut NIST - National des normes et de la technologie). La compétition a été présentée 15 algorithmes de contenu développés comme dans le domaine des organisations de cryptographie (Sécurité de la RSA, contrepartie, etc.) et des personnes. Les résultats de la compétition ont été résumés en octobre 2000: le gagnant a été déclaré l'algorithme de Rijndael développé par deux cryptographes de Belgique, Vincent Rijman (Vincent Rijmen) et Joan Daemen.

L'algorithme de Rijndael ne ressemble pas à la plupart des algorithmes de cryptage symétriques bien connus, dont la structure s'appelle le "réseau Faistel" et est similaire au Gost 28147-89 russe. La particularité du réseau FAISTel est que la valeur d'entrée est divisée en deux ou plusieurs sous-domues, dont certaines sont traitées dans chaque cycle le long d'une loi spécifique, après quoi elles sont superposées sur les sous-obstacles non traités (voir Fig. 1).

Contrairement à la norme de cryptage domestique, l'algorithme de Rijndael représente un bloc de données sous la forme d'une matrice d'octets bidimensionnelle de taille 4x4, 4x6 ou 4x8 (il est autorisé à utiliser plusieurs tailles fixes du bloc d'informations cryptées). Toutes les opérations sont effectuées avec des octets distincts de la matrice, ainsi que de colonnes et de lignes indépendantes.

L'algorithme de Rijndael effectue quatre transformations: BS (bytesub) - Remplacement de la table de chaque octet de massif (Fig. 3); SR (Shiftow) est une lignée de la matrice (Fig. 4). Avec cette opération, la première ligne reste inchangée et le reste de manière cyclique à gauche au nombre fixe d'octets, en fonction de la taille de la matrice. Par exemple, pour une matrice de 4x4 dimensions de lignes 2, 3 et 4, il est décalé selon les 1, 2 et 3 octets, respectivement. Vient ensuite MC (MixColumn) - une opération sur la colonne indépendante du tableau (Fig. 5), lorsque chaque colonne selon une règle spécifique est multipliée par une matrice fixe C (x). Et enfin, AK (Addroundkey) - Ajouter une clé. Chaque bit du tableau est formé par le module 2 avec un bit correspondant d'une clé ronde, qui est à son tour défini de manière certaine, calculée à partir de la clé de cryptage (figure 6).


Figure. 3. Opération BS.

Figure. 4. Opération SR.

Figure. 5. Opération MC.

Le nombre de rondes de cryptage (R) dans la variable d'algorithme de Rijndael (10, 12 ou 14 rounds) et dépend de la taille de la clé de bloc et de cryptage (plusieurs tailles fixes sont également fournies pour la clé).

Le décryptage est effectué à l'aide des opérations inverses suivantes. Une table et une table de remplacement sur la table inverse (relativement utilisée lorsque crypté) sont effectuées. Le fonctionnement inverse sur SR est un décalage cyclique à droite, non laissé. Fonctionnement inverse pour la multiplication MC - Multiplication selon les mêmes règles d'une autre matrice D (x), condition satisfaisante: C (x) * d (x) \u003d 1. L'ajout de la clé AK est l'opposé elle-même, car il utilise uniquement une opération XOR . Ces opérations inverse sont appliquées lors du décodage dans une séquence, l'inverse de celle utilisée lorsqu'elle est cryptée.

Rijndael est devenu une nouvelle norme de cryptage de données grâce à un certain nombre d'avantages par rapport aux autres algorithmes. Tout d'abord, il fournit une vitesse de cryptage élevée sur toutes les plateformes: la mise en œuvre du logiciel et du matériel. Il est distingué incomparablement les meilleures possibilités de paralléliser des calculs par rapport aux autres algorithmes présentés pour la concurrence. De plus, les exigences relatives aux ressources pour ses travaux sont minimes, ce qui est important lors de l'utilisation des dispositifs avec des capacités de calcul limitées.

L'inconvénient de l'algorithme ne peut être considéré que par la caractéristique du système non traditionnel. Le fait est que les propriétés des algorithmes basées sur le réseau FAISTEL sont bien étudiées et Rijndael, contrairement à elles, peuvent contenir des vulnérabilités cachées qui ne peuvent être détectées qu'après un certain temps depuis le début de son répandu.

Cryptage asymétrique

Des algorithmes de cryptage asymétriques, comme indiqué précédemment, utilisent deux touches: K1 est la clé de cryptage ou ouverte et K2 est la clé de déchiffrement ou le secret. Touche ouverte Il est calculé à partir du secret: k1 \u003d f (k2).

Les algorithmes de cryptage asymétriques sont basés sur l'utilisation de fonctions unidirectionnelles. Selon la définition, la fonction Y \u003d F (x) est unidirectionnelle si: il est facile de calculer pour tous options possibles x Et pour la plupart des valeurs possibles de Y, il est assez difficile de calculer cette valeur x, à laquelle y \u003d f (x).

Un exemple de fonction unidirectionnelle peut être la multiplication de deux grands nombres: n \u003d p * q. En soi, une telle multiplication est une opération simple. Cependant, la fonction inverse (décomposition n en deux grands multiplicateurs), appelée factorisation, selon les estimations temporaires modernes, est une tâche mathématique plutôt compliquée. Par exemple, développez les multiplicateurs N Dimension 664 bits à P? Q nécessitera une exécution d'environ 1023 opérations et pour le calcul inverse x pour modulaire exponential y \u003d hache mod p avec connais a, p et y (avec la même dimension A et P), environ 1026 opérations doivent être effectuées. Le dernier des exemples ci-dessus est appelé - "Problème de logarithme discret" (DLP - problème de logarithme discret), et ce type de fonctions sont souvent utilisés dans des algorithmes cryptage asymétrique, ainsi que dans des algorithmes utilisés pour créer une signature numérique électronique.

Une autre classe importante de fonctions utilisées dans le cryptage asymétrique est des fonctions unidirectionnelles avec un cours secret. Leur définition stipule que la fonction est unidirectionnelle avec un parcours secret s'il est unidirectionnel et qu'il est possible de calculer efficacement la fonction inverse x \u003d F-1 (Y), c'est-à-dire si le "mouvement secret" est connu (un certain numéro secret, En appliquant des algorithmes de cryptage asymétriques - la valeur de la clé secrète).

Les fonctions unidirectionnelles avec un passage secret sont utilisées dans un algorithme répandu pour le cryptage asymétrique RSA.

Algorithme RSA.

Conçu en 1978 par trois auteurs (Rivest, Shamir, Adleman), il a reçu son nom en fonction des premières lettres des noms des développeurs. La fiabilité de l'algorithme repose sur la complexité de la factorisation des grands nombres et le calcul des logarithmes distincts. Le paramètre principal de l'algorithme RSA est le module SYSTÈME N, selon lequel tous les calculs sont effectués dans le système et N \u003d P * Q (p et q - Secret Simple Numes simples simples, généralement la même dimension).

La clé secrète du K2 est choisie au hasard et doit être conforme aux conditions suivantes:

1

où le nœud est le plus grand diviseur commun, c'est-à-dire que K1 doit être mutuellement simple avec la valeur de la fonction Euler F (N), et celle-ci est égale à la quantité d'entiers positifs dans la gamme de 1 à N, d'une simplicité mutuellement simple. avec n, et est calculé comme F (n) \u003d (p - 1) * (Q - 1).

La clé ouverte K1 est calculée à partir du rapport (k2 * k1) \u003d 1 mod f (n)Et pour cela, l'algorithme d'eucyclide généralisé est utilisé (algorithme de calcul du plus grand diviseur commun). Le cryptage du bloc de données M Selon l'algorithme RSA est comme suit: C \u003d M. [à degrés k1] mod n.. Notez que, parce que dans le véritable cryptosystème à l'aide de RSA, le nombre de K1 est très grand (actuellement sa dimension peut atteindre jusqu'à 2048 bits), calcul direct m [à degrés k1] irréaliste. Pour l'obtenir, une combinaison de multiples constructions M dans un carré avec la multiplication des résultats est appliquée.

L'appel de cette fonction sous de grandes dimensions n'est pas impraticable; En d'autres termes, il est impossible de trouver m selon le C, N et K1 connu. Cependant, avoir une clé secrète de la K2, à l'aide de transformations simples, vous pouvez calculer m \u003d ck2 mod N. Il est évident que, en plus de la clé secrète elle-même, il est nécessaire d'assurer le secret des paramètres P et Q. Si L'attaquant ajoute leurs valeurs, il sera capable de calculer la clé secrète du K2.

Quel cryptage est meilleur?

L'inconvénient principal du cryptage symétrique est la nécessité de transférer des clés de la main à la main. Le manque de cela est très grave, car il est impossible d'utiliser un cryptage symétrique dans des systèmes avec un nombre illimité de participants. Cependant, dans le reste, le cryptage symétrique présente des avantages clairement visibles dans le contexte des défauts graves du cryptage asymétrique.

Le premier est à faible vitesse d'exploitation du cryptage et du déchiffrement, en raison de la disponibilité d'opérations à forte intensité de ressources. Un autre inconvénient de "théorique" - cryptoscope mathématiquement des algorithmes pour le cryptage asymétrique n'est pas prouvé. Cela est dû principalement à la tâche d'un logarithme discrète - jusqu'à ce qu'il soit possible de prouver qu'il est impossible de sa décision pour un temps acceptable. Les difficultés impeccessantes créent et la nécessité de protéger les clés opennes de la substitution - en modifiant la clé publique de l'utilisateur légal, l'attaquant pourra crypter un message important sur sa clé ouverte puis la déchiffrer facilement avec sa clé secrète.

Néanmoins, ces lacunes n'empêchent pas l'utilisation généralisée d'algorithmes de cryptage asymétriques. Il existe aujourd'hui des cryptosystèmes qui prennent en charge la certification des clés ouvertes, ainsi que de combiner des algorithmes d'un cryptage symétrique et asymétrique. Mais c'est le sujet pour un article séparé.

Sources d'information supplémentaires

Ces lecteurs qui sont irrévocablement intéressés par le cryptage, l'auteur recommande d'élargir son horizon à l'aide des livres suivants.

  1. Brassar J. "Cryptologie moderne".
  2. Petrov A. "Sécurité informatique: méthodes de défense cryptographiques".
  3. Romanets Yu. V., TimoFeev P. A., Shagin V. F. "Protection des informations dans les systèmes informatiques modernes".
  4. Sokolov A. V., Shagin V. F. "Protection des informations dans les réseaux et systèmes de sociétés distribués".

Une description complète des algorithmes de cryptage peut être trouvée dans les documents suivants:

  1. GOST 28147-89. Système de traitement d'informations. Protection cryptographique. Algorithme de transformation cryptographique. - M.: GosStandart de l'URSS, 1989.
  2. AES Algorithme: http://www.nist.gov/ae.
  3. L'algorithme RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

La dernière fois que vous avez rencontré les grands et terribles chiffres nationaux. C'était une leçon très difficile, car ces cryptosystèmes sont gardés par des secrets d'état. Direz-vous, où est-ce trop assombri? Et ici, s'il vous plaît! En fait, vous ne devriez pas avoir peur, cette fois-ci, nous ne plongerons pas si profondément en mathématiques et envisager les régimes de cryptage - leurs principes ont déjà appris (bien ou pas bien). Passons à travers les plus grands chiffres étrangers et voyons comment ils sont appliqués dans la pratique.

Feuille de route

C'est la quatrième leçon de la "immersion dans la crypte". Toutes les leçons de cycle dans l'ordre chronologique:

  • Principes de base et codeurs historiques. Comment travailler (et analysé) Ciffre de travail, remplacement, Richard Zorge, Vernama Cipher et Machines de cryptage
  • Ce que c'est, comment la distribution des clés et comment choisir une crypto-
  • Qu'est-ce qu'un réseau FAISTel et quels sont les chiffres de bloc intérieur utilisés dans les protocoles modernes, - GOST 28147-89, "sauterelle"
  • Leçon 4. Ciphers d'outre-mer modernes. Quelle est la différence entre 3DES, AES, Blowfish, Idée, trois poissons de Bruce Schneier et comment ils travaillent (êtes-vous ici)
  • Types de signatures électroniques comme ils fonctionnent et comment les utiliser
  • Leçon 6. Cryptographie quantique. Ce que c'est où est utilisé et comment il aide dans la distribution de clés secrètes, générant des nombres aléatoires et des signatures électroniques

3DES.

Donc, la première dans un certain nombre de chiffres étrangers envisageront 3DES, ou plutôt sa relative la plus proche de la (Standard de cryptage de données), qui n'est déjà pas utilisé comme tel, mais est un ancêtre 3DES.

DES DÉLA ÉTÉ DÉVELOPPEMENT par l'équipe de mathématiques IBM Scientific Lab, qui était déjà familière pour nous Faistel. La première version du chiffre a reçu le nom "Lucifer", mais elle a ensuite été modifiée et en conséquence adoptée comme algorithme de cryptage officiel de données (DEA). Depuis plus de vingt ans, il restait une norme mondiale avant de changer Triple des.

Considérez comment fonctionne l'algorithme des chiffres des des des entreprises. Pour ce faire, vous devez vous rappeler le travail du réseau Faistel. DES est un réseau de Faistel à partir de 16 rounds avec des clés de cryptage symétriques. La longueur du bloc de texte est de 64 bits, la longueur de la clé ronde est de 48 bits. Nous allons donc passer les étapes principales du cryptage des, abaissant le côté mathématique dur:

  1. Le texte, comme avec tout autre cryptage, est divisé en blocs de 64 bits.
  2. Des touches 56 bits génèrent 16 touches rondes de 48 bits.
  3. Chaque bloc est soumis à la permutation, c'est-à-dire que tous les bits du bloc d'entrée sont mélangés selon une table spécifique.
  4. Le bloc se divise sur les moitiés et entre dans le réseau familier de la Faistel, où 16 rounds sont défilés.
  5. Connecter des moitiés.
  6. Et une plus de permutation.

Les permutations initiales et finies n'ont aucune signification pour la cryptographie dans des. Les deux permutations sont sans clés et les tables sont données à l'avance. La raison pour laquelle ils sont inclus dans Descaves ne sont pas clairs et des designers ne disent rien à ce sujet. On peut supposer que l'algorithme était prévu d'être mis en œuvre dans du matériel (sur les puces) et que ces deux permutations complexes étaient supposées rendre difficiles à programmer le mécanisme de cryptage.

En fait, tout ce que vous devez savoir sur le travail de l'algorithme des algorithmes. Si vous expliquez comment la fonction spécifiée dans le réseau FAISTEL fonctionne, tout va bien. Il effectue et réorganise et remplacement (S-Boxes, comment vous souvenez-vous de l'article précédent) et d'addition avec la clé ronde.

Mais retour au triple des ou triples des. Étant donné que la clé 56 bits du DES était vulnérable à Brightuthfors et avec une puissance informatique croissante, ce problème devait être plus nette. En utilisant la technologie disponible aujourd'hui, vous pouvez vérifier un million de clés par seconde. Cela signifie qu'il faudra plus de deux mille ans pour être une force brute pour déchiffrer des des utilisateurs d'un ordinateur avec un seul processeur.

Mais si vous prenez un ordinateur avec un million de cœurs de processeur qui parallèlement à gérer les clés, nous pourrons vérifier toutes les nombreuses clés pendant environ 20 heures. Lorsque DES DESTRITIONS, le coût d'un tel ordinateur était égal à plusieurs millions de dollars, mais il a rapidement diminué. Un ordinateur spécial a été créé en 1998 - et a trouvé la clé de 112 heures.

Pour résoudre le problème de la recherche de clé rapide, les cryptographes étrangers intelligents proposés pour utiliser deux clés et appliquer des deux fois. Cependant, le Double des Doux s'est avéré être vulnérable à la "réunion à l'intermédiaire" attaque. Pour mettre en œuvre cette attaque, un attaquant doit avoir un texte crypté ouvert et correspondant. L'attaquant crypte le texte ouvert sur toutes les touches possibles, rédige les résultats dans le tableau 1. décrypte ensuite le texte crypté avec toutes les touches possibles et écrit le résultat dans le tableau 2. L'attaquant recherche en outre dans les tableaux 1 et 2 de la coïncidence.

L'attaque de ce type se situe dans les touches situées sur le côté du texte crypté et ouvert et nécessite environ quatre fois plus de calcul que la clé d'extension de la clé de l'extension et beaucoup de mémoire pour stocker des résultats intermédiaires. Néanmoins, dans la pratique, l'attaque est réalisable, ce qui rend le double des algorithme inappropriée.

C'est des choses très différentes pour tripler des. L'utilisation de trois clés et l'utilisation d'algorithmes dans la séquence indiquée sur le schéma étendu de celui de quelques années supplémentaires.


Merveilleux des.

Alors qu'est-ce qui est si merveilleux dans des? Cet algorithme de cryptage a été complètement analysé. DES possédait deux qualités très importantes de chiffres à blocs - Avalanche et exhaustivité. Il est temps d'élargir votre dictionnaire cryptographique!
L'effet Avalanche signifie que de petites modifications dans le texte source (ou la clé) peuvent entraîner des modifications importantes dans le texte crypté.

Il a été prouvé que DES a tous les signes de cette propriété.

Bien que les deux blocs source bloque ne coïncident que le bit le plus juste, les blocs du texte crypté diffèrent de 29 bits. Cela signifie que le changement d'environ 1,5% du texte source provoque une modification d'environ 45% de texte crypté.

L'effet de la complétude est que chaque bit de texte crypté doit dépendre de nombreux bits du texte source. Comme nous l'avons déjà découvert, il est également appliqué et réarrangements et remplaçants - toutes les transformations établissent la dépendance de chaque bit de Ciphertex à partir de plusieurs bits du texte source.

Où est-ce que DES appliqué? Oui, presque partout, sa mise en œuvre est présente dans la plupart des bibliothèques de logiciels. Cependant, qui sait comment des despicables des DES est en sécurité dans notre époque? Bien que IBM a fait valoir que le travail de l'algorithme était le résultat de la cryptoanalyse intensive de 17 années de personnes, certaines personnes craignaient, la NSA a-t-elle inséré dans l'algorithme de Lazeki, ce qui permet à l'agence de décrypter facilement les messages interceptés. Le Comité américain du Sénat a soigneusement étudié cette question et, bien sûr, n'a trouvé rien, les accusations avec NSA ont été supprimées, les résultats de l'étude sont néanmoins textiles. En un mot, en Amérique, les rumeurs et les conjectures ont été tordues depuis longtemps, cela vaut la peine de faire confiance aux des ou non. Mais, comme je le pense, la situation est décrite ici par le dicton "Smart ne dira pas, le fou ne comprendra pas." En fin de compte, la NSA a admis que cela ne pouvait pas confier la mission IBM une telle importante et a fait plusieurs ajustements comme la tâche des boîtes de S.

Toute l'existence de celle qu'il était une cible pour diverses méthodes de cryptoanalyse. Cryptoanalitics n'a pas cessé de mesurer les machines pour ouvrir le DES - pour quelle heure pouvant décorer le texte. À cet égard, un nombre indénombrable de différentes modifications de cet algorithme est apparu et 3DES est loin du plus sophistiqué d'entre eux.

Avez-vous aimé l'article? Partager avec des amis: