Algorithmes de cryptage des des et d'AES. DES ALGORITHM ET SON OPTIONS

  • Didacticiel

Salut,% Nom d'utilisateur%!
Beaucoup de gens savent que la norme par défaut dans le domaine du cryptage symétrique a longtemps été considérée. algorithme des.. La première attaque réussie de cet algorithme inutile a été publiée en 1993, 16 ans après l'avoir accepté comme une norme. La méthode que l'auteur nommé la cryptanalyse linéaire, s'il y a 2 47 paires de textes ouverts / cryptés, vous permet d'ouvrir la clé secrète de la Sifra des 2,43 opérations.
Sous la coupe, je vais essayer de résumer les points principaux de cette attaque.

Cryptoanalyse linéaire

Cryptoanalyse linéaire - une sorte d'attaque spéciale sur chiffres symétriquesvisant à restaurer une clé de cryptage inconnu en fonction de la connaissance connue ouvrir des messages et correspondant à des chiffres.

En général, l'attaque basée sur la cryptanalyse linéaire est réduite dans les conditions suivantes. L'attaquant a un grand nombre de textes ouverts / cryptés à la vapeur, obtenus à l'aide de la même clé de cryptage K. Le but de l'attaquant de restaurer partiellement ou totalement clé K.

Tout d'abord, l'attaquant produit une étude de chiffrement et trouve la soi-disant. Analogue statistique, c'est-à-dire l'équation espèce suivanteEffectuer avec probabilité P ≠ 1/2 pour une paire arbitraire ouverte / Texte fermé et clé fixe:
P i1 ⊕ P i2 ... ⊕ P ia ⊕ C I1 ⊕ C I2 ... K I-K IC (1) ,
où p n, c n, k n est n-bits de texte, cipostext et clé.
Une fois que la présente équation se trouve être trouvée, l'attaquant peut restaurer 1 bit d'informations sur la clé à l'aide de l'algorithme suivant

Algorithme 1.
Soit t le nombre de textes pour lesquels la partie gauche de l'équation (1) est 0, puis
Si T\u003e N / 2, où N est le nombre de textes ouverts bien connus.
Suggère que k i1 ⊕ k i2 ⊕ ... ⊕ k ic \u003d 0 (quand p\u003e 1/2) ou 1 (quand p<1/2).
Sinon
Suggère que k i1 ⊕ k i2 ⊕ ... ⊕ k ic \u003d 1 (quand p\u003e 1/2) ou 0 (quand p<1/2).
Évidemment, le succès de l'algorithme dépend directement de la valeur | P-1/2 | Et sur le nombre de paires de paires disponibles / du texte fermé N. plus la probabilité P de l'égalité (1) diffère de 1/2, moins le nombre de textes ouverts N est nécessaire pour l'attaque.

Il y a deux problèmes qui doivent être résolus pour la mise en œuvre réussie de l'attaque:

  • Comment trouver une équation de forme efficace (1).
  • Comme pour une telle équation, obtenez plus d'une bite d'informations sur la clé.
Considérez la solution de ces problèmes sur l'exemple du chiffre des entreprises.

Description des.

Mais pour un début, nous décrivons brièvement le travail de l'algorithme. À propos des des des des des affaires est suffisamment dit. Une description complète du chiffre peut être trouvée dans Wikipedia. Cependant, pour une explication ultérieure de l'attaque, nous avons besoin d'un certain nombre de définitions qui introduisent le mieux à l'avance.

Donc, des Ciphères de bloc basé sur le réseau Faistel. Le chiffre a une taille de bloc de 64 bits et une taille de clé de 56 bits. Considérez le schéma de cryptage de l'algorithme des algorithmes.

Comme on peut le voir sur l'image, les opérations suivantes sont fabriquées en cryptage au-dessus du texte:

  1. Permutation initiale des bits. À ce stade, les bits du bloc d'entrée sont mélangés dans un certain ordre.
  2. Après cela, les bits mélangés sont divisés en deux moitiés, qui arrivent à l'entrée de la fonction FAISTEL. Pour la Standard DES, le réseau FAISTEL comprend 16 rounds, mais il existe d'autres options d'algorithme.
  3. Deux blocs obtenus sur le dernier tour de la conversion sont combinés et une autre permutation est effectuée au-dessus de l'unité résultante.

À chaque tour du réseau de 32 bits junior, les messages passent à travers la fonction F:

Considérez les opérations effectuées à ce stade:

  1. L'unité d'entrée traverse la fonction d'expansion E, qui convertit un bloc de 32 bits en un bloc de 48 bits de long.
  2. Le bloc résultant se plie avec la clé ronde K I.
  3. Le résultat de l'étape précédente est divisé en 8 blocs de 6 bits chacun.
  4. Chacun des blocs obtenus B i passe à travers la fonction de substitution S-Box I, qui remplace la séquence à 6 bits, le bloc 4 bits.
  5. L'unité 32 bits résultante passe à travers la permutation p et renvoie à la suite de la fonction f.

Le plus grand intérêt, du point de vue de la cryptanasalize chiffre, car nous représente des blocs S destinés à cacher la connexion entre les données d'entrée et de sortie de la fonction f. Pour une attaque réussie sur DES, nous construisons d'abord des analogues statistiques pour chacun des blocs S, puis les répandons à l'ensemble du chiffrement.

Analyse S Blocks

Chaque bloc S prend une séquence de 6 bits en entrée et une valeur fixe à 4 bits est renvoyée pour chaque séquence de ce type. Ceux. Il n'y a que 64 options pour l'entrée et la sortie. Notre tâche consiste à montrer la relation entre les données d'entrée et de sortie des blocs. Par exemple, pour le troisième bloc de SIFRA DES, le 3ème bit de la séquence d'entrée est égal au 3ème bit de la séquence de sortie dans 38 cas sur 64. Par conséquent, nous avons trouvé l'analogue statistique suivant pour le troisième s -Bloquer:
S 3 (x) \u003d x, qui est effectué avec la probabilité p \u003d 38/64.
Les deux parties de l'équation représentent 1 bits d'informations. Par conséquent, si les parties gauche et droite étaient indépendantes les unes des autres, l'équation aurait été effectuée avec une probabilité d'égale à 1/2. Ainsi, nous venons de démontrer la relation entre les données d'entrée et de sortie du 3ème bloc de l'algorithme de l'algorithme.

Considérez comment vous pouvez trouver l'analogue statistique du bloc S dans le cas général.

Pour S-Block S A, 1 ≤ α ≤ 63 et 1 ≤ ≤ 15, la valeur de NS A (α, β) décrit le nombre de fois sur 64 bits d'entrée XOR possibles SA superposés sur des bits α sont égaux aux bits de sortie XOR. imposé aux bits β, c'est-à-dire
où le symbole est logique I.
Les valeurs de α et β, pour lesquelles NS A (α, β) diffèrent plus de 32, décrivent l'analogue statistique le plus efficace du bloc S-Block S A.

