Convertissez des photos. Conversion et redimensionnement d'images gratuits à partir de DVDVideoSoft. Ajouter un fichier à convertir

L'algorithme DES convient tout à fait au cryptage et à l'authentification des données. Il vous permet de convertir directement une entrée 64 bits texte en clairà un texte chiffré de sortie de 64 bits, mais les données sont rarement limitées à 64 bits.

Pour utiliser l'algorithme DES pour résoudre une variété de problèmes cryptographiques, quatre modes de fonctionnement ont été développés :

· électronique livre de codes BCE (Livre de codes électronique);

· concaténation de blocs de chiffrement CBC (Cipher Block Chaining) ;

· retour par texte chiffré CFB (Cipher Feed Back) ;

· retour sur la sortie OFB (Output Feed Back).

Mode "Livre de codes électronique"

Fichier long sont divisés en segments (blocs) de 64 bits de 8 octets. Chacun de ces blocs est chiffré indépendamment à l'aide de la même clé de chiffrement (Fig. 3.6).

Le principal avantage est la facilité de mise en œuvre. Inconvénient - relativement faible stabilité contre des cryptanalystes qualifiés. En raison de la nature fixe du cryptage, avec une longueur de bloc limitée à 64 bits, une cryptanalyse « dictionnaire » est possible. Un bloc de cette taille peut être répété dans un message en raison de la forte redondance du texte en langage naturel.

Figure 3.6 – Schéma Algorithme DES en mode livre de codes électronique

Cela fait que des blocs identiques de texte en clair dans un message sont représentés par des blocs identiques de texte chiffré, donnant au cryptanalyste des informations sur le contenu du message.

Mode « Chaînage des blocs de chiffrement »

Dans ce mode fichier source M est divisé en blocs de 64 bits : M = M 1 M 2 ...M n. Le premier bloc M 1 est ajouté modulo 2 avec un vecteur initial IV de 64 bits, qui change quotidiennement et est gardé secret (Fig. 3.7). Le montant reçu est ensuite crypté à l'aide d'une clé DES connue à la fois de l'expéditeur et du destinataire de l'information. Le chiffre 64 bits C 1 résultant est ajouté modulo 2 au deuxième bloc de texte, le résultat est crypté et un deuxième chiffre 64 bits C 2 est obtenu, etc. La procédure est répétée jusqu'à ce que tous les blocs de texte aient été traités.

Ainsi, pour tout i = 1…n (n est le nombre de blocs), le résultat du chiffrement C i est déterminé comme suit : C i =

