Verschlüsselung

Ein besonderes in unserer Firma in der Programmiersprache C entwickeltes Software-Produkt ist das Verschlüsselungsprogramm KRYPTO-ABSOLUT.

Diese kryptographische Software kann jede Datei-Art (Text, Bild, Zahlen etc.) beliebiger Länge und auch jedes Programm wie Betriebssysteme, Compiler oder sonstige Programme sowie den gesamten Bestand einer Datenbank ver- und entschlüsseln.

Der in unserer Firma kreierte Verschlüsselungsalgorithmus ist in Bezug auf den für die Codebrecher erzeugten Schlüsselraum stärker als der der gängigen und häufig benutzten Programme, wie z.B. der in den USA zugelassene Chiffrierstandard AES (Advanced Encryption Standard). Denn bereits für die erste Version von KRYPTO-ABSOLUT, die eine Datei mittels eines Codewortes ver- und entschlüsselte, benötigt man einen Schlüsselraum (= Anzahl aller Schlüssel, die zum Knacken der chiffrierten Datei notwendig wären) von 10200. Zum Vergleich ist zu beachten, dass der Schlüsselraum bei AES 2256 beträgt!

AES ist der zurzeit wichtigste in den USA zugelassene Verschlüsselungsalgorithmus, wodurch Regierungsdokumente der höchsten Geheimhaltungsstufe chiffriert werden. Dieser gehört, wie KRYPTO-ABSOLUT auch, zur Kategorie "symmetrische" Verschlüsselungs-software, d. h. das Programm chiffriert und dechiffriert mit demselben Codewort. Bei der am weitesten entwickelten Version von AES, also AES256, beträgt die Schlüssellänge höchstens 256 Bit, damit ein Schlüsselraum von 2256 entstehen kann. Somit entspricht der höchst erreichte Schlüsselraum von 2256 durch AES der folgenden Anzahl von Schlüsseln:

115.792.089.237.316.195.423.570.985.008.687.907.853.269.984.665.640.564.039.457.584.007.913.129.639.936

Diese Zahl bedeutet, dass, wenn AES mit der höchsten Schlüssellänge von 256 Bit eine Datei verschlüsselt, man durch einen "Brute-Force-Angriff" dieser Zahl entsprechend oft verschiedene Schlüssel ausprobieren muss, bis man auf das richtige Codewort stößt.

Bei der ersten Version von KRYPTO-ABSOLUT müsste die Schlüssellänge zwischen 25 und 128 Byte (1024 Bit) liegen. So beträgt die Anzahl der Schlüssel unserer Software hierbei 10200. Dieser Vergleich zeigt, dass der benötigte Schlüsselraum zum Knacken der chiffrierten Datei mit AES256, wie oben angegeben eine Zahl mit 78 Ziffern sein wird, während bei der ersten Version von KRYPTO-ABSOLUT bereits diese Zahl 10200 aus 201 Ziffern besteht. Also in Bezug auf den Schlüsselraum ist die erste Version von KRYPTO-ABSOLUT bereits sicherer als der am weitesten entwickelte internationale Datensicherheitsstandard AES256!

Diesen Sachverhalt bestätigen zwei von staatlich autorisierter Stelle über KRYPTO-ABSOLUT ausgestellte Gutachten. Der Vorsitzende der zuständigen Prüfungsstelle fungierte als Beauftragter einer Landesregierung der Bundesrepublik Deutschland.

Nach sieben weiteren Entwicklungsjahren konnte KRYPTO-ABSOLUT nicht nur eine Datei, sondern auch eine Gruppe von Dateien aus verschiedenen Verzeichnissen automatisch und in einem Zug ver- bzw. entschlüsseln. Unsere Software war inzwischen auch in der Lage, anstatt eines Schlüssels, bestehend aus einem Satz, eine ganze Datei als Codewort zu verwenden. So kann einerseits das Codewort komfortabler gestaltet werden, und andererseits ist die Anzahl der Schlüssel nochmals um ein Mehrfaches gestiegen. Denn die Software entnimmt der Codedatei 512 Zeichen und vermischt diese intern mit einigen weiteren Bytes, so dass sich der Riesenschlüssel jedes Mal unter Umständen automatisch ändert, selbst wenn man immer wieder dieselbe Datei als Codedatei verwendet.

