Kryptographie - Software Engineering
Kryptographie - Software Engineering
Kryptographie - Software Engineering
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Kryptographie</strong><br />
Definition:<br />
<strong>Kryptographie</strong> ist die Lehre von der Verschlüsselung von Daten.<br />
(altgriechisch: kryptos: verborgen, grapheiy: schreiben)<br />
wichtigste Hilfsmittel:<br />
- Mathematik<br />
- Computer<br />
Vermutung: unsicherer Kanal<br />
Der Übertragungskanal kann beliebig und unbemerkt abgehört werden.<br />
Ziele:<br />
• Vertraulichkeit (Geheimhaltung des Klartexts)<br />
• Integrität (kein Dritter konnte Daten unbemerkt ändern)<br />
• Verbindlichkeit (die Daten stammen vom authentifizierten Sender)<br />
• Authentizität (der Sender ist eindeutig identifiziert)<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 1
Geschichte<br />
Spartaner (5. Jhd. v. Chr):<br />
Skytala: Papierstreifen spiralförmig um einen Stab wickeln.<br />
Anschließend mit der Nachricht beschriften und wieder abwickeln.<br />
Am Zielort muss der Streifen wieder auf einen Stab gleichen Durchmessers<br />
gewickelt werden und die Nachricht kann wieder entziffert werden.<br />
Cäsar (ca. 50 v.Chr):<br />
Unter das Klaralphabet das Geheimalphabet verschoben schreiben.<br />
z.B: c = p + 2 mod 26<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 2
Geschichte (2)<br />
ENIGMA (griechisch für Rätsel)<br />
1919 v. Hugo Koch (NL) patentiert.<br />
1926 - 28 von deutschen Marine, Armee und Luftwaffe gekauft.<br />
Entschlüsselung: Kryptologen aus Polen und England - ULTRA<br />
1932 von Marian Rejewski geknackt (PL)<br />
1938 von Deutschen umgebaut,<br />
in Bletchley Park (England) wurden die Codes entschlüsselt.<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 3
weitere Begriffe<br />
Kryptoanalyse<br />
Methoden zum unbefugten Entschlüsseln von Daten<br />
Kryptologie<br />
Wissenschaft, die sich mit <strong>Kryptographie</strong> und Kryptoanalyse beschäftigt.<br />
Verschlüsselung oder Ciffrierung<br />
Methode um einen lesbaren Text (sog. Klartext) in einem<br />
Geheimtext (sog. Chiffretext) mit Hilfe einer geheimen<br />
Zeichenkette (sog. Schlüssel) und eines kryptographischen<br />
Algorithmus umzuwandeln<br />
(engl: ciphertext, key)<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 4
Verfahren<br />
Symmetrische Verschlüsselung<br />
(private key encryption)<br />
Asymmetrische Verschlüsselung<br />
(public key encryption)<br />
Hybride Verfahren<br />
(kombinierte Verfahren)<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 5
Symmetrische Verschlüsselung<br />
private-key encryption<br />
Zur Ver- und Entschlüsselung wird ein Schlüssel verwendet.<br />
+ sehr schnelles Verfahren<br />
+ Verfahren kann auch bekannt sein<br />
- Problem: man muß den geheimen Schlüssel auszutauschen<br />
(irgendwann muß ein Geheimnis kryptographisch ungeschützt übertragen werden)<br />
- keine Authentizität, da eine Person A eine Nachricht verschlüsseln, sich selbst zusenden und<br />
behaupten kann, sie käme vom Sender B, der denselben Schüssel verwendet.<br />
Voraussetzung: ausreichend langer Schlüssel (z.B. 128 Bit)<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 6
Symmetrische Verschlüsselung - DES<br />
Data Encryption Standard<br />
(1977 vom NBS (National Bureau of Standards) als Standard festgelegt)<br />
- bekanntester symmetrischer Algorithmus<br />
- Blockchiffrier-Algorithmus 64 bit Blocklänge, 56 Bit Schlüssellänge.<br />
- keine mathematischen Funktionen, lediglich Vertauschung und Ersetzung von Bits in 16 Runden<br />
- Hardwareimplementierung möglich<br />
- relativ kurze, fixe Schlüssellänge (56 Bit)<br />
- wurde im Jänner 1999 erstmals in 22h15min durch Probieren aller Schlüssel geknackt<br />
- kein Fehler im DES, aber Schlüssellänge 56bit nicht mehr zeitgemäß.<br />
Verbesserung:<br />
durch 3-fache Verschlüsselung (Triple-DES)<br />
Man verwendet 2 Schlüssel und verschlüsselt 3 mal hintereinander mit DES:<br />
A->Key1->A1->Key2->A2->Key1->A3<br />
Dadurch effektive Schlüssellänge von 112bit<br />
Anwendungen:<br />
große Datenströme können verschlüsselt werden<br />
IPSEC, Nachfolger des IP-Protokolls<br />
auch: Geldautomat (zur Authentifizierung des Geldbehebers)<br />
....<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 7
Symmetrische Verschlüsselung – DES (2)<br />
Skizzierung des Verfahrens:<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 8
weitere symmetrische Verfahren<br />
IDEA : 64 Bit Blockgrösse, Schlüssellänge 128 Bit<br />
in insgesamt 9 Runden werden jeweils 16 Bit Datenblöcke mit 16 Bit Schlüsselteilen verschlüsselt (XOR,<br />
Multiplikation MOD 2 16 + 1, Addition MOD 2 16 )<br />
RC4:<br />
1987 von Ron Rivest für RSA-Data Security Inc. entwickelt.<br />
- Schneller als DES.<br />
- variable Schlüssellänge (bis 2048 Bit)<br />
- Stromchiffrier-Algorithmus.<br />
- OFB-Prinzip: Output Feedback Modus<br />
- Einsatz: Mobilfunk, Dateiverschlüsselung,<br />
Netscape (SSL), Lotus (Notes), Oracle<br />
(SecureSQL)<br />
- Schlüssel soll nur ein einziges Mal verwendet<br />
werden!<br />
Nachfolger des DES: AES (Advanced Encryption Standard)<br />
1997 wurde von einem amerikanischen Standardisierungsinstitut (NIST) ein Wettbewerb<br />
ausgeschrieben, um einen möglichst praktikablen, also insb. schnellen Algorithmus zu finden, der<br />
128bit Blocklänge und mind. 128bit Schlüssellänge unterstützt. Ein Algorithmus aus Belgien (Uni Leuven<br />
und Firma Proton) stand 10/2000 als Gewinner fest und soll DES mittelfristig ablösen.<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 9
Asymmetrische Verschlüsselung<br />
Bedeutung:<br />
Sender und Empfänger können Informationen ohne ein zuvor vereinbartes Geheimnis austauschen!<br />
Die Authentizität ist im Gegensatz zu symmetrischen Verfahren gewährleistet.<br />
Grundidee: Public key - <strong>Kryptographie</strong><br />
Ein öffentlicher Schlüssel, der allgemein bekannt ist, wird vom Sender verwendet, um Daten zu<br />
verschlüsseln. Die Daten können anschließend nur noch mit dem zugehörigen privaten Schlüssel, der<br />
nur dem Empfänger bekannt ist, entschlüsselt werden. Öffentlicher und privater Schlüssel bilden ein<br />
Schlüsselpaar.<br />
Die Asymmetrie beruht darauf, daß man mit dem öffentlichen Schlüssel zwar verschlüsseln, nicht<br />
jedoch entschlüsseln kann.<br />
Geschichte:<br />
1976 Diffie und Hellman erfanden die public key cryptography, basierend auf Schlüsselpaaren.<br />
Sie wußten aber nicht, ob sich geeignete Schlüsselpaare finden lassen (Uni Stanford).<br />
1978 R. Rivest A.Shamir und L-Adleman stellen den ersten und bis heute bedeutendsten Algorithmus<br />
zur public key cryptography vor. (RSA-Algorithmus)<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 10
Asymmetrische Verschlüsselung (2)<br />
Public key - <strong>Kryptographie</strong><br />
öffentlicher Schlüssel (public key)<br />
zur Verschlüsselung<br />
geheimer Schlüssel (private key)<br />
zur Entschlüsselung<br />
+ kein Schlüsseltausch nötig<br />
- bekannte Verfahren z.b. RSA sehr langsam (DES ist 1000x schneller)<br />
wichtig: hier auch noch keine Authentizität, da öffentlicher Schlüssel allgemein bekannt.<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 11
Asymmetrische Verfahren (3)<br />
Prinzip: RSA-Verfahren<br />
1. Man wähle 2 große Primzahlen p und q<br />
2. n = p*q<br />
3. Wähle eine Zufallszahl E,
Hybride Verfahren<br />
Nachteile der bisher genannten Verfahren:<br />
Symmetrische Verschlüsselung: unverschlüsselter Schlüsseltausch nötig<br />
Asymmetrische Verschlüsselung: ineffizient (Potenzierung)<br />
Die asymmetrische Verschlüsselung löst das Schlüsseltausch-Problem:<br />
Z.B: kann ein geheimer Schlüssel eines schnellen symmetrischen Verfahrens mit asymmetrischen<br />
Verfahren verschlüsselt und so ausgetauscht werden.<br />
Hybride Verfahren kombinieren beide Verfahren:<br />
Beispiel: Pretty Good Privacy<br />
PGP - Verschlüsselung PGP – Entschlüsselung<br />
Der Klartext wird mit schnellem symmetrischen Verfahren verschlüsselt. Nur der verwendete Schlüssel<br />
wird (ineffizient) asymmetrisch verschlüsselt.<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 13
Digitale Unterschriften – Authentizität<br />
Erst möglich durch public-key Verschlüsselung.<br />
Durch digitale Signaturen kann die Authentizität des Senders geprüft werden.<br />
Signaturen sind manchmal wichtiger als Verschlüsselung von Daten !<br />
Bsp. Banktransaktionen:<br />
Information, dass gerade 100.000 ATS transferiert werden kann durchaus zugänglich sein. Wichtig ist<br />
aber, dass der Kommunikationspartner tatsächlich die Bank ist.<br />
Prinzip:<br />
Originaltext wird mit dem privaten Schlüssel<br />
verschlüsselt.<br />
Kann der Empfänger mit dem öffentlichen<br />
Schüssel die Information lesen, muss der<br />
Absender den privaten Schlüssel verwendet<br />
haben, und ist daher authentisch.<br />
Kombination: Verschlüsselt und Unterschrieben:<br />
Eine Person A kann einen Geheimtext (Public Key von B) mit private Key von A signieren. So kann B<br />
erstens die Authentizität von A mittels dessen Public Key feststellen und mit dem eigenen Private Key<br />
die Nachricht entschlüsseln.<br />
© T. Hilpold, A. Stritzinger, Universität Linz, Institut für Wirtschaftsinformatik - <strong>Software</strong> <strong>Engineering</strong> 14