22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie1 Algorithmen und Datenstrukturen II...
-
Upload
hariric-kembel -
Category
Documents
-
view
106 -
download
0
Transcript of 22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie1 Algorithmen und Datenstrukturen II...
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
1
Algorithmen und Datenstrukturen II :Kryptographie
Christian WolffInstitut für Informatik22. Januar 2001
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
2
Übersicht
1. Sicherheit und Kryptographie2. 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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
3
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
4
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)
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
5
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
f p c
f c p
( )
( )
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
6
Schematische Darstellung des kryptographischen Grundprinzips
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
7
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
8
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
9
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) ...
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
10
Ver- und Entschlüsselung mit symmetrischer Kryptographie
Verschlüsselung
Entschlüsselung
Wenn.die.Sicherheit.eines.Algorithmus....
Klartext
Schlüssel
Schlüssel
Wenn.die.Sicherheit.eines.Algorithmus....
Klartext
Geheimtext
XJSKLE0D1SD85KSMALJ02DSKLDXJSLWO940HRF....
=
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
11
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
12
Ver- und Entschlüsselung mit asymmetrischer Kryptographie (public key-Kryptographie)
Verschlüsselung
Entschlüsselung
Wenn.die.Sicherheit.eines.Algorithmus....
Klartext
öffentlicher Schlüsselpublic key
(Chiffrierschlüssel)
Wenn.die.Sicherheit.eines.Algorithmus....
Klartext
Geheimtext
XJSKLE0D1SD85KSMALJ02DSKLDXJSLWO940HRF....
privater Schlüsselprivate key
(Dechiffrierschlüssel)
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
13
Klartext +
Signatur
Digitale Signaturen
Signierung Verifikation
Wenn.die.Sicherheit.eines.Algorithmus....
Klartext
privater Schlüsselprivate key
(Dechiffrierschlüssel)
öffentlicher Schlüsselpublic key
(Chiffrierschlüssel)
Wenn.die.Sicherheit.eines.Algorithmus....
WAJDKFUS9HDBCJS%3S
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
14
Klassische Algorithmen
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 ...
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
15
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)
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
16
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
17
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.
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
18
IDEA: Ablauf der Verschlüsselung
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
19
IDEA: Ablauf der Entschlüsselung
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
20
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
e f n n no f n(1. (1)) ( ) ( ) (ln ) (ln ln )923 13
2 3 mit
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
21
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
22
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
23
Digitale Signaturen unter Verwendung von message digests
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
24
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)
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
25
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
26
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
27
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
28
Engine-Klassen der JCA
MessageDigest Berechnung eindeutiger Kurzzusammenfassungen vonDaten
Signature Signierung und Verifikation von Daten
KeyPairGenerator Generierung von Schlüsselpaaren
KeyFactory Konvertierung zwischen unterschiedlichenRepräsentationsformen für Schlüsselpaare
CertificateFactory Erzeugung von Schlüsselzertifikaten undZertifikatrücknahmelisten (certificate revocation lists(CRLs))
KeyStore Administration und Verwaltung von Schlüsselpaarenund Zertifikaten
AlgorithmParameters Verwaltung von Parametern für kryptographischeAlgorithmen
AlgorithmParameter Generator
Erzeugung von Parametern für kryptographischeAlgorithmen
SecureRandom Erzeugung von Zufalls- oder Pseudo-Zufallszahlen
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
29
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)
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
30
Kryptographische Anwendungen im Internet
Funktion Systembeispiel
Verschlüsselung von TCP/IP IPSec (Datenpaketebene)Secure sockets layer (SSL, V.1-3, Daten-stromebene))
sichererRemote-Zugang
secure shell (SSH)
Kommunikationper e-Mail
pretty good privacy (PGP), Anwen-dungsprogramme
ElektronischeZahlungsvorgänge
secure electronictransaction (SET)
...
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
31
Einsatzbereiche angewandter Kryptographie
Schutz und Zugangsrestringierung für Systeme und Ressourcen
E-, M-Business sichere Transaktionen Zahlungsverkehr
rechtsverbindliche Verträge mit Formerfordernissen sichere Kommunikation
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
32
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)
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
33
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
34
Aktuelle Motivation I: Palm Beach County Ballot
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
35
Aktuelle Motivation II: Typisierung von Chads
pregnant chad ?
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
36
Analogie zum Briefwahlverfahren
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
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
37
Ablaufschema des Wahlvorgangs
Mitglieds-daten
Wahlscheine/Schlüssel
Wahlamt Wähler
Wahlurne(ein Dienst/ Stimmzettel)
Stimm-zettel
Wahl-ergebnisse
Wahlamt
Stimmzettel
1
2
3
4
5
8
9
1011
6
7
Legende1 Wahlberechtigte
bestimmen2 Schlüssel erzeugen3 Schlüssel versenden4 Abstimmen,
Schlüssel eintragen5 Verbandsschlüssel
laden6 Verschlüsseln
(generisch)7 Verschlüsseln
(Unterschrift)8 Wahlbrief abschicken9 Stimmzettel
anonymisieren, prüfen, speichern, Schlüssel
deaktivieren10 Stimmzettel
entschlüsseln11 Ergebnisse auswerten
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
38
Realisierung
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)
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
39
Elektronischer Stimmzettel: Interface
22. Januar 2001 Datenstrukturen & Algorithmen II: Kryptographie
40
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-
WesleyJava Cryptography Architecture
Gong, Li (1999). Inside Java 2 Platform Security. Reading/MA et al.: Addison Wesley Longman