Hochgeschwindigkeits-Hashing basierend auf einem neuen kryptografischen Algorithmus
Leider kennen sich Mathematiker mit den Feinheiten der Programmierung nur schlecht aus, sie erfinden etwas, und dann muss der Programmierer dies im Programmcode implementieren. Es ist bei weitem nicht immer möglich, ihre Algorithmen effektiv zu implementieren.
Dies zeigt sich insbesondere in der jüngsten russischen symmetrischen Kryptographie, Striborg und Grasshopper ... Es ist unmöglich, diese Algorithmen effektiv in x86 / 64-Programmcodes zu implementieren, es wird ein spezialisierter Kryptoprozessor benötigt.
Wir machen das Gegenteil und sehen, was passiert.
Ein Programmierer, der weiß, wie der moderne x86 / 64-Prozessor funktioniert, wird den effizientesten symmetrischen Verschlüsselungsalgorithmus entwickeln und Mathematiker wie früher ihre Hauptaufgabe erledigen lassen - die Kryptoanalyse der resultierenden Lösung.
Wenn wir uns daran erinnern, dass „das Beste der Feind des Guten ist“, nehmen wir das „Gute“ als Grundlage - GOST 28147-89. Dann werden wir uns nach dem medizinischen Prinzip „Do no harm“ mit Multithread-Rechenmethoden bemühen.
Folgendes wurde getan:
- Die Schlüsselgröße wurde auf 256 Byte erhöht.
- Datenblockgröße auf 256 Byte erhöht.
- Die Substitutionsoperation wird durch eine Permutationsoperation ersetzt.
- Bei der zyklischen Verschiebung wird der Betrieb invertierender Bitgruppen implementiert.
- Die Schlüsseleingabe erfolgt in Form einer Permutation von Bits.
- Das Feistel-Netzwerk wird in ein Ringnetzwerk aus acht Segmenten umgewandelt.
- Der Gamming-Modus mit Rückmeldung wird in zwei Durchgängen über verschlüsselte Daten verwendet.
- Passagen werden mit unterschiedlichen Permutationen erstellt und mit denselben Tasten ringverschoben.
- Vor der Verschlüsselung wird die Redundanz mithilfe eines Kompressors aus dem verschlüsselten Text entfernt.
Testimplementierung
Der Algorithmus ist implementiert, und das erste, was getestet wird, sind seine statistischen Parameter beim Erzeugen einer Pseudozufallssequenz (der Kompressor ist ausgeschaltet). So sehen sie aus:

Dies ist ein typisches NIST-Testergebnis einer neuen Kryptokonvertierung. Die Testergebnisse für zufällige Schlüssel und Anfangspopulationen passen immer in die statistischen Parameter einer zufälligen Sequenz.
Die statistischen Parameter, die in Experimenten zu den Normen einer 8-Byte-Blockverschlüsselung für eine Blockverschlüsselung mit einer Blockgröße von 256 Bytes erhalten wurden, sind fantastisch.
Es ist das gleiche wie zum Beispiel, wenn Sie eine Münze 12 Mal werfen und einen gleichen Tropfen "Adler" und "Nüsse" erhalten, um zu verlangen, dass der Würfel, der ebenfalls 12 Mal geworfen wird, zweimal auf jedes Gesicht fällt ...
Dies ist theoretisch nur mit einer sehr hohen Differentialentropie zwischen benachbarten Blöcken möglich und kennzeichnet den Komplexitätsgrad der Blockverschlüsselung.
Diese Gamma-Parameter wurden in einer Umwandlungsrunde erhalten. Der Algorithmus hat eine Funktion: Die Gammageschwindigkeit hängt von der Leistung von RAM und Cache ab und nicht von der Prozessorgeschwindigkeit.
Russisches Roulette, 2018 und seine Anwendung
In letzter Zeit haben kryptografische Algorithmen begonnen, klangvolle Namen wie "Magma", "Grasshopper", "Stribog" zu erhalten. Wir werden diese Tradition fortsetzen.
Wir werden diese Blockchiffre
"Russisches Roulette" oder kurz
" RU2 " nennen , zu Ehren des ersten rein russischen Generators zufälliger
Binärsequenzen - einer rotierenden Revolver-Trommel ...
Nun, außerdem basiert die Kryptokonvertierung auf Rotationen (Ringverschiebungen) von Binärsequenzen. In einer solchen Runde gibt es nur
192 explizite Verschiebungen.
Die direkte Analogie zur Revolvertrommel ist also offensichtlich.
Zuvor musste ich bei der Implementierung der parallelen Implementierungsmethode von GOST 28147-89 in XMM / YMM-Registern diese vollständig beschreiben, da sie die offizielle FSB-Zertifizierung bestand.
Jetzt ist die Situation anders, es wird kein Amt angenommen. Daher wird es keine detaillierte Beschreibung des "Russian Roulette" -Algorithmus geben, es handelt sich um eine Art Urheberrechtsschutz. Kurz gesagt, der Algorithmus „Russisches Roulette“ wird bisher proprietär sein und dementsprechend wird seine vollständige Bezeichnung
Russisches Roulette, 2018 oder kurz
RU2 sein .
Ein aus der Forschung geschlossener Verschlüsselungsalgorithmus ist natürlich Unsinn, da kein Vertrauen in die Stärke der Verschlüsselung besteht.
Nichts hindert jedoch daran, den
RU2- Algorithmus zum Konvertieren von verschlüsseltem Text in eine Sequenz zu verwenden, die die Anforderungen der
Pseudozufälligkeit erfüllt.
Dann kann die resultierende Pseudozufallssequenz mit bekannten und "zuverlässigen" Algorithmen verschlüsselt werden. Tatsächlich werden alle seriösen kryptografischen Systeme erstellt.
In der Zwischenzeit wird russisches Roulette für Hochgeschwindigkeits-Hashing mit einer beliebigen Größe des Ergebnisses der Hash-Funktion verwendet. Dies ist wichtig für Sicherungs- und Integritätsaufgaben.
Feedback-Standard-Gamma wird zu einer Hash-Funktion, wenn Sie einen zweiten Durchgang für verschlüsselte Daten durchführen. So wurde der
RU2- Algorithmus ursprünglich implementiert.
Rückkopplungs-Doppel-Gamma wurde bisher nicht als Variante der Implementierung der Hash-Funktion angesehen, anscheinend aufgrund der geringen Betriebsgeschwindigkeit, obwohl es zuverlässigere Faltungsparameter aufweist. Dies gilt vor allem für den Lawineneffekt, er wirkt sich nicht nur auf nachfolgende, sondern auch auf frühere Faltungsrunden aus.
Darüber hinaus werden die erhaltenen Eigenschaften der Hash-Funktion durch statistische Tests zuverlässig überprüft, da der gesamte empfangene Chiffretext, der ein zuverlässiges pseudozufälliges Gamma ist, zu einem Hash wird.
Aus dieser Farbskala können beliebige Teile geschnitten werden, um den Wert der Hash-Funktion zu speichern. Jetzt wird ein 1024-Byte-Block verwendet, der im „fortschrittlichsten“ SHA3-512-Standard viel zuverlässiger ist als ein 64-Byte-Block.
RU2- Hashing schützt Daten vor dem Anzeigen / Ändern. Bis Kryptographen jedoch von der Robustheit des Algorithmus überzeugt sind, werden wir ihn als Kennwortschutz für Daten betrachten, um den Zugriff zu beschränken.
Praktische Implementierung von RU2
Der russische Roulette-Algorithmus ist in den forensischen Vervielfältiger von Festplatten- und SDD-Laufwerken integriert. Der Algorithmus wird dort verwendet, um differenzielle Sicherungen, Integritätskontrolle, kennwortbasierte Zugriffsbeschränkungen und Informationskomprimierung zu erstellen.
Der Kompressor zum Entfernen von Redundanz wurde bereits früher im Artikel „
Ein neuer Hochgeschwindigkeits-Datenkomprimierungsalgorithmus“ beschrieben . Hashing wird verwendet, um die Integrität der kopierten Daten zu bestätigen, und im Falle der Eingabe eines Kennworts auch zum „Kennwortschutz“ der empfangenen Speicherauszüge vor Anzeige / Änderung.
Hier sind die Geschwindigkeitseigenschaften von
RU2, die in der realen Arbeit an der Erstellung einer differenziellen Sicherung erhalten wurden:

Die Kopiergeschwindigkeit wird durch die Parameter des Lesegeräts begrenzt. Ein über eine USB 3.0-SATA-Bridge angeschlossenes SSD-Laufwerk kann keine hohe Lesegeschwindigkeit bieten.
Bei einer Eingangsstromgeschwindigkeit von 360 Megabyte / Sek.
Der RU2- Algorithmus lädt den Prozessor nur um 5% bei einer reduzierten Betriebsfrequenz von 1,4 Gigahertz. Dies ermöglicht die Komprimierung von Informationen, deren Hashing und Verschlüsselung (Kennwortschutz) des Speicherauszugs.
Herkömmliche Hashing-Systeme können eine solche Leistung nicht bieten. Zum Vergleich: So funktioniert das in Acronis integrierte Hash-System beim Erstellen einer differenziellen Sicherung desselben Laufwerks:

Der Prozessor hascht den Eingangsdatenstrom mit einer Geschwindigkeit von 340 MegaBytes / Sek. Und arbeitet gleichzeitig mit einer Frequenz von 3,8 GigaHertz und wird mit 28% geladen.
Wenn wir die in den Grenzparametern für einen Dual-Core-Prozessor mit einer Frequenz von 3,8 GigaHertz erzielten Ergebnisse neu berechnen, kann das Acronis-Hash-System einen Durchsatz von 1,4 GigaByte / s liefern.
Der russische Roulette-Algorithmus ist viel schneller mit Aufgaben (Hashing + Komprimierung + Passwortschutz) ausgestattet und bietet eine Geschwindigkeit von 21 Gigabyte / Sek.
Mit anderen Worten,
RU2- Hashing arbeitet um eine Größenordnung schneller als das in Acronis implementierte Standard-Hashing.
Darüber hinaus bietet das russische Roulette eine Pseudozufallszahlengenerierungsrate von 12 Gigabyte pro Sekunde. Dies ist der schnellste bekannte Pseudozufallssequenzgenerator, der die Anforderungen offizieller NIST-Tests erfüllt.
Zufallsgenerierung, Hashing, Passwortschutz, während dies für russisches Roulette ausreicht.
"... aber was ist mit Kryptographie? - und dann Kryptographie ..."