L'algorithme ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ la norme d'État 28147-89. La méthode du remplacement simple.

«Tu es vivant, ne meurs pas, sur ce monde jette un coup d'oeil.
Chez plusieurs ici l'âme est morte – ils sont morts au-dedans.
Mais marchent et rient, sans connaître qu'ils est absents,
Ne presse pas l'heure suprême »– elle m'a dit.

L'air, «est haut Là»


Le contenu :

1. L'    introduction

  1. Les informations préalables sur les chiffres par blocs

2.1  Seti Fajstelja.
2.2  chiffre Par blocs la norme d'État 28147-89

  1. Le minimum théorique

3.1     information Clé
3.2     pas Principal криптопреобразованиÑ

3.3  cycles De base : "32-Z", "32-R".

  1. La pratique

4.1  Réalisation du pas principal криптопреобразованиÑ
4.2     Augmentation de la puissance de l'algorithme
5. Les     exigences à l'information clé
6. La     liste de la littérature utilisée
7. De la     reconnaissance.

L'introduction.

Le document donné est ma tentative de décrire la méthode du remplacement simple de l'algorithme ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ la norme d'État 28147-89 le plus simple, mais, néanmoins, la langue techniquement-compétente. Sur, si autant cela a résulté chez moi, le lecteur dira l'opinion, après lira les premiers six points.

Pour cela que laverais le travail a donné plus de profit je recommande de m'armer par les travaux des auteurs indiqué à la liste de la littérature utilisée. On recommande aussi la calculatrice pour que dans lui il y avait la fonction par intérêt des opérations XOR, car la lecture de l'article suppose que le lisant a voulu étudier l'algorithme donné шифрованиÑ. Bien qu'à titre de l'allocation référentielle elle s'approche aussi, mais j'écrivais cet article notamment, comme apprenant.

        

Les informations préalables sur les chiffres par blocs.

            Avant que nous commencions à examiner l'algorithme, il nous est nécessaire de prendre connaissance de l'histoire de la création des chiffres de telle sorte. L'algorithme se rapporte à la catégorie des chiffres par blocs, dans l'architecture de qui l'information se brise à la quantité finale de blocs, final il peut être naturel non par le complet. Le procès ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ se passe notamment sur les blocs complets, qui forment шифрограмму. Le bloc final, s'il incomplet est complété qu'ou (sur les nuances selon son complément je dirai plus bas) et est chiffré ainsi que les blocs complets. Sous шифрограммой je comprends – le résultat de l'action de la fonction ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ sur une certaine quantité de données, qui l'utilisateur a donné pour шифрованиÑ. En d'autres termes шифрограмма est un résultat final шифрованиÑ.

           L'histoire du développement des chiffres par blocs s'associe au début 70Ñ… des années, quand la compagnie IBM s'étant rendu compte de la nécessité de la protection de l'information à la transmission de données selon les voies de communication de l'ORDINATEUR, a procédé à l'exécution du programme personnel des études scientifiques consacrées à la protection de l'information dans les réseaux électroniques, y compris la cryptographie.

           Le groupe des investigateurs – les concepteurs de la société IBM qui ont procédé à l'étude des systèmes ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ avec le schéma symétrique de l'utilisation des clés était présidé par le docteur Horst Fajstel'.

