400 likes | 626 Views
Algorithmen und Datenstrukturen II : Kryptographie. Christian Wolff Institut für Informatik 22. Januar 2001. Übersicht. 1. Sicherheit und Kryptographie 2. Ausgewählte kryptographische Algorithmen klassische Algorithmen: Caesar, Vigenère symmetrische Algorithmen: IDEA
E N D
Algorithmen und Datenstrukturen II :Kryptographie Christian Wolff Institut für Informatik 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
Übersicht 1. Sicherheit und Kryptographie 2. Ausgewählte kryptographische Algorithmen • klassische Algorithmen: Caesar, Vigenère • symmetrische Algorithmen: IDEA • asymmetrische Algorithmen: RSA 3. Angewandte Kryptographie • Kryptographie-APIs • Anwendungen • Rechtliche Rahmenbedingungen • Beispiel elektronisches Wahlverfahren 4. Bewertung & Ausblick Datenstrukturen & Algorithmen II: Kryptographie
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] Datenstrukturen & Algorithmen II: Kryptographie
Sicherheit und Kryptographie • Sicherheitskriterien • Identifizierung (authentication) • Vertraulichkeit (confidentiality) • Integrität (integrity) • Verbindlichkeit (nonrepudiation) • Verfügbarkeit (availability) • Schutzziele gegen • unbefugten Informationsgewinn (Verlust der Vertraulichkeit) • unbefugte Modifikation von Information (Verlust der Integrität) • unbefugte Beeinträchtigung der Funktionalität (Verlust der Verfügbarkeit) Datenstrukturen & Algorithmen II: Kryptographie
Kryptographisches Grundprinzip • Umwandlung eines Klartextes (p, plain text) in einem chiffrierten Text (c, ciphertext) mit Hilfe einer reversiblen kryptographischen Funktion f: • symmetrische und asymmetrische Algorithmen (public key cryptography) • Verschlüsselung / Entschlüsselung • elektronische Unterschrift (digitale Signatur) erzeugen / verifizieren Datenstrukturen & Algorithmen II: Kryptographie
Schematische Darstellung des kryptographischen Grundprinzips Datenstrukturen & Algorithmen II: Kryptographie
Eigenschaften kryptographischer Algorithmen • Mathematische Grundlagen kryptographischer Algorithmen • Primzahlfaktorisierung, elliptic curve cryptography, • Hashfunktionen • Verarbeitungsverfahren • alphabetisch/polyalphabetisch • bitbasiert • je nach Verarbeitungsweise unterscheidet man • Blockchiffrierung und • Stromchiffrierung. • Qualitätskriterien für kryptographische Algorithmen • Diffusion • Konfusion • Wahl von Zufallszahlen Datenstrukturen & Algorithmen II: Kryptographie
Typischer Aufbau moderner kryptographischer Algorithmen • 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. • Beispiel: s. u. IDEA Datenstrukturen & Algorithmen II: Kryptographie
Unterscheidung symmetrischer und asymmetrischer Verfahren • symmetrische vs. asymmetrische Algorithmen • symmetrisch: • ein Schlüssel für Chiffrierung und Dechiffrierung • international data encryption algorithm (IDEA) • digital encryption standard (DES, Triple-DES) • advanced encryption standard (AES, = Rijndael-Algorithmus) • asymmetrisch • unterschiedliche Schlüssel für Chiffrierung und Dechiffrierung (Schlüsselpaar) • Rivest Shamir Adleman (RSA) • digital signature algorithm (DSA) • ... Datenstrukturen & Algorithmen II: Kryptographie
Ver- und Entschlüsselung mit symmetrischer Kryptographie Wenn.die.Sicherheit.eines.Algorithmus.... Wenn.die.Sicherheit.eines.Algorithmus.... XJSKLE0D1SD85KSMALJ02DSKLDXJSLWO940HRF.... Klartext Klartext Verschlüsselung Entschlüsselung Geheimtext = Schlüssel Schlüssel Datenstrukturen & Algorithmen II: Kryptographie
Asymmetrische Kryptographie • Generierung von Schlüsselpaaren: • privater Schlüssel (private key): nur dem Inhaber bekanntFunktion: Entschlüsselung, Signierung • öffentlicher Schlüssel (public key): wird auf allgemein zugänglichen Servern bereitgestelltFunktion: Verschlüsselung, Verifikation • Anwendung für • Verschlüsselung und • digitale Signaturen Datenstrukturen & Algorithmen II: Kryptographie
Ver- und Entschlüsselung mit asymmetrischer Kryptographie (public key-Kryptographie) Wenn.die.Sicherheit.eines.Algorithmus.... Wenn.die.Sicherheit.eines.Algorithmus.... XJSKLE0D1SD85KSMALJ02DSKLDXJSLWO940HRF.... Klartext Klartext Verschlüsselung Entschlüsselung Geheimtext öffentlicher Schlüssel public key (Chiffrierschlüssel) privater Schlüssel private key (Dechiffrierschlüssel) Datenstrukturen & Algorithmen II: Kryptographie
Digitale Signaturen Wenn.die.Sicherheit.eines.Algorithmus.... Wenn.die.Sicherheit.eines.Algorithmus.... Klartext Klartext + Signatur Signierung Verifikation WAJDKFUS9HDBCJS%3S privater Schlüssel private key (Dechiffrierschlüssel) öffentlicher Schlüssel public key (Chiffrierschlüssel) Datenstrukturen & Algorithmen II: Kryptographie
Caesar-Verfahren Alphabetverschiebung c = p + s mod 26, z. B. bei s = 3 A D B E C F .... Vigenère-Chiffrierung polyalphabetisch abhängig von der Position im Text (zusätzliches Verschlüsselungswort), z. B. HALLO HALLOHALLOHALLOHALLO DIESISTEINENACHRICHT Abbildung: Caesar-Verschiebung um den Wert des zugeordneten Buchstabens : D D + H = K I I + A = I E E + L = P ... Klassische Algorithmen Datenstrukturen & Algorithmen II: Kryptographie
IDEA als Beispiel symmetrischer Kryptographie • IDEA - international data encryption standard • Entwickelt von Lai & Massey, ETH Zürich, patentrechtlich geschützt (Ascom Systec AG, Schweiz) • Blockchiffrierung (64bit-Blöcke) durch einen 128bit-Schlüssel • Bildung von 52 Teilschlüsseln: • acht 16bit-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) Datenstrukturen & Algorithmen II: Kryptographie
Verschlüsselung in IDEA • Verschlüsselung in acht Runden, jede Runde verwendet sechs Teilschlüssel (Produktalgorithmus) • Jeweils Verarbeitung von 16bit-Teilblöcken • Anwendung “inkompatibler” algebraischer Operationen (XOR, Addition modulo 216 (wg. 16bit-Länge), Multiplikation modulo 216 + 1); • ausschließlich Verarbeitung von 16bit-Zahlen, daher effiziente Implementierung Datenstrukturen & Algorithmen II: Kryptographie
Motivation für den Aufbau des Algorithmus • 216 + 1 ist Primzahl • Die Grundoperationen des Algorithmus sind “inkompatibel” (bilden keine Gruppe), da für sie weder das Distributiv- noch das (erweiterte) Assoziativgesetz gilt. • 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. Datenstrukturen & Algorithmen II: Kryptographie
IDEA: Ablauf der Verschlüsselung Datenstrukturen & Algorithmen II: Kryptographie
IDEA: Ablauf der Entschlüsselung Datenstrukturen & Algorithmen II: Kryptographie
RSA als Beispiel asymmetrischer Kryptographie • Entwickelt von Rivest, Shamir, Adleman (1978) • Ansatzpunkt ist die Schwierigkeit, große Primzahlen effizient zu faktorisieren • Für eine Zahl n beträgt der Faktorisierungsaufwand etwa • Aufbau des Algorithmus • Schlüsselerzeugung • Chiffrierung • Dechiffrierung Datenstrukturen & Algorithmen II: Kryptographie
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 Datenstrukturen & Algorithmen II: Kryptographie
RSA: Chiffrierung und Dechiffrierung • 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. • 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 • Digitale Signaturen: Umkehrung des Verfahrens • Problem: rechenaufwendiger Algorithmus, daher typischerweise Einsatz von message digests Datenstrukturen & Algorithmen II: Kryptographie
Digitale Signaturen unter Verwendung von message digests Datenstrukturen & Algorithmen II: Kryptographie
Kryptographische Dienste • Protokolle: Bereitstellung sicherer Übertragungskanäle für Daten • Message Digests: eindeutige Kurzzusammenfassungen von Daten durch sichere Hashfunktionen • Signaturen: Bestätigung der Urheberschaft, oft in Kombination mit message digests • Zertifikate: Bestätigung der Sicherheit von Schlüsseln, z. B. Zertifikate nach X.509 • Hard- und Softwarelösungen, z. B. Ausgabe von Schlüsselpaaren auf Chipkarten durch trust center (Deutsche Telekom, Deutsche Post, Bundesdruckerei) Datenstrukturen & Algorithmen II: Kryptographie
PKI - public key infrastructure • notwendige Infrastruktur für die verläßliche Verwendung kryptographischer Anwendungen • PKI-Bestandteile • Einsatz eines asymmetrischen Verfahrens für Verschlüsselung und digitale Signaturen • digitale Zertifikate: authentisieren den Sender einer Nachricht, stellen öffentliche Schlüssel bereit • Registration Authority (RA): registriert Anfragen für digitale Zertifikate • Certificate Authority: Generiert und verwaltet Zertifikate und Schlüssel (z. B. durch certificate revocation lists) • Verzeichnisse: Speicherung von Zertifikaten und Schlüsseln für den Zugriff durch Nutzer und CA Datenstrukturen & Algorithmen II: Kryptographie
Einsatz angewandter Kryptographie • Implementierung kryptographischer Algorithmen als Kryptographie-Provider • APIs und Toolkits • Protokolle und Dienste mit kryptographischer Unterstützung, z. B. auf Protokollbasis für TCP/IP • sichere Anwendungen, z. B. für E-Mail-Versand, sicheren Informationsaustausch • Beispiel • Java-Sicherheitsarchitektur, Java Cryptography Architecture Datenstrukturen & Algorithmen II: Kryptographie
Java Cryptography Architecture • Engine-Klassen: definieren einen kryptographischen Dienst als abstrakte Modellierung (ohne konkrete Implementierung) • jedem kryptographischen Dienst ist ein Algorithmus oder Typ zugeordnet • Bereitstellung kryptographischer Operationen • Erzeugung kryptographischer Daten (z. B. Schlüssel) • sichere Kapselung und Verwaltung kryptographischer Daten • Modellierung mit Hilfe von Design Patterns Datenstrukturen & Algorithmen II: Kryptographie
Engine-Klassen der JCA Datenstrukturen & Algorithmen II: Kryptographie
Kryptographische Provider • Implementierung der abstrakten Engine-Klassen für konkrete Algorithmen • Instantiierung zur Laufzeit durch Laden von Providerklassen • Verwaltung mehrerer Provider möglich • Hilfsklassen für Ermittlung der implementierten Algorithmen • Beispiel: • Standard-Provider der JCA (Sun Microsystems) • Provider externer Kryptographie-Toolkits, z. B. IAIK (TU Graz) Datenstrukturen & Algorithmen II: Kryptographie
Kryptographische Anwendungen im Internet Datenstrukturen & Algorithmen II: Kryptographie
Einsatzbereiche angewandter Kryptographie • Schutz und Zugangsrestringierung für Systeme und Ressourcen • E-, M-Business • sichere Transaktionen • Zahlungsverkehr • rechtsverbindliche Verträge mit Formerfordernissen • sichere Kommunikation Datenstrukturen & Algorithmen II: Kryptographie
Rechtliche Rahmenbedingungen • Signaturgesetz und -verordnung (D, 1997) als Teil des IuKDG • Europäische Signaturrichtlinie („gemeinschaftliche Rahmenbedingungen für elektronische Signaturen“, 19.1.2000, Umsetzung in D bis 19. 6. 2001)) • Referentenentwürfe des BMJ für neue Formvorschriften bei Rechtsgeschäften („Textform“, „elektronische Form“, Juni 2000, http://www.bmj.bund.de/ggv/bgbrege1.pdf)) • sukzessive Gleichstellung elektronischer Rechtsgeschäfte • allgemeine Verbreitung elektronischer Signaturen ? • Voraussetzung: • PKI, Zertifizierungsstellen (trust center) • Hardware-basierte Technologie (Chipkarten, -leser) Datenstrukturen & Algorithmen II: Kryptographie
Elektronische Kommunikationsformen • Sicherheitsrelevante Kommunikation über elektronische Kommunikationskanäle • Beispiel GLDV - Gesellschaft für Linguistische Datenverarbeitung • WebSite • Anmeldung (Beitritt) • Newsletter • Diskussionsforen • Hier: elektronische Wahlverfahren • betrifft alle grundlegenden Aspekte sicherer Kommunikation • Authentisierung, Vertraulichkeit, Integrität, Verbindlichkeit Datenstrukturen & Algorithmen II: Kryptographie
Aktuelle Motivation I: Palm Beach County Ballot Datenstrukturen & Algorithmen II: Kryptographie
Aktuelle Motivation II: Typisierung von Chads pregnant chad ? Datenstrukturen & Algorithmen II: Kryptographie
Modellierung von Wahlschein Stimmzettel zweifacher Verpackung des Stimmzettels Zeitliche Gliederung Verteilung der Stimmzettel Wahldurchführung Auswertung Module: Schlüsselverwaltung Elektronischer Stimmzettel (Benutzerschnittstelle) Wahlurne (Stimmzettelverwaltung) Stimmzettelauswertung Analogie zum Briefwahlverfahren Datenstrukturen & Algorithmen II: Kryptographie
Ablaufschema des Wahlvorgangs 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 1 Mitglieds- daten 3 Wähler Wahlamt 2 4 5 Stimmzettel Wahlscheine/ Schlüssel Wahlurne (ein Dienst/ Stimmzettel) 6 9 8 7 Stimm- zettel 10 11 Wahlamt Wahl- ergebnisse Datenstrukturen & Algorithmen II: Kryptographie
Vorgaben Technische Infrastruktur WWW-Integration (Browser) Implementierungssprache Java (Wahlkabine: Applet, Wahlamt/-urne: Applikation, SMTP und Sockets für Netzwerkkommunikation) Kryptoalgorithmus: RSA Prozeßautomatisierung (u.a. durch Datenbanknutzung) nebenläufige Client-Server-Lösung Wahlverfahren als Prozeßkette XML als Austauschformat Technologien Programmierung: Java JDK 1.1/1.2 Datenbank: mySQL (SQL-basiertes RDBMS) Kryptographie: RSA-Algorithmus für Verschlüsselung, Java Cryptography Architecture (JCA), Java Cryptography Extensions (JCE), IAIK-Kryptographie-Paket (TU Graz) XML: IBM4J-XML-Parser / James Clark-XML-Parser Netzwerk: TCP/IP, Socketverbindung zwischen Client und Server (eigenes Protokoll) Realisierung Datenstrukturen & Algorithmen II: Kryptographie
Elektronischer Stimmzettel: Interface Datenstrukturen & Algorithmen II: Kryptographie
Literatur • Kryptographische Grundlagen • Bauer, Friedrich L. (20003). Entzifferte Geheimnisse. Berlin et al.: Springer • Angewandte Kryptographie • Clark, David (2000). “Encryption Advances to Meet Internet Challenges.” In: IEEE Computer 33(8) (2000), 20-24 • Garfinkel, Simon; Spafford, Gene (1997). „Cryptography and the Web.“ In: World Wide Web Journal 2(3) (1997), 113-126 • Ortiz, Sixto, Jr. (2000). „Will PKI Become a Key to Online Security.“ In: IEEE Computer 33(12) (2000), 13-15 • Schneier, Bruce (1996). Angewandte Kryptographie. Bonn et al.: Addison-Wesley • Wobst, Reinhard (1997). Abenteuer Kryptographie. Bonn et al.: Addison-Wesley • Java Cryptography Architecture • Gong, Li (1999). Inside Java 2 Platform Security. Reading/MA et al.: Addison Wesley Longman Datenstrukturen & Algorithmen II: Kryptographie