L'analogue le plus efficace a été trouvé dans le 5ème bloc S de Cipher des des α \u003d 16 et β \u003d 15 NS 5 (16, 15) \u003d 12. Cela signifie que l'équation suivante est vraie: z \u003d y ⊕ y ⊕ y ⊕ y, où Z est la séquence d'entrée du bloc S, et y est la séquence de sortie.
Ou, compte tenu du fait que dans l'algorithme des algorithme avant d'entrer dans le bloc S, les données sont pliées dans le module 2 avec une clé ronde, c'est-à-dire Z \u003d x ⊕ k obtenir
X ⊕ y ⊕ y ⊕ y ⊕ y \u003d k, où x et y sont l'entrée et la sortie de la fonction F excluant les permutations.
L'équation résultante est effectuée sur toutes les rondes de l'algorithme des algorithmes avec la même probabilité P \u003d 12/64.
Le tableau suivant montre une liste d'efficacité, c'est-à-dire Avoir la plus grande écart de p \u003d 1/2, analogues statistiques pour chaque bloc S de l'algorithme des algorithmes.

Bâtir des analogues statistiques pour plusieurs roundov des

Montrez-nous maintenant comment vous pouvez combiner les analogues statistiques de plusieurs rondes et éventuellement obtenir un analogue statistique pour l'ensemble du chiffrement.
Pour ce faire, considérez la version de trois ans de l'algorithme:

Appliquez l'analogue statistique effectif du 5ème bloc S pour calculer certains morceaux du X (2).
Nous savons que la probabilité de 12/64 dans la fonction F est effectuée l'égalité X ⊕ y ⊕ y ⊕ y ⊕ y \u003d k, Lorsque X est le deuxième bit d'entrée du 5ème bloc S, il est essentiellement le 26e bit de la séquence obtenue après avoir développé les bits d'entrée. L'analyse de la fonction d'extension peut être installée que le 17ème bit du bit X (1) de la séquence X (1) est en place 26 bits.
De même, Y, Y, Y, Y est essentiellement les 17ème, 18ème, 19ème et 20e bit de la séquence obtenus avant P. réarrangé P. réarrangé, nous obtenons que les bits y, ..., y sont réellement bits y (1 ), y (1), y (1), y (1).
La clé B Key impliquée dans l'équation est de 26 bits reliant le premier tour de K1, puis l'analogue statistique acquiert le formulaire suivant:
X (1) ⊕ y (1) ⊕ y (1) ⊕ y1 ⊕ y (1) \u003d k1.
D'où, X (1) ⊕ k1 \u003d y (1) ⊕ y (1) ⊕ y (1) ⊕ y (1)(2) Avec probabilité p \u003d 12/64.
Connaissant 3, 8, 14, 25 bits de la séquence Y (1) peut être trouvé 3, 8, 14, 25 bits de séquence x (2):
X (2) ⊕ x (2) ⊕ x (2) x x (2) \u003d PL ⊕ PL ⊕ PL ⊕ (1) ⊕ Y (1) ⊕ Y (1) ⊕ Y (1) ⊕ Y (1)ou en prenant en compte l'équation (2)
X (2) ⊕ x (2) ⊕ x (2) x x (2) \u003d PL ⊕ PL ⊕ PL ⊕ x (1) ⊕ K1 (3) avec une probabilité de 12/64.

Nous trouvons une expression similaire à l'aide du dernier tour. Cette fois, nous avons une équation
X (3) ⊕ k3 \u003d y (3) ⊕ y (3) ⊕ y (3) ⊕ y (3).
Comme
X (2) ⊕ x (2) x x (2) x x (2) \u003d с ⊕ С ⊕ ⊕ ⊕ ⊕ с y (3) ⊕ Y (3) ⊕ Y (3) ⊕ Y (3)
Nous obtenons ça
X (2) ⊕ x (2) x x (2) x x (2) \u003d с ⊕ ⊕ ⊕ с ⊕ с x (3) ⊕ K3(4) Avec une probabilité de 12/64.

Assimiler les parties appropriées des équations (3) et (4) obtenir
Cl ⊕ с с ⊕ СL ⊕ ⊕ ⊕ ⊕ x (3) ⊕ K3 \u003d PL ⊕ PL ⊕ PL ⊕ PL ⊕ PL ⊕ x (1) ⊕ K1 Avec probabilité (12/64) 2 + (1-12 / 64) 2.
Prendre en compte le fait que x (1) \u003d pr et x (3) \u003d cr nous obtenons un analogue statistique
Cl ⊕ cr ⊕ pl ⊕ pr \u003d k1 ⊕ k3 (5) ,
qui est effectuée avec une probabilité (12/64) 2 + (1-12 / 64) 2 \u003d 0,7.
L'analogue statistique décrit ci-dessus peut être représenté graphiquement comme suit (les bits de la figure sont numérotés à droite et à partir de zéro):

Tous les bits du côté gauche de l'équation sont connus de l'attaquant, il peut donc appliquer l'algorithme 1 et trouver la valeur de K1 ⊕ K3. Laissez-nous montrer comment il peut être ouvert non pas avec un analogue statistique donné, 1 et 12 bits de la clé de cryptage K.

Attaque sur des des avec un texte ouvert célèbre

Nous donnons un moyen avec lequel vous pouvez développer l'attaque et obtenir 6 bits à la fois. Connectez le premier tour.
En élaborant l'équation (5), nous avons tenu compte du fait que nous ne sommes pas connus pour valoriser F1 (PR, K1). Par conséquent, nous avons utilisé son analogue statistique de K1 ⊕ PR.
Revenons au lieu d'exprimer la valeur de PR K1 ⊕ F1 (PR, K1) et nous obtenons l'équation suivante:
Cl ⊕ cr ⊕ pl ⊕ F1 (PR, K1) \u003d K3 (6) qui sera effectué avec une probabilité 12/64. La probabilité a changé depuis que nous avons quitté l'analogue statistique du troisième tour, toutes les autres valeurs sont fixes.

Nous avons déjà déterminé ce qui précède que les bits d'entrée du 5ème bloc S sont influencés par la valeur F1 (PR, K1), à savoir les principaux bits de la clé K1 et des bits du bloc PR. Laissez-nous montrer comment vous n'avez qu'un ensemble de textes ouverts / fermés, vous pouvez restaurer la valeur de K1. Pour ce faire, nous utilisons l'algorithme 2.

