Personliche Website Vyacheslav Gorchilina
Beschreibung des ukrainischen (Russischen) Algorithmus für geheime Datenübertragung

1. Der Allgemeine Ansatz
Der Algorithmus basiert auf der Methode der Umwandlung der Eingabedaten (VD) mit öffentlichem Schlüssel (CPR), und die Methode der permutation die aus Ihrer Konvertierung resultierenden Daten über den privaten Schlüssel (ЗКЛ). CPR wird zusammen mit der erhaltenen WA kodierten String (ЗСТР), und seine Lage in ЗСТР berechnet nach dem Algorithmus mit ЗКЛ. Das Letzte ist nur der sende-und Empfängerseite. Erste VD aus ЗСТР geschieht in umgekehrter Reihenfolge.

Der Algorithmus besteht aus einem oder mehreren Blöcken, von denen jeder hat seine eigenen öffentlichen und privaten Schlüssel. Aufnahme von mehreren in Reihe geschalteten Blöcke erhöht криптостойкость. In Abb.1 zeigt zwei Blöcke, aber weiter wird beschrieben Algorithmus für die Arbeit von einem von Ihnen. Andere funktionieren genauso gut.

Der Algorithmus ist Recht einfach auf jeder Plattform realisiert. Die Plattform unterstützt die Arbeit mit dezimal-und hexadezimal-zahlen (summation, Subtraktion und Umwandlung von einem Format in ein anderes), und haben die Möglichkeit, mit übergeben wurde. Plattform-Beschränkung wird nur durch die Größe von VD.

2. Beschreibung des Algorithmus der Chiffrierung der Daten
2.1 Über VD erfolgt die algebraische Transformation-Algorithmus [1]. Es kann eine einfache summation mit CPR', wobei CPR' im Allgemeinen Fall kann eine Funktion von CPR, ЗКЛ und andere Daten. Komplexe Transformationen in diesem Teil des Algorithmus macht keinen Sinn und Aufgabe ist die Maskierung von VD. Die erhaltenen Daten werden Zeile nennen.

2.2 Weiter Zeile konvertiert die Methode der permutation mit der Bildung von so genannten "Löcher". Löcher sind Bereiche in der Kabinettsumbildung nach der Zeile, die eine Sequenznummer, aber noch nicht von Bedeutung. Die Reihenfolge der Permutationen und Lochbildung bestimmt ЗКЛ [2].

2.3 In Löcher, die in P2.2, wird der CPR nach dem Algorithmus [3]. Orte der Löcher bestimmt ЗКЛ. So ЗСТР enthält die konvertierten AED und CPR.

Схема алгоритма шифрования
Abb.1

3. Beschreibung des Algorithmus entschlüsseln von Daten
In Abb.2 zeigt ein Diagramm entschlüsseln von Daten. Die Schaltung besteht aus zwei in Reihe geschalteten Blöcken, aber weiter wird beschrieben Algorithmus für die Arbeit von einem von Ihnen. Andere funktionieren genauso gut.

3.1 Von ЗСТР mit dem ЗКЛ extrahiert unbekannte während der CPR nach dem Algorithmus [4].

3.2 ЗСТР konvertiert die Methode der permutation Algorithmus [5]. Die erhaltenen Daten werden weiter Zeile nennen.

3.3 Über der Zeile erfolgt algebraische Transformation-Algorithmus [6]. Als Ergebnis erhalten wir VD. VD am Eingang (Abb.1 Блок1) und VD am Ausgang (Abb.2 Блок1) gleichwertig.

Схема алгоритма дешифрования
Abb.2

4. Erzeugung ЗКЛ
ЗКЛ kann nicht eine beliebige Kombination aus Buchstaben oder zahlen, muss es durch einen speziellen Algorithmus erzeugen [8]. Wobei für jeden Block (двухблочный Beispiel in Abb.1) es muss eindeutig sein. Die Erzeugung erfolgt einmal, dann ЗКЛ ausgestellt sende-und Empfängerseite, und sollte nur Ihnen bekannt sein.