DES (М i  C i –1), où С 0 = IV est la valeur initiale du chiffre, égale au vecteur initial (vecteur d'initialisation).

Évidemment, le dernier bloc de texte chiffré de 64 bits est fonction de la clé secrète, du vecteur graine et de chaque bit.

Figure 3.7 – Schéma de l'algorithme DES en mode chaînage de blocs de chiffrement

texte en clair quelle que soit sa longueur. Ce bloc de texte chiffré est appelé code d'authentification de message (MAC).


Le code CAS peut être facilement vérifié par le destinataire, qui dispose de la clé secrète et du vecteur seed, en répétant la procédure effectuée par l'expéditeur. Cependant, un tiers ne peut pas générer un UAS perçu comme authentique par le destinataire pour compléter un faux message, ni séparer l'UAS d'un vrai message pour l'utiliser avec un message modifié ou faux.

Dignité ce mode est qu'il ne permet pas aux erreurs de s'accumuler pendant la transmission.

Le bloc M i est fonction uniquement de C i –1 et C i . Par conséquent, une erreur de transmission entraînera la perte de seulement deux blocs du texte source.

Mode « Retour de chiffrement »

Dans ce mode, la taille du bloc peut différer de 64 bits (Fig. 3.8). Le fichier à chiffrer (déchiffrer) est lu par blocs successifs de k bits de longueur (k=1...64).

Le bloc d'entrée (registre à décalage 64 bits) contient d'abord un vecteur d'initialisation aligné à droite.

Supposons qu'à la suite de la division en blocs, nous recevions n blocs de longueur k bits chacun (le reste est complété par des zéros ou des espaces). Alors pour tout bloc de texte chiffré i=1…n

С je = M je  P je –1 ,

où P i–1 désigne les k bits de poids fort du bloc chiffré précédent.

Le registre à décalage est mis à jour en supprimant ses k bits les plus élevés et en écrivant Ci dans le registre. La récupération des données chiffrées est également relativement simple : P i –1 et C i sont calculés de la même manière et

М je = С je  Р je –1 .


Figure 3.8 – Schéma de l'algorithme DES en mode retour de texte chiffré

Mode de retour de sortie

Ce mode utilise également taille variable bloquer et registre à décalage, initialisé de la même manière qu'en mode CFB, à savoir - bloc d'entrée contient d’abord le vecteur d’initialisation IV, aligné à droite (Fig. 3.9). Dans ce cas, pour chaque session de cryptage des données, il est nécessaire d'utiliser un nouvel état initial du registre, qui doit être envoyé sur le canal en texte clair.

M = M 1 M 2 ... M n.

Pour tout i = 1… n

C je = M je  P je ,

où Р i sont les k bits les plus élevés de l'opération DES (С i –1).

La différence avec le mode de retour de texte chiffré réside dans la méthode de mise à jour du registre à décalage.

Ceci est réalisé en supprimant les k bits les plus élevés et en ajoutant Pi à droite.

Figure 3.9 – Schéma de l'algorithme DES en mode retour de sortie

3.3. Domaines d'application de l'algorithme DES

Chacun des modes considérés (ECB, CBC, CFB, OFB) présente ses propres avantages et inconvénients, qui déterminent les domaines de leur application.

Le mode ECB est bien adapté au cryptage par clé : le mode CFB est généralement destiné au cryptage de caractères individuels, et le mode OFB est souvent utilisé pour le cryptage dans systèmes satellitaires communications.

Les modes CBC et CFB conviennent à l'authentification des données. Ces modes vous permettent d'utiliser l'algorithme DES pour :

· cryptage interactif lors de l'échange de données entre le terminal et l'ordinateur hôte ;

· cryptage d'une clé cryptographique dans la pratique de la distribution automatisée de clés ;

· cryptage de fichiers, envois postaux, données satellite et autres problèmes pratiques.

Initialement Norme DES destiné au cryptage et au décryptage de données informatiques. Cependant, son application a été généralisée à l'authentification.

Dans les systèmes traitement automatique données, une personne n’est pas en mesure d’examiner les données pour déterminer si des modifications y ont été apportées. Avec d’énormes quantités de données qui transitent systèmes modernes traitement, la visualisation prendrait trop de temps. De plus, la redondance des données peut ne pas suffire à détecter les erreurs. Même dans les cas où un examen humain est possible, les données peuvent être modifiées de telle manière qu'il est très difficile pour les humains de détecter les changements. Par exemple, « faire » peut être remplacé par « ne pas faire », « 1 900 $ » par « 9 100 $ ». Sans Informations Complémentaires une personne qui le consulte peut facilement confondre les données modifiées avec des données authentiques. De tels dangers peuvent exister même lorsque le cryptage des données est utilisé. Il est donc conseillé d'avoir outil automatique détecter les modifications intentionnelles et non intentionnelles des données.

Les codes de détection d'erreurs ordinaires ne conviennent pas car si l'algorithme de génération du code est connu, l'adversaire peut générer le code correct après avoir modifié les données. Cependant, en utilisant l'algorithme DES, il est possible de former un système cryptographique. somme de contrôle, qui peut protéger contre les modifications accidentelles et délibérées mais non autorisées des données.

Ce processus décrit la norme d'authentification des données informatiques (FIPS 113). L'essence de la norme est que les données sont chiffrées en mode de retour de texte chiffré (mode CFB) ou en mode de concaténation de blocs de chiffrement (mode CBC), ce qui donne lieu à un bloc de chiffrement final qui est fonction de tous les bits de texte en clair. Le message, qui contient le texte en clair, peut ensuite être transmis à l'aide du bloc de chiffrement final calculé, qui sert de somme de contrôle cryptographique.

Les mêmes données peuvent être protégées par cryptage et authentification. Les données sont protégées contre tout accès par cryptage et les modifications sont détectées par authentification. L'algorithme d'authentification peut être appliqué à la fois au texte brut et au texte chiffré. À transactions financières, alors que dans la plupart des cas, le chiffrement et l'authentification sont implémentés, cette dernière s'applique également aux systèmes ouverts.

mu texte.

Le cryptage et l'authentification sont utilisés pour protéger les données stockées sur un ordinateur. Sur de nombreux ordinateurs, les mots de passe sont cryptés de manière irréversible et stockés dans la mémoire de la machine. Lorsqu'un utilisateur accède à l'ordinateur et saisit un mot de passe, ce dernier est crypté et comparé à la valeur stockée. Si les deux valeurs cryptées sont identiques, l'utilisateur accède à la machine, sinon il lui est refusé.

Souvent, un mot de passe crypté est généré à l'aide de l'algorithme DES, avec la clé égale au mot de passe et le texte en clair égal au code d'identification de l'utilisateur.

À l'aide de l'algorithme DES, vous pouvez également crypter des fichiers informatiques pour les stocker.

L'un des applications les plus importantes algorithme DES est protection des messages système électronique paiements (ESP) pour les transactions avec une large clientèle et entre banques.

L'algorithme DES est implémenté dans les guichets automatiques, les terminaux de point de vente, les postes de travail et les ordinateurs centraux. La gamme de données qu'il protège est très large : des paiements de 50 $ aux transferts de plusieurs millions de dollars. La flexibilité de l'algorithme de base DES lui permet d'être utilisé dans une grande variété d'applications de systèmes de paiement électronique.

clés symétriques .

La modification du projet proposée par IBM, appelée Lucifer, a été adoptée comme DES. DES ont été publiés sous forme de projet dans Registre fédéral en mars 1975 comme Norme fédérale de traitement de l'information (FIPS – Norme fédérale de traitement de l'information).