2.1 Seti Fajstelja

        Fajstelem proposé l'architecture de la nouvelle méthode ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ dans la littérature classique a reçu le nom «l'Architecture de Fajstelja», mais pour le moment dans la littérature russe et étrangère on utilise le terme plus résisté – "le réseau de Fajstelja" ou Feistel ` s NetWork. Dans la conséquence selon l'architecture donnée on construisait le chiffre "Lucifer" - qui était publié plus tard et a provoqué une nouvelle onde de l'intérêt pour la cryptographie en tout.

           L'idée de l'architecture "du réseau de Fajstelja" consiste en suivant : le flux d'entrée de l'information se brise aux blocs par le montant à n des bits, où n le nombre pair. Chaque bloc se divise sur deux parties – L et R, ensuite ces parties sont données au chiffre itératif par blocs, dans qui le résultat de la J-ÈME étape est défini par le résultat de l'étape précédente j-1! Dit on peut illustrer à l'exemple :

Fig. 1

 Où, la fonction Mais est une action principale du chiffre par blocs. Peut être l'action simple, tels que l'opération XOR, mais peut avoir l'aspect plus complexe être la succession de la série d'actions simples – l'addition selon le module, le progrès à gauche, le remplacement des éléments etc., au total ces actions simples forment soi-disant – le pas principal криптопреобразованиÑ.

Il faut remarquer que les éléments clés du travail de la fonction est la présentation des éléments des clés et l'opération XOR et de celui-là autant sont bien examinés le travail de ces opérations, dit sur криптоÑтойкоÑти du chiffre en tout.

Pour que l'idée des réseaux de Fajstelja soit définitive est claire, nous examinerons le cas le plus simple représenté sur fig. 1, où à la fonction Mais – se produira les opérations “mod 2†(“xorâ€), mais c'est le cas le plus simple, de la situation plus sérieuse, par exemple la dissimulation de l'information de l'importance d'État la fonction Mais peut être plus complexe (combien de je voyais la fonction Mais il arrive en effet très complexe) :

Les données initiales :

L = 1110b, R = 0101, K = 1111b

Le but :

Recevoir шифрограмму

La décision :

1. (R + K) mod 24 = Smod, Smod = 0100b

2. (Smod + L) mod 2 = Sxor, Sxor = 1010b

3. L = R, R = Sxor

Le bilan :

 L = 0101b, R = 1010b

           Nous expliquerons nos actions :

1.      Cette opération l'addition selon mod 24. Pratiquement une telle opération est réduite à l'addition simple, où nous devons mettre deux nombres et ignorer le transfert à 5й la catégorie. Puisque, si mettre sur les catégories de la représentation binaire du nombre mettre les paramètres du degré, sur la cinquième catégorie il y aura tout juste un paramètre quatre, nous jetterons un coup d'oeil sur le dessin plus bas, où on représente les actions de notre opération :

Fig. 2

Ici je par la flèche ai indiqué aux paramètres du degré, comme on voit, le résultat devait résulter 10100, mais puisque à l'opération mod 24 on ignore le transfert, nous recevons 0100.

2. Cette opération dans la littérature s'appelle mod 2, dans la langue de l'assembleur se réalise par l'équipe XOR. Mais son nom plus juste mod 21. Sans cette opération unique on peut construire peu probablement l'algorithme rapide facilement réalisé ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ et de plus pour qu'il soit est encore suffit криптоÑтойким. L'originalité de cette opération consiste en ce qu'elle-même à elle-même inverse! Par exemple, si le nombre Mais поXORить avec le nombre, nous recevrons finalement à, il suffit par la suite переXORить le nombre et à entre lui-même pour recevoir une ancienne signification Mais!

Dans cette opération nous avons reçu 1010 en ayant les nombres 1110 et 0100 pour récupérer 1110, il suffit переXORрить entre lui-même le nombre 0100 et 1010! Plus en détail sur cette opération on peut respecter dans l'article, qui est mis sur le site www.wasm.ru, «la direction Élémentaire selon CRC_алгоритмам les détections des erreurs» l'auteur, par qui Ross N. Williams. Dans ce travail il y a un point - «5. L'arithmétique binaire sans compte des transferts». Voici notamment dans cet article on décrit l'opération xor! Je m'exclame parce que dans cet article cette opération est répartie ainsi que le lecteur non comprend simplement comme cette opération travaille, il même la commence à voir, entendre et sentir!

3. Cette action est nécessaire qu'au déchiffrement de шифрограммы on pouvait recevoir les sens initiaux.

2.2 chiffre Par blocs la norme d'État 28147-89

        L'algorithme ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ la norme d'État 28147 – 89 se rapporte à la catégorie des chiffres par blocs des réseaux équilibrés travaillant selon l'architecture de Fajstelja, où deux parties du bloc choisi de l'information ont le montant égal. L'algorithme était élaboré dans les couches profondes du huitième service de KGB transformé à présent à ФÐПСИ et était fixé, comme le standard ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ de la Fédération de Russie encore en 1989 à l'URSS.

           Pour le travail de la méthode donnée de l'algorithme il est nécessaire de casser l'information aux blocs par le montant à 64 bits. Générer ou introduire dans le système шифрованиÑ, l'information suivante clé : la clé et le tableau des remplacements. Il faut se rapporter au choix de la clé et le tableau des remplacements à шифровании très sérieusement, car c'est notamment le fondement de la sécurité de votre information. Sur celui-là, quelles exigences s'imposent sur la clé, et le tableau des remplacements regarde le point «les Exigences à l'information clé».

À la considération de la méthode nous n'aiguiserons pas sur cela l'attention, car cet article, comme je disais déjà plus haut, est écrit avec le but, apprendre lisant, chiffrer les données selon la méthode du remplacement simple de l'algorithme donné шифрованиÑ, mais nous toucherons absolument cette question à la fin de l'article.

Le minimum théorique.

3.1 information Clé

Comme je disais déjà plus haut, à шифровании des données la participation active acceptent :

3.1.1. La clé est une succession de huit éléments par le montant à 32 bits chacun. Ensuite nous désignerons par le symbole Vers, mais les éléments de qui il comprend – k1, k2, k3, k4, k5, k6, k7, k8.

           3.1.2 Tableau des remplacements – la matrice de huit lignes et seize Ñтолбцов, par la suite – Hij. Chaque élément sur l'intersection de la ligne i et Ñтолбца j occupe 4 bits.

        

3.2 pas Principal криптопреобразованиÑ

           L'action principale dans le procès ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ est – le pas principal криптопреобразованиÑ. Cela rien l'autre, comme l'action selon шифрованию des données selon l'algorithme défini, seulement les concepteurs ont introduit le nom vraiment est malade l'encombrant :).

           Avant de commencer à chiffrer, le bloc cassent sur deux parties L et R, selon 32 bits chacune. Choisissent l'élément de la clé et seulement ces deux parties du bloc, l'élément de la clé ensuite donnent le tableau des remplacements à la fonction du pas principal, le résultat du pas principal est une itération du cycle de base, sur laquelle les paroles iront dans le point suivant. Le pas principal comprend les actions suivantes :

  1. L'addition la partie du bloc R est additionnée avec l'élément de la clé K selon mod 232. Sur l'opération semblable j'ai décrit plus haut, ici aussi le plus seulement le paramètre du degré non «4», mais «32» - le résultat de cette opération je désignerai par la suite Smod.
  2. Le résultat reçu auparavant Smod nous divisons en quatre éléments de bit s7, s6, s5, s4, s3, s2, s1, s0 et nous donnons à la fonction du remplacement. Le remplacement se passe comme il suit : sort l'élément Smod - si, du début est commencé par l'élément cadet, et nous remplaçons par la signification du tableau des remplacements selon i - cette ligne et Ñтолбцу, à qui indique la signification de l'élément si. Nous passons vers si+1 à l'élément est entré de la même manière et est continué ainsi, nous ne remplacerons pas la signification du dernier élément Smod – nous désignerons le résultat de cette opération comme, Ssimple.
  3. Dans cette opération la signification Ssimple est rapproché d'une manière cyclique à gauche sur 11 bits et est reçu Srol.
  4. Nous choisissons la deuxième partie du bloc L et est mis selon mod 2 avec Srol, nous avons au total Sxor.
  5. À ce stade la partie du bloc L devient égale à la signification de la partie R, mais la partie R est initialisée à son tour par le résultat Sxor et sur cela la fonction du pas principal est terminée!

3.3 cycles De base : "32-Z", "32-R".

           Pour chiffrer l'information il faut la casser aux blocs par le montant à 64 bits, le naturellement dernier bloc peut être moins de 64 bits. Ce fait est le talon d'Achille de la méthode donnée «le remplacement simple». Puisque son complément jusqu'à 64 bats est une très importante tâche de l'augmentation криптоÑтойкоÑти шифрограммы et vers cette place sensible, s'il assiste dans le massif de l'information, mais de lui peut et ne pas être (par exemple, le fichier le montant à 512 octet!), il faut se rapporter avec une grande responsabilité!

           Après vous avez cassé l'information aux blocs, il faut casser la clé aux éléments :

K = k1, k2, k3, k4, k5, k6, k7, k8

           Même шифрование consiste en utilisation, soi-disant – les cycles de base. Qui comprennent à son tour n – ое la quantité de pas principaux криптопреобразованиÑ.

           Les cycles de base ont, quoi que cela dire, le marquage : n – m. Où n – la quantité de pas principaux ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ dans le cycle de base, mais m est "un type" du cycle de base, i.e. sur quoi il y a des paroles, sur «З» ашифровывании ou «Р» аÑшифровывании des données.

           Le cycle de base ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ 32-Z comprend 32 pas principaux криптопреобразованиÑ. À la fonction réalisant les actions du pas sont données par le bloc N et l'élément de la clé Vers et en outre, le premier pas se passe avec к1, deuxième sur le résultat acquis avec l'élément к2 etc. selon le schéma suivant :

k1,k2,k3,k4,k5,k6,k7,k8,k1,k2,k3,k4,k5,k6,k7,k8,k1,k2,k3,k4,k5,k6,k7,k8k8,k7,k6,k5,k4,k3,k2,k1

           Le procès du déchiffrement 32-R se passe de la même manière, mais les éléments de la clé sont donnés dans la succession inverse :

k1,k2,k3,k4,k5,k6,k7,k8,k8,k7,k6,k5,k4,k3,k2,k1,k8,k7,k6,k5,k4,k3,k2,k1,k8,k7,k6,k5,k4,k3,k2,k1

La pratique.

4.1 Réalisation du pas principal криптопреобразованиÑ

        Après nous avons fait connaissance avec la théorie comment chiffrer l'information est venu regarder, comment se passe шифрование pratiquement.

Les données initiales :

           Nous prendrons le bloc de l'information N = 0102030405060708h, ici les parties L et R sont égales :

L = 01020304h, R =05060708h, nous prendrons la clé :

K = ‘ as28zw37q8397342ui238e2twqm2ewp1 ’ (cela ASCII – les codes, pour regarder la représentation hexadécimale, peut ouvrir ce fichier au régime de l'affichage à Total Commander ayant appuyé sur la touche «F3» et ensuite sur la touche «3»). Dans cette clé de la signification des éléments seront :

k1 = ‘ as28 ’, k2 = ‘ zw37 ’, k3 = ‘ q839 ’, k4 = ‘ 7342’

k5 = ‘ ui23 ’, k6 = ‘ 8e2t ’, k7 = ‘ wqm2 ’, k8 = ‘ ewp1’

Nous prendrons aussi le tableau suivant des remplacements :

Fig. 3

Ici les lignes sont numérotées de 0 jusqu'à 7, Ñтолбцы de 0 jusqu'à F.

La prévention : Toute l'information, y compris la clé avec le tableau des remplacements est prise à titre d'exemple pour la considération de l'algorithme!

La tâche :

En utilisant «les données Initiales», il est nécessaire de recevoir le résultat de l'action du pas principal криптопреобразованиÑ.

La décision :

1. Nous choisissons la partie R = 05060708h et l'élément de la clé k1 = ‘ as28 ’, dans l'aspect hexadécimal l'élément de la clé aura l'air ainsi : 61733238h. Maintenant nous faisons l'opération de la sommation selon mod 232 :

Fig. 4

Comme on voit sur le dessin chez nous ne s'est pas passé du transfert à 33 bits marqué avec la couleur rouge et avec le paramètre du degré «32». Mais si nous avions des autres significations R et l'élément de la clé est pourrait se passer tout à fait, et alors nous l'ignorerions, et utilisaient par la suite seulement les bits marqués avec la couleur jaune.

        J'accomplis une telle opération par l'équipe de l'assembleur add :

           ; eax = R, ebx = ‘ as28’

           add eax, ebx

           ; eax = Smod

Le résultat de cette opération Smod = 66793940h

2. Maintenant l'opération la plus épineuse, mais si observer selon plus attentivement, elle déjà non tel terrible, comme il semble à d'abord. Nous présenterons Smod dans l'aspect suivant :

Fig. 5

J'ai tâché évidemment de présenter les éléments Smod sur le dessin, mais j'expliquerai en tout cas :

s0 = 0, s1 = 4, s2 = 9 etc.

Maintenant à partir de l'élément cadet s0, nous produisons le remplacement. En se rappelant le point «3.2 pas Principal криптопреобразованиÑ» i – la ligne, si – la colonne, nous cherchons dans la ligne nulle et nul Ñтолбце la signification :

Fig. 6

Ainsi, la signification en cours Smod, non 66793940h, mais 66793945h.

Nous procédons remplacer s1, i.e. le quatre. En utilisant la première ligne et la quatrième colonne (s1 = 4!). Nous regardons le dessin :

Fig. 7

Maintenant déjà la signification Smod, non 66793945h, 66793925h. Je suppose que maintenant l'algorithme du remplacement est clair pour le lecteur, et je peux dire qu'après le résultat final Ssimple aura une importance le suivant – 11e10325h.

Comment je suis plus facile de réaliser cela en forme des équipes de l'assembleur je raconterai plus tard dans le point suivant, après que je raconterai du tableau élargi.

  1. Nous devons rapprocher la signification reçue Ssimple sur 11 bits à gauche.

Fig. 8

Comme on voit cette action assez simple, et se réalise par une équipe de la langue de l'assembleur – rol et le résultat de cette opération Srol est égal 0819288Fh.

4. Maintenant il y a une partie L de notre bloc de l'information поXORить avec la signification Srol. Je prends la calculatrice de w2k sp4 et je reçois Sxor = 091b2b8bh.

5. Nous nous approprions cette action final et simplement, nettoie R la signification de la partie L, mais nous initialisons la partie L par la signification Sxor.

Le résultat final :

L = 091b2b8bh, R = 01020304h

4.2 Augmentations de la puissance de l'algorithme

        Maintenant nous parlerons de l'optimisation de l'algorithme selon la vitesse. Au procès de la réalisation, quel ou le projet, il faut prendre en considération que le programme, qui travaille avec les registres plus souvent, qu'avec la mémoire aussi considérablement, car ce jugement travaille sur un bloc de l'information des entiers de 32 actions шифрации plus plus vite ici!

           Quand je réalisais l'algorithme ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ dans le programme, je suis entré comme il suit :

1.     A choisi la partie du bloc L au registre eax, mais R à edx.

2. Au     registre esi initialisait par l'adresse de la clé élargie, sur cela est plus bas.

3. Au     registre ebx s'appropriait la signification de l'adresse du tableau élargi des remplacements, sur cela est plus bas aussi

4.     Transmettait l'information des points 1,2, 3 à la fonction du cycle de base 32 – З ou 32 – Р, en fonction de la situation.

En étudiant l'algorithme шифрованиÑ, mais, ensuite en réalisant, de lui je me suis heurté à la difficulté de la présentation des éléments de la clé dans la fonction du cycle de base. Mais j'ai décidé le problème avec l'aide de la transformation de la clé jusqu'à l'élargi.

Si regarder le schéma de la présentation des éléments de la clé dans le point «les cycles De base :“ 32-Z "," 32-R â€Â», on peut présenter notre clé pour le cycle de base 32 – З dans le suivant :

È32-Ç = жas28Т,жzw37Т,жq839Т,С7342Т,жui23Т,С8e2tЖ,жwqm2Т,жewp1Т,

жas28Т,жzw37Т,жq839Т,С7342Т,жui23Т,С8e2tЖ,жwqm2Т,жewp1Т,

жas28Т,жzw37Т,жq839Т,С7342Т,жui23Т,С8e2tЖ,жwqm2Т,жewp1Т,

жewp1Т,жwqm2Т,С8e2tЖ,жui23Т,С7342Т,жq839Т,жzw37Т,жas28Т

I.e. du début vont k1, k2, k3, k4, k5, k6, k7, k8 - ‘ as28 ’, ‘ zw37 ’, ‘ q839 ’, ‘ 7342 ’, ‘ ui23 ’, ‘ 8e2t ’, ‘ wqm2 ’, ‘ ewp1 ’ trois fois cette succession se répète. Puis les éléments vont dans l'ordre inverse, i.e. : k8, k7, k6, k5, k4, k3, k2, k1 - ‘ ewp1 ’, ‘ wqm2 ’, С8e2tЖ,жui23Т,С7342Т,жq839Т,жzw37Т,жas28Т.

J'ai disposé d'avance dans le massif les éléments en cet ordre, comme ils doivent être donnés à 32 – j'ai augmenté la mémoire demandée clés en main, mais s'est délivré de certains processus de la pensée, que je ne demandais pas, et a augmenté la vitesse du travail de l'algorithme, aux frais de la réduction du temps de l'appel à la mémoire! Ici j'ai décrit seulement la clé pour 32 – З, pour le cycle 32 – Р je suis entré analogiquement, mais en utilisant un autre schéma de la présentation des éléments, que je décrivais aussi dans le point «les cycles De base :“ 32-Z "," 32-R ».

           Est venu le temps décrire la réalisation du travail de la fonction des remplacements, comme je promettais plus haut. Je ne pouvais pas décrire auparavant, car cela demande l'introduction de la nouvelle notion – le tableau élargi des remplacements. Je ne pourrai pas vous expliquer, qu'est-ce que c'est. Au lieu de cela je la vous montrerai, mais vous vraiment formulez pour lui-même, qu'est-ce que c'est donc – le tableau élargi des remplacements ?

           Donc, pour comprendre, qu'est-ce que c'est tableau élargi des remplacements nous demandons le tableau des remplacements, pour l'exemple je prendrai ce qu'est représentée sur fig. 3.

           Par exemple, nous a été nécessaire de remplacer, le nombre 66793940h. Je le présenterai dans l'aspect suivant :

Fig. 9

Maintenant si prendre les éléments s1, s0, i.e. octet cadet, le résultat de la fonction du remplacement sera égal 25h! Почитав l'article d'Andreï Vinokurova, que j'ai amené dans le point «la Liste utilisé la littérature», vous découvrirez en effet que si prendre deux lignes on peut recevoir le massif permettant vite trouver les éléments du remplacement avec l'aide de l'équipe de l'assembleur xlat. Disent on peut et d'une autre manière plus rapide, mais Andreï Vinokurov a dépensé pour l'étude des algorithmes rapides pour la réalisation de la norme d'État près de quatre ans! Je pense, ne se trouve pas inventer la bicyclette, quand il est déjà.

           Donc, sur le massif :

Nous prendrons les deux premières lignes nul et premier, nous créerons le massif sur 256 octet. Maintenant nous observons une particularité que s'il faut transformer 00h, le résultat sera 75h (nous nous appuyons sur fig. 3) – nous mettons cette signification au massif sur le déplacement 00h. Nous prenons la signification 01h, le résultat de la fonction des remplacements 79h, nous le mettons au massif sur le déplacement 01 et cetera jusqu'à 0FFh, qui nous donnera 0FCh, qui nous mettrons au massif selon le déplacement 0FFh. Voici nous avons reçu le tableau élargi des remplacements pour le premier groupe des lignes : premier et nul. Mais il y a encore trois groupes : la deuxième p. 2, p. 3, la troisième p. 4, p. 5, la quatrième p. 6, p. 7. Avec cela par trois groupes nous entrons par le même moyen qu'avec premier. Le résultat – le tableau élargi des remplacements!

           Maintenant on peut réaliser l'algorithme, qui produira le remplacement. Nous prenons pour cela les codes initiaux, qu'a exposé Andreï Vinokurov sur Ñтраничке, regarde «la Liste de la littérature utilisée».

           lea ebx, extented_table_simple

           mov eax, [mettre le nombre qui il faut remplacer]

REPT 3

           xlat

           ror eax, 8d

           add ebx, 100h  ; le passage vers deux noeuds suivants

ENDM

           xlat

           sub ebx, 300h  ; pour que par la suite ebx montre sur le tableau

Maintenant encore une particularité, les actions précédentes nous non seulement avons remplacé, mais aussi ont rapproché le nombre sur 8 bits à gauche! Il nous reste seulement à rapprocher le nombre encore sur 3 bits à gauche :

rol eax, 3h

Et nous recevons le résultat de l'opération rol eax, 11!

           Je suis plus grande que rien je ne peux pas ajouter selon l'optimisation, seul que je peux souligner ce que je disais plus haut – utilisez les registres plus souvent, que l'appel à la mémoire. Je pense ces mots seulement pour les débutants, expérimenté et sans mes mots cela comprennent parfaitement :).

Les exigences à l'information clé.

           Comme est dit dans l'article d'Andreï Vinokurova la clé choisissent selon deux critères :

- Le critère de la distribution équiprobable des bits entre les significations 1 et 0. D'habitude à titre du critère de la distribution équiprobable des bits – le critère Pirsona ("hi-carré") se produit.

Cela signifie par la clé, peut en principe n'importe quel nombre. C'est-à-dire à la formation du bit suivant de la clé la probabilité de son initialisation par l'unité ou le zéro 50/50!

Je demande de remarquer que la clé de huit éléments, chacun selon 32 bits, ainsi de tout dans la clé 32*8 = 256 bits et la quantité de clés possibles 2256! Cela ne te frappe pas ? :)

- Le critère des séries.

           Si nous regardons notre clé, que j'ai amené dans le point «4.1 Réalisation du pas principal криптопреобразованиÑ», vous remarquerez qu'est juste l'inscription suivante :

Fig. 10

Par une phrase la signification k1 ne doit pas se répéter non à k2, non à quel ou un autre élément de la clé.

C'est-à-dire la clé, que nous avons choisi à titre de la considération de l'algorithme шифрованиÑ, correspond tout à fait à deux critères mentionnés ci-dessus.

Maintenant sur le choix du tableau des remplacements :

Maintenant nous parlerons comment correctement choisir le tableau des remplacements. L'exigence principale au choix des tableaux des remplacements est un phénomène «неповторÑемоÑти» des éléments, chacun de qui par le montant à 4 bits. Comme vous voyiez déjà plus haut, chaque ligne du tableau des remplacements comprend les significations 0h, 1h, 2h, 3h, …, 0fh. Ainsi voici l'exigence principale annonce de ce que dans chaque ligne il y a des significations 0h, 1h, 2h, …, 0fh et chaque telle signification dans un exemplaire. Par exemple, la succession :

1 2 3 4 5 6 7 8 9 A B C D E F

Correspond tout à fait à cette exigence, mais quand même! Il n'est pas recommandé de choisir une telle succession à titre de la ligne. Puisque si vous donnez la signification sur l'entrée de la fonction, qui s'appuie sur une telle ligne, sur la sortie vous recevez la même signification! Ne croyez pas ? Alors prenez le nombre 332DA43Fh et huit telles lignes, à titre du tableau des remplacements. Menez l'opération du remplacement, et je vous assure, sur la sortie vous recevez le nombre 332DA43Fh! C'est-à-dire même que vous avez donné sur l'entrée de l'opération! Mais ce n'est pas le signe du bon ton à шифровании, et si était ? :)

C'était une exigence, le critère suivant dit que – chaque bit du bloc de sortie doit être d'après les statistiques indépendant de chaque bit du bloc d'entrée!

Comment cela a l'air plus facilement ? Mais voici comme, par exemple, nous avons choisi du nombre mentionné ci-dessus l'élément s0 = 0Fh, 01111b. La probabilité de ce que nous remplacerons maintenant le premier bit par l'unité ou le zéro est égale 0,5! La probabilité du remplacement du deuxième troisième et quatrième bit, chaque bit, nous examinons séparément, par les unités ou les zéros est égale aussi 0, 5. Au choix s1 = 0Eh, la probabilité de ce que nous le bit nul, mais est «0», nous remplacerons au zéro ou l'unité est égale aussi – 0,5! Ainsi, selon ce critère entre le remplacement des bits nuls des éléments s0, s1 il n'y a d'aucune régularité! Oui, vous pouviez remplacer par les unités, mais vous pouviez mettre aussi et les zéros. :)

Pour l'estimation du tableau selon ce critère on peut construire le tableau des coefficients les corrélations comptées selon la formule :

Où

0≤i≤3

0≤j≤3

N=4

- Si p = 1, la signification du bit j sur la sortie également à la signification du bit i sur l'entrée à n'importe quelles combinaisons du bats sur l'entrée;

- Si p =-1, la signification du bit j sur la sortie est toujours l'inversion du bit d'entrée i;

- Si p = 0, le bit de sortie j avec la probabilité égale accepte les significations 0 et 1 à n'importe quelle signification fixée du bit d'entrée i.

Nous prendrons exemple d'une ligne :

D

B

4

1

3

F

5

9

0

A

E

7

6

8

2

C

Nous décomposerons en "composantes" :

L'entrée

La sortie

Nous compterons un coefficient selon la formule mentionné ci-dessus. Pour qu'il était plus facile de comprendre, comme cela se fait, j'expliquerai plus en détail :

- Nous prenons le 0-ème bit du 0-ème (0) sur l'entrée et le 0-ème bit du 0-ème sur la sortie (1) nous menons l'opération 0 XOR 1 = 1.

- Nous prenons le 0-ème bit du 1-er (1) sur l'entrée et le 0-ème bit du 1-er sur la sortie (1) nous menons l'opération 1 XOR 1 = 0.

- Nous prenons le 0-ème bit du 2-ème (0) sur l'entrée et le 0-ème bit du 2-ème sur la sortie (0) nous menons l'opération 0 XOR 0 = 0.

- Nous prenons le 0-ème bit du 3-ème (1) sur l'entrée et le 0-ème bit du 3-ème sur la sortie (1) nous menons l'opération 1 XOR 1 = 0.

… ….

Ayant mené successivement les opérations XOR dans une telle succession, nous comptons la quantité de toutes significations non nulles, nous recevons la signification 6. D'ici P00 = 1 (6/24-1) = 0,25. Donc, s'est révélé que la signification du bit 0 sur la sortie également à la signification du bit 0 sur l'entrée dans 4 cas de 16;

Le tableau final des coefficients :

L'entrée

La sortie

0

1

2

3

0

0,25

0,00

0,00

-0,75

1

0,00

-0,25

0,00

0,25

2

-0,25

0,25

0,00

0,00

3

0,50

-0,25

0,00

0,00

Comme on voit du tableau des coefficients corrélationnels du bats 3 sur l'entrée инвертирован en ce qui concerne le bit 0 sur la sortie dans 14 cas de 16 que fait 87.5 % Voici ce n'est pas admissible déjà pour les systèmes normaux шифрованиÑ. Pour la variété nous prendrons encore примерчик :

9

8

3

A

C

D

7

E

0

1

B

2

4

5

F

6

Le tableau des coefficients sera suivant (à qui non peut recalculer paresseusement)

L'entrée

La sortie

0

1

2

3

0

-0,25

0,00

0,00

0,00

1

0,00

1,00

0,00

0,00

2

0,00

0,00

1,00

0,00

3

0,00

0,00

0,00

-0,50

Eh bien, dans ce tableau de l'affaire vont encore plus mal – les bits de 1 et 2 groupes restent invariables! Криптоаналитику est, où se déployer En tenant compte de toutes ces exigences par l'excédent simple :) («au front») étaient trouvés les tableaux du réarrangement correspondant à la théorie indiquée (aujourd'hui – 1276 combinaisons) Voici certains d'eux :

09 0D 03 0E-06 02 05 08-0A 07 00 04-0C 01 0F 0B

00 05 0A 07-03 08 0F 0C-0E 0B 04 09-0D 06 01 02

06 0B 0F 00-0C 01 02 0D-08 07 09 04-05 0A 03 0E

04 0E 00 09-0B 01 0F 06-03 0D 07 0A-0C 02 08 05

04 02 08 0E-05 0F 03 09-0B 01 0D 07-0A 0C 06 00

07 03 09 0C-08 00 06 0F-0E 04 01 0A-0D 0B 02 05

06 0F 03 08-0D 04 0A 01-09 02 05 0C-00 0B 0E 07

0C 06 08 01-03 09 07 0E-0B 05 0F 02-04 0A 00 0D

04 0B 09 06-0E 01 00 0F-0A 05 03 0C-0D 02 07 08

00 0E 0F 01-07 08 09 06-04 0B 0A 05-03 0D 0C 02

0F 09 01 07-04 0A 08 06-0E 00 02 0C-05 03 0B 0D

0A 03 04 01-05 0C 0B 0E-08 06 0F 0D-07 09 00 02

0B 06 0F 01-04 0A 08 05-00 0D 0C 02-07 09 03 0E

0C 03 02 08-0D 06 0B 05-07 09 04 0F-0A 00 01 0E

02 0B 0F 04-09 00 06 0D-05 0E 01 08-0C 07 0A 03

La liste de la littérature utilisée.

  1. L'article d'Andreï Vinokurova :

L'algorithme ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ la norme d'État 28147-89, son utilisation et la réalisation

Pour les ordinateurs du quai Intel x86.

(On peut trouver à l'adresse : http://www.enlight.ru/crypto/frame.htm).

Ici et les codes initiaux, selon la réalisation de l'algorithme шифрованиÑ.

  1. L'article d'Horsta Fajstelja :

La cryptographie et la sécurité Informatique.

(On peut trouver à la même adresse que l'article précédent)

  1. Ross N. Williams :

La direction élémentaire selon CRC aux algorithmes de la détection des erreurs

Est exposée sur le site www.wasm.ru.

De la reconnaissance.

           On voudrait exprimer la reconnaissance à tous les visiteurs du forum www.wasm.ru. Mais on voudrait remercier spécialement ChS, qui est connu à présent, comme SteelRat, il m'a aidé à comprendre tels objets, de quoi je, probablement, ne comprendrais pas jamais, mais aussi l'aide à l'orthographe du point : «les Exigences à l'information clé», principal la partie du point donné leur était écrite. Est Aussi profondément reconnaissant au collaborateur КГТУ à ceux-ci. A.N.Tupoleva à Anikinu Igor Viatcheslavovitch et le péché ne pas marquera Chris Kasperski, pour ce qu'il est et Volodya / wasm.ru pour ses instructions. Oh, me reçoit de lui :). Je veux marquer Aussi Sega-Zero / Callipso par contre qu'a porté jusqu'à ma raison certains dédales mathématiques.

Cela, peut-être, tout que je voudrais vous dire.

Je serai, est reconnaissant pour la critique ou les questions liées à cet article ou il est simple les conseils. Mes données de contact : int20h@yandex.ru, ICQ – 337310594.

Respectueusement Evil ` s Interrupt.

+ P.S. : par cet article je ne tâchais pas de surpasser quelqu'un. Elle était écrite à dessein, faciliter l'étude de la norme d'État et si chez vous ont résulté les difficultés, cela ne signifie pas que je suis coupable dans cela. Sois sont raisonnables, et se rassemblez la patience, tout à vous bon!