CODING-Exposé
Das Verfahren
Bei dem durch die Programme CODINGx verwendeten Verfahren handelt es sich um ein unter der Patentnummer DE 10 2005 033 390.7 A1 beim Deutschen Patentamt angemeldetes Verfahren zur Ver-/Entschlüsselung von beliebigen Daten “on place”. Das Verfahren ist charakterisiert durch
Damit ist CODING das ideale Werkzeug
Performance
Eine besondere Herausforderung stellt die zeitkritische Kodierung von Massendaten dar. Dies ist u. a. in einem Realtime-Szenario der Fall, bei dem ein
kontinuierlicher Datenstrom in Echtzeit verarbeitet werden muss. Jede Verzögerung durch eine zu langsame Verarbeitung führt zwangsläufig zum Kollaps und damit zur Nicht-Anwendbarkeit, d.h. dem Ausschluss des Kodierungsverfahrens.
Das
Verfahren CODING reduziert die Anzahl der Multiplikationen, die im Endeffekt notwendig sind, auf ein notwendiges Minimum, das zur Aufrechterhaltung der vollen Sicherheit selbst bei homogensten Daten (geprüfter Testfall: 1 GB binäre Nullen)
erforderlich ist. Dadurch erst wird die gegenüber anderen Verfahren sehr hohe Ausführungsgeschwindigkeit erreicht, wobei das Verfahren neben einer höheren Flexibilität gleichzeitig auch eine höhere Sicherheit (speziell für t>1) für sich in Anspruch nehmen kann.
Operations-Sicherheit
Herkömmliche Kodierungssysteme wie DES, Tripple-DES, AES arbeiten zum einen mit festen Blocklängen, so dass kürzere Daten zunächst auf diese Längen erweitert
werden müssen. Zum anderen sind die Blöcke solcher Systeme miteinander verschränkt, d.h. dass ein fehlerhafter Block (z.B. durch Übermittlungsfehler) die Dekodierung aller weiteren Blöcke unmöglich macht.
Bei CODING existieren
prinzipiell keine definierten Blocklängen. D.h. kürzere Informationen am Ende einer Datenmenge müssen nicht erweitert werden, was die Größe der kodierten Datenmenge gegenüber der der Ausgangsdaten unverändert lässt.
Wesentlicher für die Operationssicherheit jedoch ist, dass ein beschädigter Block nicht die Dekodierung der weiteren Blöcke verhindert. Dies betrifft speziell
z.B. Telefongespräche (Voice over IP), bei denen eine Störung im Datenfluss nicht automatisch dazu führen muss, das Gespräch wieder völlig neu aufzubauen. Auch bei sonstiger Datenübermittlung ist es mit CODING lediglich notwendig, den/die
gestörten Datenblöcke erneut zu übertragen. Mit entsprechenden Modifikationen des hier vorgestellten Algorithmus (z.B. Wegschreiben der Wiederaufsetzpunkt-Parameter für einen gestörten Block) können diese auch nachträglich schnell und
effizient bearbeitet werden.
Chiffrier-Sicherheit
Selbst neuere Kodierungssysteme wie AES verwenden nur einen Schlüssel mit maximaler Länge von 128 Bits. Dagegen verwendet schon die einfachste Version von CODING
(Dimension t=1) einen Schlüssel der maximalen Länge von 2048 Bits (für Dimension t=2 sind es bereits 1.048.576 Bits maximaler Schlüssellänge).
Das
Verfahren wurde Informatikern der TU Darmstadt unter Leitung von Prof. Dr. Johannes Buchmann vorgelegt, um eine erste Beurteilung vorzunehmen. Danach kann das Verfahren nicht gebrochen werden, ohne einen Großteil aller möglichen Schlüssel
durchzuprobieren. Eine genauere Beurteilung der “Sicherheit” speziell aus informationstheoretischer Sicht (d.h. müssen für nicht triviale Schlüssel tatsächlich immer alle Schlüssel überprüft werden oder lässt sich die Anzahl zu prüfender
Schlüssel einschränken) muss einer eingehenderen Untersuchung vorbehalten bleiben.
Unabhängig davon wurden vom Autor bereits umfangreiche Tests vorgenommen, die nachweisen, dass selbst bei homogensten Daten (nur binäre Nullen) das
Verfahren gegen die Gleichverteilung der binären Nullen und Einsen sowie der Bytes bzw. Byte-Gruppen konvergiert (gesondertes Dokument, siehe oben).
Des weiteren konnten “near-key”-Untersuchungen zeigen, dass selbst Versuchsschlüssel,
die nur ein oder wenige Bits vom tatsächlichen Schlüssel entfernt waren, zu keinen statistisch relevanten Änderungen in den genannten Verteilungen gegenüber den verschlüsselten Daten führten. Auch Blockdifferenz-Betrachtungen und deren
Verteilungen konnten keine relevanten Unterschiede zu zufälligen Blockinhalten aufdecken.
Vielmehr kann das hier vorgestellte Verfahren auch dann als sicher eingestuft werden, wenn neben dem Kodierungs-Algorithmus selbst sowohl die
Ausgangsdaten als auch die kodierten Daten bekannt sind. Der ursprüngliche Schlüssel selbst kann daraus nicht (bzw. nur durch Testen aller möglichen Schlüssel; siehe ausstehende Untersuchung oben) ermittelt werden.
Hinter dem Verfahren CODING steht eine (unendliche) Reihe von konkreten Kodierungsverfahren. Die Dimension t eines Verfahrens ist dabei definiert als die Anzahl
von Bytes, die zu einer Byte-Gruppe zusammengefasst wird. Für t=1 werden daher einzelne Bytes betrachtet und es finden 1-Byte-Transformationstabellen ihre Anwendung. Für t=2 werden jeweils 2 Bytes als eine Byte-Gruppe aufgefasst, für die
2-Byte-Transformationstabellen Anwendung finden, usw.
Das Verfahren CODING selbst ist bezüglich t nicht begrenzt, bis t=3 existieren zur Zeit schon vom Autor entwickelte einsatzfähige PC-/Unix-Programme.
Mächtigkeit des Schlüsselraums
Für t=1 ergeben sich ca. 3,2317*10616, für t=2 ca. 6,74114*10315.652 bzw. für t=3 ca. 10121.210.686,2336 mögliche Schlüsselraum-Elemente!
Letztere Zahl ist darstellbar durch eine 1 mit Nullen, die mehr als 33 Bände á 1000 Seiten jeweils gefüllt mit 3600 Nullen belegen. Es lässt sich leicht nachweisen, dass mindestens (256t)! Elemente des jeweiligen
Schlüsselraums durch den hier angesprochenen Algorithmus auch tatsächlich wirksam werden können (n!, sprich “n Fakultät”, ist definiert als 1*2*3*...*n), lediglich der Beweis der Wirksamkeit aller
Elemente jeweils eines Schlüsselraums steht noch aus (s. o.).
Unter diesen Umständen muss t nur “groß genug” gewählt werden, um niemandem, selbst mit zukünftig denkbaren (Quanten-)Rechnern bzw. Rechner-Farmen, nur irgendeine
realistische Möglichkeit zu eröffnen, mit CODING kodierte Daten in akzeptabler Zeit ohne entsprechenden Schlüssel bzw. Kodierungs-Parameter zu dekodieren. Zur Zeit dürfte das spätestens für t=3 der Fall sein.
Merkmale
Entwicklungsstand
Das hier als CODING bezeichnete Verfahren hat seine Anfänge in Voruntersuchungen des Autors, die vor etwa 19 Jahren stattfanden. Die konsequente Weiterentwicklung, Verallgemeinerung und Umsetzung in Free-Pascal-Programme bisher für die Dimensionen t=1, t=2 und t=3 wurde in jüngster Vergangenheit auch auf Grund der geänderten Anforderungen auf der potentiellen Anwenderseite und den Prozessor-Möglichkeiten auf der Durchführungsseite voran getrieben.
Genannte CODING-Programme für t=1, t=2 und t=3 sind voll ausgetestet und einsatzfähig.
© Copyright 2006 SYSJM. Alle Rechte vorbehalten.