Der Algorithmus der Chiffrierung ГОСТ 28147-89. Die Methode des einfachen Ersatzes.

«Bis du lebendig bist, stirb nicht, blicke auf diese Welt.
Bei vielen hier ist die Seele tot – sie sind innen tot.
Aber gehen und lachen, nicht wissend, dass es sie nicht gibt,
Beeile die Todesstunde "nicht – sie hat mir gesagt.

Die Arie, es "ist" dort hoch


Der Inhalt:

1.     Die Einleitung

  1. Die vorläufigen Nachrichten über die Blockchiffren

2.1  Seti Fajstelja.
2.2  Blockchiffre ГОСТ 28147-89

  1. Theoretisch mindestens

3.1     Schlüsselinformationen
3.2     Haupt- Schritt криптопреобразованиÑ

3.3  Grundlegende Zyklen: "32-S", "32-R".

  1. Die Praxis

4.1  Realisierung des Hauptschrittes криптопреобразованиÑ
4.2     Vergrößerung der Schnelligkeit des Algorithmus
5.     Die Forderungen zu den Schlüsselinformationen
6.     Die Liste der verwendeten Literatur
7.     Der Dankbarkeit.

Die Einleitung.

Das vorliegende Dokument ist mein Versuch, die Methode des einfachen Ersatzes des Algorithmus der Chiffrierung ГОСТ 28147-89 einfachst, aber nichtsdestoweniger von der technischen-sachkundigen Sprache zu beschreiben. Darüber, ob inwiefern es bei mir erhalten wurde, der Leser wird die Meinung sagen, nachdem sechs ersten Punkte durchlesen wird.

Dazu, dass das Werk waschen würde hat mehr Nutzens gegeben ich empfehle, mit den Werken der Autoren angegeben in der Liste der verwendeten Literatur ausgerüstet zu werden. Es Wird auch der Rechner empfohlen, damit darin die Funktion nach der Berechnung der Operation XOR waren, da das Durchlesen des Artikels vermutet, dass sich der Lesende vorgenommen hat, den vorliegenden Algorithmus der Chiffrierung zu studieren. Obwohl als Informationsunterstützung sie auch herankommen wird, aber schrieb ich diesen Artikel gerade, wie ausbildend.

        

Die vorläufigen Nachrichten über die Blockchiffren.

            Bevor wir beginnen werden, Algorithmus zu betrachten, müssen wir in die Geschichte der derartigen Bildung der Chiffren eingeführt werden. Der Algorithmus verhält sich zur Kategorie der Blockchiffren, in deren Architektur die Informationen auf die endliche Zahl der Blöcke abstürzen, endlich, natürlich sein kann nicht vom Vollen. Der Prozess der Chiffrierung geschieht gerade über den vollen Blöcken, die шифрограмму bilden. Der endliche Block, wenn er unvollständig als oder (über die Nuancen nach seiner Ergänzung ich niedriger ergänzt wird) und wird so wie auch die vollen Blöcke chiffriert. Unter шифрограммой verstehe ich – das Ergebnis der Handlung der Funktion der Chiffrierung über etwas der Daten, die der Benutzer für die Chiffrierung gereicht hat. Mit anderen Worten ist шифрограмма ein Endergebnis der Chiffrierung.

           Die Geschichte der Entwicklung der Blockchiffren vereinigt sich mit dem Anfang 70Ñ… der Jahre, wenn die Gesellschaft IBM der Notwendigkeit des Schutzes der Informationen bei der Sendung der Daten nach den Kanälen der Verbindung des Computers bewußt gewesen, hat die Ausführung des eigenen Programms der wissenschaftlichen Forschungen, die dem Schutz der Informationen in den elektronischen Netzen gewidmet sind, einschließlich der Kryptographie begonnen.

           Die Gruppe der Forscher – der Hersteller der Firma IBM, die die Forschung der Systeme der Chiffrierung mit dem symmetrischen Schema der Nutzung der Schlüssel begann, hat Doktor Chorst Fajstel geleitet.