Algorithme 2.
Soit n le nombre de texte ouvert / fermé connu devant l'attaque. Ensuite, ouvrez la clé, vous devez procéder comme suit.
Pour (i \u003d 0; i<64; i++) do
{
Pour (j \u003d 0; j {
Si (SL J ⊕ CR J ⊕ PL J ⊕ F1 (PR J, I) \u003d 0) Puis
T i \u003d t i +1
}
}
En tant que séquence probable K1, une telle valeur que j'ai prise, dans laquelle l'expression | t i -n / 2 | Il a la valeur maximale.

Avec un nombre suffisant de textes ouverts bien connus, l'algorithme sera plus susceptible de renvoyer la valeur correcte de six bits du premier tour de K1. Ceci s'explique par le fait que si la variable i n'est pas égale à K1, la valeur de la fonction F1 (PR J, K) sera aléatoire et le nombre d'équations pour cette valeur I, dans laquelle le côté gauche est zéro. s'efforcera de n / 2. Dans le cas, si la prise est généralement correcte, la partie gauche sera avec une probabilité de 12/64 égale au bit fixe de K3. Ceux. Il y aura une déviation significative de N / 2.

Après avoir reçu 6 bits de K1, vous pouvez opencer simultanément les 6 bits de K3. Tout ce qui est nécessaire pour cela est de le remplacer dans l'équation (6) C par p et k1 sur K3:
PL ⊕ PR ⊕ CL ⊕ F3 (CR, K3) \u003d K1.
L'algorithme 2 retournera la valeur correcte de K3 car le processus de décryptage de l'algorithme des algorithmes est identique au processus de cryptage, mais la séquence clé change dans des endroits. Donc, sur le premier tour de déchiffrement, la clé K3 est utilisée et sur la dernière clé K1.

Ayant obtenu 6 bits de la connexion K1 et K3, l'attaquant restaure 12 bits d'un chiffrement commun K, car Les clés rondes sont la permutation habituelle de la clé K. Le nombre de textes ouverts requis pour une attaque réussie dépend de la probabilité d'analogique statistique. Pour ouvrir 12 bits de la clé des 3 rounds, il suffit de 100 paires de textes ouverts / fermés. Pour ouvrir 12 bits d'un DES 16 rondes, environ 2 44 paires de textes seront nécessaires. Les 44 bits restants de la clé sont ouverts par le buste habituel.

Algorithme Des.

Les principaux avantages de l'algorithme des algorithmes:

· Une seule clé est utilisée 56 bits;

· Cryer un message avec un paquet, vous pouvez utiliser n'importe quel autre pour déchiffrer;

· La simplicité relative de l'algorithme assure un traitement à grande vitesse;

· Résistance assez élevée de l'algorithme.

DES CRYPTS Les blocs de données 64 bits à l'aide d'une touche 56 bits. Decriphering in DES est une opération de cryptage inverse et est effectuée par répétition des opérations de cryptage dans l'ordre inverse (malgré des preuves apparentes, il n'est pas toujours fait. Plus tard, nous considérons les chiffres dans lesquels le cryptage et le déchiffrement sont effectués selon différents algorithmes).

Le processus de cryptage réside dans la permutation initiale des bits du bloc 64 bits, de seize cycles de cryptage et, enfin, inverser le réarrangement des bits (Fig. 1).

Il convient de noter immédiatement que toutes les tables données dans cet article sont standard et devraient donc être incluses dans votre mise en œuvre de l'algorithme inchangé. Toutes les permutations et codes des tableaux sont sélectionnés par des développeurs de manière à maximiser le processus de déchiffrement en sélectionnant une clé. La structure de l'algorithme des des algorithmes est illustrée à la Fig. 2.

Fig.2. Structure de l'algorithme de cryptage des

Supposons du fichier un autre bloc de 8 octets T, qui est converti à l'aide de la matrice de permutation initiale initiale IP (Tableau 1) comme suit: Bit 58 de l'unité T devient bit 1, bit 50 bits 2, etc., qui donnera En conséquence: T (0) \u003d IP (t).

La séquence résultante des bits T (0) est divisée en deux séquences de 32 bits chacune: L (0) - bits gauche ou plus âgés, r (0) - bits droits ou plus jeunes.

Tableau 1: Permutation initiale Matrix IP

58 50 42 34 26 18 10 02

60 52 44 36 28 20 12 04

62 54 46 38 30 22 14 06

64 56 48 40 32 24 16 08

57 49 41 33 25 17 09 01

59 51 43 35 27 19 11 03

61 53 45 37 29 21 13 05

63 55 47 39 31 23 15 07

Ensuite, cryptage composé de 16 itérations. Le résultat de la I-ème itération est décrit par les formules suivantes:

R (i) \u003d l (i-1) xor f (r (i-1), k (i)),

où Xor est une opération exclue ou.

La fonction F s'appelle la fonction de cryptage. Ses arguments sont la séquence 32 bits R (I-1) obtenue par (I-1) - -th Itération et la clé K (I) 48 bits, qui résulte de la conversion de la clé 64 bits K . En détail, la fonction de cryptage et l'algorithme d'obtention des touches de (i) sont décrites ci-dessous.

À la 16ème itération, les séquences R (16) et L (16) sont obtenues (sans permutation), qui sont condensées dans la séquence 64 bits R (16) L (16).

Ensuite, les positions du bit de cette séquence sont réarrangées conformément à la matrice IP -1 (tableau 2).

Tableau 2: Matrix de changement d'inverse IP -1

40 08 48 16 56 24 64 32

39 07 47 15 55 23 63 31

38 06 46 14 54 22 62 30

37 05 45 13 53 21 61 29

36 04 44 12 52 20 60 28

35 03 43 11 51 19 59 27

34 02 42 10 50 18 58 26

33 01 41 09 49 17 57 25

Les matrices IP -1 et IP sont les suivantes: La valeur du 1er élément de la matrice IP -1 est de 40, et la valeur de l'élément matriciel 40ème IP est 1, la valeur de l'élément matriciel 2ème IP -1 est 8 et la valeur de la 8ème matrice IP est 2, etc.

Le processus de déchiffrement des données est inversible au processus de cryptage. Toutes les actions doivent être complétées dans l'ordre inverse. Cela signifie que les données décodées sont d'abord réarrangées conformément à la matrice IP-1, puis sur la séquence du bit R (16) L (16) Les mêmes actions sont effectuées comme dans le processus de cryptage, mais dans l'ordre inverse. .

Le processus de décryptage itératif peut être décrit par les formules suivantes:

R (i-1) \u003d l (i), i \u003d 1, 2, ..., 16;

L (I - 1) \u003d R (I) XOR F (L (I), K (I)), I \u003d 1, 2, ..., 16.

À la 16ème itération, les séquences L (0) et R (0) sont obtenues, qui sont concaténés dans une séquence de 64 bits L (0) R (0).

Ensuite, les positions des bits de cette séquence sont réarrangées conformément à la matrice IP. Le résultat d'une telle permutation est la séquence source 64 bits.

Envisagez maintenant la fonction de cryptage F (R (I - 1), k (i)). Schématiquement il est montré à la Fig. 3.


Fig.3. Calcul de la fonction F (R (I - 1), K (i))

Pour calculer la valeur de la fonction F, les fonctions suivantes sont utilisées:

E - Extension d'une séquence 32 bits jusqu'à 48 bits,

S1, S2, ..., S8 - Conversion du bloc 6 bits en 4 bits,

P - Permutation des bits dans des séquences 32 bits.

La fonction d'extension E est définie Tableau 3. Conformément à cette table, les 3 premiers bits E (R (I-1)) sont des bits 32, 1 et 2 et les derniers 31, 32 et 1.

Tableau 3: Fonction d'expansion e

32 01 02 03 04 05

04 05 06 07 08 09

08 09 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 01

Le résultat de la fonction E (R (I-1)) est une séquence de 48 bits qui consiste en module 2 (opération XOR) avec une clé K (I) de 48 bits. Une séquence de 48 bits est obtenue, qui est divisée en huit blocs de 6 bits B (1) B (2) B (3) B (3) B (4) B (4) B (5) B (6) B (6) B (7) B (8) B (8). C'est à dire:

