•  Technik (+49) 089 420447-30
  •  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!   |
  •  Vertrieb (+49) 089 420447-20
  •  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

cyprotect-pmcencryptionPMC Encryption Engine

Das Polymorphe Verschlüsselungsverfahren (PMC)

CyProtect AG bietet das polymorphe Verschlüsselungsverfahren PMC (Basistechnologie) zur Lizenzierung bzw. zur Implementierung in Ihre eigenen Applikationen (Datenbankserver, Dokument-Management-Systeme, ect.) an. Selbst die Einbindung in Software für Datenverbindungen (z.B. Videokonferenzen, Satellitenübertragungen, u.a.) ist mittels der PMC Stream-Cipher-Variante möglich.
Eine weitere Anwendungsmöglichkeit des Ciphers ist die Verwendung als "Lizenzierungsmaschine", was einen Kopierschutz für Software incl. Lizenzierung darstellt.

Desweiteren können Sie sich für Projektarbeit an uns wenden, wenn Sie das PMC Verschlüsselungsverfahren in Ihre Applikation einbauen lassen möchten. Bei Interesse wenden Sie sich an uns, wir beraten Sie gerne.


Einführung in das Polymorphe Verschlüsselungsverfahren (PMC)

Der weitverbreitete DES Algorithmus galt lange Zeit als "sicher". Ein im Januar 1999 von RSA Data Security, Inc. (San Mateo, Calif., USA) durchgeführter Versuch bewies, dass es weniger als 22.25 Stunden dauert, um den 56 Bit Algorithmus mit der Brute-Force-Attacke (Ausprobieren aller "2 hoch 56" Schlüsselkombinationen) zu bezwingen.

Ein Jahr zuvor benötigte ein ähnlicher Test noch 41 Tage! RSA behauptet einen viel besseren Algorithmus zu haben, was mit Sicherheit zutrifft. Heute wird eine Schlüssellänge von 128 Bit (entspricht etwa 1650 bit für RSA) von Experten als sicher angesehen. Es sind allerdings nur 25 Jahre vergangen, seitdem Experten die halbe Schlüssellänge von 64 Bit als absolut sicher bis zum Ende der Zeit bezeichneten. Die Steigerung der Schlüssellänge entspricht dabei lediglich dem "unbedeutenden" Faktor 10.000.000.000.000.000.000 an zusätzlicher Sicherheit! Ein neuer Ansatz, der selbstkompilierenden Maschinencode impliziert, löst dieses Problem: Polymorphe Verschlüsselung (PMC) von C.B. Roellgen.

PMC kann Daten mit 50MBit/s Geschwindigkeit bei 4096 Bit Schlüssellänge auf einem Intel Pentium III Prozessor mit 200MHz Taktfrequenz verschlüsseln! Damit ist PMC erheblich leistungsfähiger als der AES-Standard des NIST (50MBit/s bei 256 Bit Schlüssellänge)!

Nach seiner Erfindung wurde das Verfahren für kurze Zeit zum Staatsgeheimnis in Deutschland. Die Kryptogesetzgebung vollführte zu dieser Zeit eine Kehrtwendung in Richtung Liberalisierung.

PMC kann mit langen Schlüsseln arbeiten, ohne dass nennenswerte Kompromisse bei der Verschlüsselungsgeschwindigkeit eingegangen werden müssen. Bei diesem Verfahren steigt die Ausführungszeit lediglich linear mit der Schlüssellänge. Die Idee dahinter ist, den Verschlüsselungsalgorithmus zufällig zu gestalten.

Die Polymorphe Methode ist heute eines der stärksten Verschlüsselungsverfahren und sie ist wahrscheinlich sogar das stärkste. Die Methode nutzt quasizufällig zusammengestellten Maschinencode, um eine außergewöhnliche Sicherheit gegen jede Art von Attacke bereitzustellen. Sie ist sogar intrinsisch sicher gegen das Disassemblieren und Analysieren der Instruktionssequenz - die Abfolge der Befehle ist selbst eine Variable und ist nur für die kurze Zeit der Ausführung klar definiert! Es ist entscheidend, daß bereits die grundlegende Voraussetzung für die erfolgreiche Kryptoanalyse, die Kenntnis des Verschlüsselungsverfahrens, nur rudimentär erfüllbar ist. Der Kryptocompiler ist analysierbar, nicht jedoch das tatsächliche Verfahren, mit dem Nachrichten verschlüsselt werden. Der eigentliche Verschlüsselungsalgorithmus der Polymorphen Methode ist inhärent variabel.

Arbeitsweise der polymorphen Verschlüsselungsmethode

cypmailenc3

Zwei unterschiedliche Passwörter (oder zwei Teile eines einzigen Passworts) werden als Saat zwei Zufallszahlengeneratoren zugeführt. Der Zufallszahlengenerator auf der linken Seite erzeugt einen Datenstrom, der zu einer Folge von kryptographisch sicheren Maschinencodeblöcken kompiliert wird. Der für diesen Zweck bereitstehende Compiler assembliert im wesentlichen standardisierte Befehlsblöcke, richtet Zieladressen ein und erzeugt Einsprung- und Ausstiegscode für den Maschinensprachteil, der bei Programmausführung den Inhalt des Datenspeichers (S-Box) während der Laufzeit intensiv manipuliert. Der Datenspeicher wird mittels des Zufallszahlengenerators auf der rechten Seite initialisiert. Das Passwort auf der rechten Seite dient dabei als Saat für den Zufallszahlengenerator auf der rechten Seite.

Nach Beendigung der Ausführung des Maschinencodes wird der Inhalt des Datenspeichers zur Verschlüsselung der Rohdaten unter Zuhilfenahme der XOR-Funktion verwendet. Der Inhalt des Datenspeichers sollte jedoch vorzugsweise als Saat für einen weiteren schnellen kryptographischen Algorithmus dienen. Dadurch erhöht sich die Komplexität des Verschlüsselungsverfahrens und es wird Angreifern die Analyse des internen Zustands erschwert. Es sei angemerkt, dass der Inhalt des Datenspeichers zu keiner Zeit Rückschlüsse auf einen der beiden oder beide Schlüssel zuläßt! Angreifern wird ihr Vorhaben zusätzlich erschwert, wenn der Maschinencode von Zeit zu Zeit neu kompiliert wird.

Angriffsicherheit des Polymorphen Verschlüsselungsverfahrens

Jeder Codeblock beeinflußt mindestens 32 Datenbits und recht häufig ändert sich dabei überdies der Schlüssel. Angenommen der Kryptocompiler verfüge lediglich über 4 Codeblöcke und 16 dieser Blöcke könnten quasizufällig aneinandergereiht werden, so wären 416 = 4294967296 verschiedene Möglichkeiten für den resultierenden Kryptoalgorithmus gleichermaßen wahrscheinlich. Bei 128 aneinandergereihten Codeblöcken stünden 4128 = 1,158*1077 Möglichkeiten zur Verfügung (Anmerkung: Ein konventioneller 128 Bit Verschlüsselungsalgorithmus verfügt nur über 3,403*1038 mögliche Schlüsselvarianten!). Es sei im Besonderen darauf hingewiesen, daß OHNE die Ausführungszeit des Verschlüsselungsalgorithmus zu verlängern, die Angriffsicherheit eines polymorphen Verschlüsselungsverfahrens um Größenordnungen über der herkömmlicher Verfahren liegt!

Um konventionelle kryptographische Methoden mit der polymorphen Methode vergleichen zu können, muss der gesamte Schlüsselbereich verglichen werden. Aufgrund der Annahme, dass alle verglichenen Methoden mit 128 BitDatenschlüssel (S-Box) arbeiten, ist die Vorgehensweise des Vergleichs zulässig. Das polymorphe Verschlüsselungsverfahren schlägt jeden konventionellen Verschlüsselungsalgorithmus um den Faktor 3,913*10115 / 3,403*1038 = 1,150*1077 (!). Dieser Faktor ist so groß, dass er die Anzahl Atome auf unserem Planeten übersteigt!

Angriffe und ihre Wahrscheinlichkeit auf Erfolg beim Polymorphen Verschlüsselungsverfahren

Angriffe sind keine Algorithmen, sondern allgemeine Ansätze, die bei jedem neuen Verschlüsselungsverfahren neu erfunden werden müssen. Es wird generell vorausgesetzt, dass der Gegner die Einzelheiten des Verschlüsselungsverfahrens genau kennt und daß ihm nahezu unbegrenzt Klartext und dessen verschlüsselte Form bekannt sind ("known plaintext"). Es wird des weiteren vorausgesetzt, daß der Gegner über Echtzeitfähigkeit verfügt, um definierten Klartext durch dessen Verschlüsselung nach Belieben zu sammeln, sowie die Ergebnisse zu speichern.

Ausprobieren aller Schlüssel (Brute Force on the keys)

Versuche jede mögliche Schlüsselkombination bis die Nachricht entschlüsselt ist. Probiere die wahrscheinlichen Schlüssel zuerst. 128 Bit Schlüssellänge sollte ausreichend sein, um den Erfolg mit Brute Force auf absehbare Zeit zu verhindern. Das Zufallszahlensystem der polymorphen Methode läßt sich jedoch erst ab einer Länge von 256 Bit sinnvoll realisieren - 2048 Bit sind eher gewöhnlich, ohne den Algorithmenschlüssel zuzuzählen, der zu knapp 100% der Sicherheit beiträgt.
Ausgesuchte Schlüssel
Probiere unterschiedliche Schlüssel anhand bekanntem Klartext und vergleiche die resultierenden verschlüsselten Daten mit den tatsächlichen verschlüsselten Daten - versuche den korrekten Schlüssel zu berechnen. Aufgrund der Tatsache, daß der Schlüssel mehr oder weniger der Algorithmus selbst ist, gerät die Aufgabe des Gegners zu einem hoffnungslosen Unterfangen. Die polymorphe Einwegfunktion verändert sich permanent mit jedem neuen Schlüssel, der so groß ist, daß es unmöglich ist, eine Tabelle zu isolieren und damit separat zu arbeiten. Ein Computer kann schließlich nur so groß sein wie es Atome auf diesem Planeten gibt!

Codebuch mit verschlüsseltem Text

Sammle so viele verschlüsselte Daten wie möglich, um ihre Inhalte durch Beziehungen untereinander zu extrahieren; wenn ein verschlüsselter Text auftaucht, lies ihn einfach im Codebuch nach. Diese Methode behandelt einen Blockverschlüsseler wie einen Code und ist der klassische Ansatz, um Codes zu knacken. Genau wie häufiger auftretende Buchstaben, treten Worte und Phrasen mit bestimmter Frequenz auf. Dies gilt auch für Blöcke eines Verschlüsselungsalgorithmus. Wenn die Blocklänge klein ist (unter 64 Bytes) und wenn der Schlüssel nicht häufig gewechselt wird, so könnte es möglich sein, ein Codebuch mit Blockinhalten aufzubauen, das ebenso die gewünschten Bedeutungen enthält (den Klartext). Jede Art von Codebuchattacken wird idealerweise durch Verwendung einer grossen Anzahl Blockwerte und folglich einer großen Blocklänge verhindert. Wenn die Blocklänge 64 Bytes oder mehr beträgt, so kann man erwarten, dass die Einzigartigkeit, die jeder Block beinhaltet, groß genug ist, um die Fähigkeiten eines noch so starken Gegners, ein Codebuch zu erstellen, übersteigt. Aufgrund der Tatsache, dass die Komplexität jeder Art Codebuchattacke ausschließlich von der Blocklänge abhängt, ist "dreimal" soviel kein geeignetes Mittel um den Schwierigkeitsgrad zu steigern. Im besonderen sei Triple DES genannt, das dieser Attacke keinesfalls mehr als DES selbst widersteht. Die Komplexität der Transformation spielt hier keine Rolle. Die polymorphe Verschlüsselungsmethode wird am besten mit einer 1024 Byte Blocklänge und sich blockweise änderndem Maschinencode implementiert. Die Methode ist ferner ideal geeignet, um eine Saat für einen Zufallszahlengenerator zu erzeugen, um den eigentlichen Algorithmus von der letztendlichen Zufallszahlenfolge zu trennen. Weil die polymorphe Methode bei jedem Schlüssel und nach einer bestimmten Anzahl Blöcken eine andere Form hat, wird jede Art Codebuchattacke vor allem Rauschen aufzeichnen und zu sonst nichts zu verwenden sein.

Bekannter Klartext (Known Plaintext)

Erzeuge auf irgendeine Weise eine große Menge verschlüsselten Text aus Klartext mit immer dem gleichen Schlüssel. Mit dieser Attacke erhält man mit einem Klartext - verschlüsselter Text - Paar ausreichend Informationen, um den vollen Inhalt des Datenspeichers zu rekonstruieren. Um jedoch einen der beiden oder beide Schlüssel zu identifizieren, müssen beide Schlüssel mit einer anderen Methode extrahiert werden. Da sowohl die Compilereingangsdaten als auch die Schlüssel unbekannt sind, ist es schwierig den kompletten internen Zustand des Kryptosystems zu erhalten. Die polymorphe Methode versteckt ungefähr drei Viertel des internen Zustands in den Compilereingangsdaten und damit in einem veränderlichen Algorithmus, wodurch alleine ausreichende Komplexität entsteht und sich die Verschlüsselungsmethode dieser Art Attacke völlig entzieht. Es sei angemerkt, dass ein einziges Klartext - verschlüsselter Text - Paar einen DES-Schlüssel identifizieren könnte!

Codebuch mit bekanntem Klartext (Known-Plaintext Codebook)

Sammle so viele Klartextblöcke mit entsprechendem verschlüsseltem Text wie möglich, damit ein auftretender verschlüsselter Text einfach durch das Auffinden im Codebuch entschlüsselt werden kann. Einfache Blockchiffrierer verhindern Codebuchattacken dadurch, dass sie den Klartext verwürfeln (oft mittels Verknüpfung mit den Daten des letzten Blocks "Cipher Block Chaining"). Auf diese Weise erreicht man, dass die Blockwerte im Klartext gleichverteilt sind. Codebuchattacken werden idealerweise durch eine große Anzahl Blockwerte vereitelt, wodurch eine große Blockgröße unvermeidlich ist. Um dies auch in Zukunft zu verhindern, wird eine Blockgröße von 64 Byte als sicher angesehen, sodaß die Größe des Codebuchs nicht von einem Angreifer zu verarbeiten ist. Die 1024 Byte Blocklänge der polymorphen Methode machen es unmöglich, Erfolg mit dieser Art Attacke zu haben. Aufgrund der Eigenschaft des Algorithmus sich selbst zu verändern, wird eine Tabelle mit aufgezeichneten Blockwerten überdies nur Rauschen enthalten.

Klartextauswahl (Chosen Plaintext)

Ohne den Schlüssel zu kennen, soll beliebiger Klartext verschlüsselt und die verschlüsselten Daten aufgezeichnet werden. Verändere die Daten andauernd, um gezielt bestimmt verschlüsselte Daten zu erhalten. Hier wird nicht der Code selbst geknackt, sondern der originäre Klartext produziert. Wenn der Gegner ausgewählten Klartext produzieren kann, so kann er eventuell beliebige verschlüsselte Daten zur Dechiffrierung eingeben. Die Schwäche, die bei diesem Verfahren ausgenutzt wird, liegt manchmal nicht beim Verschlüsselungssystem selbst, sondern an einem Ort mit wenigen internen Zuständen. Die polymorphe Verschlüsselungsmethode verfügt nicht über einen festen Algorithmus und damit auch nicht über konstante Schwächen, sondern eher über viele diskrete Schwächen - so viele es Kombinationen für den Maschinencode gibt. Die Klartextauswahlmethode ist vor allem wegen des dynamisch veränderlichen Maschinencodes nicht erfolgversprechend.

Codebuch mit ausgewähltem Klartext (Chosen-Plaintext Codebook)

Erzeuge so viel verschlüsselten Text aus Klartext wie möglich. Wenn ein bekannter Code auftritt, suche den passenden Klartext im Codebuch. Diese Attacke ist mit den vorigen Codebuchattacken vergleichbar, diesmal jedoch mit der Fähigkeit, das Codebuch beliebig und mit hoher Geschwindigkeit zu füllen. Wieder hängt der Erfolg von der Blocklänge und der Starrheit des Verschlüsselungssystems ab. Diese Attacke ist ebenso wenig erfolgversprechend wie alle anderen Codebuchattacken und es ist leichter, viele Schlüsselkombinationen durchzuprobieren.

In der Mitte aufeinandertreffen (Meet-in-the-Middle)

Suche bei mehrlagigem Aufbau des zu brechenden Verschlüsselungsverfahrens mit gegebenen oder bekanntem Klartext unter allen Schlüsseln den passenden in der oberen Lage. Verfahre ebenso für die untere Lage. Bei einem zweilagigen Konstrukt und kurzer Blocklänge können Übereinstimmungen durch wenige Eingangs-/Ausgangsblockpaare überprüft werden. Sind weitere Lagen vorhanden, können diese immer in zwei Teile partitioniert werden, wodurch diese Methode immer anwendbar ist. Die Komplexität dieses Unterfangens kann natürlich beliebig ausfallen. Jede Schicht in einem guten Kryptosystem verwendet einen großen Codeumfang für den Schlüssel. Die polymorphe Methode fügt überdies einen sehr langen Schlüssel für den für Angreifer unbekannten Algorithmus hinzu. Die Anzahl Kombinationen für beide Schlüssel ist gleich dem Produkt der Kombinationen für jeden einzelnen Schlüssel und damit eine ungeheuer große Zahl.

Schlüsselbitbeeinflussung (Key Bit Bias)

Durch extensives Ausprobieren vieler möglicher Schlüssel und extensives Verschlüsseln eines festen Klartexts kann es manchmal möglich sein, bestimmte Schlüsselbits über statistische Häufigkeit einiger Bits in den verschlüsselten Daten in Verbindung zu bringen. Konventionelle Algorithmen mit derartigen Schwächen wären schnell geknackt.Unterschiedliche Schlüssel erzeugen bei der polymorphen Methode unweigerlich verschiedene Kryptoalgorithmen, wodurch es unmöglich wird, eine statistische Verknüpfung zwischen Eingangs- und Ausgangswerten herzustellen. Jeder Schlüssel hat seine eigene Schwäche, die jedoch nicht konstant über alle möglichen Schlüsselwerte ist.

Differentielle Kryptoanalyse (Differential Cryptanalysis)

Nutze bekannte Eigenschaften bestimmter bekannter Substitutionstabellen aus, um die Anzahl Durchläufe in einem iterierenden Blockverschlüsseler zu reduzieren. Die ursprüngliche Idee der differentiellen Kryptoanalyse bezieht sich hauptsächlich auf iterierende Blockverschlüsseler mit bekannten Tabellen. Nichts davon ist auf die polymorphe Methode anwendbar. In einem iterativen Verschlüsselungsalgorithmus wie DES können statistische Unausgewogenheiten gefunden werden. Dies kann dazu ausgenutzt werden, um auf vorangehendeIterationsschritte zurückzuschließen.Bei der polymorphen Methode wird jeder neue Schlüssel einen bestimmten Algorithmus auswählen, wodurch selten ähnliche Transformationen gewählt werden. Es ist substantiell schwierig und sehr ineffizient, eine Transformation anzugreifen, die während der Analyse ihre Struktur vollkommen verändert.

Unsere Philosophie

Unser Ziel ist es, Sie bei der Lösung besonderer Sicherheitsprobleme im Internet, bei IT-Netzwerken sowie bei der Telekommunikation zu unterstützen.

Dieses Ziel erreichen wir durch die Qualität und Aktualität unserer Sicherheitsprodukte sowie durch Kompetenz und Einsatzbereitschaft unseres Teams.

Kontaktmöglichkeiten

Kontakt Vertrieb (Angebote,
Lizenzen, Bestellungen, uvm.)
  • (+49) 089 420447-20
  • Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Kontakt Technik (Support,
Hilfe bei Einstellungen, uvm.)
  • (+49) 089 420447-30
  • Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Weitere Firmendetails

CyProtect AG - Internet Security

 

Adresse
Schatzbogen 58
81829 München
Deutschland
Fax
  • (+49) 089 420447 79

Kontaktformular

Email:
Betreff:
Nachricht:
Wie viele Stunden hat ein Tag?