2.1 Seti Fajstelja

        Angebotener Fajstelem die Architektur der neuen Methode der Chiffrierung in der klassischen Literatur hat den Titel «Architektur Fajstelja» bekommen, aber zur Zeit wird in der russischen und ausländischen Literatur der mehr widerstandene Terminus – "das Netz Fajstelja" oder Feistel ` s NetWork verwendet. In der Folge nach der vorliegenden Architektur war die Chiffre "Luzifer" aufgebaut - der später veröffentlicht war und hat die neue Welle des Interesses für die Kryptographie insgesamt herbeigerufen.

           Die Idee der Architektur "die Netze Fajstelja" besteht im Folgenden: der Eingangsstrom der Informationen stürzt auf die Blöcke vom Umfang in n der Bits, wo n die gerade Zahl ab. Jeder Block teilt sich in zwei Teile – L und R, weiter werden diese Teile in итеративный die Blockchiffre gereicht, in der sich das Ergebnis der J. Etappe vom Ergebnis der vorhergehenden Etappe j-1 klärt! Gesagt kann man auf dem Beispiel exemplifizieren:

Die Abb. 1

 Wo, die Funktion Und eine Haupthandlung der Blockchiffre ist. Kann eine einfache Handlung, solchem wie die Operation XOR sein, und kann die kompliziertere Art haben, eine Reihenfolge der Reihe der einfachen Handlungen – die Addition nach dem Modul, die Verschiebung nach links zu sein, der Ersatz der Elemente usw., insgesamt bilden diese einfachen Handlungen sogenannt – der Hauptschritt криптопреобразованиÑ.

Es ist nötig zu bemerken, dass die Schlüsselelemente der Arbeit der Funktion die Abgabe der Elemente der Schlüssel und die Operation XOR und davon ist inwiefern die Arbeit dieser Operationen gut durchdacht sind, sagt über криптоÑтойкоÑти der Chiffre insgesamt.

Damit die Idee der Netze Fajstelja endgültig war ist klar, betrachten wir Elementarfall dargestellt auf der Abb. 1, wo in der Funktion Und – die Operationen "mod 2†(“xorâ€) auftreten wird, aber ist es der Elementarfall, in der ernsteren Situation, zum Beispiel, die Verheimlichung der Informationen der staatlichen Wichtigkeit die Funktion Oder vielleicht komplizierter (wieviel ich die Funktion sah Und es kommt sehr kompliziert wirklich vor):

Die Ausgangsdaten:

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

Das Ziel:

шифрограмму zu bekommen

Die Lösung:

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

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

3. L = R, R = Sxor

Das Ergebnis:

 L = 0101b, R = 1010b

           Wir werden unsere Handlungen erklären:

1.      Diese Operation die Addition nach mod 24. In der Praxis wird solche Operation auf die einfache Addition zurückgeführt, wo wir zwei Zahlen zusammenlegen sollen und, die Versetzung in 5й die Kategorie ignorieren. Da, wenn über den Kategorien der binären Vorstellung der Zahl einzutragen die Kennziffern der Stufe einzutragen, wird über der fünften Kategorie die Kennziffer vier gerade, werden wir auf die Zeichnung niedriger blicken, wo die Handlungen unserer Operation dargestellt sind:

Die Abb. 2

Hier habe ich vom Zeiger auf die Kennziffern der Stufe bezeichnet, wie es sichtbar ist, das Ergebnis sollte sich 10100, aber ergeben da bei der Operation mod 24 die Versetzung ignoriert wird, wir bekommen 0100.

2. Diese Operation in der Literatur heißt mod 2, auf der Sprache des Assemblers wird von der Mannschaft XOR realisiert. Aber ihren richtigeren Titel mod 21. Ohne diese einzigartige Operation kann man schnell kaum aufbauen, es ist реализуемый der Algorithmus der Chiffrierung und dabei leicht, damit er noch genug криптоÑтойким war. Die Einmaligkeit dieser Operation besteht darin, dass sie selbst sich rückgängig! Zum Beispiel wir, wenn die Zahl Und поXORить mit der Zahl, In daraufhin bekommen werden, im Folgenden ist genug es переXORить die Zahl und In untereinander, um die vorige Bedeutung zu bekommen Und!

In dieser Operation haben wir 1010 bekommen, die Zahlen 1110 und 0100 habend, um 1110 zu wiederbekommen, ist genug es переXORрить untereinander die Zahl 0100 und 1010! Bis ins Einzelne kann man über diese Operation im Artikel achten, der auf der Webseite www.wasm.ru, «die Elementare Führung nach CRC_алгоритмам die Entdecken der Fehler" der Autor, die Ross N angelegt ist. Williams. In diesem Werk gibt es den Punkt - «5. Binäre Arithmetik ohne Rucksicht auf die Versetzungen». Gerade ist in diesem Artikel die Operation xor eben beschrieben! Ich rufe aus, weil diese Operation so diesen Artikel bemalt ist, dass der Leser nicht wie einfach versteht es arbeitet diese Operation, er beginnt sie sogar, zu sehen, zu hören und zu fühlen!

3. Diese Handlung ist notwendig, dass man beim Entziffern aus шифрограммы die Anfangswerte bekommen konnte.

2.2 Blockchiffre ГОСТ 28147-89

        Der Algorithmus der Chiffrierung ГОСТ 28147 – 89 verhält sich zur Kategorie der Blockchiffren der Beschäftigten nach der Architektur der ausgeglichenen Netze Fajstelja, wo zwei Teile des gewählten Blocks der Informationen den gleichen Umfang haben. Der Algorithmus war in den Inneren der achten Abteilung des Komitees für Staatssicherheit umgewandelt heutzutage in ФÐПСИ entwickelt und war gefestigt, wie der Standard der Chiffrierung der Russischen Föderation noch in 1989 bei der UdSSR.

           Für die Arbeit der gegebenen Methode des Algorithmus muss man die Informationen auf die Blöcke vom Umfang in 64 Bits zerschlagen. Zu erzeugen oder ins System der Chiffrierung, die nächsten Schlüsselinformationen einzuführen: den Schlüssel und die Tabelle des Ersatzes. Die Auswahl des Schlüssels ist nötig es und der Tabelle des Ersatzes bei der Chiffrierung sehr ernst zu nehmen, da es das Fundament der Sicherheit Ihrer Informationen gerade ist. Darüber, welche Forderungen werden dem Schlüssel auferlegt, und die Tabelle des Ersatzes ist es den Punkt "die Forderungen zu den Schlüsselinformationen» siehe.

Bei Betrachtung der Methode werden wir darauf die Aufmerksamkeit nicht schärfen, da dieser Artikel, wie ich höher schon sagte, zum Ziel geschrieben ist, lesend zu lehren, die Daten nach der Methode des einfachen Ersatzes des gegebenen Algorithmus der Chiffrierung zu chiffrieren, aber wir werden diese Frage Ende Artikel unbedingt betreffen.

Theoretisch mindestens.

3.1 Schlüsselinformationen

Wie ich höher schon sagte, übernehmen in der Chiffrierung der Daten die aktive Beteiligung:

3.1.1. Der Schlüssel ist eine Reihenfolge acht Elemente vom Umfang in 32 Bits jeder. Weiter werden wir vom Symbol Zu bezeichnen, und die Elemente aus denen er – k1, k2, k3, k4, k5, k6, k7, k8 besteht.

           3.1.2 Tabelle des Ersatzes – die Matrix aus acht Zeilen und sechszehn Ñтолбцов, im Folgenden – Hij. Jedes Element auf der Kreuzung der Zeile i und Ñтолбца j nimmt 4 Bits ein.

        

3.2 Haupt- Schritt криптопреобразованиÑ

           Haupthandlung im Laufe der Chiffrierung ist – der Hauptschritt криптопреобразованиÑ. Es nichts anderes, wie die Handlung nach der Chiffrierung der Daten nach einem bestimmten Algorithmus, die Hersteller nur den Titel ja allzusehr sperrig eingeführt haben :).

           Bevor zu beginnen, zu chiffrieren, zerschlagen den Block in zwei Teile L und R, auf 32 Bits jede. Wählen das Element des Schlüssels und erst dann reichen diese zwei Teile des Blocks, das Element des Schlüssels die Tabelle des Ersatzes in die Funktion des Hauptschrittes, das Ergebnis des Hauptschrittes ist eine Iteration des grundlegenden Zyklus, über den die Rede im folgenden Punkt gehen wird. Der Hauptschritt besteht aus den folgenden Handlungen:

  1. Die Addition der Teil des Blocks R wird mit dem Element des Schlüssels K nach mod 232 zusammengefasst. Über die ähnliche Operation werde ich höher, hier auch am meisten nur die Kennziffer der Stufe nicht «4», und «32» - das Ergebnis dieser Operation im Folgenden Smod bezeichnen.
  2. Das früher bekommene Ergebnis Smod ist auf vier битные die Elemente s7, s6, s5, s4, s3, s2, s1 teilbar, s0 und reichen wir in die Funktion des Ersatzes. Der Ersatz geschieht auf folgende Weise: es kommt das Element Smod - si heraus, vom Anfang ist mit dem jüngeren Element begonnen, und wir ersetzen mit der Bedeutung aus der Tabelle des Ersatzes nach i - jener Zeile und Ñтолбцу, auf den die Bedeutung des Elementes si bezeichnet. Wir gehen zu si+1 dem Element über sowohl ist auf die gleiche Weise gehandelt als auch ist so fortgesetzt bis wir die Bedeutung des letzten Elementes Smod ersetzen werden – das Ergebnis dieser Operation werden wir wie, Ssimple bezeichnen.
  3. In dieser Operation die Bedeutung Ssimple ist zyklisch nach links auf 11 Bit geschoben und ist Srol bekommen.
  4. Wir wählen den zweiten Teil des Blocks L und ist nach mod 2 mit Srol zusammengelegt, ist Sxor im Endeffekt gehabt.
  5. Auf diesem Stadium wird der Teil des Blocks L gleich der Bedeutung des Teiles R, und der Teil R wird vom Ergebnis Sxor seinerseits initialisiert und darauf ist die Funktion des Hauptschrittes beendet!

3.3 Grundlegende Zyklen: "32-S", "32-R".

           Um die Informationen chiffrieren muss man sie auf die Blöcke vom Umfang in 64 Bits zu zerschlagen, kann der natürlich letzte Block weniger als 64 Bits sein. Diese Tatsache ist eine Achillesferse der gegebenen Methode «der einfache Ersatz». Da seine Ergänzung bis zu 64 Bit eine sehr wichtige Aufgabe nach der Vergrößerung криптоÑтойкоÑти шифрограммы und zu dieser empfindlichen Stelle ist, wenn es im Massiv der Informationen anwesend ist, und kann er (zum Beispiel, die Datei der kein Umfang in 512 Byte sein !), es ist nötig sich mit der großen Verantwortung zu verhalten!

           Nachdem Sie die Informationen auf die Blöcke zerschlagen haben, ist nötig es den Schlüssel auf die Elemente zu zerschlagen:

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

           Die Chiffrierung besteht in der Nutzung, sogenannt – der grundlegenden Zyklen. Die n – ое die Zahl der Hauptschritte ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ seinerseits einschließen.

           Die grundlegenden Zyklen haben, wie es, die Markierung zu sagen: n – m. Wo n – die Zahl der Hauptschritte ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ im grundlegenden Zyklus, und m ein "Typ" des grundlegenden Zyklus, d.h. ist worum sich es, über «З» ашифровывании oder «Р» аÑшифровывании der Daten handelt.

           Der grundlegende Zyklus der Chiffrierung 32-S besteht aus 32 Hauptschritten криптопреобразованиÑ. In die Funktion realisierend die Handlungen des Schrittes reichen der Block N und das Element des Schlüssels Zu wobei, der erste Schritt geschieht mit к1, zweiten über dem bekommenen Ergebnis mit dem Element к2 usw. nach dem nächsten Schema:

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

           Der Prozess des Entzifferns 32-R geschieht auf die gleiche Weise, aber die Elemente des Schlüssels werden in der Rückreihenfolge gereicht:

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

Die Praxis.

4.1 Realisierung des Hauptschrittes криптопреобразованиÑ

        Nachdem wir die Theorie das kennengelernt haben, wie die Informationen zu chiffrieren es ist angebrochen, anzuschauen, wie die Chiffrierung in der Praxis geschieht.

Die Ausgangsdaten:

           Wir werden den Block der Informationen N = 0102030405060708h nehmen, hier sind die Teile L und R gleich:

L = 01020304h, R =05060708h, werden wir den Schlüssel nehmen:

K = ‘ as28zw37q8397342ui238e2twqm2ewp1 ’ (es kann ASCII – die Kodes, um die Hexadezimalvorstellung anzuschauen, diese Datei ins Regime der Durchsicht in Total Commander öffnen, auf die Taste «F3» weiter die Taste «3» gedrückt). In diesem Schlüssel der Bedeutung der Elemente werden:

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

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

Auch werden wir die nächste Tabelle des Ersatzes nehmen:

Die Abb. 3

Hier werden die Zeilen von 0 bis zu 7, Ñтолбцы von 0 bis zu F genummert.

Die Warnung: die Ganzen Informationen, einschließlich den Schlüssel mit der Tabelle des Ersatzes sind als Beispiel für die Betrachtung des Algorithmus genommen!

Die Aufgabe:

«Die Ausgangsdaten» verwendend, muss man das Ergebnis der Handlung des Hauptschrittes ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ bekommen.

Die Lösung:

1. Wir wählen den Teil R = 05060708h und das Element des Schlüssels k1 = ‘ as28 ’, in der Hexadezimalart wird das Element des Schlüssels so aussehen: 61733238h. Jetzt machen wir eine Operation der Summierung nach mod 232:

Die Abb. 4

Wie es auf der Zeichnung bei uns sichtbar ist es ist der Versetzung in 33 Bit bezeichnet von der roten Farbe und mit der Kennziffer der Stufe "32 nicht" geschehen. Und wenn wir andere Bedeutungen R haben und des Elementes des Schlüssels ist vollkommen könnte geschehen, auch dann hätten wir es ignoriert, und im Folgenden verwendeten nur die Bits, die von der gelben Farbe bezeichnet sind.

        Ich erfülle solche Operation von der Mannschaft des Assemblers add:

           ; eax = R, ebx = ‘ as28’

           add eax, ebx

           ; eax = Smod

Das Ergebnis dieser Operation Smod = 66793940h

2. Jetzt am meisten заковыриÑÑ‚Ð°Ñ die Operation, aber, wenn nach aufmerksamer, so sie schon nicht solche furchtbar genau zu betrachten, wie es in am Anfang scheint. Wir werden Smod in der folgenden Art vorstellen:

Die Abb. 5

Ich habe mich anschaulich bemüht, die Elemente Smod auf der Zeichnung vorzustellen, aber dennoch werde ich erklären:

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

Jetzt erzeugen wir seit dem jüngeren Element s0, den Ersatz. Sich an den Punkt "3.2 Haupt- Schritt криптопреобразованиÑ» i – die Zeile, si – die Spalte erinnernd, suchen wir in der Nullzeile und null- Ñтолбце die Bedeutung:

Die Abb. 6

So die laufende Bedeutung Smod, nicht 66793940h, und 66793945h.

Wir beginnen, s1, d.h. die Vier zu ersetzen. Die erste Zeile und die vierte Spalte (s1 = 4 verwendend!). Wir schauen die Zeichnung:

Die Abb. 7

Jetzt schon die Bedeutung Smod, nicht 66793945h, 66793925h. Ich vermute, dass jetzt der Algorithmus des Ersatzes dem Leser klar ist, und ich kann sagen, dass nach das Endergebnis Ssimple das Folgende – 11e10325h bedeuten wird.

Das, wie es es einfacher ist, in Form von den Mannschaften des Assemblers ich am meisten zu realisieren werde ich später im folgenden Punkt erzählen, nachdem ich über die ausgedehnte Tabelle erzählen werde.

  1. Wir sollen die bekommene Bedeutung Ssimple auf 11 Bit nach links schieben.

Die Abb. 8

Wie diese Handlung ziemlich einfach sichtbar ist, und wird von einer Mannschaft der Sprache des Assemblers – rol realisiert und ist das Ergebnis dieser Operation Srol 0819288Fh gleich.

4. Jetzt bleibt der Teil L unseres Blocks der Informationen поXORить mit der Bedeutung Srol. Ich nehme den Rechner von w2k sp4 und ich bekomme Sxor = 091b2b8bh.

5. Zusammenfassend und verleihen wir diese Handlung einfach, reinige R die Bedeutung des Teiles L, und den Teil L initialisieren wir von der Bedeutung Sxor.

Das Endergebnis:

L = 091b2b8bh, R = 01020304h

4.2 Vergrößerungen der Schnelligkeit des Algorithmus

        Jetzt werden wir über die Optimierung des Algorithmus nach der Geschwindigkeit reden. Beim Prozess der Realisierung, welchen man oder des Projektes, berücksichtigen muss, dass das Programm, das mit den Register öfter arbeitet, als mit dem Gedächtnis am meisten schneller arbeitet und hier ist dieses Urteil auch sehr wichtig, da über einem Block der Informationen ganzer 32 Handlungen шифрации!

           Wenn ich den Algorithmus der Chiffrierung im Programm realisierte, habe ich auf folgende Weise gehandelt:

1.     Hat den Teil des Blocks L ins Register eax, und R in edx gewählt.

2.     Ins Register esi initialisierte von der Adresse ausgedehnten Schlüssels, darüber ist es niedriger.

3.     Ins Register ebx verlieh die Bedeutung der Adresse ausgedehnter Tabelle des Ersatzes, darüber ist es auch niedriger

4.     Ãœbergab die Informationen der Punkte 1,2, 3 in die Funktion des grundlegenden Zyklus 32 – З oder 32 – Р, je nach der Situation.

Den Algorithmus der Chiffrierung studierend, und, weiter realisierend, bin ich es auf die Schwierigkeit der Abgabe der Elemente des Schlüssels in der Funktion des grundlegenden Zyklus zusammengestoßen. Aber ich habe das Problem mit Hilfe der Umgestaltung des Schlüssels bis zum Ausgedehnten entschieden.

Wenn das Schema der Abgabe der Elemente des Schlüssels im Punkt "die Grundlegenden Zyklen anzuschauen:“ 32-S "," 32-R â€Â», so kann man unseren Schlüssel für den grundlegenden Zyklus 32 – З im Folgenden vorstellen:

К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Т

D.h. vom Anfang gehen k1, k2, k3, k4, k5, k6, k7, k8 - ‘ as28 ’, ‘ zw37 ’, ‘ q839 ’, ‘ 7342 ’, ‘ ui23 ’, ‘ 8e2t ’, ‘ wqm2 ’, ‘ ewp1 ’ drei Male wird diese Reihenfolge wiederholt. Dann gehen die Elemente in der Rückordnung, d.h.: k8, k7, k6, k5, k4, k3, k2, k1 - ‘ ewp1 ’, ‘ wqm2 ’, С8e2tЖ,жui23Т,С7342Т,жq839Т,жzw37Т,жas28Т.

Ich habe im Massiv die Elemente in jener Ordnung im Voraus verfügt, wie sie in 32 gereicht werden sollen – habe ich das Gedächtnis vergrössert, das schlüsselfertig gefordert wird, aber hat sich von einigen Prozessen des Denkens befreit, die mir nicht nötig waren, und hat die Geschwindigkeit der Arbeit des Algorithmus, auf Kosten von der Verkleinerung der Zeit der Behandlung zum Gedächtnis vergrössert! Hier habe ich nur den Schlüssel für 32 – З beschrieben, für den Zyklus 32 – Р habe ich gehandelt es ist ähnlich, aber, anderes Schema der Abgabe der Elemente verwendend, das ich im Punkt "die Grundlegenden Zyklen auch beschrieb:“ 32-S "," 32-R ».

           Es ist die Zeit angebrochen, die Realisierung der Arbeit der Funktion des Ersatzes zu beschreiben, wie ich höher versprach. Ich konnte früher nicht beschreiben, da es die Einführung des neuen Begriffes – die ausgedehnte Tabelle des Ersatzes fordert. Ich kann Ihnen nicht erklären, dass dieser solches. Stattdessen werde ich Ihnen sie zeigen, und Sie ja fassen Sie für sich, was diesen solches – die ausgedehnte Tabelle des Ersatzes selbst ab?

           Also, um sich zurechtzufinden, was ist ausgedehnte Tabelle des Ersatzes uns die Tabelle des Ersatzes benötigt wird, ich werde als Beispiel nehmen, was auf der Abb. 3 dargestellt ist.

           Zum Beispiel, wir brauchten zu ersetzen, die Zahl 66793940h. Ich werde es in der folgenden Art vorstellen:

Die Abb. 9

Jetzt wenn die Elemente s1, s0, d.h. das jüngere Byte zu nehmen, so wird das Ergebnis der Funktion des Ersatzes 25h gleich sein! Почитав den Artikel Andrejs Winokurowa, den ich im Punkt "die Liste verwendet die Literatur gebracht habe», werden Sie wirklich aufdecken, dass man, wenn zwei Zeilen nehmen das Massiv zu bekommen kann, das schnell zu finden die Elemente des Ersatzes mit Hilfe der Mannschaft des Assemblers xlat erlaubt. Sagen es ist auch anderer Weise schneller möglich, aber Andrej Winokurow hat auf die Forschung der schnellen Algorithmen für die Realisierung STAATSJENE neben vier Jahren ausgegeben! Ich denke, man braucht, das Fahrrad nicht zu erfinden, wenn er schon ist.

           Also, über das Massiv:

Wir werden zwei ersten Zeilen null- und erste nehmen, wir werden das Massiv auf 256 Byte schaffen. Jetzt beobachten wir eine Besonderheit, dass man wenn 00h umwandeln muss, so wird das Ergebnis 75h (wir stützen uns auf die Abb. 3) – wir legen diese Bedeutung ins Massiv auf die Absetzung 00h. Wir nehmen die Bedeutung 01h, das Ergebnis der Funktion des Ersatzes 79h, wir legen es ins Massiv auf die Absetzung 01 und so weiter bis zu 0FFh, das uns 0FCh geben wird, die wir ins Massiv auf der Absetzung 0FFh legen werden. Wir haben die ausgedehnte Tabelle des Ersatzes für die erste Gruppe der Zeilen eben bekommen: von erstem und null-. Aber noch gibt es drei Gruppen: die zweite S. 2, S. 3, die dritte S. 4, S. 5, die vierte S. 6, S. 7. Mit ihm von drei Gruppen handeln wir in der selben Weise, dass auch mit erster. Das Ergebnis – die ausgedehnte Tabelle des Ersatzes!

           Jetzt kann man den Algorithmus realisieren, der den Ersatz erzeugen wird. Dazu nehmen wir die Ausgangskodes, die Andrej Winokurow auf der Seite ausgestellt hat, es ist «die Liste der verwendeten Literatur» siehe.

           lea ebx, extented_table_simple

           mov eax, [die Zahl das legen muss man] zu ersetzen

REPT 3

           xlat

           ror eax, 8d

           add ebx, 100h  ; der Ãœbergang zu zwei folgenden Knoten

ENDM

           xlat

           sub ebx, 300h  ; damit im Folgenden ebx auf die Tabelle zeigte

Jetzt noch eine Besonderheit, mit den vorhergehenden Handlungen haben wir nicht nur ersetzt, sondern auch haben die Zahl auf 8 Bit nach links geschoben! Uns bleibt es nur übrig, die Zahl noch auf 3 Bits nach links zu schieben:

rol eax, 3h

Und wir bekommen das Ergebnis der Operation rol eax, 11!

           Ich bin mehr als nichts ich kann nach der Optimierung, einzig ergänzen, dass ich betonen kann, dass ich höher sagte – verwenden Sie die Register öfter, als die Behandlung zum Gedächtnis. Ich denke diese Wörter nur für die Neulinge, erfahren und ohne meine Wörter es verstehen sehr gut :).

Die Forderungen zu den Schlüsselinformationen.

           Wie es im Artikel Andrejs Winokurowa der Schlüssel gesagt ist wählen nach zwei Kriterien:

- Das Kriterium der gleichwahrscheinlichen Verteilung der Bits zwischen den Bedeutungen 1 und 0. Gewöhnlich tritt als Kriterium der gleichwahrscheinlichen Verteilung der Bits – das Kriterium Pirsona ("das chi-Quadrat") auf.

Es bedeutet vom Schlüssel, es kann eine beliebige Zahl im Prinzip. Das heißt bei der Bildung des nächsten Bits des Schlüssels die Wahrscheinlichkeit seines Initializationes von der Einheit oder der Null 50/50!

Ich bitte zu bemerken, dass der Schlüssel aus acht Elementen, jeden nach 32 Bits, so allen im Schlüssel 32*8 = 256 Bits und die Zahl der möglichen Schlüssel 2256! Es trifft dich nicht? :)

- Das Kriterium Serien.

           Wenn wir unseren Schlüssel anschauen werden, den ich im Punkt "4.1 Realisierung des Hauptschrittes ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ gebracht habe», so werden Sie bemerken, dass die nächste Aufzeichnung rechtmäßig ist:

Die Abb. 10

Von einer Phrase soll die Bedeutung k1 nicht in k2, nicht in welche oder anderes Element des Schlüssels nicht wiederholt werden.

Das heißt entspricht der Schlüssel, den wir als Betrachtung des Algorithmus der Chiffrierung gewählt haben, zwei obengenannten Kriterien vollkommen.

Jetzt über die Auswahl der Tabelle des Ersatzes:

Jetzt werden wir das reden, wie es richtig ist, die Tabelle des Ersatzes zu wählen. Die Hauptforderung zur Auswahl der Tabellen des Ersatzes ist eine Erscheinung «неповторÑемоÑти» der Elemente, jeden von denen vom Umfang in 4 Bits. Wie Sie höher schon sahen, besteht jede Zeile der Tabelle des Ersatzes aus den Bedeutungen 0h, 1h, 2h, 3h, …, 0fh. So lautet die Hauptforderung darüber, dass es in jeder Zeile die Bedeutungen 0h, 1h, 2h, …, 0fh und jede solche Bedeutung in einem Exemplar gibt. Zum Beispiel, die Reihenfolge:

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

Vollkommen entspricht dieser Forderung, aber doch! Solche Reihenfolge als Zeile, zu wählen ist es nicht empfehlenswert. Da wenn Sie die Bedeutung auf den Eingang der Funktion reichen werden, die sich auf solche Zeile stützt, so bekommen Sie auf dem Ausgang Sie solche Bedeutung! Sie glauben nicht? Dann nehmen Sie die Zahl 332DA43Fh und solche acht Zeilen, als Tabelle des Ersatzes. Führen Sie die Operation des Ersatzes durch, und ich versichere Sie, auf dem Ausgang Sie bekommen Sie die Zahl 332DA43Fh! Das heißt solches, dass Sie auf den Eingang der Operation gereicht haben! Und es ist kein Merkmal des guten Tones bei der Chiffrierung, und ob es war? :)

Es war eine Forderung, das folgende Kriterium sagt darüber, dass – jedes Bit des Abgabeblocks von jedem Bit des Eingangsblocks statistisch unabhängig sein soll!

Wie es einfacher aussieht? Und wie zum Beispiel wir aus der obengenannten Zahl das Element s0 = 0Fh, 01111b gewählt haben. Die Wahrscheinlichkeit, dass wir das erste Bit mit der Einheit oder der Null jetzt ersetzen werden ist 0,5 gleich! Die Wahrscheinlichkeit des Ersatzes des zweiten, dritten und vierten Bits, jedes Bit, wir betrachten getrennt, von den Einheiten oder den Nullen ist 0, 5 auch gleich. Bei der Auswahl s1 = 0Eh, die Wahrscheinlichkeit, dass wir das Nullbit, und «0» ist, wir werden mit der Null oder der Einheit ersetzen ist – 0,5 auch gleich! So gibt es laut diesem Kriterium zwischen dem Ersatz der Nullbits der Elemente s0, s1 keine Gesetzmäßigkeit! Ja, Sie konnten mit den Einheiten ersetzen, aber Sie konnten und die Nullen auch stellen. :)

Für die Einschätzung der Tabelle nach diesem Kriterium kann man die Tabelle der Koeffizienten der Korrelationen, die nach der Formel berechnet sind aufbauen:

Wo

0≤i≤3

0≤j≤3

N=4

- Wenn p = 1, so die Bedeutung des Bits j auf dem Ausgang gleich der Bedeutung des Bits i auf dem Eingang bei beliebigen Kombinationen das Bit auf dem Eingang;

- Wenn p =-1, so ist die Bedeutung des Bits j auf dem Ausgang eine Inversion des Eingangsbits i immer;

- Wenn p = 0, so übernimmt das Abgabebit j mit der gleichen Wahrscheinlichkeit die Bedeutungen 0 und 1 bei einer beliebigen fixierten Bedeutung des Eingangsbits i.

Wir werden einer Zeile nacheifern:

D

B

4

1

3

F

5

9

0

A

E

7

6

8

2

C

Wir werden auf "die Komponenten" auslegen:

Der Eingang

Der Ausgang

Wir werden einen Koeffizienten nach der Formel obengenannt rechnen. Damit es einfacher war, zu verstehen, wie es wird, werde ich bis ins Einzelne erklären:

- Wir nehmen das 0. Bit 0. Zahl (0) auf dem Eingang und das 0. Bit der 0. Zahl auf dem Ausgang (1) führen wir die Operation 0 XOR 1 = 1 durch.

- Wir nehmen das 0. Bit 1. Zahl (1) auf dem Eingang und das 0. Bit der 1. Zahl auf dem Ausgang (1) führen wir die Operation 1 XOR 1 = 0 durch.

- Wir nehmen das 0. Bit 2. Zahl (0) auf dem Eingang und das 0. Bit der 2. Zahl auf dem Ausgang (0) führen wir die Operation 0 XOR 0 = 0 durch.

- Wir nehmen das 0. Bit 3. Zahl (1) auf dem Eingang und das 0. Bit der 3. Zahl auf dem Ausgang (1) führen wir die Operation 1 XOR 1 = 0 durch.

… ….

Konsequent die Operationen XOR in solcher Reihenfolge durchgeführt, berechnen wir die Zahl aller nicht Nullbedeutungen, wir bekommen die Bedeutung 6. Von hier aus P00 = 1 (6/24-1) = 0,25. Also, es hat sich herausgestellt, dass die Bedeutung des Bits 0 auf dem Ausgang gleich der Bedeutung des Bits 0 auf dem Eingang für 4 Fälle aus 16;

Die zusammenfassende Tabelle der Koeffizienten:

Der Eingang

Der Ausgang

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

Wie es aus der Tabelle der Korrelationskoeffizienten das Bit 3 auf dem Eingang sichtbar ist invertiert bezüglich des Bits 0 auf dem Ausgang für 14 Fälle aus 16, was 87.5 % es schon nicht zulässig für die normalen Systeme der Chiffrierung bildet. Für die Vielfältigkeit werden wir noch примерчик nehmen:

9

8

3

A

C

D

7

E

0

1

B

2

4

5

F

6

Die Tabelle der Koeffizienten wird folgend (wem ist es nicht faul kann nachzurechnen)

Der Eingang

Der Ausgang

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

Also, in dieser Tabelle der Sache verhalten sich noch schlechter – die Bits 1 und 2 Gruppen bleiben unveränderlich! Криптоаналитику ist, wo Unter Berücksichtigung :) dieser Forderungen von der einfachen Übergebühr zu wenden («in die Stirn") waren die Tabellen der Umstellung entsprechend der angegebenen Theorie (für heute – 1276 Kombinationen) einige ihnen gefunden:

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

Die Liste der verwendeten Literatur.

  1. Der Artikel Andrejs Winokurowa:

Der Algorithmus der Chiffrierung ГОСТ 28147-89, seine Nutzung und die Realisierung

Für die Computer des Bahnsteigs Intel x86.

(Man kann an die Adresse finden: http://www.enlight.ru/crypto/frame.htm).

Hier und die Ausgangskodes, nach der Realisierung des Algorithmus der Chiffrierung.

  1. Der Artikel Chorsta Fajstelja:

Die Kryptographie und die Computersicherheit.

(Man kann an die selbe Adresse dass auch den vorhergehenden Artikel) finden

  1. Ross N. Williams:

Die elementare Führung nach CRC den Algorithmen des Entdeckens der Fehler

Ist auf der Webseite www.wasm.ru ausgestellt.

Der Dankbarkeit.

           Man wollte die Dankbarkeit allen Besuchern des Forums www.wasm.ru aussprechen. Aber man wollte ChS besonders danken, der, wie SteelRat gegenwärtig bekannt ist, er hat mir geholfen, solche Sachen zu verstehen, wessen ich wahrscheinlich, und ebenso die Hilfe bei der Schreibung des Punktes niemals verstanden hätte: «die Forderungen zu den Schlüsselinformationen», wesentlich war der Teil des gegebenen Punktes ihnen geschrieben. Ist dem Mitarbeiter КГТУ ihnen auch tief dankbar. A.N.Tupolewa Anikin Igor Wjatscheslawowitschu wäre es und die Sünde Krissa Kasperski, dafür nicht zu bemerken, dass er und Volodya / wasm.ru für seine Vorschriften ist. Ох, fällt mir von ihm eben zu. Ebenso :) will ich Sega-Zero / Callipso bemerken dafür, dass bis zu meiner Vernunft einige mathematische Dickichte denunziert hat.

Es ist man aller wohl, dass ich Ihnen sagen wollte.

Ich werde, ist für die Kritik oder die Fragen, die mit diesem Artikel verbunden sind dankbar oder es ist die Räte einfach. Meine Kontaktdaten: int20h@yandex.ru, ICQ – 337310594.

Mit freundlichen Grüßen Evil ` s Interrupt.

+ P.S.: von diesem Artikel bemühte ich mich jemanden nicht, zu überbieten. Sie war absichtlich geschrieben, das Studium STAATSJENE und zu erleichtern wenn sich bei Ihnen die Schwierigkeiten ergeben haben, so bedeutet es nicht, dass ich darin schuldig bin. Sei vernünftig, und werden die Gedulden, alles Ihnen gut Sie zusammengenommen!