Diese neue Version 3.10 unserer Verschlüsselungssoftware wurde unter dem Namen KRYPTO-ABSOLUT PLUS nochmals zur Begutachtung vorgelegt. Der Gutachter bezifferte nun den Schlüsselraum dieser neuen Version mit "weit größer als 101000". Nochmals zum Vergleich wird hier auf den Schlüsselraum bei AES mit nur 2256 hingewiesen! Bei dieser Weiterentwicklung von KRYPTO-ABSOLUT beträgt die Schlüssellänge nicht höchstens 256 Bit, wie bei AES256, sondern mindestens 4096 Bit! Denn, wie bereits weiter oben erwähnt, nimmt KRYPTO-ABSOLUT 512 Byte aus der Codedatei als aktuellen Schlüssel und fügt intern noch einige Bytes hinzu. Somit ist laut Gutachten der Schlüsselraum inzwischen auf eine Zahl größer als 101000 gestiegen (also eine Zahl mit 1001 Ziffern). Dabei sei betont, dass es hier nicht nur um die Schlüssellänge, sondern auch um das mathematisch theoretische Konzept eines Algorithmus geht.

Nun taucht die Frage auf, warum nicht auch andere Verschlüsselungsprogramme ihre Schlüssellänge erhöhen, um einen höheren Schlüsselraum zu erreichen. Hier wird der Programmierer mit dem Problem der Chiffriergeschwindigkeit konfrontiert. Denn oft erlebt man, dass mit jedem zusätzlichen Bit an Schlüssellänge die Chiffrierzeit fast verdoppelt wird. Ein simpler und schwacher Algorithmus kann hier wiederum keine effektive Hilfe leisten. Unsere Software hingegen zeigt bei einem Schlüsselraum von 101000 und einer Schlüssellänge von mindestens 4096 Bit eine enorm hohe Verschlüsselungsgeschwindigkeit. Denn mit KRYPTO-ABSOLUT PLUS können bei einem normal schnellen PC (Prozessor: Intel Pentium, Dual-Core, CPU: E5200, 2.50 GHz) innerhalb von einer Sekunde 20 MB Daten verschlüsselt werden. Das entspricht dem Textinhalt von 30 Büchern à 200 Seiten. Diese Effizienz der Funktion wird noch durch den geringen Bedarf an Speicherkapazität beim Verschlüsselungsprozess ergänzt – gemäß der Tradition unseres Hauses, rationell zu programmieren, also komplexe Themen einfach und sauber zu lösen (wie bei der Sortierung, Registerfunktion oder auch bei der Speicherung des Datumsfeldes mit nur zwei Byte, s. Kap. Datenbank!).

Durch einen schwächeren Algorithmus kommt es zu Mehrfach-Verschlüsselungen, wie z.B. dreimal bei Triple-DES oder sogar 14 Runden bei AES256. Dies führt erstens zu einer starken Belastung der CPUs von Servern, zweitens zu einer Reduzierung der effektiven Schlüssellänge und damit zur Verringerung der Sicherheit. Außerdem besteht hier eher die Möglichkeit eines Meet-in-Middle-Angriffs, der bei einem 1-Runden-Chiffrier- Algorithmus, wie im Falle KRYPTO-ABSOLUT nicht vorkommt.

Warum KRYPTO-ABSOLUT zumindest als zusätzliches Verschlüsselungsprogramm sinnvoll ist

Dass weltweit jede Software Fehler hat, gehört zum Wesen der Programmierung. Erstaunlich wäre es vielmehr im Gegenteil, wenn eine Software gänzlich fehlerfrei wäre. Aber gefährlich wird es gerade bei geheimen Dokumenten und verschlüsselter Korrespondenz, wenn ein Fehler wie im Code von OpenSSL zwei Jahre lang unbemerkt vor sich hinschlummert, obwohl hierdurch vermutlich viele Passwörter und Geheimdaten gelesen werden konnten. Eine Sicherheitslücke von solcher Dauer kommt einem Super-Gau gleich, weil die Grundfunktion der Verschlüsselung ausgehebelt und ad absurdum geführt wird.

Noch problematischer und dramatischer wird es, wenn man bedenkt, dass so ein Fehler nicht zum ersten Mal aufgetaucht ist. Denn bereits zuvor im Mai 2008 gab das Debian-Projekt bekannt, dass das Verschlüsselungsprotokoll OpenSSL seit September 2006 eine Sicherheitslücke enthielt. Also schon einmal gab es fast zwei Jahre lang ein Loch im Gewebe, ohne dass es jemandem aufgefallen war.

Fazit: Der Fehler selbst ist etwas Normales und nichts Weltbewegendes, aber die Dauer, wie lange so ein gravierender Fehler verhüllt und verborgen bleiben kann, würde bei sensiblen Daten verheerende Konsequenzen mit sich bringen.