Lors de sa publication, le croquis a été sévèrement critiqué pour deux raisons. Premièrement, il y a eu des critiques concernant la longueur de clé douteuse (seulement 56 bits), qui pourrait rendre le chiffre vulnérable aux attaques par force brute.

Deuxième raison : les critiques s'inquiétaient d'une conception cachée de la structure interne du DES. Ils soupçonnaient qu'une partie de la structure (les boîtes S) pourrait avoir une porte dérobée cachée qui permettrait de déchiffrer les messages sans la clé. Les concepteurs d'IBM ont ensuite signalé que structure interne

a été modifié pour empêcher la cryptanalyse. DES a finalement été publié sous le nom de FIPS 46 dans le Federal Register en janvier 1977. Cependant, la FIPS a déclaré DES comme norme à utiliser dans applications non officielles . Le DES était le plus utilisé chiffrement par bloc Avec clés symétriques , à compter de sa publication. Le NIST a proposé plus tard nouvelle norme (FIPS 46-3), qui recommande l'utilisation du triple DES (chiffrement triple DES) pour les applications futures. Comme nous le verrons plus tard dans les leçons 9 et 10, on suppose que le nouveau Norme AES

remplacera DES.

Dispositions générales


Comme le montre la fig. 8.1. DES - chiffrement par bloc.

Riz. 8.1. Du côté Chiffrement DES

accepte le texte brut de 64 bits et produit un texte chiffré de 64 bits ; Du côté du déchiffrement, DES prend un texte chiffré de 64 bits et produit un texte en clair de 64 bits. Les deux parties utilisent la même clé de 56 bits pour le cryptage et le déchiffrement.

8.2. Structure du DES

Examinons d'abord le chiffrement, puis le décryptage. Le processus de cryptage se compose de deux permutations (blocs P) - appelées permutations de début et de fin - et de seize tours de Feistel. Chaque tour utilise une clé de 48 bits générée différente. L'algorithme de génération sera discuté plus tard dans cette conférence. La figure 8.2 montre les éléments d'un chiffrement DES côté chiffrement.

La figure 8.3 montre les permutations initiales et finales (blocs P). Chacune des permutations prend une entrée de 64 bits et réorganise ses éléments selon une règle donnée. Nous n'avons montré qu'un petit nombre de ports d'entrée et de ports de sortie correspondants. Ces permutations sont des permutations directes sans clés, qui sont inverses les unes des autres. Par exemple, lors de la permutation initiale, le 58ème bit de l'entrée va au premier bit de la sortie. De même, lors de la permutation finale, le premier bit d'entrée va au 58ème bit de sortie. Autrement dit, s'il n'y a pas d'arrondi entre ces deux permutations, le 58ème bit fourni à l'entrée du dispositif de permutation initiale sera délivré à la 58ème sortie par la permutation finale.


Riz. 8.2.


Riz. 8.3.

Les règles de permutation pour cette P-box sont présentées dans le tableau 8.1. Le tableau peut être représenté sous la forme d'un tableau de 64 éléments. Notez que nous avons discuté du travail avec le tableau ; la valeur de chaque élément détermine le numéro du port d'entrée, et le numéro de série (index) de l'élément détermine le numéro du port de sortie.

Tableau 8.1.
Tableau des permutations initiales et finales Permutations initiales
58 50 42 34 26 18 10 02 40 08 48 16 56 24 64 32
60 52 44 36 28 20 12 04 39 07 47 15 55 23 63 31
62 54 46 38 30 22 14 06 38 06 46 14 54 22 62 30
64 56 48 40 32 24 16 08 37 05 45 13 53 21 61 29
57 49 41 33 25 17 09 01 36 04 44 12 52 20 60 28
59 51 43 35 27 19 11 03 35 03 43 11 51 19 59 27
61 53 45 37 29 21 13 05 34 02 42 10 50 18 58 26
63 55 47 39 31 23 15 07 33 01 41 09 49 17 57 25

