Algorithmen und Datenstrukturen II Kryptographie Christian Wolff Institut

  • Slides: 40
Download presentation
Algorithmen und Datenstrukturen II : Kryptographie Christian Wolff Institut für Informatik 22. Januar 2001

Algorithmen und Datenstrukturen II : Kryptographie Christian Wolff Institut für Informatik 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 1

Übersicht 1. Sicherheit und Kryptographie 2. Ausgewählte kryptographische Algorithmen y klassische Algorithmen: Caesar, Vigenère

Übersicht 1. Sicherheit und Kryptographie 2. Ausgewählte kryptographische Algorithmen y klassische Algorithmen: Caesar, Vigenère y symmetrische Algorithmen: IDEA y asymmetrische Algorithmen: RSA 3. Angewandte Kryptographie y Kryptographie-APIs y Anwendungen y Rechtliche Rahmenbedingungen y Beispiel elektronisches Wahlverfahren 4. Bewertung & Ausblick 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 2

Definition Sicherheit Security is the practice by which individuals and organizations protect their physical

Definition Sicherheit Security is the practice by which individuals and organizations protect their physical and intellectual property from all kinds of attack and pillage. [Secure Computing with Java - Now and the Future. A White Paper, Sun Microsystems, October 1997] 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 3

Sicherheit und Kryptographie z Sicherheitskriterien y Identifizierung (authentication) y Vertraulichkeit (confidentiality) y Integrität (integrity)

Sicherheit und Kryptographie z Sicherheitskriterien y Identifizierung (authentication) y Vertraulichkeit (confidentiality) y Integrität (integrity) y Verbindlichkeit (nonrepudiation) y Verfügbarkeit (availability) z Schutzziele gegen y unbefugten Informationsgewinn (Verlust der Vertraulichkeit) y unbefugte Modifikation von Information (Verlust der Integrität) y unbefugte Beeinträchtigung der Funktionalität (Verlust der Verfügbarkeit) 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 4