E (R (I - 1)) XOR K (I) \u003d B (1) B (2) B (2) ... B (8).

Fonctions S1, S2, ..., S8 sont définies Tableau 4.

Tableau 4.

Tableau 4. Des explications supplémentaires sont nécessaires. Soit un bloc 6 bits B (j) \u003d b1b2b3b4b5b6, puis un nombre binaire B1B6 spécifie le numéro de la ligne matricielle de la matrice, et B2B3B4B5 est le numéro de colonne. Le résultat SJ (B (J)) sera un élément de 4 bits située à l'intersection des rangées et de la colonne spécifiées.

Par exemple, dans (1) \u003d 011011. Ensuite, S1 (In (1)) est situé à l'intersection de la chaîne 1 et de la colonne 13. Dans la colonne 13 de la chaîne 1, la valeur 5. Ainsi, S1 (011011) \u003d 0101.

En appliquant l'opération de sélection à chacun des blocs de 6 bits B (1), B (2), ..., B (8), nous obtenons la séquence 32 bits S1 (B (1)) S2 (B (B ( 2)) S3 (B (3)) ... S8 (B (8)).

Enfin, pour obtenir le résultat de la fonction de cryptage, vous devez réorganiser les bits de cette séquence. À cette fin, la fonction de permutation P (tableau5) est appliquée. Dans la séquence d'entrée, les bits sont désactivés de manière à ce que le bit 16 devienne un peu 1, et un peu 7 - bit 2, etc.

Tableau 5: Perelovka P

De cette façon,

f (R (I - 1), K (I)) \u003d P (S1 (B (1)), ... S8 (B (8)))

Pour compléter la description de l'algorithme de cryptage de données, il reste à diriger l'algorithme d'obtenir des clés de 48 bits à (i), i \u003d 1 ... 16. Sur chaque itération, une nouvelle valeur clé K (I) est utilisée, ce qui est calculé à partir de la clé initiale K. K représente un bloc de 64 bits avec huit bits de contrôle de parité situées dans les positions de 8,16,24,32,40,48 , 56, 64.

Pour éliminer les bits de contrôle et réorganiser le reste, la fonction G de la préparation de la clé initiale est utilisée (tableau 6).

Tableau 6.

Matrix g de la préparation de la clé initiale

57 49 41 33 25 17 09

01 58 50 42 34 26 18

10 02 59 51 43 35 27

19 11 03 60 52 44 36

63 55 47 39 31 23 15

07 62 54 46 38 30 22

14 06 61 53 45 37 29

21 13 05 28 20 12 04

Le résultat de la transformation g (k) est divisé en deux blocs C (0) et D (0) 28 bits, avec C (0) sera composé de bits 57, 49, ..., 44, 36 touches K, et d (0) il s'agira de bits 63, 55, ..., 12, 4 touches K. Après avoir déterminé C (0) et D (0), C (I) et D (i), i \u003d 1. .. 16 sont définis de manière récursive. Pour ce faire, utilisez un décalage cyclique vers la gauche à un ou deux bits en fonction du numéro d'itération, comme indiqué dans le tableau 7.

Tableau 7.

Table de décalage pour le calcul de clé

Numéro d'itération Shift (bit)
01 1
02 1
03 2
04 2
05 2
06 2
07 2
08 2
09 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1

La valeur résultante est à nouveau "mélangée" conformément à la matrice H (tableau 8).

Tableau 8: Matrix H Traitement final

14 17 11 24 01 05

03 28 15 06 21 10

23 19 12 04 26 08

16 07 27 20 13 02

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

K Touche K (I) comprendra des bits 14, 17, ..., 29, 32 séquences C (i) D (i). De cette façon:

K (i) \u003d h (c (i) d (i))

Le schéma de principe de l'algorithme de calcul de clé est illustré à la Fig.4.

Fig.4. Schéma de principe de l'algorithme de calcul de clé K (i)

La restauration du texte source est effectuée selon cet algorithme, mais vous utilisez d'abord la clé

K (15), puis - k (14) et ainsi de suite. Maintenant, vous devriez être clair pourquoi l'auteur recommande de constamment utiliser les matrices ci-dessus. Si vous commencez à envoyer, vous devez avoir un chiffre très secret, mais vous ne pouvez pas le révéler plus tard!

Des modes de fonctionnement des algorithmes

Pour la satisfaction la plus complète avec toutes les exigences relatives aux systèmes de cryptage commerciaux, plusieurs modes de fonctionnement de l'algorithme des algorithmes sont mis en œuvre. Les modes les plus répandus obtenus:

· Cideroblot électronique (CodeBook électronique) - BCE;

· Capher Block chaîning - CBC;

· Commentaires numériques (rétroaction en chiffrement) - BFC;

· Commentaires externes (rétroaction de sortie) - OFB.

Dans ce mode, le fichier source M est divisé en blocs de 64 bits (8 octets): m \u003d m (1) m (2) ... m (n). Chacun de ces blocs est codé indépendamment en utilisant la même clé de cryptage (Fig. 5). L'avantage principal de cet algorithme est la simplicité de la mise en œuvre. Inconvénient - Stabilité relativement faible contre les cryptanalytiques qualifiées.