Implementierung des Algorithmus — Modul UAcoder | Test-Algorithmus und des Moduls

[1] Algebraische Transformation impliziert jede algebraische Aktionen über die Daten:
ST=f(AED,CPR')
wo: ST — resultierende algebraische Transformationen String;
f(AED,CPR') — algebraische Funktion von VD und CPR', während im Allgemeinen Fall: HLW'=f(HLW,ЗКЛ,...);
Пример алгебраического преобразования
Abb.3
Beispiel einer algebraischen Transformation ist in Abb.3, wo VD ABCDE sind gleich, und CPR' gleich 5F61B. Der Algorithmus basiert auf der addition von zwei шестнадцатиразрядных zahlen, nach denen allein der jüngste Entladung, zum Beispiel: A+5=F C+6=2. Durch die Transformation bekommen die Zeile FA2E9, deren Länge gleich der Länge des VD.

[2] Dieser Teil des Algorithmus ist der Schlüssel und beinhaltet die permutation der Zeilen in Abhängigkeit von ЗКЛ. Infolge der Permutationen ergibt sich eine neue Zeile, und es bilden sich so genannte "Löcher", in die dann ersetzt ca. Führen wir eine Definition: INT — String bis zu Permutationen, ПСТР — Zeile nach der permutation, die i — Nummer des Elements in INT, j — die Nummer des Elements in ПСТР, k — Artikel-Nummer in ЗКЛ. Element Zeile nennen wir den Wert eines Zeichens der Zeichenfolge, die laufende in Ihr Zimmer. Alle Zimmer beginnen bei null.

Algorithmus für die nächsten Kabinettsumbildung. Wird eine serielle Büste INTERN und ЗКЛ. Dabei k=i bis zu dem Moment, wenn k kleiner als die Länge ЗКЛ. Weiter k=(i)mod(L), wo L — Länge ЗКЛ, d.h. einfach ausgedrückt durch k beginnen, von Grund auf neu jedes mal, wenn k erreicht L. Tauschen i-TEN Element INTERN im j-TEN Element ПСТР nach der Regel: j=i+Zk, wobei Zk — Wert k-Element ЗКЛ. Nach den ganzen Umstellungen INTERN bekommen wir ПСТР Länge größer als die INTERN auf die Länge ЗКЛ minus eins. Dies bedeutet, dass ПСТР hat "Löcher", d.h. Orte ohne Werte.

Пример перестановки данных
Abb.4
Beispiel für den Erhalt ПСТР aus INTERN ist auf der Abb.4, wo ЗКЛ 2011 gleich, aber INTERN gleich ABCDEFGH. In Folge der Umstellungen bekommen ПСТР gleich -BACDFEGH-- , wo in Form von Strichen '-' gekennzeichnet Löcher. Im Allgemeinen Fall die Anzahl der Löcher definiert: BH=N-1, wobei: das schwarze Loch — die Anzahl der Löcher in der N — Basis des Zahlensystems. Zum Beispiel für ЗКЛ bestehend aus vier четырехричных zahlen die Anzahl der Löcher, in der Regel wird gleich drei.

[3] Lookup-Algorithmus CPR in solche Löcher. In die erste Querstraße Links nach rechts ein Loch gibt das erste Element HLW, in der zweiten das zweite, usw., bis alle Löcher gefüllt sind. Zimmer die Löcher werden nach dem Algorithmus [7]. Im Beispiel aus [2] (Abb.4) es wird wie folgt Aussehen: -BACDFEGH-- => 5BACDFEGHD0, wo HLW 5D 0 gleich.

[4] der Algorithmus Extraktion der HLW-ЗСТР dies. Finden Zimmer Löcher nach dem Algorithmus [7], im folgenden als ND. Extrahieren Sie den Wert aus der ersten LP, und ersetzen Sie es auf die Stelle des ersten Elements ca. An die Stelle des zweiten Elements HLW ersetzen Sie den Wert der zweiten LP, usw., bis wir alle Elemente ca. D.h. ist ein Algorithmus, inverse Algorithmus [3].

[5] Dieser Algorithmus Permutationen — Reverse-Algorithmus [2], nur in diesem Fall INTERN — eine berühmte Zeile am Eingang, und ПСТР — bisher unbekannte Zeichenkette am Ausgang des Algorithmus. Schaffen ПСТР aus Nullen (oder anderen Werte) Länge, die der Länge INT minus Anzahl der Löcher. Produzieren eine serielle Büste INTERN und ЗКЛ. Dabei k=i bis zu dem Moment, wenn k kleiner als die Länge ЗКЛ, und weiter k=(i)mod(L). Ersetzen statt i-Element INT j-TEN Element ПСТР nach der Regel: i=j-Zk, wo Zk — Wert k-Element ЗКЛ. Daher die Ausgabe des Algorithmus erhalten ПСТР Länge, die kleiner als die Länge, die INTERN auf die Anzahl der Löcher.

[6] der Algorithmus einer algebraischen Transformation Rückseite muss für den Algorithmus [1].

VD=f(ST,HLW -')
wo: VD — die durch inverse algebraische Transformationen von Daten;
f(TK,HLW -') — eine solche algebraische Funktion von ST und HLW, dass ST=f(AED,CPR'), wobei im Allgemeinen Fall: HLW'=f(HLW,ЗКЛ,...); die gleiche, wie in [1].
Пример обратного алгебраического преобразования
Abb.5
Beispiel einer algebraischen Transformation ist in Abb.5. Alle durchgeführten Handlungen Rückseite im Beispiel aus [1] (Abb.1). Muss der Wert des Elements der Eingabe subtrahieren Sie den Wert des Elements CPR (oder Funktionen von CPR) - Methode zu ergänzen. D.h. wenn die erste Zahl kleiner als die andere, wird zu der erhaltenen Differenz addiert eine Zahl, die entsprechende Schreibweise (zum Beispiel für den hexadezimalen Zahlensystem ist 16).

[7] Algorithmus für die Suche nach Zimmer Löcher in der Zeile reduziert auf die überprüfung der freien Plätze in der ersten und letzten N-1 Zimmer-Zeile. N — Zahlenbasis HLW (zum Beispiel für hexadezimalen Zahlensystem ist 16). Im Beispiel aus [2] (Abb.4) es werden Standorte: 0,9,10.

[8] einen Algorithmus zur Erzeugung von ЗКЛ nächsten. Erstellt ein leeres array aus 3*N Elemente, und eine leere Zeichenfolge aus N Elementen, wobei: N — Zahlenbasis. Generiert die erste Zufallszahl R0 im Bereich 0..N-1. Erfolgt die überprüfung auf Existenz in der nicht leeren array-Element mit zahlen: 0+R0 und N+0+R0. Wenn beide das Element leer, wird die Zahl R0 gilt als erfolgreich erzeugt, und wird in der Zeile auf die Stelle unter der Nummer '0', sondern auch in ein array eingetragen unter den Nummern 0+R0 und N+0+R0. Wenn mindestens einer der beiden prüfenden Elemente des Arrays nicht leer (d.h. enthält bereits eine Zahl), die Zahl R0 erzeugt und erneut überprüft.

Auf die gleiche Weise generieren müssen N zahlen. Im Allgemeinen Fall wird die generierte Nummer: Ri, und die Elemente des Arrays für die überprüfung und die Eintragung der Werte hin: i+Ri und N+i+Ri, wobei: i — Sequenznummer von null bis N-1. Die Ausgabe ist eine Zeile aus N Elementen, die gleich ЗКЛ.


Горчилин Wjatscheslaw, 2004
* Nachdruck des Artikels und die Anwendung des Moduls kann mit der Bedingung Links auf die Website und Einhaltung des Urheberrechts

« Назад
2009-2018 © Vyacheslav Gorchilin