Permutations finies

Ces deux permutations n’ont aucune signification pour la cryptographie DES

Algorithme

Les principaux avantages de l'algorithme DES :

· une seule clé d'une longueur de 56 bits est utilisée ;

· après avoir chiffré un message à l'aide d'un package, vous pouvez en utiliser n'importe quel autre pour le décrypter ; · la relative simplicité de l'algorithme garantit grande vitesse

traitement de l'information;

· stabilité suffisamment élevée de l'algorithme.

DES crypte des blocs de données de 64 bits à l'aide d'une clé de 56 bits. Le décryptage dans DES est l'opération inverse du cryptage et est effectué en répétant les opérations de cryptage dans l'ordre inverse (malgré l'évidence apparente, cela n'est pas toujours fait. Plus tard, nous examinerons les chiffrements dans lesquels le cryptage et le déchiffrement sont effectués à l'aide d'algorithmes différents) .

Le processus de chiffrement consiste en une permutation initiale des bits d'un bloc de 64 bits, seize cycles de chiffrement et, enfin, une permutation inverse des bits (Fig. 1).

Il convient de noter immédiatement que TOUTES les tables données dans cet article sont STANDARD et doivent donc être incluses sans modification dans votre implémentation de l'algorithme. Toutes les permutations et codes dans les tableaux sont sélectionnés par les développeurs de manière à rendre le processus de décryptage aussi difficile que possible en sélectionnant une clé. La structure de l'algorithme DES est présentée sur la figure 2.

Supposons que le bloc T suivant de 8 octets soit lu dans le fichier, qui est transformé à l'aide de la matrice de permutation initiale IP (tableau 1) comme suit : le bit 58 du bloc T devient le bit 1, le bit 50 devient le bit 2, etc., ce qui donner le résultat : T(0) = IP(T).

La séquence de bits résultante T(0) est divisée en deux séquences de 32 bits chacune : L(0) - bits de gauche ou de poids fort, R(0) - bits de droite ou de poids faible.

Tableau 1 : Matrice de permutation initiale 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, un cryptage est effectué, composé de 16 itérations. Résultat i-ème itération est décrit par les formules suivantes :

R(i) = L(i-1) xou f(R(i-1), K(i)) ,

où xor est l’opération OU EXCLUSIF.

La fonction f est appelée fonction de chiffrement. Ses arguments sont la séquence de 32 bits R(i-1), obtenue à la (i-1)ème itération, et la clé de 48 bits K(i), qui est le résultat de la conversion de la clé de 64 bits K. En détail, la fonction de chiffrement et l'algorithme d'obtention des clés K(i) sont décrits ci-dessous.

A la 16ème itération, on obtient les séquences R(16) et L(16) (sans permutation), qui sont concaténées en une séquence de 64 bits R(16)L(16).

Puis les positions des bits de cette séquence sont réarrangées conformément à la matrice IP -1 (Tableau 2).

Tableau 2 : Matrice de permutation 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 liées comme suit : la valeur du 1er élément de la matrice IP -1 est 40, et la valeur du 40ème élément de la matrice IP est 1, la valeur du 2ème L'élément de la matrice IP -1 est 8, et la valeur du 8ème élément de la matrice IP est égale à 2, etc.

Le processus de décryptage des données est inverse du processus de cryptage. Toutes les actions doivent être effectuées dans ordre inverse. Cela signifie que les données déchiffrées sont d'abord réorganisées selon la matrice IP-1, puis les mêmes actions sont effectuées sur la séquence de bits R(16)L(16) que 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) = L(i), i = 1, 2, ..., 16 ;

L(i-1) = R(i) xou f(L(i), K(i)), i = 1, 2, ..., 16 .

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

Les positions des bits de cette séquence sont ensuite réorganisées selon la matrice IP. Le résultat d’une telle permutation est la séquence originale de 64 bits.

Considérons maintenant la fonction de chiffrement f(R(i-1),K(i)). Il est représenté schématiquement sur la Fig. 3.


Figure 3. Calcul de la fonction f(R(i-1), K(i))

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

E - extension d'une séquence de 32 bits à 48 bits,

S1, S2, ..., S8 - conversion d'un bloc de 6 bits en bloc de 4 bits,

P - permutation de bits dans une séquence de 32 bits.

