Sichere Programmierung
|
|
|
- Rüdiger Adler
- vor 6 Jahren
- Abrufe
Transkript
1 Sichere Programmierung Lerneinheit 3: Kryptographie mit Java Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester
2 Einleitung Einleitung Diese Lerneinheit vermittelt Wissen zu Java Cryptography, einer Sammlung von APIs zur Bereitstellung kryptographischer Mechanismen für die Programmiersprache Java. Es werden folgende Themen behandelt: Aufbau und Konzepte der JCE Generierung von Zufallszahlen Kryptographische Hashfunktionen Symmetrische Verschlüsselungsverfahren Asymmetrische Verschlüsselungsverfahren Digitale Signaturen Die Lerneinheit orientiert sich an der Java 11 JDK Dokumentation [Ora18b]. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 2 / 36
3 Überblick Überblick Beim Design von Java wird großer Wert auf Sicherheit gelegt. Java besitzt ein automatisiertes Speichermanagement, einen Garbage Collector und eine Bereichsüberprüfung von Arrays. Java beinhaltet mehrere APIs, über die gängige kryptographische Verfahren bereitgestellt werden. Die Implementierung der Verfahren wird über sogenannte Security Provider bereitgestellt. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 3 / 36
4 Überblick Designziele Designziele Beim Entwurf von Java Security wurden folgende Ziele verfolgt: Plattformunabhängigkeit Interoperabilität Erweiterbarkeit Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 4 / 36
5 Überblick Designziele Plattformunabhängigkeit Die Sicherheitsmechanismen sind auf allen von Java unterstützten Betriebssystemen lauffähig. Die Sicherheitsmechanismen werden über Security Provider bereitgestellt. Die API liefert einen einheitlichen Weg, um die Sicherheitsmechanismen in eine Anwendung zu integrieren. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 5 / 36
6 Überblick Designziele Interoperabilität Die Nutzung der Sicherheitsmechanismen ist standardisiert und somit unabhängig von einer bestimmten Kryptographie-Bibliothek. Alle Implementierungen müssen sich an die vorgegebene Schnittstelle halten. Einschränkung: Der Umfang der bereitgestellten Sicherheitsmechanismen ist vom gewählten Security Provider abhängig. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 6 / 36
7 Überblick Designziele Erweiterbarkeit Das JDK beinhaltet Security Provider für gängige Sicherheitsmechanismen. Das JDK kann um externe Security Provider erweitert werden, die zusätzliche Funktionalitäten beinhalten. Bouncy Castle ist eine Open Source Entwicklung eines Security Providers mit einem großen Funktionsumfang. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 7 / 36
8 Überblick Zugriff auf einen Sicherheitsmechanismus Zugriff auf einen Sicherheitsmechanismus Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 8 / 36
9 Überblick Zugriff auf einen Sicherheitsmechanismus Zugriff auf einen Sicherheitsmechanismus (Forts.) Für jede Art von Sicherheitsmechanismus existiert eine Klasse, über die ein Verfahren ausgewählt wird. Beispiel: Die Klasse MessageDigest steht für kryptographische Hashfunktionen zur Berechnung von Prüfsummen. Es wird der Security Provider mit höchsten Priorität ausgewählt, der das Verfahren implementiert. Alternativ kann explizit ein Provider bei der Auswahl angegeben werden. Die Auswahl erfolgt über eine standardisierte Bezeichnung der Algorithmen [Ora18a]. Beispiel: Die Bezeichnung SHA-256 steht für den Secure Hash Algorithm 2 mit einer Prüfsummenlänge von 256 Bit. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 9 / 36
10 Überblick Verfahren und die entsprechenden Klassen Verfahren und die entsprechenden Klassen Kryptographische Prüfsummen MessageDigest Zufallszahlen für kryptographische Zwecke SecureRandom Verschlüsselungsverfahren Cipher Digitale Signaturen Signature Schlüssel SecretKey, KeyPair Generierung von Schlüsseln SecretKeyFactory, KeyFactory Message Authentication Codes Mac... Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 10 / 36
11 Kryptographische Prüfsummen Kryptographische Prüfsummen Ablauf der Berechnung einer Prüfsumme: Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 11 / 36
12 Kryptographische Prüfsummen Beispiel 1 Beispiel 1 Beispiel: Berechnung einer Prüfsumme mit SHA-256: 1 String message = "Kryptographie macht Spass!!!"; 2 3 MessageDigest md = MessageDigest.getInstance("SHA -256"); 4 byte[] digest = md.digest(message.getbytes()); 5 6 System.out.println("Message: " + message); 7 System.out.println("Digest.: " + tohexstring(digest, 2)); Ergebnis: Die kryptographische Prüfsumme des obigen Texts ist: EA0B 1FB1 CE A370 C C DFC A23E 33FB C936 BF1D E9F2 Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 12 / 36
13 Kryptographische Prüfsummen Beispiel 1 Bemerkungen Das Attribut message enthält die Nachricht, für die eine Prüfsumme berechnet werden soll. In Zeile 3 wird ein MessageDigest-Objekt abgerufen, welches die kryptographische Hashfunktion SHA-256 bereitstellt. In Zeile 4 wird die Nachricht in ein Byte-Array umgewandelt und anschließend die Prüfsumme berechnet. Die Prüfsumme wird in einem Byte-Array gespeichert. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 13 / 36
14 Kryptographische Prüfsummen Hilfsmethode Methode tohexstring() Darstellung eines Byte-Arrays als Folge hexadezimaler Zahlen: 1 protected String tohexstring(byte[] data, int offset) { 2 if (offset <0) { 3 offset=0; 4 } 5 6 StringBuilder sb = new StringBuilder(); 7 8 for (int i=0; i<data.length; i++) { 9 sb.append(string.format("%02x", data[i])); 10 if ((offset >0) && (i+1<data.length) && ((i+1) % offset == 0)) { 11 sb.append(" "); 12 } 13 } 14 return sb.tostring(); 15 } Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 14 / 36
15 Kryptographische Prüfsummen Beispiel 2 Beispiel 2 Beispiel: Berechnung einer Prüfsumme mit SHA-256: 1 String m1 = "Kryptographie "; 2 String m2 = "macht "; 3 String m3 = "Spass!!!"; 4 5 MessageDigest md = MessageDigest.getInstance("SHA -256"); 6 md.reset(); 7 md.update(m1.getbytes()); 8 md.update(m2.getbytes()); 9 md.update(m3.getbytes()); 10 byte[] digest = md.digest(); System.out.println("Message: " + m1 + m2 + m3); 13 System.out.println("Digest.: " + tohexstring(digest, 2)); Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 15 / 36
16 Kryptographische Prüfsummen Beispiel 2 Bemerkungen Die Nachricht besteht aus drei Teilen, die in den Strings m1, m2 und m3 gespeichert sind. In Zeile 6 wird das Objekt zurückgesetzt. (Dies ist an dieser Stelle eigentlich nicht erforderlich.) In den Zeilen 7 bis 9 wird mittels der Methode update() jeder Teil der Nachricht zur internen Prüfsumme hinzugefügt. In Zeile 9 wird die finale Prüfsumme berechnet und in einem Byte-Array speichert. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 16 / 36
17 Verschlüsselungsverfahren Verschlüsselungsverfahren Der Zugriff auf die Verschlüsselungsverfahren erfolgt über die Klasse Cipher. Unterscheidung 1: Symmetrische Verschlüsselung Asymmetrische Verschlüsselung Unterscheidung 2: 1. Blockchiffre 2. Stromchiffre Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 17 / 36
18 Verschlüsselungsverfahren Symmetrische Verschlüsselung Symmetrische Verschlüsselung Ablauf einer symmetrischen Verschlüsselung: Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 18 / 36
19 Verschlüsselungsverfahren Symmetrische Verschlüsselung Beispiel 1 Beispiel: Verschlüsselung mit AES im CBC-Mode: 1 String plaintext = "Dies ist eine streng geheime Nachricht!!!"; 2 3 String key = "om{ah8uugaigh8le"; 4 SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); 5 6 SecureRandom prng = new SecureRandom(); 7 byte[] iv = new byte[16]; 8 prng.nextbytes(iv); 9 IvParameterSpec ivspec = new IvParameterSpec(iv); Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 19 / 36
20 Verschlüsselungsverfahren Symmetrische Verschlüsselung Beispiel 1 (Forts.) 10 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); 11 cipher.init(cipher.encrypt_mode, keyspec, ivspec); 12 byte[] ciphertext = cipher.dofinal(plaintext.getbytes()); ByteArrayOutputStream os = new ByteArrayOutputStream(); 15 os.write(iv); 16 os.write(ciphertext); 17 Base64.Encoder encoder = Base64.getEncoder(); 18 String message = encoder.encodetostring(os.tobytearray()); System.out.println("Plain text.: " + plaintext); 21 System.out.println("Message...: " + message); Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 20 / 36
21 Verschlüsselungsverfahren Symmetrische Verschlüsselung Bemerkungen Der zu verschlüsselnde Klartext liegt als String vor (Zeile 1). Eine mögliche Schlüssellänge von AES sind 16 Byte. Der Schlüssel wird entsprechend gewählt (Zeile 2). Anhand des Schlüssels wird eine Schlüsselspezifikation erstellt (Zeile 3). Für den CBC-Mode wird ein Initialisierungsvektor benötigt. Dieser wird zufällig erzeugt (Zeilen 6 bis 9). Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 21 / 36
22 Verschlüsselungsverfahren Symmetrische Verschlüsselung Bemerkungen (Forts.) Zur Verschlüsselung wird ein Objekt angefordert, welches AES im CBC-Mode mit PKCS5 Padding bereitstellt (Zeile 10). Für die Verschlüsselung wird das Objekt mit dem Initialisierungsvektor und dem Schlüssel initialisiert (Zeile 11). Der Klartext wird in ein Byte-Array umgewandelt und dieses anschließend verschlüsselt (Zeile 12). Der Initialisierungsvektor wird zusammen mit Geheimtext in einem Byte-Array gespeichert und als Base64 String kodiert (Zeilen 14 bis 18). Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 22 / 36
23 Verschlüsselungsverfahren Das Werkzeug keytool Das Werkzeug keytool Das Java Development Toolkit enthält das Werkzeug keytool zur Verwaltung eines digitalen Schlüsselbunds. Inhalte eines digitalen Schlüsselbunds: Schlüssel für ein symmetrisches Kryptosystem SecretKey Privater Schlüssel für ein asymmetrisches Kryptosystem PrivateKey Digitales Zertifikat Ceritificate Jeder Eintrag wird durch einen Alias referenziert. Ein digitaler Schlüsselbund kann in Java-Programmen verwendet werden. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 23 / 36
24 Verschlüsselungsverfahren Das Werkzeug keytool Benutzung von keytool Befehlsübersicht anzeigen: > keytool -help AES-Schlüssel erzeugen: > keytool -keystore mykeystore.jks -storetype pkcs12 \ -genseckey -alias "aes-key" -keyalg "AES" -keysize 256 Inhalt des Schlüsselbunds anzeigen: > keytool -keystore mykeystore.jks -list Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 24 / 36
25 Verschlüsselungsverfahren Das Werkzeug keytool Laden eines Schlüsselbunds Code-Fragment zum Laden eines digitalen Schlüsselbunds: 1 String ksfilename = "mykeystore.jks"; 2 String kspassword = "123456"; 3 KeyStore keystore = KeyStore.getInstance("pkcs12"); 4 File file = new File(ksFileName); 5 FileInputStream is = new FileInputStream(file); 6 keystore.load(is, kspassword.tochararray()); Analog: Speichern eines digitalen Schlüsselbunds Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 25 / 36
26 Verschlüsselungsverfahren Das Werkzeug keytool Zugriff auf einen Schlüssel des Schlüsselbunds 1 SecretKeySpec keyspec = null; 2 String keyalias = "aes-key"; 3 String kspassword = "123456"; 4 if (( keystore.containsalias(keyalias)) && keystore.iskeyentry( keyalias)) { 5 KeyStore.ProtectionParameter protparam = new KeyStore. PasswordProtection(ksPassword.toCharArray()); 6 KeyStore.Entry entry = keystore.getentry(keyalias, protparam); 7 KeyStore.SecretKeyEntry keyentry = (KeyStore.SecretKeyEntry)entry; 8 keyspec = (SecretKeySpec)keyEntry.getSecretKey(); 9 } else { 10 System.out.println("ERROR!"); 11 } Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 26 / 36
27 Verschlüsselungsverfahren Das Werkzeug keytool Bemerkungen In das Objekt keystore wurde im Vorfeld ein digitaler Schlüsselbund geladen. In der if-abfrage (Zeile 3) wird geprüft, ob ein Eintrag mit dem angegebenen Alias vorhanden ist, und ob dieser Eintrag einen Schlüssel für ein symmetrisches Kryptosystem enthält. Für den Zugriff auf den Schlüsselbund wird ein Objekt des Typs ProtectionParameter benötigt. In diesem wird das Passwort gespeichert (Zeilen 4 5). Der Schlüssel wird ausgelesen und eine entsprechende Spezifikation umgewandelt (Zeilen 6 7). Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 27 / 36
28 Verschlüsselungsverfahren Asymmetrische Verschlüsselung Asymmetrische Verschlüsselung Bei asymmetrischer Verschlüsselung kommt ein Paar bestehend aus einem privaten und öffentlichen Schlüssel zum Einsatz. Verwendung: Öffentlicher Schlüssel Verschlüsselung Privater Schlüssel Entschlüsselung Das Werkzeug keytool unterstützt die Erstellung von Schlüsselpaaren. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 28 / 36
29 Verschlüsselungsverfahren Asymmetrische Verschlüsselung Beispiel Beispiel: Schlüsselgenerierung und Verschlüsselung mit RSA: 1 int keysize=2000; 2 KeyPairGenerator keypairgen = KeyPairGenerator.getInstance("RSA"); 3 keypairgen.initialize(keysize); 4 KeyPair rsakeypair = keypairgen.generatekeypair(); 5 String plaintext = "Kryptographie macht immer noch Spass!!!"; 6 PublicKey publickey = rsakeypair.getpublic(); 7 Cipher rsa = Cipher.getInstance("RSA"); 8 rsa.init(cipher.encrypt_mode, publickey); 9 byte[] ciphertext = rsa.dofinal(plaintext.getbytes()); 10 Base64.Encoder encoder = Base64.getEncoder(); 11 String message = encoder.encodetostring(ciphertext); Analog: Entschlüsselung mit dem in rsakeypair gespeicherten privaten Schlüssel. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 29 / 36
30 Verschlüsselungsverfahren Asymmetrische Verschlüsselung Bemerkungen Zur Erzeugung des Schlüsselpaars wird ein Objekt der Klasse KeyPairGenerator verwendet (Zeilen 1 4). Zur Verschlüsselung wird der öffentliche Schlüssel aus dem Schlüsselpaar extrahiert (Zeile 6). Als Kryptosystem kommt RSA zum Einsatz. Dieses wird mit dem öffentlichen Schlüssel für die Verschlüsselung initialisiert (Zeilen 7 8). Die Verschlüsselung erfolgt mit der Methode dofinal() (Zeile 9). Abschließend wird der Geheimtext als Base64-String kodiert. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 30 / 36
31 Digitale Signaturen Digitale Signaturen Ablauf einer digitalen Signatur: Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 31 / 36
32 Digitale Signaturen Digitale Signaturen (Forts.) Eine digitale Signatur bestätigt die Authentizität einer Nachricht. Für die Durchführung einer digitalen Signatur wird ein Paar bestehend aus einem privaten und öffentlichen Schlüssel benötigt. Viele asymmetrische Kryptosysteme kann man auch für digitale Signaturen einsetzen. Ein Signaturverfahren ist in der Regel die Kombination einer kryptographsichen Hashfunktion und eines Public-Key-Kryptosystems. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 32 / 36
33 Digitale Signaturen Beispiel Beispiel: Schlüsselgenerierung und Signierung mit RSA: 1 int keysize=2000; 2 KeyPairGenerator keypairgen = KeyPairGenerator.getInstance("RSA"); 3 keypairgen.initialize(keysize); 4 KeyPair rsakeypair = keypairgen.generatekeypair(); 5 PrivateKey privatekey = rsakeypair.getprivate(); 6 Signature rsa = Signature.getInstance("SHA256withRSA"); 7 rsa.initsign(privatekey); 8 String plaintext = "Kryptographie macht immer noch Spass!!!"; 9 rsa.update(plaintext.getbytes()); 10 byte[] signature = rsa.sign(); 11 Base64.Encoder encoder = Base64.getEncoder(); 12 String digest = encoder.encodetostring(signature); Analog: Verifikation der Signatur mit in rsakeypair gespeicherten öffentlichen Schlüssel. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 33 / 36
34 Digitale Signaturen Bemerkungen Vor der Nutzung eines Signaturverfahrens muss ein Schlüsselpaar erstellt werden (Zeilen 1 4). Zur Signierung einer Nachricht wird der private Schlüssel ausgelesen (Zeile 5). Das Signaturverfahren wird auf die übliche Art und Weise ausgewählt und initialisiert (Zeilen 6 7). Die zu signierende Nachricht wird mit der Methode update() verarbeitet (Zeile 9). Die Nachricht wird mit der Methode sign() signiert (Zeile 10). Abschließend wird die Signatur als Base64-String kodiert. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 34 / 36
35 Digitale Signaturen Zusammenfassung Zusammenfassung Die Programmiersprache Java beinhaltet zahlreiche APIs für kryptographische Mechanismen. Die Implementierung von kryptographischen Funktionen wird über Security Provider bereitgestellt. Der im Java SE Development Kit enthaltene Security Provider beinhaltet Implementierung der wichtigsten in der Praxis verwendeten kryptographischen Verfahren. Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 35 / 36
36 Literatur Literatur I [Ora18a] Oracle, Hrsg. Java Security Standard Algorithm Names. Java JDK 11 Documentation url: specs/security/standard-names.html (besucht am ). [Ora18b] Oracle, Hrsg. Security Developer s Guide. Java JDK 11 Documentation url: https: //docs.oracle.com/en/java/javase/11/security/javasecurity-overview1.html (besucht am ). Prof. Dr. C. Karg (HS Aalen) Sichere Programmierung Kryptographie mit Java 36 / 36
FH Schmalkalden Fachbereich Informatik. Kolloquium 21. März 2002
FH Schmalkalden Fachbereich Informatik http://www.informatik.fh-schmalkalden.de/ 1/17 Kolloquium 21. März 2002 Entwicklung eines JCA/JCE API konformen Kryptographischen Service Providers für HBCI unter
Denn es geh t um ihr Geld: Kryptographie
Denn es geht um ihr Geld: Kryptographie Ilja Donhauser Inhalt Allgemeines Symmetrisch Asymmetrisch Hybridverfahren Brute Force Primzahlen Hashing Zertifikate Seite 2 Allgemeines Allgemeines Wissenschaft
Kryptographische Protokolle
Kryptographische Protokolle Lerneinheit 4: Schlüsselvereinbarung Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2017 8.5.2017 Einleitung Einleitung In dieser Lerneinheit
Kryptographie für CTFs
Kryptographie für CTFs Eine Einführung KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kitctf.de Einführung Cryptography is the practice and study of techniques for secure communication
Grundlagen der Verschlüsselung und Authentifizierung (1)
Grundlagen der Verschlüsselung und Authentifizierung (1) Proseminar im SS 2010 Friedrich-Alexander-Universität Erlangen-Nürnberg 18.05.2010 1 Motivation
Kryptographie. Nachricht
Kryptographie Kryptographie Sender Nachricht Angreifer Empfänger Ziele: Vertraulichkeit Angreifer kann die Nachricht nicht lesen (Flüstern). Integrität Angreifer kann die Nachricht nicht ändern ohne dass
CodeMeter. Ihr Führerschein zum Kryptographie-Experten. Rüdiger Kügler Professional Services
CodeMeter Ihr Führerschein zum Kryptographie-Experten Rüdiger Kügler Professional Services [email protected] Alvaro Forero Security Expert [email protected] 04.09.2014 Ihr Führerschein zum
2.4 Diskussion und Literaturempfehlungen Lessons Learned A ufgaben Literatur... 62
Inhaltsverzeichnis 1 Einführung in die Kryptografie und Datensicherheit... 1 1.1 Überblick über die Kryptografie (und dieses Buch)... 1 1.2 Symmetrische Kryptografie... 4 1.2.1 Grundlagen... 4 1.2.2 Die
6.3 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen. die Nachricht erreicht den Empfänger so, wie sie abgeschickt wurde
6.3 Authentizität Zur Erinnerung: Geheimhaltung: nur der Empfänger kann die Nachricht lesen Integrität: die Nachricht erreicht den Empfänger so, wie sie abgeschickt wurde Authentizität: es ist sichergestellt,
EINIGE GRUNDLAGEN DER KRYPTOGRAPHIE
EINIGE GRUNDLAGEN DER KRYPTOGRAPHIE Steffen Reith [email protected] 22. April 2005 Download: http://www.thi.uni-hannover.de/lehre/ss05/kry/folien/einleitung.pdf WAS IST KRYPTOGRAPHIE? Kryptographie
Kryptographie für CTFs
Kryptographie für CTFs Eine Einführung KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kitctf.de Einführung Cryptography is the practice and study of techniques for secure communication
VI. Public-Key Kryptographie
VI. Public-Key Kryptographie Definition 2.1 Ein Verschlüsselungsverfahren ist ein 5-Tupel (P,C,K,E,D), wobei 1. P die Menge der Klartexte ist. 2. C die Menge der Chiffretexte ist. 3. K die Menge der Schlüssel
Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik
Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Krytographie Techniken Symmetrische Verschlüsselung( One-time Pad,
Kryptographie - eine mathematische Einführung
Kryptographie - eine mathematische Einführung Rosa Freund 28. Dezember 2004 Überblick Grundlegende Fragestellungen Symmetrische Verschlüsselung: Blockchiffren, Hashfunktionen
Angewandte Kryptographie Praktikum 4
Angewandte Kryptographie Praktikum 4 Thema: Public Key Kryptosysteme Wintersemester 2018/2019 Prof. Dr. Christoph Karg Hochschule Aalen Ziel dieses Praktikums ist die Implementierung des Rabin- und RSA-Kryptosystems
Kryptographie. ein erprobter Lehrgang. AG-Tagung Informatik, April 2011 Alfred Nussbaumer, LSR für NÖ. LSR für NÖ, 28. April 2011 Alfred Nussbaumer
Kryptographie ein erprobter Lehrgang AG-Tagung Informatik, April 2011 Alfred Nussbaumer, LSR für NÖ 1 Variante: Kryptographie in 5 Tagen Ein kleiner Ausflug in die Mathematik (Primzahlen, Restklassen,
Symmetrische und Asymmetrische Kryptographie. Technik Seminar 2012
Symmetrische und Asymmetrische Kryptographie Technik Seminar 2012 Inhalt Symmetrische Kryptographie Transpositionchiffre Substitutionchiffre Aktuelle Verfahren zur Verschlüsselung Hash-Funktionen Message
Hashfunktionen und MACs
3. Mai 2006 Message Authentication Code MAC: Message Authentication Code Was ist ein MAC? Der CBC-MAC Der XOR-MAC Kryptographische Hashfunktionen Iterierte Hashfunktionen Message Authentication Code Nachrichten
Angewandte Kryptographie
14.02.2017 Angewandte Kryptographie 1 Angewandte Kryptographie Rüdiger Kügler Security Expert [email protected] 14.02.2017 Angewandte Kryptographie 2 Legendäre Fehler Verschlüsseltes Geschlecht
Praktikum IT-Sicherheit
IT-Sicherheit Praktikum IT-Sicherheit - Versuchshandbuch - Aufgaben Kryptografie II In diesem zweiten Versuch zur Kryptografie gehen wir etwas genauer auf die Art und Weise der Verschlüsselung mit der
Webseiten mit HTTPS bereitstellen und mit HSTS sichern
Webseiten mit HTTPS bereitstellen und mit HSTS sichern https://www.my-it-brain.de 10. März 2018 Inhalt 1 Inhalt 1 2 Inhalt 1 2 3 Inhalt 1 2 3 4 Inhalt 1 2 3 4 5 Ziele von HTTPS Inhalt Authentizität Vertraulichkeit
Regine Schreier
Regine Schreier 20.04.2016 Kryptographie Verschlüsselungsverfahren Private-Key-Verfahren und Public-Key-Verfahren RSA-Verfahren Schlüsselerzeugung Verschlüsselung Entschlüsselung Digitale Signatur mit
Kryptografische Hashfunktionen
Kryptografische Hashfunktionen Andreas Spillner Kryptografie, SS 2018 Wo verwenden wir kryptografische Hashfunktionen? Der Hashwert H(x) einer Nachricht x wird oft wie ein Fingerabdruck von x vewendet.
Konstruktion von MACs. Message Authentication Codes. Sicherheitsmodell CBC-MAC
Message Authentication Codes Entspricht Hashfunktionen mit geheimen Schlüsseln. h : K M H, MAC = h k (m). h parametrisierte Hashfunktion. m Nachricht. k geheimer Schlüssel. Mit der Nachricht m wird h k
Kryptographie und IT-Sicherheit
Joachim Swoboda Stephan Spitz Michael Pramateftakis Kryptographie und IT-Sicherheit Grundlagen und Anwendungen Mit 115 Abbildungen STUDIUM VIEWEG+ TEUBNER 1 Ziele und Wege der Kryptographie 1 1.1 Historische
Kurs 1866 Sicherheit im Internet
Fachbereich Informatik Lehrgebiet Technische Informatik II Kurs 1866 Sicherheit im Internet Lösungsvorschläge zur Hauptklausur im SS 2003 am 20.09.2003 Aufgabe 1 (7 Punkte) Warum sollen Passwörter auch
2.7 Digitale Signatur (3) 2.7 Digitale Signatur (4) Bedeutung der digitalen Signatur. Bedeutung der digitalen Signatur (fortges.)
2.7 Digitale Signatur (3) Bedeutung der digitalen Signatur wie Unterschrift Subjekt verknüpft Objekt mit einer höchst individuellen Marke (Unterschrift) Unterschrift darf nicht vom Dokument loslösbar sein
IT-Sicherheit: Kryptographie
IT-Sicherheit: Kryptographie Kryptologie = Kryptographie + Kryptoanalyse! Kryptographie: Methoden zur Ver- und Entschlüsselung von Nachrichten und damit zusammenhängende Methoden! Kryptoanalyse: Entschlüsselung
Einführung in die Kryptographie. 20.6.2011, www.privacyfoundation.ch
Einführung in die Kryptographie 20.6.2011, www.privacyfoundation.ch Kryptographie Name kryptós: verborgen, geheim gráphein: schreiben Verschlüsselung Text so umwandeln, dass man ihn nur noch entziffern/lesen
Übungen zur Vorlesung Systemsicherheit
Übungen zur Vorlesung Systemsicherheit Symmetrische Kryptographie Tilo Müller, Reinhard Tartler, Michael Gernoth Lehrstuhl Informatik 1 + 4 17. November 2010 c (Lehrstuhl Informatik 1 + 4) Übungen zur
Homomorphe Verschlüsselung
Homomorphe Verschlüsselung Definition Homomorphe Verschlüsselung Sei Π ein Verschlüsselungsverfahren mit Enc : G G für Gruppen G, G. Π heißt homomorph, falls Enc(m 1 ) G Enc(m 2 ) eine gültige Verschlüsselung
VI.4 Elgamal. - vorgestellt 1985 von Taher Elgamal. - nach RSA das wichtigste Public-Key Verfahren
VI.4 Elgamal - vorgestellt 1985 von Taher Elgamal - nach RSA das wichtigste Public-Key Verfahren - besitzt viele unterschiedliche Varianten, abhängig von zugrunde liegender zyklischer Gruppe - Elgamal
Message Authentication Codes. Konstruktion von MACs. Hash-then-Encrypt. Sicherheitsmodell
Message Authentication Codes Entspricht Hashfunktionen mit geheimen Schlüsseln. h : K M H, MAC = h k (m). h parametrisierte Hashfunktion. m Nachricht. k geheimer Schlüssel. Mit der Nachricht m wird h k
WS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
Ein Embedded System zur Digitalen Signatur nach dem DICOM-Standard
Ein Embedded System zur Digitalen Signatur nach dem DICOM-Standard DICOM-Treffen, 05. Juli 2003 in Mainz B. Schütze, M. Kroll, T. Geisbe, H.-G. Lipinski, T. J. Filler Sie erwartet im Folgenden Motivation
Algorithmische Kryptographie
Algorithmische Kryptographie Walter Unger Lehrstuhl für Informatik I 16. Februar 2007 Einführung und moderne Sysmetrische Verfahren 1 Definitionen Verschlüsselung und Entschlüsselung, Anforderungen 2 Einfache
Material zum Versuch. Kryptografie mit Bouncy Castle
zusammengestellt von: Mark Manulis ([email protected]) Version 1.0 Grundpraktikum für IT-Sicherheit Material zum Versuch Kryptografie mit Bouncy Castle Lehrstuhl für Netz- und Datensicherheit ruhr-universität
Sicherheit von PDF-Dateien
Sicherheit von PDF-Dateien 27.10.2005 Albrecht-Dürer-Schule, Düsseldorf Alexander Jacob BU Wuppertal Berechtigungen/Nutzungsbeschränkungen zum Drucken Kopieren und Ändern von Inhalt bzw. des Dokumentes
Kryptografische Protokolle
Kryptografische Protokolle Lerneinheit 6: Elektronisches Geld Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 14.6.2016 Anforderungen an elektronisches Geld Sicherheit:
Kryptologie. K l a u s u r WS 2006/2007, Prof. Dr. Harald Baier
Kryptologie K l a u s u r WS 2006/2007, 2007-02-01 Prof. Dr. Harald Baier Name, Vorname: Matrikelnummer: Hinweise: (a) Als Hilfsmittel ist nur der Taschenrechner TI-30 zugelassen. Weitere Hilfsmittel sind
Institut für Theoretische Informatik Jun.-Prof. Dr. D. Hofheinz. Übungsblatt 5. pk = (g, y) und sk = (g, x). ? = y H(t m) t. g s
Institut für Theoretische Informatik Jun.-Prof. Dr. D. Hofheinz Stammvorlesung Sicherheit im Sommersemester 2014 Übungsblatt 5 Hinweis: Übungsblätter können freiwillig bei Jessica Koch, Raum 256, Geb.
Inhaltsverzeichnis. Wolfgang Ertel. Angewandte Kryptographie. ISBN (Buch): ISBN (E-Book):
Inhaltsverzeichnis Wolfgang Ertel Angewandte Kryptographie ISBN (Buch): 978-3-446-42756-3 ISBN (E-Book): 978-3-446-43196-6 Weitere Informationen oder Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-42756-3
Einführung in die Kryptographie
Ä Johannes Buchmann Einführung in die Kryptographie Dritte, erweiterte Auflage Inhaltsverzeichnis 1. Einleitung 1 2. Ganze Zahlen 3 2.1 Grundlagen 3 2.2 Teilbarkeit 4 2.3 Darstellung ganzer Zahlen 5 2.4
Einführung in die Kryptographie
Johannes Buchmann Einführung in die Kryptographie Fünfte Auflage \ - ' '' "'-'"*' : ) ^ Springer Inhaltsverzeichnis 1. Einleitung, : 1 2. Ganze Zahlen 3 2.1 Grundlagen 3 2.2 Teilbarkeit 4 2.3 Darstellung
Netzsicherheit 9: Das Internet und Public-Key-Infrastrukturen
Netzsicherheit 9: Das Internet und Public-Key-Infrastrukturen Das TCP/IP-Schichtenmodell Session 2 / 1 Das TCP/IP-Schichtenmodell (2) Modem Payload Payload Payload Payload http http http http TCP TCP TCP
2.4 Hash-Prüfsummen Hash-Funktion message digest Fingerprint kollisionsfrei Einweg-Funktion
2.4 Hash-Prüfsummen Mit einer Hash-Funktion wird von einer Nachricht eine Prüfsumme (Hash-Wert oder message digest) erstellt. Diese Prüfsumme besitzt immer die gleiche Länge unabhängig von der Länge der
Kryptografie Die Mathematik hinter den Geheimcodes
Kryptografie Die Mathematik hinter den Geheimcodes Rick Schumann www.math.tu-freiberg.de/~schumann Institut für Diskrete Mathematik und Algebra, TU Bergakademie Freiberg Akademische Woche Sankt Afra /
Systemsicherheit 8: Das Internet und Public-Key-Infratrukturen
Systemsicherheit 8: Das Internet und Public-Key-Infratrukturen Das TCP/IP-Schichtenmodell Das TCP/IP-Schichtenmodell (2) Modem Payload Payload Payload Payload http http http http TCP TCP TCP IP IP IP PPP
VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren
VI.3 RSA - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman - vorgestellt 1977 - erstes Public-Key Verschlüsselungsverfahren - auch heute noch das wichtigste Public-Key Verfahren 1
Aufbau & Analyse von Industrie-Netzwerken
Aufbau & Analyse von Industrie-Netzwerken Lerneinheit 1: Arbeiten mit Wireshark Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 13.4.2016 Gliederung Übersicht Diese
Bruce Schneier, Applied Cryptography
Gnu Privacy Guard In der Praxis gibt es zwei Formen von Kryptographie: Mit der einen Form der Kryptographie können Sie Ihre Dateien vielleicht vor Ihrer kleinen Schwester schützen, mit der anderen Form
OPC UA: Ein kritischer Vergleich der IT-Sicherheitsoptionen
OPC UA: Ein kritischer Vergleich der IT-Sicherheitsoptionen Melanie Gallinat 1, Stefan Hausmann 2, Markus Köster 1, Stefan Heiss 2 Weidmüller Gruppe 1 Klingenbergstraße 16 32758 Detmold, Deutschland Hochschule
Verlässliche Verteilte Systeme 1. Prof. Dr. Felix Gärtner. Basiswissen Kryptographie
Verlässliche Verteilte Systeme 1 Angewandte IT Robustheit und IT Sicherheit Vorlesung im Wintersemester 2004/2005 Prof. Dr. Felix Gärtner Basiswissen Kryptographie Lehr und Forschungsgebiet Informatik
Digitale Signaturen. Einführung Gunnar Hartung, Björn Kaidel. FAKULTÄT FÜR INFORMATIK, INSTITUT FÜR THEORETISCHE INFORMATIK
Digitale Signaturen Einführung Gunnar Hartung, Björn Kaidel FAKULTÄT FÜR INFORMATIK, INSTITUT FÜR THEORETISCHE INFORMATIK 0 2016-10-21 G. Hartung, B. Kaidel Digitale Signaturen: Einführung KIT Die Forschungsuniversität
Entwicklung sicherer Software
Entwicklung sicherer Software SS 2017 Prof. Dr. holger.schmidt[at]hs-duesseldorf.de Hochschule Düsseldorf Fachbereich Medien Professur für Informatik, insb. IT-Sicherheit http://medien.hs-duesseldorf.de/schmidt
Verbindlichkeit: Ein Sender sollte nachträglich nicht leugnen können, eine Nachricht gesendet zu haben.
Allgemein Ein Kryptosystem besteht aus einem Algorithmus einschließlich aller möglichen Klartexte, Chiffretexte und Schlüssel. Neben der Geheimhaltung soll Kryptographie noch andere Ansprüche erfüllen:
Diskrete Strukturen Kapitel 5: Algebraische Strukturen (RSA-Verfahren)
WS 2016/17 Diskrete Strukturen Kapitel 5: Algebraische Strukturen (RSA-Verfahren) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16
Benutzer- und Datensicherheit. Ralf Abramowitsch Vector Informatik GmbH [email protected]
Benutzer- und Datensicherheit Ralf Abramowitsch Vector Informatik GmbH [email protected] Authentifizierung vs. Autorisierung IIdentity vs. IPrincipal Verschlüsseln und Entschlüsseln
Digitale Signaturen. Einführung Björn Kaidel. FAKULTÄT FÜR INFORMATIK, INSTITUT FÜR THEORETISCHE INFORMATIK
Digitale Signaturen Einführung Björn Kaidel FAKULTÄT FÜR INFORMATIK, INSTITUT FÜR THEORETISCHE INFORMATIK 0 2017-10-20 B. Kaidel Digitale Signaturen: Einführung KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Das RSA-Verfahren. Proseminar Kryptographische Protokolle SS Armin Litzel
in der Praxis Proseminar Kryptographische Protokolle SS 2009 5.5.2009 in der Praxis Gliederung 1 Grundlegendes über RSA 2 in der Praxis Allgemeine Vorgehensweise zur Verschlüsselung Signieren mit RSA 3
Nachrichtenintegrität
Nachrichtenintegrität!!Erlaubt den Komunikationspartnern die Korrektheit Folien und Inhalte aus II und Authentizität der Nachricht zu überprüfen Networking: A - Inhalt ist unverändert Top Down Approach
Vorlesung Sicherheit
Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 15.05.2017 1 / 25 Überblick 1 Hashfunktionen Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel: RSA
SSL-Protokoll und Internet-Sicherheit
SSL-Protokoll und Internet-Sicherheit Christina Bräutigam Universität Dortmund 5. Dezember 2005 Übersicht 1 Einleitung 2 Allgemeines zu SSL 3 Einbindung in TCP/IP 4 SSL 3.0-Sicherheitsschicht über TCP
Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik
Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Kryptographie Techniken Symmetrische Verschlüsselung (One-time Pad,
Vorlesung Sicherheit
Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 12.05.2014 1 / 26 Überblick 1 Hashfunktionen Erinnerung Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel:
Ideen und Konzepte der Informatik Kryptographie
Ideen und Konzepte der Informatik Kryptographie und elektronisches Banking Antonios Antoniadis (basiert auf Folien von Kurt Mehlhorn) 4. Dec. 2017 4. Dec. 2017 1/30 Übersicht Zwecke der Kryptographie Techniken
Hintergründe zur Kryptographie
3. Januar 2009 Creative Commons by 3.0 http://creativecommons.org/licenses/by/3.0/ CAESAR-Chiffre Vigenère CAESAR-Chiffre Vigenère Einfache Verschiebung des Alphabets Schlüsselraum: 26 Schlüssel Einfaches
Kryptografie und Public-Key-lnfrastrukturen im Internet
Klaus Schmeh Kryptografie und Public-Key-lnfrastrukturen im Internet 2., aktualisierte und erweiterte Auflage Пп dpunkt.verlag xv I Inhaltsverzeichnis Teil 1 Wozu Kryptografie im Internet? 1 Einleitung
Message Authentication Codes
Message Authentication Codes Fabian Eltz / Matthias Schubert Seminar Kryptographie und Datensicherheit WS 06/07 Nested 1. Message Authentication Code () 2. 3. Nested 4. 5. 6. 7. 8. 9. - F. Eltz, M. Schubert
Nachtrag vom zur Fortschreibung der 301-Vereinbarung vom
Nachtrag vom 22.02.2016 zur Fortschreibung der 301-Vereinbarung vom 20.03.2014 mit Wirkung zum 01.03.2016 Erläuterungen zu einzelnen Nachträgen Nachtrag 1: Gemäß der Vorgaben zu kryptographischen Verfahren
Einführung in die asymmetrische Kryptographie
!"#$$% Einführung in die asymmetrische Kryptographie Dipl.-Inform. Mel Wahl Prof. Dr. Christoph Ruland Universität Siegen Institut für digitale Kommunikationssysteme Grundlagen Verschlüsselung Digitale
Digitale Signaturen in Theorie und Praxis
Digitale Signaturen in Theorie und Praxis Sicherheitstage SS/05 Birgit Gersbeck-Schierholz, RRZN Gliederung Sicherheitsziele der digitalen Signatur Digitale Zertifikate in der Praxis Kryptografische Techniken
Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik
Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Kryptographie Techniken Symmetrische Verschlüsselung( One-time Pad,
Kurze Einführung in kryptographische Grundlagen.
Kurze Einführung in kryptographische Grundlagen. Was ist eigentlich AES,RSA,DH,ELG,DSA,DSS,ECB,CBC [email protected] GPG-Fingerprint: D19E 04A8 8895 020A 8DF6 0092 3501 1A32 491A 3D9C git clone
Detailspezifikationen
1 von 6 1. Standards Detailspezifikationen Die folgenden Standards werden im Dokument unter den folgenden Abkürzungen verwendet: Anlage - BASE32, BASE64, BASE64-URL: Network Working Group: Request for
