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

  • die Eigenschaft, dass Ausgangsdaten und kodierte Daten die gleiche Länge haben,
  • eine hohe Operationsgeschwindigkeit (z.B. zweistelliger MB-Wert / sec. bei einer Blocklänge von 512 Bytes , Dimension t=1 und aktuellem Rechnersystem > 2GHz),
  • unabhängig voneinander bearbeitete Datenblöcke (fast) beliebiger Blocklänge (d.h. falls ein Block nicht entschlüsselbar ist, so sind alle übrigen Blöcke davon nicht betroffen; weiter kann die Blocklänge selbst innerhalb einer Datenmenge variieren),
  • eine sehr hohe Sicherheit, die durch die Dimensionierung des Verfahrens (Dimension t) in beliebigen Regionen angesiedelt werden kann
    (es existieren spezielle Dokumente
    • zur Verfahrensbeschreibung,
    • zur Konvergenzeigenschaft gegen die Gleichverteilung der Bits, Bytes/Byte-Gruppen,
    • zur allgemeinen Sicherheit der verwendeten Teilverfahren und der umgesetzten Verfahrenskombination,
    • zur Mächtigkeit der Schlüssel- und Zustandsräume der Dimensionen t,
    • zu statistischen Untersuchungen zum “near-key”-Verhalten, zum Konvergenz-Verhalten, zu Blockdifferenzen, usw. [zur Zeit hauptsächlich der Dimension t=1]).
       

Damit ist CODING das ideale Werkzeug

  • zur Kodierung von Voice over IP, Bluetooth-/Wireless-Daten,
  • zur Kodierung von Multimedia-Informationen (z.B. MP3-Dateien, DVD-Filmen usw.),
  • zur Kodierung von beliebigen Austauschdaten (z.B. zwischen Auftraggebern/Abnehmern und Zulieferern/Lieferanten in der Industrie).
     

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.
 

Zukunfts-Sicherheit

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

  • CODING ist ein “on place” –Verfahren, d.h. keine Änderung der Datenlänge.
  • CODING ist mit seiner hohen Operationsgeschwindigkeit für Realtime-Prozesse geeignet
  • CODING ist für (fast) beliebige Blocklängen einsetzbar.
  • CODING besitzt
    • eine sehr hohe Operations-Sicherheit,
    • eine extrem hohe Chiffrier-Sicherheit und
    • eine sehr hohe Zukunfts-Sicherheit.
       

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.

CODING - Exposé

© Copyright 2006 SYSJM. Alle Rechte vorbehalten.