Kryptographisches Grundprinzip z Umwandlung eines Klartextes (p, plain text) in einem chiffrierten Text (c,

Kryptographisches Grundprinzip z Umwandlung eines Klartextes (p, plain text) in einem chiffrierten Text (c, ciphertext) mit Hilfe einer reversiblen kryptographischen Funktion f: z symmetrische und asymmetrische Algorithmen (public key cryptography) y Verschlüsselung / Entschlüsselung y elektronische Unterschrift (digitale Signatur) erzeugen / verifizieren 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 5

Schematische Darstellung des kryptographischen Grundprinzips 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 6

Schematische Darstellung des kryptographischen Grundprinzips 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 6

Eigenschaften kryptographischer Algorithmen z Mathematische Grundlagen kryptographischer Algorithmen y Primzahlfaktorisierung, elliptic curve cryptography, y

Eigenschaften kryptographischer Algorithmen z Mathematische Grundlagen kryptographischer Algorithmen y Primzahlfaktorisierung, elliptic curve cryptography, y Hashfunktionen z Verarbeitungsverfahren · alphabetisch/polyalphabetisch · bitbasiert z je nach Verarbeitungsweise unterscheidet man · Blockchiffrierung und · Stromchiffrierung. z Qualitätskriterien für kryptographische Algorithmen · Diffusion · Konfusion · Wahl von Zufallszahlen 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 7

Typischer Aufbau moderner kryptographischer Algorithmen z Moderne Algorithmen kombinieren in der Regel einfache und

Typischer Aufbau moderner kryptographischer Algorithmen z Moderne Algorithmen kombinieren in der Regel einfache und unsichere kryptographische Einzelschritte in mehreren Runden zu einem leistungsfähigen Verfahren (so etwa bei DES – Digital Encryption Standard, Triple-DES oder IDEA – international data encryption standard, s. u. ). Derartige Algorithmen bezeichnet man als Produktalgorithmen. z Beispiel: s. u. IDEA 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 8

Unterscheidung symmetrischer und asymmetrischer Verfahren z symmetrische vs. asymmetrische Algorithmen y symmetrisch: xein Schlüssel

Unterscheidung symmetrischer und asymmetrischer Verfahren z symmetrische vs. asymmetrische Algorithmen y symmetrisch: xein Schlüssel für Chiffrierung und Dechiffrierung xinternational data encryption algorithm (IDEA) xdigital encryption standard (DES, Triple-DES) xadvanced encryption standard (AES, = Rijndael-Algorithmus) y asymmetrisch xunterschiedliche Schlüssel für Chiffrierung und Dechiffrierung (Schlüsselpaar) x. Rivest Shamir Adleman (RSA) xdigital signature algorithm (DSA) x. . . 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 9

Ver- und Entschlüsselung mit symmetrischer Kryptographie Wenn. die. Sicherhei t. eines. A lgorithmu s.

Ver- und Entschlüsselung mit symmetrischer Kryptographie Wenn. die. Sicherhei t. eines. A lgorithmu s. . Klartext XJSKLE 0 D 1 SD 85 KSMAL J 02 DSKLDX JSLWO 940 H RF. . Verschlüsselung Wenn. die. Sicherhei t. eines. A lgorithmu s. . Klartext Entschlüsselung Geheimtext Schlüssel 22. Januar 2001 = Datenstrukturen & Algorithmen II: Kryptographie Schlüssel 10

Asymmetrische Kryptographie z Generierung von Schlüsselpaaren: y privater Schlüssel (private key): nur dem Inhaber

Asymmetrische Kryptographie z Generierung von Schlüsselpaaren: y privater Schlüssel (private key): nur dem Inhaber bekannt Funktion: Entschlüsselung, Signierung y öffentlicher Schlüssel (public key): wird auf allgemein zugänglichen Servern bereitgestellt Funktion: Verschlüsselung, Verifikation z Anwendung für y Verschlüsselung und y digitale Signaturen 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 11

Ver- und Entschlüsselung mit asymmetrischer Kryptographie (public key-Kryptographie) Wenn. die. Sicherhei t. eines. A

Ver- und Entschlüsselung mit asymmetrischer Kryptographie (public key-Kryptographie) Wenn. die. Sicherhei t. eines. A lgorithmu s. . Klartext XJSKLE 0 D 1 SD 85 KSMAL J 02 DSKLDX JSLWO 940 H RF. . Verschlüsselung Wenn. die. Sicherhei t. eines. A lgorithmu s. . Klartext Entschlüsselung Geheimtext öffentlicher Schlüssel public key (Chiffrierschlüssel) 22. Januar 2001 privater Schlüssel private key (Dechiffrierschlüssel) Datenstrukturen & Algorithmen II: Kryptographie 12

Digitale Signaturen Wenn. die. Sicherhei t. eines. A lgorithmu s. . Klartext Signierung Wenn.

Digitale Signaturen Wenn. die. Sicherhei t. eines. A lgorithmu s. . Klartext Signierung Wenn. die. Sicherhei t. eines. A lgorithmu s. . Klartext + Signatur Verifikation WAJDKFUS 9 HDBCJS%3 S privater Schlüssel private key (Dechiffrierschlüssel) 22. Januar 2001 öffentlicher Schlüssel public key (Chiffrierschlüssel) Datenstrukturen & Algorithmen II: Kryptographie 13

Klassische Algorithmen z Caesar-Verfahren z. Vigenère-Chiffrierung y Alphabetverschiebung y c = p + s

Klassische Algorithmen z Caesar-Verfahren z. Vigenère-Chiffrierung y Alphabetverschiebung y c = p + s mod 26, z. B. bei s = 3 y. A D y. B E y. C F y. . ypolyalphabetisch yabhängig von der Position im Text (zusätzliches Verschlüsselungswort), z. B. HALLO y. HALLOHALLO y. DIESISTEINENACHRICHT y. Abbildung: Caesar. Verschiebung um den Wert des zugeordneten Buchstabens : x. D D + H = K x. I I + A = I x. E E + L = P Datenstrukturen & Algorithmenx II: . . . 22. Januar 2001 Kryptographie 14

IDEA als Beispiel symmetrischer Kryptographie z IDEA - international data encryption standard z Entwickelt

IDEA als Beispiel symmetrischer Kryptographie z IDEA - international data encryption standard z Entwickelt von Lai & Massey, ETH Zürich, patentrechtlich geschützt (Ascom Systec AG, Schweiz) z Blockchiffrierung (64 bit-Blöcke) durch einen 128 bit-Schlüssel · Bildung von 52 Teilschlüsseln: § acht 16 bit-Teilschlüssel aus dem ursprünglichen Schlüssel (einfaches Aufteilen) § fünfmal Rotation um 25 Stellen nach links (bit shift) ergibt 40 Teilschlüssel § die sechste Rotation liefert nur noch vier Teilschlüssel (8 + (5*8) + 4 = 52) 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 15

Verschlüsselung in IDEA z Verschlüsselung in acht Runden, jede Runde verwendet sechs Teilschlüssel (Produktalgorithmus)

Verschlüsselung in IDEA z Verschlüsselung in acht Runden, jede Runde verwendet sechs Teilschlüssel (Produktalgorithmus) · Jeweils Verarbeitung von 16 bit-Teilblöcken · Anwendung “inkompatibler” algebraischer Operationen (XOR, Addition modulo 216 (wg. 16 bit-Länge), Multiplikation modulo 216 + 1); · ausschließlich Verarbeitung von 16 bit-Zahlen, daher effiziente Implementierung 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 16

Motivation für den Aufbau des Algorithmus z 216 + 1 ist Primzahl z Die

Motivation für den Aufbau des Algorithmus z 216 + 1 ist Primzahl z Die Grundoperationen des Algorithmus sind “inkompatibel” (bilden keine Gruppe), da für sie weder das Distributiv- noch das (erweiterte) Assoziativgesetz gilt. z Die Anordnung der Transformationen sorgt für · Diffusion: In den MA-Transformationen hängt jedes Bit der Ausgabe von jedem Bit der Eingaben und jedem Bit der Schlüssel ab. · Konfusion – kein Teilergebnis einer Operation ist im nächsten Schritt Operand einer Operation gleichen Typs. 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 17

IDEA: Ablauf der Verschlüsselung 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 18

IDEA: Ablauf der Verschlüsselung 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 18

IDEA: Ablauf der Entschlüsselung 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 19

IDEA: Ablauf der Entschlüsselung 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 19

RSA als Beispiel asymmetrischer Kryptographie z Entwickelt von Rivest, Shamir, Adleman (1978) z Ansatzpunkt

RSA als Beispiel asymmetrischer Kryptographie z Entwickelt von Rivest, Shamir, Adleman (1978) z Ansatzpunkt ist die Schwierigkeit, große Primzahlen effizient zu faktorisieren z Für eine Zahl n beträgt der Faktorisierungsaufwand etwa z Aufbau des Algorithmus y Schlüsselerzeugung y Chiffrierung y Dechiffrierung 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 20

RSA: Schlüsselerzeugung · Auswahl zweier sehr großer Primzahlen p, q (mit einem geeigneten Verfahren,

RSA: Schlüsselerzeugung · Auswahl zweier sehr großer Primzahlen p, q (mit einem geeigneten Verfahren, Länge z. B. 512 bit) · n = pq, n hat Länge N · Auswahl e > 1, e ist zu (p-1)(q-1) teilerfremd · Berechnen von d mit de = 1 mod (p-1)/(q-1) · n, e: öffentlicher Schlüssel, d: privater Schlüssel 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 21

RSA: Chiffrierung und Dechiffrierung z Chiffrierung · Zerlegen des Klartexts in Blöcke der Größe

RSA: Chiffrierung und Dechiffrierung z Chiffrierung · Zerlegen des Klartexts in Blöcke der Größe N-1 bit (evtl. mit padding) · Für jeden Block mit Wert m < n wird der Rest c der Division von me durch n berechnet. z Dechiffrierung · Zerlegen des Geheimtexts in Blöcke der Größe N · Für jeden Block der Größe c < n ist der Rest der Division von cd durch n der Klartext z Digitale Signaturen: Umkehrung des Verfahrens z Problem: rechenaufwendiger Algorithmus, daher typischerweise Einsatz von message digests 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 22

Digitale Signaturen unter Verwendung von message digests 22. Januar 2001 Datenstrukturen & Algorithmen II:

Digitale Signaturen unter Verwendung von message digests 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 23

Kryptographische Dienste z Protokolle: Bereitstellung sicherer Übertragungskanäle für Daten z Message Digests: eindeutige Kurzzusammenfassungen

Kryptographische Dienste z Protokolle: Bereitstellung sicherer Übertragungskanäle für Daten z Message Digests: eindeutige Kurzzusammenfassungen von Daten durch sichere Hashfunktionen z Signaturen: Bestätigung der Urheberschaft, oft in Kombination mit message digests z Zertifikate: Bestätigung der Sicherheit von Schlüsseln, z. B. Zertifikate nach X. 509 z Hard- und Softwarelösungen, z. B. Ausgabe von Schlüsselpaaren auf Chipkarten durch trust center (Deutsche Telekom, Deutsche Post, Bundesdruckerei) 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 24

PKI - public key infrastructure z notwendige Infrastruktur für die verläßliche Verwendung kryptographischer Anwendungen

PKI - public key infrastructure z notwendige Infrastruktur für die verläßliche Verwendung kryptographischer Anwendungen z PKI-Bestandteile y Einsatz eines asymmetrischen Verfahrens für Verschlüsselung und digitale Signaturen y digitale Zertifikate: authentisieren den Sender einer Nachricht, stellen öffentliche Schlüssel bereit y Registration Authority (RA): registriert Anfragen für digitale Zertifikate y Certificate Authority: Generiert und verwaltet Zertifikate und Schlüssel (z. B. durch certificate revocation lists) y Verzeichnisse: Speicherung von Zertifikaten und Schlüsseln für den Zugriff durch Nutzer und CA Datenstrukturen & Algorithmen II: 22. Januar 2001 Kryptographie 25

Einsatz angewandter Kryptographie z Implementierung kryptographischer Algorithmen als Kryptographie-Provider z APIs und Toolkits z

Einsatz angewandter Kryptographie z Implementierung kryptographischer Algorithmen als Kryptographie-Provider z APIs und Toolkits z Protokolle und Dienste mit kryptographischer Unterstützung, z. B. auf Protokollbasis für TCP/IP z sichere Anwendungen, z. B. für E-Mail-Versand, sicheren Informationsaustausch z Beispiel y Java-Sicherheitsarchitektur, Java Cryptography Architecture 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 26

Java Cryptography Architecture z Engine-Klassen: definieren einen kryptographischen Dienst als abstrakte Modellierung (ohne konkrete

Java Cryptography Architecture z Engine-Klassen: definieren einen kryptographischen Dienst als abstrakte Modellierung (ohne konkrete Implementierung) z jedem kryptographischen Dienst ist ein Algorithmus oder Typ zugeordnet y Bereitstellung kryptographischer Operationen y Erzeugung kryptographischer Daten (z. B. Schlüssel) y sichere Kapselung und Verwaltung kryptographischer Daten y Modellierung mit Hilfe von Design Patterns 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 27

Engine-Klassen der JCA 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 28

Engine-Klassen der JCA 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 28

Kryptographische Provider z Implementierung der abstrakten Engine-Klassen für konkrete Algorithmen z Instantiierung zur Laufzeit

Kryptographische Provider z Implementierung der abstrakten Engine-Klassen für konkrete Algorithmen z Instantiierung zur Laufzeit durch Laden von Providerklassen z Verwaltung mehrerer Provider möglich z Hilfsklassen für Ermittlung der implementierten Algorithmen z Beispiel: y Standard-Provider JCA (Sun Microsystems) y Provider externer Kryptographie-Toolkits, z. B. IAIK (TU Graz) 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 29

Kryptographische Anwendungen im Internet 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 30

Kryptographische Anwendungen im Internet 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 30

Einsatzbereiche angewandter Kryptographie z Schutz und Zugangsrestringierung für Systeme und Ressourcen z E-, M-Business

Einsatzbereiche angewandter Kryptographie z Schutz und Zugangsrestringierung für Systeme und Ressourcen z E-, M-Business y sichere Transaktionen y Zahlungsverkehr z rechtsverbindliche Verträge mit Formerfordernissen z sichere Kommunikation 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 31

Rechtliche Rahmenbedingungen z Signaturgesetz und -verordnung (D, 1997) als Teil des Iu. KDG z

Rechtliche Rahmenbedingungen z Signaturgesetz und -verordnung (D, 1997) als Teil des Iu. KDG z Europäische Signaturrichtlinie („gemeinschaftliche Rahmenbedingungen für elektronische Signaturen“, 19. 1. 2000, Umsetzung in D bis 19. 6. 2001)) z Referentenentwürfe des BMJ für neue Formvorschriften bei Rechtsgeschäften („Textform“, „elektronische Form“, Juni 2000, http: //www. bmj. bund. de/ggv/bgbrege 1. pdf)) z sukzessive Gleichstellung elektronischer Rechtsgeschäfte z allgemeine Verbreitung elektronischer Signaturen ? z Voraussetzung: y PKI, Zertifizierungsstellen (trust center) y Hardware-basierte. Datenstrukturen Technologie (Chipkarten, -leser) & Algorithmen II: 22. Januar 2001 Kryptographie 32

Elektronische Kommunikationsformen z Sicherheitsrelevante Kommunikation über elektronische Kommunikationskanäle z Beispiel GLDV - Gesellschaft für

Elektronische Kommunikationsformen z Sicherheitsrelevante Kommunikation über elektronische Kommunikationskanäle z Beispiel GLDV - Gesellschaft für Linguistische Datenverarbeitung y Web. Site y Anmeldung (Beitritt) y Newsletter y Diskussionsforen y Hier: elektronische Wahlverfahren y betrifft alle grundlegenden Aspekte sicherer Kommunikation x. Authentisierung, Vertraulichkeit, Integrität, Verbindlichkeit 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 33

Aktuelle Motivation I: Palm Beach County Ballot 22. Januar 2001 Datenstrukturen & Algorithmen II:

Aktuelle Motivation I: Palm Beach County Ballot 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 34

Aktuelle Motivation II: Typisierung von Chads pregnant chad ? 22. Januar 2001 Datenstrukturen &

Aktuelle Motivation II: Typisierung von Chads pregnant chad ? 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 35

Analogie zum Briefwahlverfahren z Modellierung von z Module: y Wahlschein y Stimmzettel y zweifacher

Analogie zum Briefwahlverfahren z Modellierung von z Module: y Wahlschein y Stimmzettel y zweifacher Verpackung des Stimmzettels z Zeitliche Gliederung y Schlüsselverwaltung y Elektronischer Stimmzettel (Benutzerschnittstelle) y Wahlurne (Stimmzettelverwaltung) y Stimmzettelauswertung y Verteilung der Stimmzettel y Wahldurchführung y Auswertung 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 36

Ablaufschema des Wahlvorgangs 1 Mitgliedsdaten 3 2 Wähler Wahlamt 4 5 Wahlscheine/ Schlüssel Wahlurne

Ablaufschema des Wahlvorgangs 1 Mitgliedsdaten 3 2 Wähler Wahlamt 4 5 Wahlscheine/ Schlüssel Wahlurne 9 (ein Dienst/ Stimmzettel) Stimmzettel 6 8 Stimmzettel 10 Wahlamt 22. Januar 2001 11 Wahlergebnisse Datenstrukturen & Algorithmen II: Kryptographie 7 Legende 1 Wahlberechtigte bestimmen 2 Schlüssel erzeugen 3 Schlüssel versenden 4 Abstimmen, Schlüssel eintragen 5 Verbandsschlüssel laden 6 Verschlüsseln (generisch) 7 Verschlüsseln (Unterschrift) 8 Wahlbrief abschicken 9 Stimmzettel anonymisieren, prüfen, speichern, Schlüssel deaktivieren 10 Stimmzettel entschlüsseln 11 Ergebnisse auswerten 37

Realisierung Vorgaben Technologien z Technische Infrastruktur y WWW-Integration (Browser) y Implementierungssprache Java (Wahlkabine: Applet,

Realisierung Vorgaben Technologien z Technische Infrastruktur y WWW-Integration (Browser) y Implementierungssprache Java (Wahlkabine: Applet, Wahlamt/urne: Applikation, SMTP und Sockets für Netzwerkkommunikation) y Kryptoalgorithmus: RSA y Prozeßautomatisierung (u. a. durch Datenbanknutzung) y nebenläufige Client-Server. Lösung z Wahlverfahren als Prozeßkette z XML als Austauschformat z Programmierung: Java JDK 1. 1/1. 2 z Datenbank: my. SQL (SQL-basiertes RDBMS) z Kryptographie: RSA-Algorithmus für Verschlüsselung, Java Cryptography Architecture (JCA), Java Cryptography Extensions (JCE), IAIK-Kryptographie. Paket (TU Graz) z XML: IBM 4 J-XML-Parser / James Clark-XML-Parser z Netzwerk: TCP/IP, Socketverbindung zwischen Client und Server (eigenes Protokoll) 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 38

Elektronischer Stimmzettel: Interface 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 39

Elektronischer Stimmzettel: Interface 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 39

Literatur z. Kryptographische Grundlagen y. Bauer, Friedrich L. (20003). Entzifferte Geheimnisse. Berlin et al.

Literatur z. Kryptographische Grundlagen y. Bauer, Friedrich L. (20003). Entzifferte Geheimnisse. Berlin et al. : Springer z. Angewandte Kryptographie y. Clark, David (2000). “Encryption Advances to Meet Internet Challenges. ” In: IEEE Computer 33(8) (2000), 20 -24 y. Garfinkel, Simon; Spafford, Gene (1997). „Cryptography and the Web. “ In: World Wide Web Journal 2(3) (1997), 113 -126 y. Ortiz, Sixto, Jr. (2000). „Will PKI Become a Key to Online Security. “ In: IEEE Computer 33(12) (2000), 13 -15 y. Schneier, Bruce (1996). Angewandte Kryptographie. Bonn et al. : Addison-Wesley y. Wobst, Reinhard (1997). Abenteuer Kryptographie. Bonn et al. : Addison-Wesley z. Java Cryptography Architecture y. Gong, Li (1999). Inside Java 2 Platform Security. Reading/MA et al. : Addison Wesley Longman 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie 40