Seminar – Sicherheit in der IT
Seminar – Sicherheit in der IT
Seminar – Sicherheit in der IT
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Sem<strong>in</strong>ar</strong> <strong>–</strong> <strong>Sicherheit</strong> <strong>in</strong> <strong>der</strong> <strong>IT</strong><br />
Thema: RSA, DES & PGP<br />
von Timo Pannes & Jan Nett
Inhaltsverzeichnis<br />
E<strong>in</strong>leitung/Motivation............................................................3<br />
• Kerckhoff's Gesetz 4<br />
• Symmetrische vs. asymmetrische Verschlüsselung 4<br />
RSA......................................................................................8<br />
• Generierung <strong>der</strong> Schlüssel 8<br />
• Funktionsweise des Algorithmus 8<br />
• Mathematische Grundlagen 9<br />
• Beispiel 10<br />
• Praktische und theoretische <strong>Sicherheit</strong> 11<br />
DES....................................................................................13<br />
• Geschichte von DES 13<br />
• Funktionsweise des Algorithmus 14<br />
• Decodierung von DES 18<br />
• <strong>Sicherheit</strong>sfragen 19<br />
• Schwachstellen 20<br />
PGP....................................................................................22<br />
• Schlüsselmanagment 22<br />
• Geschichte von PGP 23<br />
Anhang...............................................................................25<br />
Quellenverzeichnis..............................................................26
E<strong>in</strong>leitung / Motivation:<br />
In <strong>der</strong> heutigen Zeit nimmt <strong>der</strong> sichere Austausch von Daten über ungesicherte Verb<strong>in</strong>dungen wie das<br />
Internet e<strong>in</strong>en immer größeren Stellenwert e<strong>in</strong>. Die Anzahl und Nutzung von sogenannten eServices<br />
(eMail, eCommerce, eBank<strong>in</strong>g, eGovernment, ...) ist <strong>in</strong> den letzen Jahren stark gestiegen und damit<br />
natürlich auch die möglichen Risiken.<br />
Typische Gefahren für Informationen im Netz s<strong>in</strong>d z.B. Abhören, Manipulieren, Vorspielen e<strong>in</strong>er<br />
falschen Identität, Unautorisiertes Nutzen, Denial of Service, um nur die wichtigsten zu nennen. Gegen<br />
diese Bedrohungen hat die Kryptographie, also die Wissenschaft <strong>der</strong> Verschlüsselung von<br />
Informationen, passende Lösungen parat.<br />
Da heutzutage je<strong>der</strong> Mensch (zum<strong>in</strong>dest <strong>in</strong>direkt) auf funktionierende und sichere Computersysteme<br />
angewiesen ist, spielt die Kryptographie e<strong>in</strong>e sehr wichtige Rolle im täglichen Leben, die allerd<strong>in</strong>gs<br />
von den meisten Menschen kaum beachtet wird. Der Begriff “<strong>Sicherheit</strong>” steht dabei für e<strong>in</strong>e ganze<br />
Reihe unterschiedlicher <strong>Sicherheit</strong>sanfor<strong>der</strong>ungen, die es zu berücksichtigen gilt. Die wichtigesten s<strong>in</strong>d:<br />
• Vertaulichkeit: Schutz <strong>der</strong> Informationen vor unbefugter E<strong>in</strong>sichtnahme, typischerweise durch<br />
Verschlüsselung<br />
• Integrität: Schutz vor unauthorisierten Än<strong>der</strong>ungen, z.B. durch MACs (message Authentication<br />
Codes) o<strong>der</strong> digitale Signaturen<br />
• Authentifizierung und Autorisierung: Die Authentifizierung (Wer b<strong>in</strong> ich?) verh<strong>in</strong><strong>der</strong>t das<br />
Vorspiegeln e<strong>in</strong>er falschen Identität, die Autorisierung (Was darf ich?) schützt vor unberechtigter<br />
Nutzung. Diese Maßnahmen lassen sich z.B. durch ChallengeResponseMechanismen, digitale<br />
Signaturen, o<strong>der</strong> auch biometrische Techniken erreichen.<br />
• Unleugbarkeit: Schützt den Empfänger davor, dass <strong>der</strong> Absen<strong>der</strong> später abstreitet, dass die Nachricht<br />
von ihm stammt. Dies ist technisch sehr schwer zu realisieren, e<strong>in</strong> wichtiger Bauste<strong>in</strong> s<strong>in</strong>d sicherlich<br />
digitale Signaturen.<br />
• Verfügbarkeit: Garantiert, das Informationen bereitstehen, wenn jemand sie braucht. Dies ist äußerst<br />
schwierig zu realisieren und steht oft <strong>in</strong> Konflikt mit an<strong>der</strong>en <strong>Sicherheit</strong>smaßnahmen. Es gibt ke<strong>in</strong><br />
generelles Konzept, um diese Anfor<strong>der</strong>ung zu gewährleisten.<br />
Im Mittelpunkt dieser Arbeit steht das Thema Vertraulichkeit, also die Verschlüsselung von Daten:<br />
Wir werden die Funktionsweise zweier sehr wichtiger kryptographischer Protokolle, RSA und DES<br />
näher erläutern sowie das Programm PGP als e<strong>in</strong>es <strong>der</strong> am meisten verbreiteten Kryptosysteme<br />
vorstellen. Die Verschlüsselung stellt, wie man anhand <strong>der</strong> obigen Liste sieht, aber lediglich e<strong>in</strong>en<br />
Teilaspekt e<strong>in</strong>es sicheren (Kryto)Systems dar. Manche Leute denken, dass verschlüsselte Nachrichten<br />
auch vor Manipulation geschützt wären. Nichts könnte falscher se<strong>in</strong>. Oft ist es sehr e<strong>in</strong>fach, den<br />
verschlüsselten Text beliebig zu än<strong>der</strong>n ohne den Schlüssel zu kennen. E<strong>in</strong> Beispiel dafür ist RC4, das<br />
früher oft von Mircrosoft e<strong>in</strong>gesetzt und fast immer falsch verwendet wurde. Ohne entsprechenden<br />
Integritätsschutz bietet es praktisch ke<strong>in</strong>e <strong>Sicherheit</strong>.<br />
Allgeme<strong>in</strong> können wir also festhalten, dass <strong>in</strong> e<strong>in</strong>em sicheren System e<strong>in</strong>e ganze Reihe<br />
unterschiedlicher Verfahren / Algorithmen zum E<strong>in</strong>satz kommen, die perfekt aufe<strong>in</strong>an<strong>der</strong> abgestimmt<br />
se<strong>in</strong> müssen, um die <strong>Sicherheit</strong> nicht zu untergraben. Das Thema Verschlüsselung hat dabei e<strong>in</strong>e
wichtige Funktion, <strong>der</strong>en volle Wirkung sich allerd<strong>in</strong>gs erst entfalten kann, wenn auch das Umfeld<br />
stimmt und sie richtig e<strong>in</strong>gesetzt wird.<br />
Nun wollen wir zunächst e<strong>in</strong> sehr wichtiges Pr<strong>in</strong>zip <strong>der</strong> mo<strong>der</strong>nen Kryptographie ansprechen, das als<br />
Kerckhoff's Gesetz bekannt geworden ist. Im Anschluss daran werden wir auf die grundlegenden<br />
Unterschiede zwischen symmetrischer und asymmetrischer Verschlüsselung e<strong>in</strong>gehen, um das weitere<br />
Verständnis zu erleichtern.<br />
Kerckhoff's Gesetz:<br />
Im 19. Jahrhun<strong>der</strong>t hat <strong>der</strong> Nie<strong>der</strong>län<strong>der</strong> Auguste Kerckhoff e<strong>in</strong> Pr<strong>in</strong>zip formuliert, dass gerade <strong>in</strong> <strong>der</strong><br />
heutigen Zeit wie<strong>der</strong> e<strong>in</strong> sehr aktuelles Thema ist. Es besagt, dass die <strong>Sicherheit</strong> e<strong>in</strong>es<br />
kryptographischen Systems nur auf <strong>der</strong> Geheimhaltung des Schlüssels beruhen darf und nicht auf dem<br />
zu Grunde liegenden Verfahren bzw. Algorithmus. Das heisst, selbst wenn e<strong>in</strong> Angreifer die genaue<br />
Kenntnis des Kryptosystems hat, darf dies ke<strong>in</strong>e Auswirkung auf die <strong>Sicherheit</strong> haben, da diese e<strong>in</strong>zig<br />
und alle<strong>in</strong> vom verwendeten und geheim zu haltenden Schlüssel abhängt.<br />
Später wurde Kerckhoff's Gesetz von Claude Shannon als “the enemy knows the system” neu<br />
formuliert und ist <strong>in</strong> dieser Form als Shannon's Maxim bekannt.<br />
Die meisten Kryptographen und Wissenschaftler, die sich mit <strong>IT</strong><strong>Sicherheit</strong> beschäftigen, s<strong>in</strong>d heute<br />
Befürworter dieses Pr<strong>in</strong>zips. E<strong>in</strong> Algorithmus gilt dann als relativ sicher, wenn er mehrere Jahre<br />
veröffentlich ist und niemand e<strong>in</strong>e praktische o<strong>der</strong> realistisch ersche<strong>in</strong>ende theoretische Attacke<br />
veröffentlicht hat.<br />
Es hat sich sich gezeigt, dass viele Systeme, <strong>der</strong>en <strong>Sicherheit</strong> auf <strong>der</strong> Geheimhaltung des verwendeten<br />
Algorithmus beruht (“security through obscurity”), gravierende Lücken haben, die früher o<strong>der</strong> später<br />
(meistens früher) entdeckt und ausgenutzt werden. Bekannte Beispiele s<strong>in</strong>d <strong>der</strong> beim Mobilfunkstandard<br />
GSM verwendete COMP128 Algorithmus [4] o<strong>der</strong> das DVDKopierschutzverfahren CSS [5].<br />
Viele von Regierungen und dem Militär e<strong>in</strong>gesetzte Verfahren beruhen <strong>in</strong>des auf diesem Pr<strong>in</strong>zip.<br />
Symmetrische vs. asymmetrische Verschlüsselung:<br />
Es gibt mittlerweile e<strong>in</strong>e Vielzahl von unterschiedlichen Algorithmen, die für e<strong>in</strong>e Verschlüsselung von<br />
Informationen sorgen. Sie lassen sich grob <strong>in</strong> zwei Klassen e<strong>in</strong>teilen: symmetrische und asymmetrische<br />
Verfahren. Im Folgenden beschreiben wir die Unterschiede dieser beiden grundsätzlich verschiedenen<br />
Ansätze und gehen auch auf die <strong>in</strong> <strong>der</strong> Praxis oft verwendete hybride Verschlüsselung e<strong>in</strong>.<br />
Symmetrische Verfahren:<br />
Bei dieser Form <strong>der</strong> Verschlüsselung wird <strong>der</strong> gleiche Schlüssel zur Ver und Entschlüsselung<br />
verwendet (genauer geagt reicht es schon, wenn <strong>der</strong> Schlüssel zum Entschlüsseln e<strong>in</strong>fach aus dem<br />
Schlüssel zum Verschlüsseln berechenbar ist und an<strong>der</strong>sherum).<br />
Dabei wird das Problem <strong>der</strong> sicheren Übertragung von e<strong>in</strong>em Problem mit großen Datenmengen (den<br />
KlartextNachrichten) <strong>in</strong> e<strong>in</strong> Problem mit e<strong>in</strong>er kle<strong>in</strong>en Datenmenge (dem Schlüssel) reduziert.<br />
Wichtig dabei ist, das sich Absen<strong>der</strong> und Empfänger auf e<strong>in</strong>en geheimen Schlüssel e<strong>in</strong>igen und diesen<br />
über e<strong>in</strong>en sicheren Kanal austauschen müssen (beispielsweise e<strong>in</strong> verschlossener Umschlag). Die
Funktionsweise ist <strong>in</strong> Abbildung 1 schematisch dargestellt.<br />
Symmetrische Verschlüsselungsverfahren lassen sich nochmal <strong>in</strong> Stromchiffren und Blockchiffren<br />
e<strong>in</strong>teilen, Letzere können wie<strong>der</strong>um verschiedene Modi (CBC, ECB, CFB) def<strong>in</strong>ieren.<br />
Stromchiffren verschlüsseln die Daten byteweise, während Blockchiffren immer e<strong>in</strong>en ganzen Block<br />
e<strong>in</strong>er bestimmten Größe auf e<strong>in</strong>mal verarbeiten. E<strong>in</strong> bekanntes Beispiel für e<strong>in</strong>e Stromchiffre ist RC4,<br />
das mit e<strong>in</strong>er Pseudozufallszahlenfolge arbeitet und den Schlüsselstrom e<strong>in</strong>fach per XOR mit den<br />
Klartextdaten verknüpft. Der Empfänger erzeugt denselben Schlüsselstrom und entschlüsselt den<br />
Chiffretext wie<strong>der</strong>um mit XOR (XOR ist kommutativ).<br />
Beispiel für Blockchiffren s<strong>in</strong>d DES, IDEA o<strong>der</strong> AES. Sie verschlüsseln Daten blockweise, meist 64<br />
(DES) o<strong>der</strong> 128 Bit (AES) am Stück. Sie s<strong>in</strong>d schwieriger zu verwenden als Stromchiffren, bieten aber<br />
meist e<strong>in</strong>e höhere <strong>Sicherheit</strong> im Bereich Integritätsschutz, da e<strong>in</strong> verän<strong>der</strong>tes ChiffretextBit etwa die<br />
Hälfte aller KlartextBits umdreht. Bei RC4 h<strong>in</strong>gegen kann e<strong>in</strong> Angreifer se<strong>in</strong>e Manipulation Bytegenau<br />
ansetzen, da jedes KlartextByte auf genau e<strong>in</strong> ChiffretextByte abgebildet wird.<br />
Aber auch bei Blockchiffren gibt es <strong>Sicherheit</strong>sbedenken, so sollte <strong>der</strong> ECBModus (Electonic<br />
Codebook) nicht mehr verwendet werden, <strong>der</strong> jeden Block unabhängig von den an<strong>der</strong>en verschlüsselt.<br />
Am weitesten verbreitet ist CBC (Cipher Block Cha<strong>in</strong><strong>in</strong>g). Bei CBC und CFB (Cipher Feedback) hängt<br />
Block n vom Inhalt des Blocks n1 ab, außerdem wird <strong>der</strong> erste Block duch e<strong>in</strong>en frei gewählten<br />
Initialisierungsvektor geschützt.<br />
Vorteile symmetrischer Verfahren s<strong>in</strong>d beson<strong>der</strong>s ihre Schnelligkeit und ihre e<strong>in</strong>fache und<br />
kostengünstige Implementierbarkeit, vor allem <strong>in</strong> Hardware. E<strong>in</strong>e ältere 1GHzCPU verschlüsselt mit<br />
3DES etwa 50MBit/s, mit AES, das extra auf Geschw<strong>in</strong>digkeit h<strong>in</strong> optimiert wurde, sogar rund 100<br />
MBit/s.<br />
Der größte Nachteil dieser Verfahren ist <strong>der</strong> Schlüsselaustausch. Dieser gestaltet sich <strong>in</strong> größeren<br />
Umgebungen mit vielen Benutzern als sehr schwierig. Schlüssel müssen erzeugt, verteilt und<br />
gespeichert werden und mit <strong>der</strong> Anzahl <strong>der</strong> Benutzer wächst auch das Risiko e<strong>in</strong>es Misbrauchs o<strong>der</strong><br />
menschlichen Fehlers. Wenn bei e<strong>in</strong>em System mit 100 Benutzern e<strong>in</strong> zusätzlicher Benutzer<br />
h<strong>in</strong>zukommt, müssen 100 neue Schlüssel erzeugt werden, e<strong>in</strong>er für jeden Benutzer, mit dem <strong>der</strong> neue<br />
Benutzer kommunizieren will. Allgeme<strong>in</strong> benötigt e<strong>in</strong> nuserSystem n*(n1)/2 Schlüssel.<br />
Abbildung1: Symmetrische Verschlüsselung
Asymmetrische Verfahren:<br />
Diese Form <strong>der</strong> Verschlüsselung ist noch relativ jung. Im Jahr 1976 veröffentlichten Whitfield Diffie<br />
und Mart<strong>in</strong> Hellman e<strong>in</strong>e radikal neue Methode <strong>der</strong> Schlüsselverteilung, welche als Public Key<br />
Kryptografie bekannt wurde. Dabei werden zwei verschiedene Schlüssel zur Ver und Entschlüsselung<br />
benutzt, die mittels e<strong>in</strong>er bestimmten mathematischen Funktion, e<strong>in</strong>er sogenannten Trapdoor<br />
E<strong>in</strong>wegfunktion, mite<strong>in</strong>an<strong>der</strong> verknüpft s<strong>in</strong>d. Diese Funktionen zeichnen sich dadurch aus, dass sie <strong>in</strong><br />
<strong>der</strong> e<strong>in</strong>en Richtung leicht, d.h. <strong>in</strong> Polynomialzeit, berechnet werden können, während die Rückrichtung<br />
nur sehr “schwer” berechenbar ist. Das “Trapdoor” (engl. für Geheimtür) steht dabei für e<strong>in</strong>e gewisse<br />
Zusatz<strong>in</strong>formation (den richtigen Schlüssel), mit Hilfe <strong>der</strong>er auch die Rückrichtung schnell berechnet<br />
werden kann. Beispiele für solche Funktionen s<strong>in</strong>d die Primfaktorzerlegung, diskrete Logarithmen o<strong>der</strong><br />
Algorithmen, die auf Basis von ElliptischerKurvenKryptographie (ECC) arbeiten [8].<br />
Jedem Benutzer ist e<strong>in</strong> Schlüsselpaar zugeordnet, bestehend aus öffentlichem Schlüssel (public key)<br />
und privatem Schlüssel (private key). Der private Schlüssel ist dabei unter allen Umständen geheim zu<br />
halten, während <strong>der</strong> öffentliche Schlüssel zum Beispiel auf e<strong>in</strong>er Website o<strong>der</strong> e<strong>in</strong>em Keyserver im<br />
Internet veröffentlicht werden darf.<br />
Das Schlüsselpaar arbeitet dabei wie e<strong>in</strong> Vorhängeschloss: Je<strong>der</strong> kann es verriegeln (public key), aber<br />
nur <strong>der</strong> Inhaber des passenden Schlüssels (private key) kann es wie<strong>der</strong> aufschliessen. Der Absen<strong>der</strong><br />
chiffriert die Nachricht mit dem öffentlichen Schlüssel des Empfängers, <strong>der</strong> sie dann mit se<strong>in</strong>em<br />
privaten Schlüssel entschlüsselt. Abbildung 2 zeigt diesen Ablauf.<br />
Beispiele für PublicKey Algorithmen s<strong>in</strong>d RSA, DiffieHellmann (DH) o<strong>der</strong> ElGamal. Sie werden<br />
heute <strong>in</strong> vielen Protokollen wie z.B. SSL/TLS e<strong>in</strong>gesetzt. Im allgeme<strong>in</strong>en ist e<strong>in</strong> solches System nicht<br />
umkehrbar, d.h. e<strong>in</strong>e Nachricht, welche mit dem privaten Schlüssel verschlüsselt wurde, kann nicht mit<br />
dem öffentlichen Schlüssel entschlüsselt werden. RSA stellt <strong>in</strong> diesem Zusammenhang e<strong>in</strong>e Ausnahme<br />
dar. Wie wir später sehen werden, ist es egal ob man erst verschlüselt und dann entschlüsselt o<strong>der</strong><br />
umgekehrt. Dies wird zur Signierung von Daten genutzt: <strong>der</strong> Absen<strong>der</strong> verschlüsselt se<strong>in</strong>e<br />
Informationen mit se<strong>in</strong>em privaten Schlüssel, so dass sie von je<strong>der</strong>mann mit dem öffentlichen Schlüssel<br />
entschlüsselt werden kann. Somit ist sichergestellt, das die Information vom Absen<strong>der</strong> stammt, denn<br />
nur er hat Zugriff auf den privaten Schlüssel. Wie dies <strong>in</strong> <strong>der</strong> Praxis aussieht werden wir später im<br />
Kapitel über PGP sehen.<br />
Der große Vorteil asymmetrischer Verfahren ist, das ke<strong>in</strong>e geheimen Schlüssel mehr zu übertragen<br />
s<strong>in</strong>d, man ist also nicht mehr auf die Existenz sicherer Kanäle angewiesen.<br />
Lei<strong>der</strong> haben die asymmetrischen Verfahren auch e<strong>in</strong>en großen Nachteil: Sie s<strong>in</strong>d ziemlich langsam,<br />
typischerweise e<strong>in</strong>ige tausendmal langsamer als die symmetrischen Verfahren. Dabei ist auch <strong>der</strong><br />
Rechenaufwand asymmetrisch verteilt, das Ver und Entschlüsseln dauert also unterschiedlich lange.<br />
Die Berechnungen mit dem öffentlichen Schlüssel s<strong>in</strong>d meist sehr viel schneller als die mit dem<br />
privaten Gegenstück. Bei RSA, dem gängisten Algorithmus, gilt z.B.: Die PublicKeyOperation mit<br />
e<strong>in</strong>em 1KBitSchlüssel läuft zwanzigmal schneller als die PrivateKeyBerechnung. Mit e<strong>in</strong>em 2<br />
KBitSchlüssel läuft sie sogar fünfzigmal schneller. Die meisten Protokolle berücksichtigen diese<br />
Tatsache. Sie führen aufwändige PrivateKeyOperationen möglichst selten aus (Zertifikate signieren)<br />
o<strong>der</strong> berechnen sie auf leistungsfähigen Rechnern (Webserver), woh<strong>in</strong>gegen die e<strong>in</strong>fachen PublicKey<br />
Operationen oft und meist auf den schwächeren Clients (Webbrowser) ablaufen.
Hybride Verfahren:<br />
Abbildung2: Asymmetrische Verschlüsselung<br />
Da die ausschließliche Verwendung von PublicKeyKryptographie bei größeren Datenmengen schlicht<br />
zu kostspielig wäre, komb<strong>in</strong>iert man <strong>in</strong> <strong>der</strong> Praxis die Vorteile bei<strong>der</strong> oben genannter Techniken. Die<br />
PublicKeyVerschlüsselung wird verwendet, um e<strong>in</strong>en sicheren Kanal zwischen Absen<strong>der</strong> und<br />
Empfänger herzustellen, über den dann e<strong>in</strong> symmetrischer Schlüssel ausgetauscht werden kann. Dieser<br />
symmetrische Schlüssel wird auch Sitzungsschlüssel genannt, da er nur für diese Sitzung gilt. Der<br />
Absen<strong>der</strong> chiffriert die Nachricht anschließend mit dem Situngsschlüssel und e<strong>in</strong>em schnellen<br />
symmtrischen Algorithmus. Dieser hybride Prozess ist <strong>in</strong> Abbildung 3 dargestellt.<br />
Abbildung3: Hybride Verschlüsselung
RSA:<br />
Bei RSA handelt es sich um e<strong>in</strong> asymmetrisches Verschlüsselungsverfahren, das 1977 von Ron Rivest,<br />
Adi Shamir und Len Adleman entwickelt wurde. Die Abkürzung RSA steht dabei für die<br />
Anfangsbuchstaben se<strong>in</strong>er Erf<strong>in</strong><strong>der</strong>.<br />
Das Verfahren basiert auf <strong>der</strong> Idee, dass die Faktorisierung e<strong>in</strong>er großen Zahl, also ihre Zerlegung <strong>in</strong><br />
(m<strong>in</strong>destens zwei) Faktoren, e<strong>in</strong>e sehr aufwändige Angelegenheit ist, während das Erzeugen e<strong>in</strong>er Zahl<br />
durch Multiplikation zweier Primzahlen trivial ist. Dabei werden Erkenntnisse <strong>der</strong> Zahlentheorie und<br />
<strong>der</strong> modularen Arithmetik genutzt. Im Folgenden beschreiben wir den genauen Ablauf des Algorithmus<br />
und veranschaulichen dies anhand e<strong>in</strong>es Beispiels. Anschließend gehen wir auf e<strong>in</strong>ige praktische und<br />
theoretische <strong>Sicherheit</strong>sfragen e<strong>in</strong>.<br />
1. Generierung <strong>der</strong> Schlüssel<br />
Da es sich bei RSA um e<strong>in</strong> asymmetrisches Verfahren handelt, werden zwei Schlüssel benötigt. Diese<br />
erhält man wie folgt:<br />
1.) Wähle zufällig und stochastisch unabhängig zwei Primzaheln p ≠ q, die etwa gleich lang se<strong>in</strong><br />
sollten und berechne <strong>der</strong>en Produkt N = p∙q.<br />
In <strong>der</strong> Praxis werden diese Primzahlen durch Raten e<strong>in</strong>er Zahl und darauffolgendes Anwenden e<strong>in</strong>es<br />
Primzahltests bestimmt, dazu später mehr..<br />
2.) Berechne �(N) = (p1) ∙ (q1), wobei � für die Eulersche Funktion steht (siehe mathematische<br />
Grundlagen)<br />
3.) Wähle e<strong>in</strong>e Zahl e > 1, die teilerfremd zu �(N) ist. Dies kann z.B. dadurch geschehen, das man die<br />
Zahl e so wählt, dass sie jeweils größer als (p1) und (q1) ist.<br />
4.) Berechne die Zahl d so, dass gilt: e∙d ≡ 1 mod �(N). Dies kann z.B. mit dem Erweiterten<br />
Euklidischen Algorithmus geschehen.<br />
Das Paar (N,e) bildet den öffentlichen Schlüssel (public key), das Paar (N,d) den privaten Schlüssel<br />
(private key). Dabei ist jedoch nur d wirklich geheim. Die Zahlen p, q und �(N) können nun sicher<br />
gelöscht werden. Manchmal werden p und q auch zusammen mit d gespeichert, um e<strong>in</strong>e schnellere<br />
Decodierung bzw. schnelleres Signieren mittels des Ch<strong>in</strong>esischen Restsatzes zu ermöglichen.<br />
2. Funktionsweise des Algorithmus<br />
Nachdem man e<strong>in</strong> passendes Schlüsselpaar erzeugt hat, folgt nun die eigentliche Anwendung des<br />
Algorithmus. Um e<strong>in</strong>en gegebenen Klartext K zu verschlüsseln, berechnet <strong>der</strong> Absen<strong>der</strong> den<br />
Chiffretext C wie folgt:<br />
C ≡ Ke<br />
mod N<br />
Dadurch das die Exponentiation modulo N erfolgt, ist es schwierig, K e zu faktorisieren.<br />
Das Entschlüsseln funktioniert analog:<br />
K ≡Cd mod N
Aufgrund <strong>der</strong> Symmetrieeigenschaft <strong>der</strong> modularen Arithmetik s<strong>in</strong>d die Ver und Entschlüsselung<br />
<strong>in</strong>vers zue<strong>in</strong>an<strong>der</strong>, d.h. es ist egal, <strong>in</strong> welcher Reihenfolge man die beiden Funktionen verwendet.<br />
Mathematisch ausgedrückt heißt das:<br />
Das dies tatsächlich so ist, werden wir nun zeigen:<br />
3. Mathematische Grundlagen<br />
K = C d mod N = (K d)e mod N = (K e)d mod N<br />
a) Eulersche Phi-Funktion und Satz von Euler:<br />
Die Eulersche PhiFunktion ordnet je<strong>der</strong> natürlichen Zahl n die Anzahl <strong>der</strong> natürlichen Zahlen a von 1<br />
bis n zu, die zu n teilerfremd s<strong>in</strong>d (also ggT(a,n) = 1). Sie ist nach Leonhard Euler benannt und wird<br />
mit dem griechischen Buchstaben � (Phi) bezeichnet.<br />
Wenn p e<strong>in</strong>e Primzahl ist, dann ist � (n)=(p1) . Die �Funktion ist außerdem multiplikativ für zwei<br />
Zahlen m und n, sofern diese ke<strong>in</strong>en kle<strong>in</strong>sten geme<strong>in</strong>samen Teiler haben, d.h. es gilt:<br />
�(m∙n)= �(m) � (n) , falls ggT(m,n)=1<br />
E<strong>in</strong>e <strong>der</strong> wichtigsten Anwendungen f<strong>in</strong>det die �Funktion im Satz von Euler:<br />
Er besagt, dass für zwei teilerfremde, ganze Zahlen x und n≥2 gilt: n teilt x �(n) 1, o<strong>der</strong> an<strong>der</strong>s<br />
ausgedrückt:<br />
x �(n) ≡ 1 (mod n)<br />
E<strong>in</strong> Spezialfall (für n ist Primzahl) dieses Satzes ist <strong>der</strong> Kle<strong>in</strong>e Fermatsche Satz:<br />
b) Ch<strong>in</strong>esischer Restsatz:<br />
x p1 ≡ 1 (mod p) , falls p Primzahl<br />
Der Ch<strong>in</strong>esischer Restsatz macht e<strong>in</strong>e Aussage über simultane Kongruenzen für den Fall, dass die<br />
Moduln teilerfremd s<strong>in</strong>d:<br />
Seien m 1 , ..., m n paarweise teilerfremde positive ganze Zahlen, dann existiert für jedes Tupel<br />
ganzer Zahlen a 1 , ..., a n e<strong>in</strong>e ganze Zahl x, die die folgende simultane Kongruenz erfüllt:<br />
x ≡ ai mod mi für i = 1,...,n<br />
Alle Lösungen dieser Kongruenz s<strong>in</strong>d kongruent modulo M:=m 1 m 2 m 3 ...m n .
Um nun zu zeigen das e und d <strong>in</strong>verse Operationen s<strong>in</strong>d, gehen wir von folgen<strong>der</strong> Gleichung aus:<br />
e∙d ≡ 1 mod �(N) bzw. e∙d = k∙ �(N) +1 , k � ℕ (1)<br />
Nun formen wir den Kle<strong>in</strong>en Fermatschen Satz wie folgt um:<br />
K p1 ≡ 1 (mod p) ⇔ K k∙�(n) ≡ 1 (mod p) ⇔ K k∙�(n)+1 ≡ K (mod p) (2)<br />
Im ersten Schritt haben wir (p1) durch k∙�(N) ersetzt. Dies dürfen wir, da (p1) e<strong>in</strong> Faktor von �(N)<br />
ist. Im zweiten Schritt haben wir beide Seiten mit K multipliziert. Dasselbe Argument gilt auch für q,<br />
das heisst wir erhalten genauso: K k∙�(n)+1 ≡ K (mod q) (3) .<br />
Aus <strong>der</strong> Komb<strong>in</strong>ation von (2) und (3) erhalten wir nun:<br />
(K e)d = K e∙d<br />
= (1) K k∙�(n)+1 =K (mod p) = K (mod q).<br />
Wegen dem Ch<strong>in</strong>esischen Restsatz gilt: (K e)d =K (mod p∙q) = K (mod n) □<br />
4. Beispiel<br />
Sei p = 11 und q = 13. Dann ist N = 143 und � (n)=(p1)(q1)=120.<br />
Für die zu � (n)=120 teilerfremde Zahl e wählen wir e = 23. Damit erhalten wir für d die Bed<strong>in</strong>gung:<br />
23∙d ≡ 1 mod 120,<br />
das Produkt 23∙d soll also bei Division durch 120 den Rest 1 lassen. Die Kongruenz<br />
läßt sich auch als Gleichung schreiben:<br />
23∙d = k∙120 + 1, wobei k e<strong>in</strong>e ganze Zahl ist.<br />
Diese sog. diophantische Gleichung läßt sich nun mit dem erweiterten euklidischen Algorithmus lösen.<br />
E<strong>in</strong>e Lösung ist z.B. gegeben durch d = 47 und k = 9. Damit wird N = 143 und d = 47 <strong>der</strong> geheime<br />
Schlüssel.<br />
Verschlüsselung:<br />
Nehmen wir an, es soll die Nachricht K = 7 verschlüsselt werden. Der Absen<strong>der</strong> benutzt den<br />
veröffentlichten Schlüssel N = 143, e = 23 und berechnet<br />
C ≡ Ke<br />
mod N, also C ≡ 723<br />
mod 143<br />
Die Berechnung von 7 23 mod 143 kann dabei wie folgt schrittweise erfolgen, um die Ergebnisse<br />
möglichst kle<strong>in</strong> zu halten:<br />
7 23 = 7 20+3 = 7 (5∙4) +3 = 7 (5∙(2∙2)) +3 = 7 5∙2∙2 ∙ 7 3 = (7 5 ) 2∙2 ∙ 7 3<br />
7 5 = 16.807 => 16.807 mod 143 ≡ 76 mod 143 C = ((76) 2∙2 ∙ 7 3 ) mod 143<br />
7 3 = 343 => 343 mod 143 ≡ 57 mod 143 C = ((76) 2∙2 ∙ 57) mod 143<br />
762 = 5.776 => 5.776 mod 143 ≡ 56 mod 143 C = ((56) 2 ∙ 57) mod 143<br />
(56) 2 = 3.136 => 3.136 mod 143 ≡ 133 mod 143 C = (133∙57) mod 143<br />
(133∙57) = 7.581 => 7.581 mod 143 ≡ 2 mod 143 C = 2 mod 143<br />
Man erhält also den Geheimtext C = 2 (mod 143)
Entschlüsselung:<br />
Der Geheimtext C kann nun mittels des geheimen Schlüssels d wie<strong>der</strong> entschlüsselt werden:<br />
K ≡ Cd<br />
mod N, also K ≡ 247<br />
mod 143<br />
K ≡ 2<br />
47 mod 143 ≡ (2<br />
15 ) 3 ∙2 2 mod 143 ≡ 21<br />
3 ∙ 4 mod 143 ≡ 37044 mod 143 ≡ 7 mod 143<br />
Aus C = 2 wird also wie<strong>der</strong> K = 7, die Entschlüsselung hat funktioniert.<br />
5. Praktische und theoretische <strong>Sicherheit</strong><br />
Die Zahlen p und q müssen <strong>in</strong> <strong>der</strong> Praxis sehr groß se<strong>in</strong>, um e<strong>in</strong>e angemessene <strong>Sicherheit</strong> im H<strong>in</strong>blick<br />
auf die Rechenleistung zu gewährleisten, die heute und <strong>in</strong> näherer Zukunft zur Vefügung steht.<br />
Typischerweise verwendet man heute Zahlen mit 200 und mehr Stellen, die erzeugten Schlüssel haben<br />
meist e<strong>in</strong>e Länge von 1024 Bit. Nachdem Shamir und Tromer im Jahr 2003 e<strong>in</strong> theoretisches Hardware<br />
Gerät namens TWIRL vorgestellt haben, gibt es bereits Leute, die an <strong>der</strong> <strong>Sicherheit</strong> von 1024Bit<br />
Schlüssels zweifeln und e<strong>in</strong>e Schlüssellänge von m<strong>in</strong>d. 2048 Bit empfehlen.<br />
Bei so großen Zahlen ist es mit vertretbarem Aufwand nicht möglich, die Primzahleigenschaft von p<br />
und q zu garantieren, es müssten m<strong>in</strong>destens 10^50 mögliche Faktoren durchprobiert werden. Deshalb<br />
verwendet man sogenannte Primzahltests, die anhand von speziellen Testverfahren die<br />
Wahrsche<strong>in</strong>lichkeit, dass p und q ke<strong>in</strong>e Primzahlen s<strong>in</strong>d, auf e<strong>in</strong> beliebiges Maß reduzieren. E<strong>in</strong> solcher<br />
Test ist <strong>der</strong> heuristische Algorithmus von Solovay und Strassen. Er funktioniert wie folgt:<br />
a) Rate e<strong>in</strong>e verme<strong>in</strong>dliche Primzahl p und wähle e<strong>in</strong>e beliebige ganze Zahl r
Primfaktoren enthalten. Der geheime Schlüssel d sollte “groß genug” se<strong>in</strong>: Wiener zeigte im Jahr 1990,<br />
dass wenn p zwischen q und 2q liegt (was nicht ungewöhnlich ist) und d
DES:<br />
DES, <strong>der</strong> Data Encryption Standard, wurde <strong>in</strong> den 70er Jahren für die USRegierung entwickelt, und<br />
wurde daraufh<strong>in</strong> auch <strong>der</strong> Öffentlichkeit zur Nutzung zur Verfügung gestellt. Er ist als<br />
kryptographischer Standard sowohl <strong>in</strong> den USA als auch <strong>in</strong> an<strong>der</strong>en Län<strong>der</strong>n akzeptiert, auch wenn<br />
heute se<strong>in</strong>e <strong>Sicherheit</strong> <strong>in</strong> Frage gestellt wird.<br />
1. Geschichte von DES<br />
1972 veröffentlichte das NBS (National Bureau of Standards), das heutige NIST (National Institute of<br />
Standards and Technology), e<strong>in</strong>e Ausschreibung, <strong>in</strong> <strong>der</strong> nach e<strong>in</strong>em Codierungssystem gefragt wurde,<br />
das vorher spezifizierte Kriterien erfüllen sollte:<br />
• hoher <strong>Sicherheit</strong>sstandard<br />
• komplett spezifiziert und e<strong>in</strong>fach zu verstehen<br />
• <strong>Sicherheit</strong> soll nur durch den Algorithmus gewährleistet werden, nicht durch dessen<br />
Geheimhaltung<br />
• für alle Benutzer verfügbar<br />
• für verschiedene E<strong>in</strong>satzmöglichkeiten nutzbar<br />
• effizient <strong>in</strong> <strong>der</strong> Benutzung<br />
• exportierbar<br />
• überprüfbar<br />
Als 1973 die Vorschläge begutachtet wurden, stellte sich allerd<strong>in</strong>gs heraus, dass ke<strong>in</strong>er von ihnen den<br />
Ansprüchen genügte. 1974 veröffentlichte das NBS e<strong>in</strong>e zweite Ausschreibung, woraufh<strong>in</strong> IBM se<strong>in</strong>en<br />
LuciferAlgorithmus e<strong>in</strong>reichte. Dieser wurde unter an<strong>der</strong>em von Horst Feistel, Walter Tuchman und<br />
Don Coppersmith entworfen und versprach e<strong>in</strong>en brauchbaren Ansatz. Der Algorithmus wurde schon<br />
vorher veröffentlicht und war somit also schon geprüft und validiert worden. Obwohl <strong>der</strong> Algorithmus<br />
lang ist, ist er doch gradl<strong>in</strong>ig und überschaubar und somit e<strong>in</strong>fach zu implementieren. Im Vergleich zu<br />
RSA, was auf sehr großen Zahlen operiert, nutzt Lucifer nur logische Operatoren und relativ kle<strong>in</strong>e<br />
Zahlen.<br />
Auf dieser Basis entwickelten IBM und NBS e<strong>in</strong>en Algorithmus zur Kodierung von Daten, <strong>der</strong> dann als<br />
DES (Data Encrytion Standard) o<strong>der</strong> DEA (Data Encryption Algorithm) bekannt wurde. Mit Hilfe <strong>der</strong><br />
NSA (National Security Agency) wurde <strong>der</strong> neue Algorithmus überprüft und verbessert und<br />
letztendlich am 17. März 1975 veröffentlicht. Die NSA verbesserte dabei vor allem das Design <strong>der</strong> S<br />
Boxen (dazu später mehr), was von e<strong>in</strong>igen Experten allerd<strong>in</strong>gs sehr misstrauisch betrachtet wurde. Sie<br />
dachten, die NSA hätte sich selbst e<strong>in</strong>ige H<strong>in</strong>tertüren geschaffen, um verschlüsselte Daten e<strong>in</strong>fach lesen<br />
zu können. Nachdem allerd<strong>in</strong>gs 1990 die differentielle Kryptoanalyse von Eli Biham und Adi Shamir<br />
veröffentlicht wurde, konnten e<strong>in</strong>ige dieser Zweifel zerstreut werden. Wie sich herausstellte, hatte die<br />
NSA schon <strong>in</strong> den 70er Jahren Kenntnis von dieser Angriffsmethode und konnte die SBoxen .<br />
dementsprechend sicherer gestalten. Am 23. November 1976 wurde DES von <strong>der</strong> USRegierung<br />
schließlich als Standard etabliert und zur öffentlichen Nutzung freigegeben.
2. Funktionsweise des Algorithmus<br />
DES ist e<strong>in</strong> symmetrisches Blockchiffriersystem, das auf zwei fundamentalten Pr<strong>in</strong>zipien <strong>der</strong><br />
Codierungstheorie aufsetzt, <strong>der</strong> Substitution und <strong>der</strong> Permutation. Die <strong>Sicherheit</strong> des Algorithmus<br />
beruht dabei auf <strong>der</strong> wie<strong>der</strong>holten Anwendung dieser beiden Pr<strong>in</strong>zipien <strong>in</strong> <strong>in</strong>sgesamt 16 Schritten.<br />
Der Klartext wird <strong>in</strong> 64 Bit lange Blöcke unterteilt und mit e<strong>in</strong>em 64 Bit langen Schlüssel, von dem<br />
allerd<strong>in</strong>gs nur 56 Bit genutzt werden, codiert. Der Algorithmus ist von zwei Techniken aus Shannons<br />
Informationstheorie abgeleitet, <strong>der</strong><br />
Konfusion und Diffusion. Bei <strong>der</strong><br />
Konfusion werden e<strong>in</strong>zelne<br />
Informationsbits geän<strong>der</strong>t, also<br />
substituiert, woh<strong>in</strong>gegen bei <strong>der</strong><br />
Diffusion die Information <strong>in</strong> den<br />
e<strong>in</strong>zelnen Bits auf an<strong>der</strong>e Bits<br />
verteilt wird. Letzteres geschieht<br />
im DESAlgorithmus <strong>in</strong> den<br />
Permutationen. Der Algorithmus<br />
selbst nutzt dabei nur e<strong>in</strong>fache<br />
Rechenoperationen und logische<br />
Operatoren auf 64 Bit langen<br />
Zahlen, somit zeigt er auch auf<br />
älteren Rechnern noch sehr gute<br />
Performance. Zusätzlich gibt es<br />
noch e<strong>in</strong>ige spezielle Chips, die<br />
darauf optimiert s<strong>in</strong>d, den<br />
Algorithmus abzuarbeiten.<br />
Nach <strong>der</strong> Initialisierung operiert <strong>der</strong><br />
Algorithmus auf 64 Bit langen<br />
Datenblöcken. Diese Blöcke<br />
Abbildung 4: E<strong>in</strong> Durchlauf <strong>in</strong> DES<br />
werden <strong>in</strong> zwei Hälften geteilt, jede<br />
Hälfte wird unabhängig durche<strong>in</strong>an<strong>der</strong> gemischt, e<strong>in</strong>e Hälfte wird mit dem Schlüssel verknüpft und<br />
anschließend mit <strong>der</strong> an<strong>der</strong>en getauscht. Dieser Prozess wird 16 mal wie<strong>der</strong>holt, wobei <strong>in</strong> den e<strong>in</strong>zelnen<br />
iterativen Schritten nur Tabellen und e<strong>in</strong>fache BitOperatoren benutzt werden. (Abbildung 4) Dadurch<br />
ist dieser Algorithmus effizient zu implementieren, auch wenn die Manipulationen an den e<strong>in</strong>zelnen<br />
Bits sehr komplex s<strong>in</strong>d.<br />
Die 64 Bit langen Inputblöcke werden <strong>in</strong> e<strong>in</strong>er sogenannten <strong>in</strong>itialen Permutation als erstes e<strong>in</strong>mal<br />
verän<strong>der</strong>t. Anschließend werden sie mit Hilfe des 64 BitSchlüssels transformiert, wobei allerd<strong>in</strong>gs nur<br />
56 Bit genutzt werden. Jedes achte Bit des Schlüssels wird verworfen, sie werden zum Paritätscheck<br />
genutzt. Danach beg<strong>in</strong>nt <strong>der</strong> Durchlauf <strong>der</strong> 16 Wie<strong>der</strong>holungen, <strong>in</strong> denen die 64 Datenbits zuerst <strong>in</strong><br />
zwei Hälften geteilt werden. Der Schlüssel wird um e<strong>in</strong>e bestimmte Anzahl von Stellen nach l<strong>in</strong>ks<br />
verschoben und dann mit <strong>der</strong> rechten Hälfte komb<strong>in</strong>iert. Diese neue Hälfte wird dann wie<strong>der</strong> mit <strong>der</strong><br />
unverän<strong>der</strong>ten l<strong>in</strong>ken Hälfte komb<strong>in</strong>iert und wird dann zur neuen rechten Hälfte im nächsten Durchlauf,<br />
die alte rechte Hälfte wird zur neuen l<strong>in</strong>ken Hälfte. Nach Durchlauf dieser 16 Schritte wird das<br />
Ergebnis noch e<strong>in</strong>mal <strong>in</strong> e<strong>in</strong>er sogenannten f<strong>in</strong>alen Permutation, <strong>der</strong> Inversen zur <strong>in</strong>itialen Permutation,<br />
verän<strong>der</strong>t.
Um die 32 Bit langen Hälften mit den 56 Bits des Schlüssels komb<strong>in</strong>ieren zu können, s<strong>in</strong>d vorher aber<br />
zwei weitere Schritte notwendig. Die 32 Bit langen Datenblöcke werden zu 48 Bit langen Blöcken<br />
aufgebläht; <strong>der</strong> 56 Bit lange<br />
Schlüssel wird auf 48 Bit<br />
reduziert. Diese Schritte<br />
werden “expansion<br />
permutation” und “permuted<br />
choice” (Abbildung 5)<br />
genannt. Im Folgenden<br />
werden diese e<strong>in</strong>zelnen<br />
Schritte noch e<strong>in</strong>mal<br />
Abbildung 5: Verschiedene Permutationen<br />
detailiert beschrieben.<br />
• Details e<strong>in</strong>es Durchlaufs<br />
E<strong>in</strong> Durchlauf besteht aus vier seperaten Operationen.<br />
Zuerst wird die rechte Hälfte von 32 auf 48 Bits<br />
vergrößert, danach wird sie mit dem Schlüssel komb<strong>in</strong>iert.<br />
Das Ergebnis wird dann substituiert und wie<strong>der</strong> auf 32 Bit<br />
geschrumpft. Diese 32 Bit werden noch e<strong>in</strong>mal permutiert<br />
und dann mit <strong>der</strong> l<strong>in</strong>ken Hälfte komb<strong>in</strong>iert. Sie ergeben<br />
dann die neue rechte Hälfte für den nächsten Durchlauf.<br />
(Abbildung 6)<br />
• Expans<strong>in</strong>on Permutation<br />
Durch die Expansion Permutation wird die rechte Hälfte<br />
von 32 auf 48 Bit vergrößert. Bei <strong>der</strong> Permutation werden<br />
die Stellen <strong>der</strong> e<strong>in</strong>zelnen Bits verän<strong>der</strong>t und ausserdem<br />
e<strong>in</strong>ige Bits verdoppelt. Dies hat den Zweck, die Hälfte mit<br />
dem Schlüssel komb<strong>in</strong>ieren zu können und sie später ohne<br />
Informationsverlust wie<strong>der</strong> verkle<strong>in</strong>ern zu können. Diese<br />
Permutation wird anhand von Tabelle 1 durchgeführt. In<br />
jedem 4BitBlock werden das erste und das vierte Bit<br />
verdoppelt, das zweite und dritte Bit werden nur e<strong>in</strong>fach<br />
Abbildung 6: Details e<strong>in</strong>es Durchlaufs<br />
verwendet. Die Tabelle zeigt, welches Inputbit zu welchem<br />
Outputbit wird, <strong>in</strong> je<strong>der</strong> Zeile werden die Verän<strong>der</strong>ungen von 8 Bits dargestellt. (Tabelle 1)<br />
Tabelle 1: Expansion Permutation
• Schlüsseltransformation<br />
Wie oben beschrieben wird <strong>der</strong> 64 Bit lange Schlüssel zu e<strong>in</strong>em<br />
56 Bit langen Schlüssel verkle<strong>in</strong>ert, <strong>in</strong>dem jedes acht Bit<br />
verworfen wird. Dann wird dieser verkle<strong>in</strong>erte Schlüssel <strong>in</strong> zwei<br />
28 Bit lange Hälften geteilt, die um e<strong>in</strong>e bestimmte Anzahl von<br />
Stellen nach l<strong>in</strong>ks verschoben werden. Anschließend werden die<br />
beiden Hälften wie<strong>der</strong> zusammengefügt und durch e<strong>in</strong>e weitere<br />
Permutation auf 48 Bit verkle<strong>in</strong>ert, die den endgültigen Schlüssel<br />
für diesen Durchlauf ergeben.<br />
Dieser Schlüssel wird durch e<strong>in</strong>e exklusive O<strong>der</strong>Funktion mit<br />
<strong>der</strong> rechten Hälfte komb<strong>in</strong>iert und durch die SBoxen verän<strong>der</strong>t.<br />
In jedem Durchlauf wird <strong>der</strong> Schlüssel um e<strong>in</strong>e bestimmte<br />
Anzahl an Stellen nach l<strong>in</strong>ks verschoben. Dies ist <strong>in</strong> Tabelle 2<br />
dargestellt. Der verän<strong>der</strong>te Schlüssel wird dann durch e<strong>in</strong>e<br />
weitere Permutation von 56 auf 48 Bits verkle<strong>in</strong>ert, dargestellt <strong>in</strong><br />
Tabelle 3.<br />
Tabelle 3: Choice Permutation<br />
• SBoxen<br />
Tabelle 2: Bitverschiebung <strong>in</strong> jedem<br />
Durchlauf<br />
Die Substitutionen im DES werden durch 8 sogenannte SBoxen durchgeführt. Dies s<strong>in</strong>d Tabellen, <strong>in</strong><br />
denen genau festgehalten wird, wie die Datenbits durch neue Werte substituiert werden. Die 48<br />
Inputbits werden dabei <strong>in</strong> 8 sechs Bit lange Blöcke B1B2...B8 unterteilt, wobei Block Bj mit Hilfe von S<br />
Box Sj substituiert wird. (Abbildung 7) Die SBoxen s<strong>in</strong>d Tabellen, bestehend aus 4 Zeilen und 16<br />
Spalten. Aus den 6 Bitblöcken ergeben sich nun die Spalten und Zeilennummern gemäß folgendem<br />
Schema: Aus e<strong>in</strong>em Block mit den Bits b1 bis b6 ergibt sich die Zeilennummer aus den Bits 1 und 6,<br />
diese zweistellige B<strong>in</strong>ärzahl zwischen 0 und 3 gibt die zugehörige Zeile <strong>in</strong> <strong>der</strong> SBox an. Die Bits 2 bis<br />
5 ergeben e<strong>in</strong>e B<strong>in</strong>ärzahl zwischen 0 und 15 und geben die Spalte an, <strong>in</strong> <strong>der</strong> <strong>der</strong> zugehörige<br />
Substitutionswert zu f<strong>in</strong>den ist. Aus dem Wert 010011 für den Block 7 ergibt sich dann z.B. e<strong>in</strong>e<br />
Zeilennummer von z=01=1 und e<strong>in</strong>e Spaltennummer von s=1001=9. Aus <strong>der</strong> Tabelle liest man so den
Abbildung 7: SBoxen Operationen<br />
Substitutionswert 3=0011 ab, durch den <strong>der</strong> Wert 010011 ersetzt wird. (siehe Tabelle 9 im Anhang)<br />
• PBoxen<br />
Nach <strong>der</strong> Permutation durch die S<br />
Boxen durchlaufen die Daten noch<br />
e<strong>in</strong>mal e<strong>in</strong>e Permutation durch die<br />
sogenannten PBoxen. Dies ist allerd<strong>in</strong>gs<br />
e<strong>in</strong>e e<strong>in</strong>fache Permutation, bei <strong>der</strong> ke<strong>in</strong>e<br />
Verkle<strong>in</strong>erung <strong>der</strong> Daten stattf<strong>in</strong>det. Bit<br />
1 wan<strong>der</strong>t dabei z.B. an Position 9, Bit<br />
10 an Position 16. (Tabelle 4)<br />
Tabelle 4: PBox Permutation<br />
• Initiale und f<strong>in</strong>ale Permutation<br />
Genau wie die PBoxen s<strong>in</strong>d auch die <strong>in</strong>itiale (Tabelle 5) und die f<strong>in</strong>ale Permutation (Tabelle 6)<br />
e<strong>in</strong>fache Permutationen auf den Daten. Dabei ist die f<strong>in</strong>ale Permutation genau <strong>in</strong>vers zur <strong>in</strong>itialen<br />
Permutation.<br />
Tabelle 5: Initiale Permutation<br />
Tabelle 6: F<strong>in</strong>ale Permutation
• Kompletter DESAlgorithmus<br />
Aus diesen e<strong>in</strong>zelnen Teilen ergibt sich nun <strong>der</strong><br />
komplette Algorithmus. Zuerst wird <strong>der</strong> Schlüssel<br />
auf 56 Bit verkle<strong>in</strong>ert, dann wird e<strong>in</strong> 64 bit langer<br />
Datenblock durch die <strong>in</strong>itiale Permutation verän<strong>der</strong>t.<br />
Darauf folgen 16 Durchläufe, <strong>in</strong> denen <strong>der</strong> Schlüssel<br />
verschoben und permutiert wird, die e<strong>in</strong>e Hälfte <strong>der</strong><br />
Daten durch die S und PBoxen verän<strong>der</strong>t wird und<br />
anschließend wie<strong>der</strong> mit <strong>der</strong> verbliebenen Hälfte<br />
komb<strong>in</strong>iert wird. Nach dem letzten Durchlauf wird<br />
<strong>der</strong> Datenblock noch e<strong>in</strong>mal durch die f<strong>in</strong>ale<br />
Permutation verän<strong>der</strong>t. Dies alles ist auch noch<br />
e<strong>in</strong>mal <strong>in</strong> Abbildung 8 dargestellt.<br />
3. Decodierung von DES<br />
Zum Decodieren e<strong>in</strong>es mit DES verschlüsselten<br />
Textes wird <strong>der</strong> selbe Algorithmus verwendet. Dies<br />
ergibt sich aus dem folgenden Zusammenhang<br />
zwischen Durchlauf j und Durchlauf (j1):<br />
Lj = Rj1 (1)<br />
Rj = Lj1⊕ f(Rj1, kj) (2)<br />
mit ⊕ als exklusiver O<strong>der</strong>Funktion, k als<br />
entsprechen<strong>der</strong> Schlüssel und f als Funktion <strong>in</strong> e<strong>in</strong>em<br />
<strong>der</strong> 16 Durchläufe, durch die die Datenblöcke<br />
verän<strong>der</strong>t werden.Hieraus lässt sich erkennen, das<br />
sich je<strong>der</strong> Durchlauf alle<strong>in</strong> durch den vorherigen<br />
ergibt. Formt man diese Gleichungen jetzt nach Lj1<br />
und Rj1 um, ergibt sich:<br />
Rj1 = Lj (3)<br />
Lj1 = Rj ⊕ f(Rj1, kj) (4)<br />
Durch Substitution von Rj1 durch Lj ergibt sich dann:<br />
Lj1 = Rj ⊕ f(Lj, kj) (5)<br />
Die Gleichungen (3) und (5) zeigen, dass sich die<br />
Werte auch aus späteren Durchläufen berechnen<br />
lassen, diese Eigenschaft macht den Algorithmus<br />
also reversibel.<br />
Im DESAlgorithmus wird also die selbe Funktion f<br />
sowohl zum Codieren als auch zum Decodieren<br />
benutzt. Die e<strong>in</strong>zige Än<strong>der</strong>ung, die man vornehmen<br />
muss, s<strong>in</strong>d die Schlüssel, die <strong>in</strong> umgekehrter Reihenfolge<br />
<strong>in</strong> den 16 Durchläufen zu verwenden s<strong>in</strong>d.<br />
Abbildung 8: DES im Überblick
4. <strong>Sicherheit</strong>sfragen<br />
• Design des Algorithmus<br />
Während <strong>der</strong> Entwicklung des Algorithmus wurden e<strong>in</strong>ige Elemente von <strong>der</strong> NSA geheim gehalten.<br />
Darunter fielen unter an<strong>der</strong>em das Design <strong>der</strong> S und PBoxen, aber auch die Verän<strong>der</strong>ungen am<br />
Schlüssel. Aus diesem Grund wurde angenommen, dass die NSA sich selbst e<strong>in</strong>ige H<strong>in</strong>tertüren im<br />
Algorithmus e<strong>in</strong>gebaut hatte, um die Möglichkeit zu haben, private Nachrichten abzuhören. Von<br />
diesem Vorwurf wurde die NSA allerd<strong>in</strong>gs nach e<strong>in</strong>er Untersuchung durch den USKongress<br />
freigesprochen.<br />
E<strong>in</strong>e an<strong>der</strong>e Vermutung war, dass sich im Algorithmus Designschwächen verbargen, durch die DES<br />
angreifbar wäre. Allerd<strong>in</strong>gs haben sich bis zum heutigen Tag viele Untersuchungen mit DES<br />
beschäftigt, es wurde aber noch ke<strong>in</strong>e schwerwiegende Schwäche gefunden o<strong>der</strong> veröffenlicht. Nach<br />
diesen Vorwürfen veröffentlichte die NSA e<strong>in</strong>ige Informationen zu den SBoxen, um die<br />
Befürchtungen zu zerstreuen:<br />
• ke<strong>in</strong>e SBox ist e<strong>in</strong>e l<strong>in</strong>eare o<strong>der</strong> aff<strong>in</strong>e Funktion <strong>der</strong> Inputbits, d.h. dass die vier Outputbits<br />
nicht durch e<strong>in</strong>e l<strong>in</strong>eare Abbildung <strong>der</strong> sechs Inputbits dargestellt werden können,<br />
• Än<strong>der</strong>ung e<strong>in</strong>es e<strong>in</strong>zelnen Inputbits bewirkt e<strong>in</strong>e Än<strong>der</strong>ung <strong>in</strong> wenigstens zwei Outputbits,<br />
• die SBoxen m<strong>in</strong>imieren die Anzahl an E<strong>in</strong>sen und Nullen, wenn e<strong>in</strong> e<strong>in</strong>zelnes Inputbit<br />
konstant gehalten wird.<br />
• Anzahl <strong>der</strong> Durchläufe<br />
E<strong>in</strong>ige Experten me<strong>in</strong>en, dass 16 Durchläufe <strong>in</strong>nerhalb des Algorithmus nicht ausreichen könnten, um<br />
die Information im Chiffrat genügend zu verteilen. Bei e<strong>in</strong>em e<strong>in</strong>zigen Durchlauf z.B. wird e<strong>in</strong><br />
e<strong>in</strong>zelnes Bit im Chiffrat nur von e<strong>in</strong>igen wenigen Bits im Klartext abhängen. Je mehr Durchläufe nun<br />
gemacht werden, desto größer wird die Diffusion und desto kle<strong>in</strong>er die Abhängigkeiten vom Klartext.<br />
Das NBS und IBM haben daraufh<strong>in</strong> e<strong>in</strong>ige experimentelle Untersuchungen gestartet, die gezeigt haben,<br />
dass bereits bei 8 Durchläufen ke<strong>in</strong>e erkennbaren Abhängigkeiten mehr bestehen. 16 Durchläufe sollten<br />
also mehr als ausreichend se<strong>in</strong>.<br />
• Schlüssellänge<br />
Die Schlüssellänge ist die schwerwiegendste Schwachstelle von DES. Im orig<strong>in</strong>alen Lucifer<br />
Algorithmus lag sie bei 128 Bit, bei DES werden im Endeffekt nur 56 Bit lange Schlüssel verwendet.<br />
Hier setzen e<strong>in</strong>ige Angriffsmethoden an, die darauf abzielen, den verwendeten Schlüssel<br />
herauszuf<strong>in</strong>den, mit dem dann <strong>der</strong> chiffrierte Text e<strong>in</strong>fach decodiert werden kann.<br />
E<strong>in</strong>e Bruteforceattacke bei 2 56 möglichen Schlüsseln und e<strong>in</strong>er Testzeit von 100 ms pro Schlüssel<br />
würde aber immer noch 228 Millionen Jahre dauern, bei 1 ns pro Schlüssel immer noch über 2 Jahre.<br />
Allerd<strong>in</strong>gs ist diese Zeit auf heutigen Rechnern noch nicht zu erreichen.<br />
Diffie und Hellman machten sich Gedanken über e<strong>in</strong>e parallele Attacke auf die Schlüssel. Dabei<br />
werden mehrere Prozessoren gleichzeitig zum Testen benutzt, was die Bearbeitungszeit drastisch<br />
senken würde. 1998 baute die EFF (Electronic Frontier Foundation) e<strong>in</strong>e ca. 250.000 $ teure Masch<strong>in</strong>e<br />
namens „DESCracker“ mit 1536 speziell entwickelten Chips. Diese konnte pro Sekunde etwa 88 Mrd.<br />
Schlüssel testen und den Schlüssel <strong>in</strong> wenigen Tagen brechen<br />
E<strong>in</strong>e weitere Angriffsmöglichkeit ist durch e<strong>in</strong>e “Chosen Pla<strong>in</strong>text Attack” gegeben. Dabei wird e<strong>in</strong><br />
bekannter Klartext mitcodiert, das so erhaltene Chiffrat kann man dann mit allen möglichen
Codierungen des Klartextes vergleichen und so den Schlüssel herausf<strong>in</strong>den. Mit e<strong>in</strong>er effizienten<br />
Hardware wäre es möglich, alle Alternativen <strong>in</strong> <strong>der</strong> Codierung vorher zu berechnen, wodurch man dann<br />
nur noch den codierten Text mit den vorher Berechneten vergleichen müsste, um den Schlüssel zu<br />
erhalten. Mit fortschreiten<strong>der</strong> Entwicklung <strong>der</strong> Hardware wird diese Methode immer billiger zu<br />
realisieren.<br />
5. Schwachstellen<br />
Es s<strong>in</strong>d e<strong>in</strong>ige Schwachstellen von DES bekannt, allerd<strong>in</strong>gs beschränken sie nicht die Effektivität des<br />
Algorithmus.<br />
• Komplemente<br />
Wird e<strong>in</strong>e Nachricht mit e<strong>in</strong>em bestimmten Schlüssel codiert, so ist das Komplement dieser Codierung<br />
das Komplement <strong>der</strong> orig<strong>in</strong>alen Nachricht, codiert mit dem komplementären Schlüsel. Formal kann<br />
man dies so ausdrücken: Wenn c = DES(p, k) ist, ergibt sich für ¬c = DES(¬p,¬k); mit p = Klartext, c =<br />
Chiffrat und k dem verwendeten Schlüssel. Da die meisten Anwendungen aber nicht mit<br />
komplementären Nachrichten arbeiten, und Benutzer vor komplementären Schlüsseln gewarnt werden<br />
können, ist dies ke<strong>in</strong>e ernsthaft Gefährdung des Algorithmus.<br />
• Schwache Schlüssel<br />
Da <strong>der</strong> Schlüssel <strong>in</strong> zwei Hälften<br />
geteilt wird und diese unabhängig<br />
vone<strong>in</strong>an<strong>der</strong> verschoben werden,<br />
kann es passieren, wenn die Hälften<br />
nur aus Nullen o<strong>der</strong> E<strong>in</strong>sen bestehen,<br />
dass <strong>der</strong> verwendete Schlüssel <strong>in</strong><br />
allen Durchläufen <strong>der</strong> gleiche ist. Da<br />
sich die Schlüssel bei <strong>der</strong><br />
Tabelle 7: Schwache Schlüssel <strong>in</strong> hexadezimaler Notation<br />
Decodierung nur durch das<br />
Verschieben unterscheiden, werden <strong>in</strong> diesem Fall zum Ver und Entschlüsseln die gleichen Schlüssel<br />
verwendet, diese Schlüssel werden schwache Schlüssel genannt. Das gleiche passiert, wenn die<br />
Schlüssel zur Hälfte aus Nullen und zur Hälfte aus E<strong>in</strong>sen bestehen (Tabelle 7). Da man die Benutzung<br />
dieser Schlüssel aber e<strong>in</strong>fach vermeiden kann, besteht hier auch ke<strong>in</strong>e Gefährdung.<br />
• Semischwache Schlüssel<br />
Bestimmte Schlüsselpaare haben die<br />
gleichen Decodierungen, d.h. es gilt c =<br />
DES(p, k1) = DES(p, k2) für zwei<br />
unterschiedliche Schlüssel k1 und k2.<br />
Diese Schlüsselpaare nennt man semischwache<br />
Schlüssel und s<strong>in</strong>d <strong>in</strong> Tabelle<br />
8 zu sehen. Weitere Paare als diese s<strong>in</strong>d<br />
bis zum jetzigen Zeitpunkt nicht<br />
gefunden, also sollte man vermeiden, Tabelle 8: Semischwache Schlüssel <strong>in</strong> hexadezimaler Notation<br />
diese Schlüssel zu benutzen.
• Key Cluster<strong>in</strong>g<br />
Unter Key Cluster<strong>in</strong>g versteht man Schlüsselpaare, die aus dem gleichen Klartext das gleiche Chiffrat<br />
erzeugen, also genau <strong>der</strong> Effekt, <strong>der</strong> auch bei den semischwachen Schlüsseln auftritt. Allerd<strong>in</strong>gs geben<br />
sich die Forscher mit diesen Schlüsselpaaren nicht zufrieden und suchen noch nach weiteren. Dabei<br />
suchen sie nach Schlüsseln, die <strong>in</strong> e<strong>in</strong>em Durchlauf im DES den gleichen codierten Text erzeugen, und<br />
nach solchen, <strong>in</strong> denen diese Eigenschaft auch nach zwei o<strong>der</strong> mehr Durchläufen noch gegeben ist. Bis<br />
heute wurden nur Paare gefunden, die nach drei Durchläufen den gleichen codierten Text erzeugen,<br />
danach wird diese Art <strong>der</strong> Analyse so komplex, dass ke<strong>in</strong>e weiteren Ergebnisse gefunden wurden.<br />
• Differentielle Cryptoanalyse<br />
1990 wurde von Biham und Shamir e<strong>in</strong>e neue Methode mit Namen differentielle Cryptoanalyse<br />
vorgestellt, die vor allem gegen Algortihmen mit Permutationen und Substitutionen effektiv ist. Die<br />
Methode benutzte sorgfältig ausgewählte Paare von Klartext mit nur ger<strong>in</strong>gfügigen Unterschieden und<br />
beobachtet <strong>der</strong>en Chiffrate. Aus den Ergebnissen lassen sich dann Rückschlüsse auf den ursprünglich<br />
verwendeten Klartext ziehen.<br />
So lässt sich z.B. Lucifer unter Verwendung von 30 Klartextpaaren knacken, die Auswirkungen auf<br />
DES s<strong>in</strong>d ebenfalls sehr gravierend. Geht man davon aus, dass bei den urprünglich 16 Durchläufen 2 58<br />
Tests notwendig s<strong>in</strong>d, um DES zu knacken, so verkle<strong>in</strong>ert sich diese Zahl mit Verr<strong>in</strong>gern <strong>der</strong><br />
Durchläufe sehr stark. Bei 15 Runden braucht man nur noch 2 52 Tests, bei 6 Durchläufen nur noch 2 8<br />
Tests. Bei vollen 16 Durchläufen liegt die Zahl allerd<strong>in</strong>gs 2 4 mal höher als e<strong>in</strong>e vollständige Suche nach<br />
dem Schlüssel dauern würde.<br />
Desweiteren zeigen die beiden Autoren noch, dass es e<strong>in</strong>e Än<strong>der</strong>ung <strong>in</strong> den Werten <strong>der</strong> SBoxen auch<br />
leichter macht, DES zu knacken, sogar wenn sich nur e<strong>in</strong> e<strong>in</strong>ziger E<strong>in</strong>trag än<strong>der</strong>t. Daran sieht man, dass<br />
die SBoxen von Anfang an e<strong>in</strong> optimales Design hatten.<br />
Im allgeme<strong>in</strong>en kann man also festhalten, dass DES e<strong>in</strong> Algorithmus ohne große <strong>Sicherheit</strong>slücken ist,<br />
<strong>der</strong> allerd<strong>in</strong>gs durch fortschreitende Entwicklung <strong>in</strong> <strong>der</strong> Hardware <strong>in</strong> naher Zukunft nicht mehr die<br />
<strong>Sicherheit</strong> mit sich br<strong>in</strong>gt, die von ihm erwartet wird. Um dem entgegen zu wirken wurde er bereits<br />
weiter entwickelt, von ihm leiten sich an<strong>der</strong>e Algorithmen ab, z.B. TripleDES o<strong>der</strong> AES (Advanced<br />
Encryption Standard).
PGP:<br />
PGP steht für “Pretty Good Privacy” und ist e<strong>in</strong> 1991 von Phil Zimmermann entwickeltes Programm<br />
zur Verschlüsselung von Daten. Es ist weltweit das am häufigsten verwendete Kryptosystem und wird<br />
hauptsächlich für den sicheren Versand von emails e<strong>in</strong>gesetzt. Dabei bietet es sowohl Verschlüsselung<br />
als auch Authentifizierung.<br />
Die Verschlüsselung geschieht dabei wie folgt (Hybridverschlüsselung):<br />
1) Der Sen<strong>der</strong> erzeugt e<strong>in</strong>en zufälligen symmetrischen Sitzungsschlüssel und verschlüsselt damit die<br />
Nachricht.<br />
2) Der Sitzungsschlüssel wird dann mit dem öffentlichen Schlüssel des Empfängers verschlüsselt<br />
und <strong>der</strong> codierten Nachricht angehängt.<br />
3) Der Empfänger decodiert die Nachricht mit se<strong>in</strong>em privaten Schlüssel, erhält somit den<br />
Sitzungsschlüssel und kann die Nachricht entschlüsseln.<br />
Es ist auch möglich, e<strong>in</strong>e verschlüsselte Nachricht an mehrere Empfänger gleichzeitig zu senden,<br />
<strong>in</strong>dem <strong>der</strong> Sitzungsschlüssel <strong>der</strong> Nachricht mehrfach (jeweils mit dem öffentlichen Schlüssel des<br />
Empfängers verschlüsselt) angehängt wird.<br />
Die an<strong>der</strong>e wichtige Funktion von PGP, das Signieren von Nachrichten, läuft folgen<strong>der</strong>maßen ab:<br />
1) Der Sen<strong>der</strong> berechnet e<strong>in</strong>en Hashwert <strong>der</strong> Nachricht (z.B. MD5 o<strong>der</strong> SHA1), verschlüsselt diesen<br />
mit se<strong>in</strong>em privaten Schlüssel und hängt ihn <strong>der</strong> Nachricht an.<br />
2) Der Empfänger entschlüsselt die digitale Signatur mit dem öffentlichen Schlüssel des Absen<strong>der</strong>s,<br />
berechnet se<strong>in</strong>erseits den Hashwert des Klartextes und vergleicht die beiden Werte. Stimmen sie<br />
übere<strong>in</strong>, kann er sich sicher se<strong>in</strong>, dass die Nachricht vom Absen<strong>der</strong> stammt.<br />
Es ist natürlich auch möglich, e<strong>in</strong>e Nachricht sowohl zu verschlüsseln als auch zu signieren. Dazu<br />
wendet man die beiden Verfahren e<strong>in</strong>fach nache<strong>in</strong>an<strong>der</strong> an, wobei erst signiert und das Ergebnis<br />
(Kartext + Signatur) dann verschlüsselt wird.<br />
Schlüsselmanagement:<br />
Die <strong>Sicherheit</strong> von PGP hängt, wie bei jedem an<strong>der</strong>en Kryptosystem auch, entscheidend von <strong>der</strong><br />
Glaubwürdigkeit <strong>der</strong> verwendeten Schlüssel ab. Beispielsweise ist bei e<strong>in</strong>em Schlüssel, <strong>der</strong> auf e<strong>in</strong>er<br />
Webseite publiziert wird, nicht unbed<strong>in</strong>gt sichergestellt, das er auch wirklich dem richtigen Empfänger<br />
gehört. Schließlich kann die Seite auch durch e<strong>in</strong>en Hacker manipuliert und <strong>der</strong> Schlüssel ausgetauscht<br />
worden se<strong>in</strong>. So wäre z.B. e<strong>in</strong> Man<strong>in</strong>themiddleAngriff möglich.<br />
Um die Echtheit e<strong>in</strong>es Schlüssels zu garantieren, wurden sogenannte PublickeyInfrastrukturen (PKI)<br />
entwickelt. Dies s<strong>in</strong>d hierarchisch aufgebaute Systeme, welche es ermöglichten, digitale Zertifikate<br />
auszustellen, zu verteilen und zu prüfen. Dazu wird <strong>der</strong> eigene öffentliche Schlüsssel mit dem privaten<br />
Schlüssel e<strong>in</strong>er Zertifizierungsstelle (CA) signiert. Deren öffentlicher Schlüssel ist wie<strong>der</strong>um mit dem<br />
privaten Schlüssel <strong>der</strong> nächsthöheren CA signiert etc.. So muss man sich nur noch auf die Echtheit <strong>der</strong><br />
Schlüssel <strong>der</strong> obersten Institutionen dieser Hierarchie verlassen können. Sie s<strong>in</strong>d oft <strong>in</strong> die<br />
verarbeitende Software <strong>in</strong>tegriert.<br />
Die Beantragung e<strong>in</strong>es Zertifikats bei e<strong>in</strong>er CA (z.B. Verisign) ist i.A. mit (teilweise hohen) Kosten<br />
verbunden und/o<strong>der</strong> zeitlich begrenzt. Allerd<strong>in</strong>gs bietet die Zeitschrift c't im Rahmen ihrer 1997<br />
gestarteten KryptoKampagne e<strong>in</strong>en kostenlosen ZertifizierungsService für PGP Schlüssel an.
E<strong>in</strong>e Alternative zu PKIs stellt bei PGP das sog. “Weboftrust” bzw. “Netz des Vertrauens” dar. Hier<br />
stellen die Anwen<strong>der</strong> selbst Zertifikate aus, unabhängig von zentralen Autorisierungsstellen. Sie<br />
verbreiten ihre Zertifikate durch öffentliche PGPKeyserver, also über ungesicherte Verzeichnisse, die<br />
ke<strong>in</strong>erlei Garantien für die dar<strong>in</strong> veröffentlichten Schlüsseldaten übernehmen. Insbeson<strong>der</strong>e prüfen sie<br />
die Zusammengehörigkeit von Schlüssel und Inhaber nicht.<br />
Vertrauenswürdig s<strong>in</strong>d PGPZertifikate nur, wenn jemand für sie bürgt, <strong>der</strong> selbst vertrauenswürdig ist.<br />
Je<strong>der</strong> Teilnehmer kann den öffentlichen Schlüssel e<strong>in</strong>es an<strong>der</strong>en signieren und so dafür bürgen, das die<br />
Angaben im Schlüsselmaterial korrekt s<strong>in</strong>d. Auf diese Weise entstehen "Ketten des Vertrauen". Je<br />
kürzer diese Ketten s<strong>in</strong>d, bzw. je mehr vertrauenswürdige Personen e<strong>in</strong>en Schlüssel bestätigen, desto<br />
sicherer ist die Echtheit dieses Schlüssels.<br />
Geschichte von PGP:<br />
Im Jahr 1991 veröffenlichte Phil Zimmermann die erste Version von PGP. Sie war OpenSource<br />
Software und verbreitete sich schnell über das Usenet, später auch über das Internet. Im Jahr 1993<br />
wurde Zimmermann Ziel von Untersuchungen durch die USRegierung wegen unerlaubter<br />
Waffenexporte. Die Exportbeschränkungen <strong>der</strong> USA erlaubten den Export von Kryptosystemen nur bis<br />
zu e<strong>in</strong>er Schlüssellänge von 40 Bit. PGP nutzte jedoch niemals kürzere Schlüssel als 128Bit.<br />
Die Situation entspannte sich erst um 1996 aufgrund e<strong>in</strong>er Liberalisierung <strong>der</strong> Gesetze <strong>–</strong> die Anklage<br />
gegen Zimmermann wurde fallen gelassen.<br />
E<strong>in</strong> an<strong>der</strong>es Problem stellten die bis dato verwendeten Algorithmen IDEA und RSA dar, da es mit<br />
beiden gewisse Patentschwierigkeiten gab. Deshalb wurde PGP 3 von e<strong>in</strong>er eigens von Zimmermann<br />
gegründeten Firma entwickelt, das weitere Verbesserungen enthielt und neue Algorithmen e<strong>in</strong>führte:<br />
CAST128 als symmetrischen Algorithmus sowie DSA und Elgamal als asymmetrische Algorithmen.<br />
Seit 2000 ist RSA wie<strong>der</strong> <strong>in</strong> PGP enthalten, da das Patent abgelaufen ist.<br />
Im weiteren Verlauf folgten mehrere mehrere Firmengründungen, Zusammenschlüsse und Übernahmen<br />
(Viacrypt, PGP Inc., NAI, PGP Corp.), auf die wir aber nicht weiter e<strong>in</strong>gehen. Bemerkenswert ist noch<br />
die Tatsache, das die Version5 von PGP als Quellcode <strong>in</strong> Buchform aus den USA exportiert wurde und<br />
später von e<strong>in</strong>igen Freiwilligen wie<strong>der</strong> e<strong>in</strong>gescannt und neu kompiliert wurde. Daraus wurde die<br />
<strong>in</strong>ternational verfügbare Version PGPi [6].<br />
Zur Zeit existiert e<strong>in</strong>e kommerzielle Version von PGP, die <strong>in</strong> <strong>der</strong> Version 8.1 von <strong>der</strong> Firma PGP<br />
Corporation vertrieben wird. Für privaten Gebrauch gibt es e<strong>in</strong>e kostenlose Version, die man beim<br />
Hersteller herunterladen kann.<br />
Aufgrund <strong>der</strong> Tatsache, dass <strong>der</strong> Quelltext von PGP zeitweilig nicht offengelegt wurde und Features<br />
implementiert wurden, welche die automatische Verschlüsselung an e<strong>in</strong>en weiteren Empfänger<br />
ermöglichten, wurde das Programm GnuPG (GNU Privacy Guard) [7] von <strong>der</strong> Free Software<br />
Foundation als freie Alternative zu PGP entwickelt. Es basiert auf dem 1997 von <strong>der</strong> IETF (Internet<br />
Eng<strong>in</strong>eer<strong>in</strong>g Task Force) e<strong>in</strong>geführten OpenPGPStandard, <strong>der</strong> für Kombatibilität zwischen den<br />
unterschiedlichen PGPVersionen sorgen soll. Dank des aus Bundesmitteln geför<strong>der</strong>ten Ägypten<br />
Projekts unterstützt GnuPG <strong>in</strong>zwischen auch S/MIME, e<strong>in</strong>e von Firmen und Behörden bevorzugte,<br />
zentralisierte Vertrauensstruktur.<br />
Die beiden Screenshots unten zeigen, wie PGP im praktischen E<strong>in</strong>satz aussehen kann. Das erste Bild<br />
zeigt den virtuellen Schlüsselbund e<strong>in</strong>es Anwen<strong>der</strong>s, <strong>in</strong> dem die öffentlichen Schlüssel se<strong>in</strong>er Freunde<br />
o<strong>der</strong> Bekannten e<strong>in</strong>getragen s<strong>in</strong>d. Es gibt die Möglichkeit, weitere Schlüssel zu importieren, bestehende<br />
zu exportieren, Schlüssel zu signieren (Weboftrust), zurückzuziehen (revocation), zu än<strong>der</strong>n usw.
Das zweite Bild zeigt e<strong>in</strong> typisches Dialogfeld e<strong>in</strong>es mailProgramms, mit dem man die gewünschten<br />
PGPFunktionen (verschlüsseln, signieren o<strong>der</strong> beides) auswählen kann.<br />
Abbildung 9: GnuPG SchlüsselbundEditor<br />
Abbildung 10: PGPOptionen auswählen...
Anhang:<br />
Tabelle 9: SBoxen
Literatur / L<strong>in</strong>ks:<br />
[1] Charles P. Pfleeger, Shari Lawrence Pfleeger:<br />
„Security <strong>in</strong> Comput<strong>in</strong>g“, Third Edition, Prentice Hall, 2002<br />
[2] http://www.en.wikipedia.org<br />
[3] http://www.rsasecurity.com/rsalabs/node.asp?id=2152<br />
[4] http://www.ccc.de/gsm/<br />
[5] http://en.wikipedia.org/wiki/DeCSS<br />
[6] http://www.pgpi.org/doc<br />
[7] http://www.gnupg.org<br />
[8] http://www.elliptischekurven.de<br />
[9] http://www.quantencomputer.de