La fonction d'expansion E est définie dans le tableau 3. D'après ce tableau, les 3 premiers bits de E(R(i-1)) sont les bits 32, 1 et 2, et les derniers sont 31, 32 et 1.

Tableau 3 : Fonction d'extension 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 est ajoutée modulo 2 (opération xor) avec la clé de 48 bits K(i). La séquence de 48 bits résultante est divisée en huit blocs de 6 bits B(1)B(2)B(3)B(4)B(5)B(6)B(7)B(8). C'est-à-dire:

E(R(i-1)) xou K(i) = B(1)B(2)...B(8) .

Les fonctions S1, S2, ..., S8 sont définies dans le tableau 4.

Tableau 4

Vers le tableau 4. des éclaircissements supplémentaires sont nécessaires. Soit l'entrée de la fonction matricielle Sj un bloc de 6 bits B(j) = b1b2b3b4b5b6, alors le nombre de deux bits b1b6 indique le numéro de ligne de la matrice et b2b3b4b5 le numéro de colonne. Le résultat de Sj(B(j)) sera un élément de 4 bits situé à l'intersection lignes spécifiées et colonne.

Par exemple, B(1)=011011. Alors S1(B(1)) est situé à l’intersection de la ligne 1 et de la colonne 13. Dans la colonne 13 de la ligne 1, la valeur est 5. Cela signifie S1(011011)=0101.

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

Enfin, pour obtenir le résultat de la fonction de chiffrement, il faut réarranger les bits de cette séquence. A cet effet, la fonction de permutation P est utilisée (tableau 5). Dans la séquence d'entrée, les bits sont réorganisés de manière à ce que le bit 16 devienne le bit 1, le bit 7 devienne le bit 2, et ainsi de suite.

Tableau 5 : Fonction de permutation P

Ainsi,

f(R(i-1), K(i)) = P(S1(B(1)),...S8(B(8)))

Pour compléter la description de l'algorithme de chiffrement des données, il reste à présenter l'algorithme d'obtention de clés de 48 bits K(i), i=1...16. A chaque itération, une nouvelle valeur de clé K(i) est utilisée, qui est calculée à partir de la clé initiale K. K est un bloc de 64 bits avec huit bits de parité situés aux positions 8,16,24,32,40,48, 56. 64.

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

Tableau 6

Matrice G de préparation initiale des clés

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 de 28 bits C(0) et D(0), et C(0) sera constitué des bits 57, 49, ..., 44, 36 de la clé K, et D(0 ) seront constitués des bits 63, 55, ..., 12, 4 de la clé K. Après avoir défini C(0) et D(0), C(i) et D(i), i= 1...16, sont déterminés de manière récursive. Pour ce faire, appliquez un décalage cyclique vers la gauche d'un ou deux bits, selon le numéro d'itération, comme indiqué dans le tableau 7.

Tableau 7

Table de décalage pour le calcul des clés

Numéro d'itération Décalage (bits)
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 « mixte » conformément à la matrice H (tableau 8).

Tableau 8 : Matrice de réalisation des clés H

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

La clé K(i) sera constituée des bits 14, 17, ..., 29, 32 de la séquence C(i)D(i). Ainsi:

K(i) = H(C(i)D(i))

Le schéma fonctionnel de l'algorithme de calcul clé est présenté sur la figure 4.

Figure 4. Schéma fonctionnel de l'algorithme de calcul de la clé K(i)

Récupération texte source s'effectue selon cet algorithme, mais vous utilisez d'abord la clé

K(15), puis K(14) et ainsi de suite. Vous devez maintenant comprendre pourquoi l'auteur recommande avec insistance d'utiliser les matrices données. Si vous devenez voyou, vous pourriez vous retrouver avec un code très secret, mais vous ne pourrez pas le déchiffrer vous-même !

Modes de fonctionnement de l'algorithme DES

Pour répondre au mieux à toutes les exigences des systèmes de cryptage commerciaux, plusieurs modes de fonctionnement de l'algorithme DES sont implémentés. Les modes les plus utilisés sont :

· livre de codes électronique (Electronic Codebook) - BCE ;

· chaîne de blocs numériques (Cipher Block Chaining) - CBC ;

· retour numérique (Cipher Feedback) - CFB ;

· feedback externe (Output Feedback) - OFB.

Dans ce mode, le fichier source M est divisé en blocs de 64 bits (8 octets chacun) : M = M(1)M(2)...M(n). Chacun de ces blocs est chiffré indépendamment à l'aide de la même clé de chiffrement (Fig. 5). Le principal avantage de cet algorithme est sa facilité de mise en œuvre. L’inconvénient est sa résistance relativement faible aux cryptanalystes expérimentés.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :