25.01.2013 Aufrufe

Seminar – Sicherheit in der IT

Seminar – Sicherheit in der IT

Seminar – Sicherheit in der IT

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 Challenge­Response­Mechanismen, 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 DVD­Kopierschutzverfahren 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 />

Klartext­Nachrichten) <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 Chiffretext­Bit etwa die<br />

Hälfte aller Klartext­Bits 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 Klartext­Byte auf genau e<strong>in</strong> Chiffretext­Byte abgebildet wird.<br />

Aber auch bei Blockchiffren gibt es <strong>Sicherheit</strong>sbedenken, so sollte <strong>der</strong> ECB­Modus (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 n­1 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 1­GHz­CPU 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> n­user­System n*(n­1)/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 Elliptischer­Kurven­Kryptographie (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 Public­Key Algorithmen s<strong>in</strong>d RSA, Diffie­Hellmann (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 Public­Key­Operation mit<br />

e<strong>in</strong>em 1­KBit­Schlüssel läuft zwanzigmal schneller als die Private­Key­Berechnung. Mit e<strong>in</strong>em 2­<br />

KBit­Schlüssel läuft sie sogar fünfzigmal schneller. Die meisten Protokolle berücksichtigen diese<br />

Tatsache. Sie führen aufwändige Private­Key­Operationen 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 Public­Key­<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 Public­Key­Kryptographie 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 />

Public­Key­Verschlü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) = (p­1) ∙ (q­1), 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 (p­1) und (q­1) 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 Phi­Funktion 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)=(p­1) . 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 p­1 ≡ 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 p­1 ≡ 1 (mod p) ⇔ K k∙�(n) ≡ 1 (mod p) ⇔ K k∙�(n)+1 ≡ K (mod p) (2)<br />

Im ersten Schritt haben wir (p­1) durch k∙�(N) ersetzt. Dies dürfen wir, da (p­1) 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)=(p­1)(q­1)=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 US­Regierung 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 />

Lucifer­Algorithmus 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 S­Boxen .<br />

dementsprechend sicherer gestalten. Am 23. November 1976 wurde DES von <strong>der</strong> US­Regierung<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 DES­Algorithmus <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 Bit­Operatoren 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 Bit­Schlü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 4­Bit­Block 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 S­Boxen 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 />

• S­Boxen<br />

Tabelle 2: Bitverschiebung <strong>in</strong> jedem<br />

Durchlauf<br />

Die Substitutionen im DES werden durch 8 sogenannte S­Boxen 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 S­Boxen 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> S­Box 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: S­Boxen Operationen<br />

Substitutionswert 3=0011 ab, durch den <strong>der</strong> Wert 010011 ersetzt wird. (siehe Tabelle 9 im Anhang)<br />

• P­Boxen<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 P­Boxen. 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: P­Box Permutation<br />

• Initiale und f<strong>in</strong>ale Permutation<br />

Genau wie die P­Boxen 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 DES­Algorithmus<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 P­Boxen 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 (j­1):<br />

Lj = Rj­1 (1)<br />

Rj = Lj­1⊕ f(Rj­1, 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 Lj­1<br />

und Rj­1 um, ergibt sich:<br />

Rj­1 = Lj (3)<br />

Lj­1 = Rj ⊕ f(Rj­1, kj) (4)<br />

Durch Substitution von Rj­1 durch Lj ergibt sich dann:<br />

Lj­1 = 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 DES­Algorithmus 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 P­Boxen, 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 US­Kongress<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 S­Boxen, um die<br />

Befürchtungen zu zerstreuen:<br />

• ke<strong>in</strong>e S­Box 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 S­Boxen 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 „DES­Cracker“ 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 />

• Semi­schwache 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: Semi­schwache 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 semi­schwachen 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> S­Boxen 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 S­Boxen 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. Triple­DES 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>­the­middle­Angriff möglich.<br />

Um die Echtheit e<strong>in</strong>es Schlüssels zu garantieren, wurden sogenannte Public­key­Infrastrukturen (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 Krypto­Kampagne e<strong>in</strong>en kostenlosen Zertifizierungs­Service für PGP Schlüssel an.


E<strong>in</strong>e Alternative zu PKIs stellt bei PGP das sog. “Web­of­trust” 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 PGP­Keyserver, 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 PGP­Zertifikate 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 US­Regierung 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 OpenPGP­Standard, <strong>der</strong> für Kombatibilität zwischen den<br />

unterschiedlichen PGP­Versionen 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 (Web­of­trust), 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 mail­Programms, mit dem man die gewünschten<br />

PGP­Funktionen (verschlüsseln, signieren o<strong>der</strong> beides) auswählen kann.<br />

Abbildung 9: GnuPG Schlüsselbund­Editor<br />

Abbildung 10: PGP­Optionen auswählen...


Anhang:<br />

Tabelle 9: S­Boxen


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.elliptische­kurven.de<br />

[9] http://www.quantencomputer.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!