Des. (Stand de cryptage de données) est un algorithme de cryptage symétrique dans lequel une clé est utilisée, à la fois pour le cryptage et pour déchiffrer les données. DES DESSEST DÉVELOPÉES PAR IBM et approuvé par le gouvernement américain en 1977 en tant que norme officielle (FTPS 46-6-3). DES Les blocs de 64 bits et de 16 cycles du réseau FAISTel utilisent une clé avec une longueur de 56 bits pour chiffrer. L'algorithme utilise une combinaison de transformations non linéaires (blocs S-blocs) et linéaires (permutations E, IP, IP-1). Pour des recommandations plusieurs modes:
  • book de code électronique (BCE - Livre de code électronique),
  • blocs de mode d'embrayage (CSS - Cipher Block chaîninging),
  • mode de rétroaction de rétroaction en chiffrement (BFC - Retour en chiffre),
  • mode de rétroaction de sortie (OFB - Retour de sortie).

    Chiffre de bloc

    Les données d'entrée pour le chiffrement de bloc sert une taille de bloc N Bit et une touche K-Bit. À la sortie, après avoir appliqué la transformation de cryptage, un bloc crypté N-bits est obtenu et des différences mineures dans les données d'entrée en règle conduisent à un changement significatif dans le résultat. Les chiffres à blocs sont implémentés par une utilisation répétée aux blocs du texte source de certaines transformations de base.
    Transformations de base:
  • Conversion confortable sur une partie locale du bloc.
  • Conversion simple entre les pièces de blocs. Étant donné que la conversion est faite en bloc, une étape séparée, la séparation des données source dans les blocs de la taille requise est requise. Dans ce cas, quel que soit le format des données source, que ce soit des documents texte, des images ou d'autres fichiers, ils doivent être interprétés en espèces binaires et uniquement après la division en blocs. Tout ce qui précède peut être effectué par des outils de logiciels et d'appareils.

    Réseau de transformation FAISTEL

    Cette transformation sur les vecteurs (blocs) représente la moitié gauche et droite du registre de changement de vitesse. Dans l'algorithme des des affaires, une conversion directe du réseau de campagne dans le cryptage est utilisée (voir Fig. 1) et la conversion inverse du réseau FAISTel vers du déchiffrement (voir fig. 2).

    Schéma de cryptage des algorithmes


    Source Text - Bloc 64 bits.
    Texte crypté - Bloc 64 bits.

    Le processus de cryptage consiste en une permutation initiale, 16 cycles de cryptage et la permutation finale.
    Considérez le diagramme détaillé de l'algorithme des algorithmes:
    L i r i \u003d 1,2 \\ ldots.alevia et la moitié droite du bloc 64 bits L Je r i
    k i - 48 bits clés
    f - Fonction de cryptage
    IP - Permutation initiale
    IP -1 - Permutation ultime. Selon la table, les 3 premiers bits de la propriété IP résultante de la propriété intellectuelle (T) après la permutation initiale de la propriété intellectuelle sont des bits 58, 50, 42 de l'unité d'entrée T et ses 3 derniers bits sont des bits 23 , 15, 7 bloc d'entrée. En outre, le bloc IP (T) 64 bits est impliqué dans les 16 cycles de la transformation de la Faistel.

    16 cycles de conversion de Faistel:

    Pause IP (T) en deux parties L 0, R 0, où L 0, R 0 - correspondant à 32 bits seniors et 32 \u200b\u200bbits plus jeunes de l'adresse IP T0 (T) \u003d L 0 R 0

    Soit t i -1 \u003d l i -1 r i -1 être le résultat (I-1) de l'itération, puis le résultat de la i-th interface t i \u003d l i r i est déterminé:

    L i \u003d r i - 1 La moitié gauche L I est égale à la moitié droite du précédent vecteur l i-1 r i-1. Et la moitié droite de R i est un peu addition de L I - 1 et F (R I - 1, K I) par module 2.

    Dans la transformation FAISTEL 16 cycles, la fonction F joue le rôle du cryptage. Considérez en détail la fonction f.

    Les arguments de la fonction F sont le vecteur 32 bits r i-1, 48 morsures KE I, qui sont le résultat de la conversion de la touche Source de 56 morsures Cipher K.

    Pour calculer la fonction F, la foulée d'extension E, la conversion S, constituée de 8 transformations de blocs S et de la permutation de P.

    La fonction E est élargi avec le vecteur 32 bits R I - 1 à 48 bits Vecteur E (R I - 1) en double opposant quelques bits de R i - 1. L'ordre du vecteur E (RI-1) est spécifié dans le tableau 2. Les trois premiers bits du vecteur E (R I - 1) sont des bits 32, 1, 2 du vecteur R i -1. Le tableau 2 montre que les bits 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29, 32 sont dupliqués. Les 3 derniers bits du vecteur E (RI-1) sont des bits 31, 32, 1 vecteur r i-1. L'E (R I -1) obtenu après le réarrangement est formé par module 2 avec des touches K I, puis représentées par huit blocs consécutifs B 1, B 2, ... B 8.
    E (R I - 1) \u003d B 1 B 2 ... B 8
    Chaque b j est un bloc de 6 bits. Ensuite, chacun des blocs b j est transformé en bloc 4 bits B "J utilise des transformations s j. La conversion s j est déterminée par le tableau 3. Supposons que b 3 \u003d 101111 et nous voulons trouver B" 3. La première et dernière décharge B 3 sont une entrée binaire du nombre A, la reconnaissance de la fonction F (R i-1, KI) (32 bits) (32 bits) est obtenue par la permutation de P appliquée à 32 bits bloc B "1 b "2 ... B" 8. Permutation P set Tableau 4.
    f (R I - 1, K I) \u003d P (B "1 B" 2 ... B "8)
    Selon le tableau 4, les quatre premiers bits du vecteur résultant après la fonction F Fonction F est le bit 16, 7, 20, 21 du vecteur B "1 B" 2 ... B "8

    Génération de clé K i.
    Les kershes k I sont obtenus à partir de la clé initiale K (56 bits \u003d 7 octets ou 7 caractères en ASCII). Huit bits situés dans des positions 8, 16, 24, 32, 40, 48, 56, 64 sont ajoutés à K Touche de sorte que chaque octet contienne un nombre impair d'unités. Ceci est utilisé pour détecter des erreurs lors de l'échange et du stockage des touches. Ensuite, faites la permutation de la clé étendue (à l'exception des bits ajoutés 8, 16, 24, 32, 40, 48, 56, 64). Une telle permutation est définie comme dans le tableau 5.

    Cette permutation est déterminée par deux blocs C 0 et D 0 à 28 bits chacun. Les 3 premiers bits C 0 sont des bits 57, 49, 41 clés étendues. Et les trois premiers bits d 0 sont des bits 63, 55, 47 clés étendues. C i, d i i i \u003d 1,2,3 ... sont obtenus à partir de C I-1, D i-1 par un ou deux décalages cycliques gauche selon le tableau 6.

    K Key I, I \u003d 1, ... 16 se compose de 48 bits choisis parmi les morceaux du vecteur C I D i (56 bits) selon le tableau 7. Les premier et second bits K I sont des morceaux 14, 17 du vecteur c i d i

    La dernière permutation de IP - 1 agit sur T 16 et est utilisée pour restaurer la position. C'est de retour à la permutation de la propriété intellectuelle. La dernière permutation est déterminée par le tableau 8.
    Modes d'utilisation de DES. DES peut être utilisé dans quatre modes.

  • Mode carnet de code électronique (Book de code électronique): utilisation normale des DES comme chiffre de bloc (voir Fig. 7).
  • Mode d'embrayage de bloc (CSS - Ciphers en chute) (voir fig. 8). Chaque bloc suivant C i i i i\u003e \u003d 1, avant le cryptage, il consiste en module 2 avec le bloc de texte ouvert suivant M i + 1. Vecteur C 0 - Vecteur initial, il change quotidiennement et enregistré secret.
  • Mode de rétroaction CFB-BCF (BFC - Retour de chiffrement) (voir la figure 9). En mode BCF, bloquer "gamma" z 0, Z 1, ... Z i \u003d bureau (C i-1) est produit. Le vecteur initial C 0 est enregistré secret.
  • Mode de rétroaction de sortie (OFB - Retour de sortie) (voir Fig. 10). En mode OFB, un bloc "gamma" z 0, Z 1, ..., i\u003e \u003d 1 est produit
  • Le mode ECB est facile à mettre en œuvre, mais il est possible de mener une critique »
  • Dans les modes ECB et OFB, la distorsion lors de la transmission d'un bloc de Ciphext de 64 bits C I I I I Permet de distorsion après avoir décrit uniquement le blocage ouvert correspondant M i, de sorte que de tels modes sont utilisés pour transmettre des canaux de communication avec un grand nombre de distorsions.
  • Dans les modes CBC et BFC, la distorsion lors de la transmission d'un bloc de texte crypté avec I entraîne une distorsion de deux blocs de texte ouvert M I, M i + 1. Le changement de MI conduit à un changement dans tous les autres blocsm i + 1, M i + 2 ... Cette propriété est utilisée pour générer un code d'authentification de message.
  • Standard de cryptage de données (DES) est une norme de cryptage de données aux États-Unis dans les années 80 du XXe siècle. Parmi les chiffres, il est considéré comme un "retraité", tout en restant un cheval de travail en cryptographie. DES a cessé d'être adapté à des équipements superfas et de grandes quantités de données en raison des limites de 56 bits de la clé et de 64 bits sur les données. Cependant, il est encore utilisé.

    Qu'est-ce que Block Ciphers?

    Algorithme de chiffrement des des blocs. Au cours des 20 à 30 dernières années, de nombreux chiffres de bloc ont été créés, mais créant un bon chiffre, ce qui serait sûr, la tâche est assez complexe. Il est important que le chiffre possédait des caractéristiques qui lui permettront de fonctionner dans de nombreux domaines et secteurs.

    Les chiffres de bloc sont composés de plusieurs itérations pour utiliser alternativement certains chiffres. Chaque itération est appelée une ronde. À mesure que la pratique montre, même certains des algorithmes primitifs avec une utilisation cohérente sont capables de créer des chiffres fiables. Le DES ALGORITHM est un exemple qui est resté fiable et instable de 20 ans.

    Une telle approche dans le développement de chiffres apporte un processus important et simplifie l'analyse de la sécurité. Par exemple, l'attaque de test sur le chiffre de bloc commence par le nombre minimum de rondes et continue méthodiquement avec une augmentation du nombre de tours.

    Usage des.

    Bien que DES DESC soit reconnue comme obsolète et non satisfaisante aux exigences modernes, elle peut être utilisée, par exemple, sous la forme de 3DES, lorsque le chiffre applique trois fois de suite. Cette approche supprime la restriction de la taille de la clé, mais le bloc de données cryptées reste le même. À une époque, des des Ciphers assez résistants et crypto-crypto. Maintenant, ce n'est pas le cas, et 3DES et du tout au travail trois plus lentement. Malgré cela, DES DESSEST TOUJOURS UTILISÉES dans un certain nombre de systèmes, mais sa demande est interdite dans de nouveaux projets.

    Officiellement, la Sifra des algorithme était standard aux États-Unis jusqu'en 1998. En 1997, la création d'une nouvelle norme, qui a été nommée système), et bien que la cryptualyse montre que une tentative de piratage durable conduit à une variété d'équations non linéaires, les méthodes analytiques ne sont pas en mesure de résoudre le problème - son endroit faible est une Petites nombreuses clés possibles. Leur quantité est 2 56 et toutes les options peuvent être triées par des technologies modernes pendant une période relativement courte.

    Un tour dans l'algorithme

    Pour plus de clarté, la présentation et la description de l'algorithme des algorithmes utilisent un dessin (diagramme de calcul linéaire) 4.1, montrant la structure d'un tour.

    Chaque rectangle dans un diagramme linéaire est certains calculs et la flèche sortante d'elle indique lorsque les résultats de l'opération de l'appareil seront transmis. Le signe plus, encerclé dans le cercle, est noté par le fonctionnement de "exclure ou" appelé Xor Programming. L'opération transporte toujours le nom "Bitwise Addition" ou "Ajout sans transfert". Sur le réseau, vous pouvez trouver l'algorithme des affaires sur C et l'explorer pour une meilleure compréhension.

    Des Accepte un bloc de texte, 64 bits. Il passe par la permutation initiale sur un principe spécifique. Lors de l'analyse de l'algorithme, il s'est avéré qu'il n'y a peu de sens dans cette permutation, car elle ne donne aucun effet cryptographique. Le bloc de texte est divisé en 2 parties égales: droite (R) et gauche (L). Ensuite, les pièces cryptées sont modifiées par des endroits et sont combinées et à la fin de la ronde, il s'avère un bloc de données de 64 bits, seulement crypté.

    Algorithme général

    L'algorithme des algorithmes comprend 16 rounds effectués selon le schéma décrit ci-dessus. Tous les tours sont numérotés à travers i, où i \u003d (1; 16). Chaque i-ème rond de la paire (LI-1, RI-1) reçoit une nouvelle paire (LI, RI) à l'aide de la clé KI. Les principales transformations se produisent à l'intérieur de la fonction F..

    Algorithme de fonctionnement Fonction F

    Comme on peut le voir à partir de la figure 4.1, r passe à travers l'opération "extension". Ce bloc contient une série de bits de R et le complète avec eux, obtenant une valeur de 48 bits. Le résultat obtenu passe à travers une addition battue avec une clé KI de 48 bits. Et le résultat de cette opération est transmis au S. Block S contient 8 petites matrices de substitution sélectionnées de manière particulière.

    Chaque matrice reçoit à l'entrée 6 bits d'informations et donne une valeur de 4 bits. En conséquence, le bloc d'entrée S reçoit des données de 48 bits de taille et la sortie représente le résultat sous la forme d'une valeur 32 bits.

    Cette valeur 32 bits traverse une autre opération de permutation, après quoi elle est additionnée par l'opération XOR avec L. Enfin, la partie droite et la partie gauche sont modifiées dans des endroits et le tour est terminé. Comme mentionné précédemment, l'algorithme de ces rondes effectue 16 pièces.

    Ici, nous ne surchargerons pas l'article par des exemples qui occupent beaucoup d'espace. Des travaux et des exemples peuvent être trouvés en ligne.

    Faistel Cipher

    L'algorithme des affaires est basé sur le chiffre Faistel. Son idée est très élégante. Sur chaque tour, la partie L se plie avec la valeur F (R, KI) et l change la position avec R. La caractéristique clé de l'algorithme FAISTel est que le décryptage et le cryptage sont constitués des mêmes étapes: les parties L et R sont des endroits changeants, puis l'ajout de L et RS sont effectués. Et f (r, ki). Cela vous permet de faire des procédures de cryptage et de décryptage simples et compréhensibles.

    Dans les chiffres de Faistel, un changement intéressant est souvent introduit - annulation de la permutation de L et R dans la dernière itération. Cela rend les algorithmes de cryptage et décrypter complètement symétrique. La différence n'est que pour utiliser Ki Keys. Ce principe était extrêmement pratique pour une utilisation au niveau du programme, car le cryptage et le décodage se produisent avec le moyen d'une seule fonction. Par exemple, la mise en œuvre laconique de l'algorithme de cryptage des C.

    Touches de cryptage

    Pour chiffrer les données dans des, seize clés de 48 bits sont utilisées. Une clé sur le tour. Chaque clé est créée en échantillonnant 48 bits à partir d'une clé principale de 56 bits. La création de clés pour une ronde particulière est déterminée par le mécanisme décrit en détail dans la documentation des DESC.

    En bref, l'algorithme d'échantillon clé apparaît comme suit. Les bits sont ajoutés à la clé principale de la position 8, 16, 24, 32, 40, 48, 56, 64. Il est fait de manière à ce que chaque octet contienne un nombre impair d'unités. Le respect de la règle aide à détecter des erreurs lors de l'échange de clés. Après cela, en utilisant des tables spéciales, la clé supplémentée est la permutation et les décalages, à l'exception des bits qui ont été ajoutés. Ainsi, la clé souhaitée est obtenue.

    Des composants

    Chaque composant de l'algorithme des des algorithmes résout une tâche spécifique:

    1. L'algorithme FAISTEL simplifie le cryptage et le décodage, tout en garantissant la moitié de la moitié du texte.
    2. La sommation chitée de pièces de texte avec des touches mélange des données ouvertes avec la clé et les crypte.
    3. Les tables S-block et de correspondance rendent l'algorithme non linéaire, augmentant ainsi sa résistance à diverses attaques.
    4. L'expansion, le bloc S et les permutations fournissent la diffusion de l'effet d'algorithme - avalanche. En d'autres termes, si au moins 1 bit changera dans les données d'entrée F, cela entraînera une modification de l'ensemble des bits multiples. Si l'effet d'avalanche dans le chiffre n'est pas observé, les modifications apportées aux données ouvertes entraîneront des modifications équivalentes de la forme cryptée, qui peut être suivie et utilisée pour le piratage. En cryptographie, il y a un critère d'effet d'avalanche. L'algorithme le satisfait si pas moins de la moitié des données cryptées changent avec les données 1 bit de données ouvertes. L'algorithme des OFS le satisfait, en commençant par 4 rounds. Résultat - Lorsque les changements de données ouverts 1 bit, 29 bits changeront dans DES CIPHER.

    Problèmes de sécurité dans des

    Le problème évident du DES est une sélection de clés de cryptage d'une clé commune. Que se passera-t-il si vous choisissez une valeur zéro comme clé (tous les bits de clé sont 0)? Cela conduira au fait que l'échantillon de toutes les clés pour cryptage sur chaque cycle sera identique, et toutes les clés seront nulles. Non seulement 16 cryptes avec une seule clé, donc en raison du fait que les algorithmes de cryptage et de déchiffrement ne sont différents que par la procédure d'application des clés, elles seront complètement identiques. Perdu toute la signification du cryptage.

    DES a 4 clés qui sont appelées faibles, entraînant l'effet décrit. DES 12 Touches semi-tisse et 48 touches pseudo-gravitantes conduisent à la limite des variations des clés générées en rondes. En d'autres termes, il y a une chance que lors du cryptage dans 16 rounds ne soit pas utilisé et non 16 clés différentes, et 8, 4 ou même 2.

    Un inconvénient moins évident du DES est la propriété complémentaire. Cela signifie que si lorsqu'il est crypté, utilisez l'addition du texte ouvert et l'addition de touche, la fin est la valeur qui est une addition au texte crypté. Cette propriété ridicule peut entraîner des attaques efficaces sur des projets utilisant des des pour assurer la sécurité.

    Le problème de la clé de cryptage

    Il est fondamental du des et est considéré comme la raison principale pour laquelle il vaut la peine d'abandonner cet algorithme. Étant donné que la taille de la clé dans DES est de 56 bits, vous devrez alors visualiser 2 56 options pour la recherche de toutes les clés. Est-ce tellement?

    Si vous exercez 10 millions de clés chèques par seconde, le chèque prendra environ 2000 ans. Il semble que l'algorithme soit très stable. Il était au cours du siècle dernier, lorsque la création d'un ordinateur de ce pouvoir était presque une tâche impossible du point de vue technique et financier.

    Si vous créez un ordinateur avec un million de puces, le buste de tous les ensembles des touches des TÉP prendra 20 heures. Le premier ordinateur similaire pour le déchiffrement sur l'algorithme de l'algorithme est apparu en 1998, qui a été adapté à la tâche pendant 56 heures. Les réseaux modernes de réseaux et de processus parallèles vous permettent de réduire encore plus cette période.

    Cryptanalyse et des.

    Il est possible sans exagération de déclarer que DES DESSE L'apparition de la science appliquée appelée «analyse cryptographique». Dès le début de l'apparition du DES, des tentatives ont été faites pour le pirater, des travaux scientifiques ont été effectués sur son étude. Tout cela a conduit à l'origine de ces zones de mathématiques comme suit:

    • cryptanalyse linéaire - apprendre et identifier la relation entre le texte ouvert et crypté;
    • cryptanalyse différentielle - apprentissage et analyse des dépendances entre plusieurs textes ouverts et leurs versions cryptées;
    • la cryptoanalyse sur les clés associées est l'étude des dépendances entre textes cryptés obtenus sur la clé primaire et les clés associées à la primaire de quelque manière que ce soit.

    DES a résistant à 20 ans de cryptualyse et d'attaques mondiales, mais reste un chiffre persistant. Mais qui cherche - il trouvera toujours ...

    1. Biham et Shamir, des scientifiques d'Israël, en 1991, ont montré à l'aide d'une cryptoanalyse différentielle, qui peut être effectuée sur DES, dans laquelle la clé a été calculée à condition que l'attaquant dispose de 2 47 paires spécialement sélectionnées de textes ouverts et cryptés.
    2. Le scientifique japonais Mitsura Matsui en 1993 a montré que la clé peut être calculée à l'aide de la cryptune linéaire. Pour cela, il vous suffit de connaître 2 47 paires de texte ouvert et de la version cryptée correspondante.

    À l'avenir, ces méthodes de piratage ont été légèrement modifiées, améliorées et simplifiées, un certain nombre de nouvelles méthodes de piratage sont également apparues. Mais ils restent trop compliqués, sur leur fond, une recherche complète de toutes les options clés ressemble à l'attaque la plus adéquate du des.

    Annotation: L'un des systèmes cryptographiques clés fermés les plus célèbres est la norme de cryptage des données. Ce système est le premier à recevoir l'état de la norme d'état dans la zone de cryptage des données. Et bien que l'ancienne standard américaine des DÉ ait actuellement perdu son statut officiel, cet algorithme mérite toujours l'attention lors de l'étude de la cryptographie. En outre, cette conférence explique ce que «Deuxième fois des« Dés », une attaque« rencontre au milieu »et les moyens de l'éliminer. Dans la même conférence, une nouvelle norme américaine pour le chiffrement en bloc est brièvement considérée - algorithme de Rijndael.

    Le but de la conférence: Pour familiariser un étudiant avec des informations de base sur l'algorithme de chiffrement des des des entreprises.

    Informations de base

    L'un des systèmes cryptographiques les plus célèbres avec une clé fermée est Norme des Cryptage des données. Ce système est le premier à recevoir l'état de la norme d'état dans la zone de cryptage des données. Il a été développé par des spécialistes IBM et est entré en vigueur aux États-Unis de 1977. Algorithme Des. largement utilisé lors du stockage et du transfert de données entre différents systèmes informatiques; Dans les systèmes postaux, dans les systèmes électroniques de dessins et avec échange électronique informations commerciales. Standard Des. Mis en œuvre à la fois logiciels et matériel. Entreprises de différents pays, une libération massive d'appareils numériques utilisant Des. Pour le cryptage de données. Tous les appareils ont adopté la certification obligatoire pour le respect de la norme.

    Malgré le fait que, depuis un certain temps, ce système n'a aucun statut de la norme d'État, il est encore largement appliqué et mérite une attention particulière lors de l'étude des chiffres à blocs avec une clé privée.

    Longueur de la clé dans l'algorithme Des. C'est 56 bits. C'est avec ce fait que la principale controverse par rapport à la capacité Des. résister à diverses attaques. Comme vous le savez, tout chiffre de bloc avec une clé fermée peut être piraté par des combinaisons de clés possibles. Avec une longueur de clé de 56 bits, 2 56 clés différentes sont possibles. Si l'ordinateur passe par une seconde 1 000 000 touches (qui est approximativement égale à 2 20), alors sur la force brute de toutes les 2 56 touches, il prendra 2 36 secondes ou un peu plus de deux mille ans, ce qui, bien sûr, est inacceptable pour les intrus.

    Cependant, des systèmes informatiques plus coûteux et rapides sont possibles que ordinateur personnel. Par exemple, si vous pouvez combiner des millions de processeurs pour un calcul parallèle, le temps de sélection de clé maximum est réduit à environ 18 heures. Cette fois n'est pas trop grand, et cryptanalytique, équipé d'un technicien aussi cher, peut bien effectuer une ouverture de données cryptées pour un temps acceptable.

    Cependant, on peut noter que le système Des. Il peut être utilisé dans des applications de cryptage de données de petite et moyenne taille qui ont une petite valeur. Pour crypter cette importance de l'État ou avoir un système de coûts commerciaux important Des. Actuellement, bien sûr, ne doit pas être utilisé. En 2001, après une concurrence spécialement annoncée aux États-Unis, une nouvelle norme a été adoptée sur le chiffrement de bloc, appelé AES (Standard de cryptage avancé)Sur la base duquel le chiffre a été posé Rijndaeldéveloppé par des spécialistes belges. Ce chiffre est considéré à la fin de la conférence.

    Réglages principaux Des.: Taille de bloc 64 bits, longueur de clé 56 bits, nombre de tours - 16. Des. C'est un réseau de chaîne classique avec deux branches. L'algorithme convertit un bloc de données d'entrée de 64 bits en une unité de sortie 64 bits pendant plusieurs tours. Standard Des. Construit sur l'utilisation combinée de réarrangements, de remplacement et d'harmonisation. Les données chiffrées doivent être présentées sous forme binaire.

    Chiffrement

    Structure générale Des. Présenté à la Fig. 4.1. Le processus de cryptage de chaque bloc de données source 64 bits peut être divisé en trois étapes:

    1. préparation initiale du bloc de données;
    2. 16 rounds "cycle de base";
    3. comprendre le bloc de données.

    À la première étape effectuée réarrangement initial Le bloc source 64 bits du texte, au cours de laquelle les bits d'une certaine manière sont réorganisés.

    Dans la phase suivante (principale), le bloc est divisé en deux parties (branches) de 32 bits chacun. La bonne branche est convertie à l'aide de certaines fonctions F et de la valeur correspondante. clé partielleobtenu à partir de la clé de cryptage principale à l'aide d'un algorithme de conversion de clé spécial. Ensuite, les données sont échangées entre les branches gauche et droite du bloc. Ceci est répété dans le cycle 16 fois.

    Enfin, à la troisième étape, le résultat est effectué par le résultat obtenu après seize étapes du cycle principal. Cette permutation est inverse la permutation initiale.


    Figure. 4.1.

    Considérez plus en détail toutes les étapes de la transformation cryptographique selon la norme Des..

    À la première étape, l'unité de données source 64 bits est soumise à une permutation initiale. Dans la littérature, cette opération est parfois appelée "blanchiment" - blanchiment. Avec la permutation initiale des bits de bloc de données d'une certaine manière sont réorganisées. Cette opération donne un rapport de source "chaotique", réduisant la possibilité d'utiliser des méthodes statistiques cryptanasalize.

    Simultanément avec la permutation initiale du bloc de données, la permutation initiale de 56 bits de la clé est effectuée. De la Fig. 4.1. On peut voir que dans chacun des tours, la clé partielle de 48 bits correspondante K I est utilisée. Klyi K I est obtenu par un algorithme spécifique à l'aide de chacun des bits de clé initiale plusieurs fois. Dans chaque tour, la clé 56 bits est divisée en deux moitiés de 28 bits. La moitié est ensuite déplacée vers la gauche ou deux bits en fonction du nombre rond. Après le changement, 48 bits sur 56 sont sélectionnés d'une certaine manière. Comme il s'agit non seulement d'un sous-ensemble de bits, mais change également de la commande, cette opération s'appelle "permutation avec compression". Son résultat est un ensemble de 48 bits. En moyenne, chaque partie de la clé source 56 bits est utilisée dans 14 connexions sur 16, bien que tous les bits ne soient pas utilisés le même nombre de fois.

    Ensuite, le cycle de conversion principal est effectué, organisé sur le réseau de la chaîne et constitué de 16 rounds identiques. Dans le même temps, dans chaque tour (Fig. 4.2), une valeur intermédiaire 64 bits est obtenue, qui est ensuite traitée au tour suivant.


    Figure. 4.2.

    Les branches gauche et droite de chaque valeur intermédiaire sont traitées comme des valeurs 32 bits séparées indiquées par L et R.

    Initialement, le côté droit du bloc R i est en expansion à 48 bits à l'aide d'une table qui détermine la permutation plus une extension à 16 bits. Cette opération résume la taille de la moitié droite en fonction de la taille de la clé pour effectuer une opération XOR. En outre, en raison de la mise en œuvre de cette opération, la dépendance de toutes les bits du résultat des bits des données source et de la clé augmente plus rapidement (cela s'appelle «effet avalanche»). Plus l'effet Avalanche est fortement manifesté lors de l'utilisation d'un algorithme de cryptage particulier, mieux c'est.

    Après avoir effectué la permutation avec l'extension de la valeur de 48 bits résultante, une opération XOR est effectuée avec un connecteur 48 bits K i. Ensuite, la valeur obtenue 48 bits est introduite à l'entrée du bloc de substitution S (de l'anglais. Substitution. - substitution), résultat qui est 32 bits signification. La substitution est effectuée dans huit blocs de substitution ou huit blocs s (boîtes S). Lors de l'exécution de ce des sur papier, il a l'air assez difficile, que dire de sa mise en œuvre de son programme! Développer pleinement un programme de fonctionnement correct et optimal en fonction de Des.Probablement, seulement des programmeurs expérimentés. Certaines difficultés se produisent lors de la mise en œuvre logicielle, par exemple la permutation initiale ou la permutation avec expansion. Ces difficultés sont liées au fait qu'il était initialement prévu de mettre en œuvre Des. Seul matériel. Toutes les opérations utilisées dans la norme sont facilement effectuées par des blocs matériels et aucune difficulté avec la mise en œuvre ne se produit. Cependant, après une certaine période, après la publication de la norme, les développeurs de logiciels ont décidé de ne pas se tenir de côté et d'assumer également la création de systèmes de cryptage. Plus loin Des. Mis en œuvre et matériel, et programmatiquement.

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