Daher ist es generell für alle Behörden, Institutionen und Unternehmungen empfehlenswert, eine zusätzliche, sichere Krypto-Software zu benutzen, wenn es darum geht, Dokumente der höchsten Geheimhaltungsstufe auf eigenem Computer zu archivieren, auf den Server oder andere Clients zu übertragen oder online (z. B. auf Clouds) zu speichern. Denn neben der Tatsache, dass die offiziell zugelassenen Verschlüsselungsstandards selbst viele Sicherheitslücken aufweisen, sind auch die Zertifizierungsstellen nicht mehr so vertrauenswürdig. Diese sehen sich nämlich selbst permanent massiven Hacker-Attacken ausgesetzt. So hatten sich Angreifer bei der niederländischen Zertifizierungsstelle "DigiNotar", die in Holland für die staatliche Public-Key-Infrastructure benutzt wird, unbefugt Zertifikate für diverse Domains ausgestellt. Deswegen wird seit einigen Jahren die Sicherheit von SSL/TLS grundsätzlich angezweifelt, weil es neben bestehenden Sicherheitslücken bei einigen Zertifizierungsstellen auch an Vertrauenswürdigkeit mangelt.

In diesem digitalen Kampf gegen Datenangreifer ist es jedem Anwender freigestellt, eine beliebige, sichere und unangreifbare Verschlüsselungssoftware zu benutzen und seine sensiblen Nachrichten vorkodiert, also extra verschlüsselt zu versenden. Dies ist in der gegenwärtigen Übertragungsarchitektur durchaus möglich. Denn jeder Client kann bei TLS sein eigenes Protokoll definieren. Die Records verschiedener Protokolle dürfen zwar nicht zusammengefasst werden, die TLS-Implementierungen können aber mehrere Nachrichten eines Protokolls in einem Rekord zusammenfassen. Einige dieser Nachrichten sollten die streng geheimen durch KRYPTO-ABSOLUT chiffrierten Dokumente sein. Durch den zwischen Client und Server ausgehandelten Schlüssel werden diese dann nochmals symmetrisch chiffriert, und als Ende-zu-Ende-Verschlüsselung gleich beim Empfänger dechiffriert. Nur der programmierte Angreifer, der als "The man in the middle" zwischen Ihnen und dem Server sitzt und Ihnen janusköpfig vorgaukelt: "Ich bin der Server" und dem Server erklärt: "Ich bin der Client", kann durch eine Sicherheitslücke (z. B. heartbleed bug bei SSL/TLS) unter Umständen zum Schlüssel des Übertragungssystems gelangen und Ihre Daten entschlüsseln. Danach wird er aber in diesem Fall erneut mit chiffrierten Daten konfrontiert, weil Sie Ihre Daten mit einer getrennten Software wie KRYPTO-ABSOLUT, die er gar nicht kennt, intern vorverschlüsselt haben.

Nun taucht die alte Frage auf: Wie soll der "echte" Empfänger meine Codedatei erhalten, mit der ich symmetrisch – ohne public key - vorverschlüsselt habe?

Zunächst muss nochmals betont werden, dass wir KRYPTO-ABSOLUT als eine zusätzliche Verschlüsselungssoftware anbieten und nicht als Allgemeinlösung. Daher sollte der Anwender für seine durch KRYPTO-ABSOLUT vollzogenen Extra-Verschlüsselungen einige bereits vorhandene und bewährte Verfahren zur Übermittlung des Codewortes bzw. der Codedatei benutzen. Hierzu gehören v. a. die kryptologischen Hash-Funktionen, die zur Verschleierung von Codedateien eingesetzt werden. Hinzu kommt, dass man bei KRYPTO-ABSOLUT eine bereits verschlüsselte Datei als Code-Datei benutzen kann. Außerdem kann man auch den Namen der Codedatei mit einem einfachen Codewort verschlüsseln, das bei persönlichen Begegnungen, aber auch durch verklausulierte Nachrichten – als Hash-Code – dem Partner mitgeteilt werden kann.

Vorteile von KRYPTO-ABSOLUT auf einen Blick

  • Der größte Vorteil unserer ultimativen Chiffrier-Software ist ihre Unbekanntheit in der Fachwelt. Während an bekannten Algorithmen wie AES bereits Milliarden von Brute-Force-Attacken ausgeübt worden sind, müssen die Krypto-Analytiker bei KRYPTO-ABSOLUT den endlosen Weg des "Ausprobierens" erst beginnen.
  • Unsere Software hat einen starken Algorithmus mit einem unwiderlegbaren theoretisch-mathematischen Konzept.
  • Der Schlüssel ist überlang.
  • Nicht nur durch die Schlüssellänge, sondern auch durch den Algorithmus ist der Schlüsselraum viel zu groß.
  • Effizienz der Funktion. - Mit anderen Worten: Die Geschwindigkeit leidet nicht unter der Überlänge des Schlüssels und der hohen Sicherheit (6000 Textseiten innerhalb von einer Sekunde auf einem normal schnellem PC). Dennoch kommt die Verschlüsselung mit einem geringen Speicherbedarf aus. Dieser Vorteil wird dann geschätzt, wenn auf Handys, smart-Phones, iPads, Tablets, Digital-Kameras oder Druckern mit schriftlichen Telekommunikationsmöglichkeiten oder auch auf Routern chiffriert werden soll, die durchweg als preisgünstige Massenware keine übermäßigen Speicherkapazitäten anbieten können.
  • Totale Gleichverteilung von Buchstaben, Ziffern und Sonderzeichen, also sämtlicher ASCII-Zeichen in der verschlüsselten Zieldatei
  • Absolute Zufälligkeit bei paralleler Gleichverteilung der entstandenen Zeichen in der chiffrierten Datei, selbst wenn die Quelldatei aus millionenfacher Wiederholung eines einzigen Buchstaben besteht!
  • Bestätigung der Chiffriersicherheit durch zwei staatlich anerkannte Gutachten
  • Möglichkeit der Anwendung einer Codedatei statt eines Codewortes, und zwar einer Datei, die selbst auch verschlüsselt sein kann. Denn oft werden die Schlüssel nicht wegen theoretischer Schwäche der Software geknackt, sondern menschlicher Nachlässigkeit wegen, weil das Codewort sich häufig an der sprachlichen Umgebung orientiert, wie Vorname des Kindes oder Geburtsdatum der Ehefrau, oder weil das Codewort auf dem Schreibtisch liegen bleibt, von wo es der/die Angestellte einer Büroreinigungsfirma abends entwendet, usw. Deshalb ist eine Code-Datei als Schlüssel sehr wichtig.

Gutachten I (Auszüge)

"Nach eingehender Erläuterung des Programms KRYPTO-ABSOLUT wurde festgestellt, dass bei der Textverschlüsselung durch dieses Programm sämtliche Struktureigenschaften des Quelltextes verloren gehen und eine Zufallsfolge von Zeichen entsteht, die keinerlei Anhaltspunkte über den ursprünglichen Text bietet. Daher ist es ausgeschlossen, aus diesem verschlüsselten Text ohne Kenntnis des Codewortes methodisch auf den Quelltext zu schließen, und zwar auch dann nicht, wenn der zugrunde gelegte Algorithmus dem "Codebrecher" bekannt wäre.

Die Anzahl der möglichen Verschlüsselungen ist von derselben Größenordnung wie die der möglichen Codewörter. Die Anzahl der in KRYPTO-ABSOLUT möglichen Codewörter mit der Länge von 25 bis 128 Zeichen übersteigt jedoch weit die Zahl 10 hoch 200.

Gutachten II (Auszüge)

"KRYPTO-ABSOLUT PLUS basiert auf der Generierung einer Zufallsfolge durch ein Codewort, die dann kombiniert mit dem Klartext den Chiffretext bildet. Es ist bereits mathematisch bewiesen, dass dieses Verfahren die vollkommene Geheimhaltung gewährleistet, falls a) die angewandte Zufallsfolge nur einmal benutzt wird und b) diese rein zufällig ist. Es dürfen also keine Wiederholungen in der Zufallsfolge vorkommen und sie darf keine Struktur besitzen, die durch irgendeine mathematische Funktion definiert ist.

Diese Forderungen sind im Programm KRYPTO-ABSOLUT PLUS vollständig erfüllt. Die Sicherheit der Verschlüsselung bleibt hier gänzlich unabhängig von der Textlänge, da die Zufallsfolge wesentlich durch den Klartext mitbestimmt wird und sich mit demselben Codewort bei jedem neuen Klartext auch eine völlig neue Zufallsfolge ergibt. Daher ist es aus streng mathematischen Gründen unmöglich, ohne Kenntnis des Codeworts die mit KRYPTO-ABSOLUT PLUS verschlüsselten Texte und Dateien zu entschlüsseln, und zwar auch dann nicht, wenn der Algorithmus offengelegt wird. Der Schlüsselraum von KRYPTO-ABSOLUT PLUS ist weit größer als 10 hoch 1000."