Krypto Design Projekt
1. Projekt
Krypto Design Projekt ist ein Projekt zur Konzeption und Realisierung einer Verschlüsselungssoftware zur sicheren Übertragung von Daten über öffentliche Netze. Sicher bedeutet in diesem Zusammenhang, dass die Daten auf dem Weg durch öffentliche Netze auch mit höchstem Aufwand nicht entschlüsselbar sind.
2. Projekthintergrund
Es gibt viele Gründe, die es erforderlich machen, dass Daten bei der Übertragung durch öffentliche Netze nicht entschlüsselbar sind. Beispielweise kommunizieren Ingenieurfirmen oft mit Niederlassungen oder Geschäftspartner in anderen Ländern. Es werden häufig Konstruktionsunterlagen oder Entwicklungsergebnisse über Ländergrenzen übertragen. Konstruktionen oder Entwicklungen wurden oft mit einem hohen finanziellen Aufwand, auch von kleineren Firmen erstellt. Während Großfirmen in der Regel Abteilungen haben, welche die Kenntnisse und Möglichkeiten besitzen, einen sicheren Übertragungsweg zu gestalten, nutzen kleine oder mittlere Firmen oft Krypto-Software des Massenmarktes. Hier besteht jedoch eine gewisse Wahrscheinlichkeit, dass derartige System nicht den Anforderungen genügen, insbesondere wenn der Schutzbedarf hoch oder sehr hoch ist.
Es ist ein offenes Geheimnis, dass Geheimdienste auch Wirtschaftsspionage für die heimische Wirtschaft betreiben, sofern abgefangene Konstruktioen oder Entwicklungen einen erheblichen Wettbewerbsvorteil für die jeweilige heimische Wirtschaft bedeuten.
3. Projektziele
Das Krypto Design Projekt verfolgt mehrere Hauptziele:
- Chiffre-Sicherheit gegenüber aufwendigsten Kryptoanalyseverfahren mit aufwendigster Hardware.
- Chiffre-Sicherheit gegenüber derartigen Verfahren in der Zukunft - z. B. auch in 10, 20, 30 Jahren.
- Chiffre-Sicherheit gegenüber derartigen Verfahren ausführend auf zukünftigen Quanten-Computern.
- Individualisierung, Konfigurierbarkeit und Programmierbarkeit durch den Endbenutzer.
- Verifizierbarkeit von Endbenutzern durch transparente Abläufe.
- Validierbarkeit durch statistische Test durch den Endbenutzer.
Unter der Annahme, dass sich die Rechenleistung wie bisher in gewissen Zeitabständen vervielfacht, muss die Chiffre-Sicherheit auch in 10, 20 oder 30 Jahren noch gewährleitet sein.
Gegenwärtige Prognosen gehen davon aus, dass Quanten-Computer im Bereich zwischen 1e9 und 1e19 mal schneller sind als bisherige Mikroelektronik. Die Chiffre-Sicherheit muss auch unter diesem Szenario in naher Zukunft (Einsatzfähigkeit von Quanten-Computer), sowie bei Nutzung der Technik in der oben beschriebenen Zeitspanne gewährleistet sein.
Individualisierung, Konfigurierbarkeit und Programmierbarkeit durch den Endbenutzer ergibt zwei wesentliche Vorteile. Zum einen wird die Kryptoanalyse durch eine Vielzahl von Krypto-Algorithmen-Unikate erheblich erschwert, weil kein standardisiertes Analysevefahren, wie beispielsweise gegen DES (Data Encryption Standars), AES (Advanced Encryption Standard), etc. eingesetzt werden kann. Und Zweitens ergibt sich eine sehr sehr weitgehende Sicherheit gegenüber dem Software-Hersteller, weil der Endbenutzer die Möglichkeit hat, die programmgesteuerten Krypto-Algorithmen zu ändern oder vollständig neu zu konfigurieren bzw. progammieren.
Durch die Individualisierung, Konfigurierbarkeit und Programmierbarkeit entsteht bezüglich der Arbeitsweise der Kryptographie-Software ein transparenter Ablauf. Der Endbenutzer erhält keine intransparente Blackbox-Software, sondern eine sehr weitgehende transparente Whitebox-Software.
Um das Kryptographie-Ergebnis beurteilen zu können, sind statistische Auswertungen hilfreich. Die Auswertungen sollten für Zwischenschritte, wie auch für das Endergebnis anwendbar sein. Statistische Tests ermöglichen es dem Endbenutzer das Kryptographie-Ergebnis selbst zu validieren.
4. Projektkonzept
4.1 Grobkonzept
Unter den Stichworten (linke Spalte oben) wurden bereits die Schwachpunkte und Risiken einer Software Blackbox beschrieben. Kryptographie-Systeme bzw. Kryptographie-Software die als Blackbox realisiert sind, sind für den Endbenutzer nicht validierbar. Wie sicher die implementierten Krypto-Algorithmen sind, ist bei einer Software-Blackbox normalerweise nicht einsehbar.
Um ein für den Endbenutzer ein validierbares Kryptographie-System bzw. eine Kryptographie-Software bereitzustellen, sind bezüglich der implementierten Krypto-Algorithmen und des Software-Design mehrere Eigenschaften in der Software zu realisieren. Um die Projektziele der Chiffre-Sicherheit zu erreichen wurde als Verschlüsselungsverfahren das One-Time-Pad-Verfahren gewählt. One-Time-Pad sind mathematisch beweisbar nicht brechbar (Shannon-Theorem). Das setzt jedoch implizit voraus, dass die verwendeten Generatoren zur Zufallszahlenerzeugung kryptologisch sicher sind. Um dem Benutzer ein vertrauenswürdiges Software-System bereit zu stellen, wurde eine Two-Tier-Crypto-Architecture gewählt. Weiterhin werden zahlreiche kryptologisch sichere Generatoren, zahlreiche Manipulatoren und Auswerteverfahren bereit gestellt.
4.2 Algorithmen
Die verwendeten Zufallszahlengeneratoren arbeiten nach unterschiedlichen Verfahren auf mehreren durch den Benutzer konfigurierbaren simulierten High-Scaled-Bit-Array-CPUs. Übliche am Markt erhältliche CPUs arbeiten mit einigen eindimensionalen Registern (meist 64 Bits). Operationen finden innerhalb von Registern bzw. zwischen Registern statt. Bit-Array-CPUs arbeiten auf zweidimensionalen Registern. Dass hat den Vorteil, dass komplexere Algorithmen für die Chiffre-Erzeugung einfacher und effizienter implementiert werden können. Die Breite und die Höhe der Bit-Arrays ist wesentlich voluminöser ausgelegt als bei eindimensionales 64 Bit Registern (High-Scaled). Auf die erzeugten partiellen Ergebnisse (beispielsweise Bit-Array Views, Snapshots) können verschiedene Auswerteverfahren angewandt werden.
4.3 Software-Design
Um die Möglichkeit zu schaffen, parallel mit einer Vielzahl von Generatoren und Manipulatoren zu chiffrieren, wurde die Programmiersprache KRYPTON entworfen und realisiert. KRYPTON ist multi-thread-fähig. Die vom Endbenutzer letztlich eingesetzte Kryptographie-Software bzw. der Gesamtverschlüsselungsalgorithmus ist individuell bezüglicht des Benutzers und der jeweiligen singulären Anwendung durch den Benutzer. Der Hersteller kennt die Funktionsweise der einzelnen Generatoren und Manipulatoren, er hat jedoch keine Kenntnis welches KRYPTON-Programm mit welchen gesetzten und zufälligen Parameter der Benutzer für die Chiffre-Erzeugung benutzt hat (Two-Secrets-Principle).
Nachfolgend ist ein Ausschnitt aus einem Krypton-Programm zu sehen (noch ein wenig Baustelle),

sowie ein Snapshot auf ein Register einer Bit-Array-CPU (noch Baustelle)

und ein Auswertung (noch sehr Baustelle).
