IT-Security. Teil 16: Hash-Verfahren

Größe: px
Ab Seite anzeigen:

Download "IT-Security. Teil 16: Hash-Verfahren"

Transkript

1 IT-Security Teil 16: Hash-Verfahren

2 Literatur [16-1] [16-2] [16-3] [16-4] [16-5] [16-6] 2

3 Übersicht Hash-Funktionen Geburtstagsangriff Beispiel: SHA-256 3

4 Definition Hash-Funktion I Hash-Funktion = Funktion h(x), für die folgendes gilt: Kompression: Abbildung eines beliebigen Bitstrings auf einen Ausgabewert mit einer festen in der Regel kurzen Länge. Dieser ist der Hash-Wert. Effizienz: Für jeden Eingabewert x lasst sich die Funktion h(x) mit geringem Aufwand berechnen. Das muss nicht umgekehrt gelten. Beispiele: Berechnung des Paritätsbits: Rechnernetze Cyclic Redundancy Check (CRC): Rechnernetze, Plattenblöcke Indizierung von Tabellen einer relationalen Datenbank Zugriff auf Symboltabellen innerhalb von Compilern 4

5 Definition Hash-Funktion II Kryptographische Hash-Funktion = Hash-Funktion h(x), für die zusätzlich noch folgendes gilt: Unbestimmbarkeit von Urbildern: Nur mit erheblichen Aufwand ist das x für ein gegebenes y bei y=h(x) zu bestimmen. Unbestimmbarkeit eines weiteren Urbildes: Nur mit erheblichen Aufwand ist für ein gegebenes x ein weiteres x' zu bestimmen, wobei h(x)=h(x') gilt. Kollisionsfreiheit (Collision Resistance): Nur mit erheblichen Aufwand sind zwei beliebige x und x' zu bestimmen, wobei h(x)=h(x') gilt. Der kryptographische Schutz basiert auf dem hohen Aufwand in den letzten drei Forderungen. Diese Asymmetrie in der Effizienz führt dazu, dass manchmal kryptographische Hash-Funktionen als One-Way-Verfahren bezeichnet werden. Siehe dazu: 5

6 Bemerkungen Kollision = Eine Kollision liegt vor, wenn derselbe Hash-Wert anhand verschiedener Urbilder erzeugt werden kann. Da das Urbild x (fast) immer größer ist als der Hash-Wert, z.b. 160 bit, sind Kollisionen prinzipiell nie zu vermeiden: Beispiel: Block von 1 kbyte: *8 Bit-Kombinationen werden auf Möglichkeiten abgebildet. Praktisch haben Kollisionen nur in wenigen Fällen Relevanz, da menschlich lesbare Texte, z. B. Verträge, nur eine sehr kleine Teilmenge aller Bitkombinationen benutzen. Der Schutz basiert auf dem hohen Aufwand in einem konkreten Fall eine Kollision zu erzeugen, nicht darauf, ob Kollisionen überhaupt möglich sind. 6

7 Struktur der Hash-Funktionen (Konzept) 7

8 Ergänzungen f() ist eine Kompressionsfunktion. Bitlänge des Hash-Wertes sollte mindestens 160 bit sein. Implementiert werden diese Funktionen, indem ein Register mit der Hash-Wertlänge (mind. 160 bit) in Schleifen (Runden) blockweise verknüpft wird: 8

9 Geburtstagsangriff I Idee Wie viele Personen müssen sich in einem Raum befinden, dass zwei Personen mit 50%iger Wahrscheinlichkeit am selben Tag Geburtstag haben? Antwort: 23 Allgemeiner: Wie viele Elemente müssen aus einer Menge mit n Elementen ausgewählt werden, damit mit einer Wahrscheinlichkeit 0,5 zwei identische gefunden werden? Antwort: Ca. Wurzel aus n Anders: Wie viele Texte müssen zufällig erstellt werden, damit zwei beliebige mit 50%iger Wahrscheinlichkeit denselben Hash- Wert besitzen? Bei einer Hash-Wertlänge von 160 bit: 2 80, was als nicht realisierbar gilt. 9

10 Wie verläuft der Geburtstagsangriff? 1. Es gibt zwei Nachrichten m 1 und m 2, wobei m 1 für den Angreifer schlecht und m 2 gut ist. 2. Der Angreifer variiert m 1 und m 2 - z. B. Einfügen von Blanks oder Zeichen, die mit einem nachfolgenden Backspace unsichtbar gemacht werden o.ä. - und bestimmt die Hash- Werte. 3. Nach durchschnittlich 2 r/2 Versuchen, wobei r die Länge des Hash-Wertes ist, hat der Angreifer zwei Variationen m 1 ' und m 2 ', gefunden, die denselben Hash-Wert besitzen. 4. Nun lässt der Angreifer m 1 ' unterschreiben. 5. Der Angreifer tauscht den unterschriebenen Text m 1 ' mit dem anderen Text m 2 ' aus... 10

11 Geburtstagsangriff II Was lehrt uns das? Der Unterschreibende sollte vor der Leistung der Unterschrift den Text kosmetisch, z.b. durch willkürliches Einfügen von Leerzeichen verändern. Das Besagte bezog sich auf ASCII-Texte (siehe Backspace etc.). Mit Textsystemen ist es noch schlimmer, da auf der Binärfile -Ebene "unsichtbar" Daten eingefügt werden können... Siehe dazu: 11

12 Einfache Hash-Funktionen Einfachstes Verfahren: H(m) = b 1 XOR b 2 XOR... XOR b n Blockweises Exclusiv-Oder aller Blöcke der Nachricht m Ergebnis: Einfache longitudinale Parität Nicht besonders sicher bzw. wirksam Anwendungsbeispiel: Feststellung von Bitkippern Verbesserung: 1. Hash-Register:=0 2. Für jeden n-bit-block: Verschiebung der Hash-Registers um 1 Bit nach links Register:= Register XOR Block Hohes Maß an Erkennung von Bitkippern Probleme beider Verfahren: Es lässt sich leicht eine andere Nachricht mit demselben Hash-Wert generieren. 12

13 Secure Hash Algorithm (SHA) Version Version SHA-0 (fehlerhaft) 1995 SHA SHA2-Varianten: SHA-256, SHA-384, SHA SHA SHA-3-Varianten: SHA3-224, SHA3-256, SHA3-384, SHA3-512 Sollten nicht benutzt werden Empfehlung Algorithmus Hash-Size Word-Size Block-Size Runden SHA SHA SHA SHA

14 SHA-256 Globaler Algorithmus func SHA-256(Message m) { Initial_HashArray(); while not End-of-Information(m) { M:= getnextblock(m); if last Block(M) { padding_block(m); MSG-Scheduling(M); Initial_Register(); MSG-Compression(); Hash-Value(); return H[0..7]; 14

15 SHA-256 Initialisierung des Hash-Arrays proc Initial_HashArray { H[0]:= 0x6a09e667; H[1]:= 0xbb67ae85; H[2]:= 0x3c6ef372; H[3]:= 0xa54ff53a; H[4]:= 0x510e527f; H[5]:= 0x9b05688c; H[6]:= 0x1f83d9ab; H[7]:= 0x5be0cd19; Initialisierung der ersten 8 32-Bit-Worte des Hash-Wertes in einem Array H[0..7] Die Werte sind die Stellen hinter dem Komma der 2.Wurzel aus den ersten 8 Primzahlen, jeweils als 32-bit-Werte. 15

16 SHA-256 Konstanten K Dann wird noch ein Array K[0..79] von 64 bit-konstanten benötigt. Diese Zahlen sind die Stellen hinter dem Komma der 3. Wurzel aus den ersten 80 Primzahlen. Quelle: NIST.FIPS

17 SHA Padding n*512 bit l bit k bit 64 bit Message 1 0 Length Eine 1 hinten anfügen Dann k-mal 0 anfügen, wobei l+k (mod 512); es wird das kleinste k benutzt Am Ende die Länge der Nachricht als 64 bit-wert 17

18 SHA Funktionen Name Funktion Ch() ch( x, y, z) = (x AND y) XOR ( (NOT x) AND z) Maj maj( x, y, z) = (x AND y) XOR (x AND z) XOR (y AND z) Σ 0 (x) BSIG0(x) = rotr(2,x) XOR rotr(13,x) XOR rotr(22,x) Σ 1 (x) σ 0 (x) σ 1 (x) BSIG1(x) = rotr(6,x) XOR rotr(11,x) XOR rotr(25,x) SSIG0(x) = rotr(7,x) XOR rotr(18,x) XOR shr(3,x) SSIG1(x) = rotr(17,x) XOR rotr(19,x) XOR shr(10,x) shr(n,x) Shift right x>>n rotr(n,x) Rotate right (x>>n) (x<<(w-n)) Das gilt für w=32 bit-worte 18

19 SHA-256 Nachricht M (n*512 bit) Bei jeder Bearbeitung eines Blocks wird das Array W gesetzt. Ein Block von 512 bit einer Nachricht wird als Array M[0..15] von jeweils 32 bit-worten dargestellt. M[0] sind daher die ersten 4 Bytes enthalten. Das Ganze im Big- Endian-Format. Der Block wird nun in das Array W[0..63] expandiert (Message Scheduling). Mit diesen W-Werten wird gearbeitet. Das Array W wird wie folgt gefüllt: proc MSG-Scheduling(Block M) { for j:= 0 to 15 { W[j]:= M[j]; for j:= 16 to 63 { W[j]:= SSIG1(W[j-2])+W[j-7]+SSIG0(W[j-15])+W[j-16]; + ist die normale 32 bit-addition 19

20 SHA-256 Kompressionsfunktion I A (H 0 ) B (H 1 ) C (H 2 ) D (H 3 ) E (H 4 ) F (H 5 ) G (H 6 ) H (H 7 ) (1x initialisiert) 1. Runde A B C D E F G H Die Register A bis H sind temporäre Variablen, die in jeder Runde überschrieben werden. Sie werden einmalig mit H[0..7] initialisiert. proc Initial_Register { A:= H[0]; B:= H[1]; C:= H[2]; D:= H[3]; E:= H[4]; F:= H[5]; G:= H[6]; H:= H[7]; 20

21 SHA-256 Kompressionsfunktion II proc MSG-Compression { for i:= 0 to 63 { T[0]:= H+BSIG1(E)+ch(E,F,G)+K[i]+W[i]; T[1]:= BSIG0(A)+maj(A,B,C); H:= G; G:= F; F:= E; E:= D+T[0]; D:= C; C:= B; B:= A; A:= T[0]+T[1]; Hier werden die 64 Runden unter Benutzung des Arrays W mit der Nachricht durchgeführt. In den Registern A bis H steht dann das Ergebnis. 21

22 SHA-256 Kompressionsfunktion III A B C D E F G H maj ch + K BSIG0 BSIG1 + T[1] W + + T[0] A B C D E F G H 22

23 SHA-256 Berechnung des Hash-Werts proc Hash-Value { H[0]:= A+H[0]; H[1]:= B+H[1]; H[2]:= C+H[2]; H[3]:= D+H[3]; H[4]:= E+H[4]; H[5]:= F+H[5]; H[6]:= G+H[6]; H[7]:= H+H[7]; Globaler Algorithmus func SHA-256(Message m) { Initial_HashArray(); while not End-of-Information(m) { M:= getnextblock(m); if last Block(M) { padding_block(m); MSG-Scheduling(M); Initial_Register(); MSG-Compression(); Hash-Value(); return H[0..7]; Die anderen Varianten von SHA2 arbeiten sehr ähnlich zu SHA

24 Empfehlungen Die Länge des Hash-Wertes sollte mindestens 256 bit sein, also sind folgende Verfahren zu empfehlen: SHA-256, SHA-384 und SHA-512 SHA3-256, SHA3-384 und SHA3-512 Langfristig sollte auf SHA3 umgestiegen werden. 24

25 Nach dieser Anstrengung etwas Entspannung... 25

Kapitel 7: Kryptographische Hash- Funktionen. IT-Sicherheit

Kapitel 7: Kryptographische Hash- Funktionen. IT-Sicherheit Kapitel 7: Kryptographische Hash- Funktionen IT-Sicherheit Einschub: 31C3 31. Chaos Communications Congress 27. bis 30.12.14 in Hamburg Jährliche Konferenz des Chaos Computer Club Breites Themenspektrum

Mehr

Hashfunktionen und MACs

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

Mehr

Kryptografische Hashfunktionen

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.

Mehr

Geburtstagsangriff. Schneller Hash-Kollisionen erzeugen. Philipp Offensand, Samuel Michel, Theodor van Nahl, 12. Februar 2014

Geburtstagsangriff. Schneller Hash-Kollisionen erzeugen. Philipp Offensand, Samuel Michel, Theodor van Nahl, 12. Februar 2014 Geburtstagsangriff Schneller Hash-Kollisionen erzeugen. Philipp Offensand, Samuel Michel, Theodor van Nahl, 12. Februar 2014 Inhalt Geburtstaparadoxon Geburtstagsangriff Gegenmaßnahmen Geburtstaparadoxon

Mehr

Password: Mein Geheimnis in Händen Dritter

Password: Mein Geheimnis in Händen Dritter Password: Mein Geheimnis in Händen Dritter 4. April 2014 Die Staatsanwaltschaft Verden (Aller) ist bei Ermittlungen im Internet auf einen Datensatz von rund 18 Millionen Mailadressen und zugehörigen Passworten

Mehr

Konstruktion von MACs. Message Authentication Codes. Sicherheitsmodell CBC-MAC

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

Mehr

Hash-Algorithmen. Manuel Pöter TU-Wien - e November 2004

Hash-Algorithmen. Manuel Pöter TU-Wien - e November 2004 Hash-Algorithmen Manuel Pöter TU-Wien - e0226003 [email protected] November 2004 Kurzfassung Dieser Artikel liefert einen kurzen Überblick über Funktionsweise und Anwendungsgebiete von Hash-Algorithmen

Mehr

IT-Security. Teil 8b: Rechnen mit beliebiger Genauigkeit Algorithmen

IT-Security. Teil 8b: Rechnen mit beliebiger Genauigkeit Algorithmen IT-Security Teil 8b: Rechnen mit beliebiger Genauigkeit Algorithmen 06.06.17 1 Überblick Potenzieren Quadrieren Euklid'scher Algorithmus In den meisten Fällen wird nur mit positiven Werten gerechnet. Bei

Mehr

Message Authentication Codes. Konstruktion von MACs. Hash-then-Encrypt. Sicherheitsmodell

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

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Jörn Müller-Quade ITI, KIT basierend auf den Folien von Dennis Hofheinz, Sommersemester 2014 02.05.2016 1 / 22 Überblick 1 Hashfunktionen Erinnerung Formalisierung Die Merkle-Damgård-Konstruktion

Mehr

Kryptographische Hashfunktionen

Kryptographische Hashfunktionen Kryptographische Hashfunktionen Proseminar/Seminar Kryptographie und Datensicherheit SoSe 2009 Universität Potsdam Jan Jantzen Seminar Kyptographie und Datensicherheit SoSe 09 1 Gliederung Datenintegrität

Mehr

IT-Security. Teil 15: Zufall

IT-Security. Teil 15: Zufall IT-Security Teil 15: Zufall 09.05.17 1 Literatur [15-1] http://de.wikipedia.org/wiki/kryptographisch_sicherer_zufallszahlen generator [15-2] https://gnupg.org/documentation/manuals/gcrypt/fips-prng- Description.html

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 30.04.2018 1 / 35 Überblick 1 Hashfunktionen Motivation Formalisierung Die Merkle-Damgård-Konstruktion (Weitere) Angriffe auf Hashfunktionen Zusammenfassung

Mehr

Verteilte Kyroptographie

Verteilte Kyroptographie Verteilte Kyroptographie Klassische kryptographische Verfahren Kryptographische Hash-Funktionen Public-Key-Signaturen Verteilte Mechanismen Schwellwert-Signaturen Verteilt generierte Zufallszahlen Verteilte

Mehr

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen

Mehr

Wiederholung: Informationssicherheit Ziele

Wiederholung: Informationssicherheit Ziele Wiederholung: Informationssicherheit Ziele Vertraulichkeit : Schutz der Information vor unberechtigtem Zugriff bei Speicherung, Verarbeitung und Übertragung Methode: Verschüsselung symmetrische Verfahren

Mehr

Message Authentication Codes

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

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 2 Effizienz

Mehr

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt : Grundlagen des Cyclic redundancy code (CRC)

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt : Grundlagen des Cyclic redundancy code (CRC) Übungen zu Architektur Eingebetteter Systeme Blatt 4 22.05.2009 Teil 1: Grundlagen 1.1: Grundlagen des Cyclic redundancy code (CRC) Im Gegensatz zum Parity-Check, der nur einfache Bit-Fehler erkennen kann,

Mehr

Digitale Unterschriften. Angriffe und Sicherheitsmodelle. Bemerkungen. Angriffe und Sicherheitsmodelle

Digitale Unterschriften. Angriffe und Sicherheitsmodelle. Bemerkungen. Angriffe und Sicherheitsmodelle Digitale Unterschriften Auch digitale Signaturen genannt. Nachrichten aus Nachrichtenraum: M M. Signaturen aus Signaturenraum: σ S. Schlüssel sind aus Schlüsselräumen: d K 1, e K 2. SignierungsverfahrenS

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 8 (13.5.2016) Hashtabellen I Algorithmen und Komplexität Dictionary mit sortiertem Array Laufzeiten: create: O(1) insert: O(n) find: O(log

Mehr

Hashfunktionen und Kollisionen

Hashfunktionen und Kollisionen Hashfunktionen und Kollisionen Definition Hashfunktion Eine Hashfunktion ist ein Paar (Gen, H) von pt Algorithmen mit 1 Gen: s Gen(1 n ). Gen ist probabilistisch. 2 H: H s berechnet Funktion {0, 1} {0,

Mehr

Modul 4: IPsec Teil 1

Modul 4: IPsec Teil 1 Modul 4: IPsec Teil 1 Teil 1: Transport- und Tunnelmode Authentication Header Encapsulating Security Payload IPsec Architektur (Security Association, SAD, SPD), Teil 2: Das IKE-Protokoll Folie 1 Struktur

Mehr

Homomorphe Verschlüsselung

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

Mehr

MAC Message Authentication Codes

MAC Message Authentication Codes Seminar Kryptographie SoSe 2005 MAC Message Authentication Codes Andrea Schminck, Carolin Lunemann Inhaltsverzeichnis (1) MAC (2) CBC-MAC (3) Nested MAC (4) HMAC (5) Unconditionally secure MAC (6) Strongly

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016

Mehr

Hashfunktionen. Roman Brunnemann Stephan Müller. 23. November Einleitung Anforderungen Konstruktion Beispiel MD5 MD5 vs.

Hashfunktionen. Roman Brunnemann Stephan Müller. 23. November Einleitung Anforderungen Konstruktion Beispiel MD5 MD5 vs. 23. November 2004 Einleitung Sicherheitsanforderungen Konstruktion von Präsentation einer eigenen Hashfunktion MD5 MD5 vs. SHA1 Angriffe auf Einteilung Kryptographische schlüssellos symmetrisch MDC andere

Mehr

iterative Hashfunktionen

iterative Hashfunktionen Presentation im Rahmen von "Kryptographie" (SS 2005, Universität Potsdam) über kryptographische Hashfunktionen (Teil 2) iterative Hashfunktionen Holger Herrlich 22.Mai.2005 Grundlage: "Cryptography: Theory

Mehr

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 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

Mehr

Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben

Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben Aufgabe 1: Zahlensysteme a) Stellen sie die Zahl Z als allgemeine Formel mittels eines polyadischen Zahlensystems zur Basis B dar. b)

Mehr

1.8 Shift-And-Algorithmus

1.8 Shift-And-Algorithmus .8 Shift-And-Algorithmus nutzt durch Bitoperationen mögliche Parallelisierung Theoretischer Hintergrund: Nichtdeterministischer endlicher Automat Laufzeit: Θ(n), falls die Länge des Suchwortes nicht größer

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

3. Übung Algorithmen I

3. Übung Algorithmen I INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Hashtabellen:

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Darstellung von Zeichen und

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1 Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Digitale Signaturen. Einführung und das Schnorr Signatur Schema. 1 Digitale Signaturen Einführung & das Schnorr Signatur Schema.

Digitale Signaturen. Einführung und das Schnorr Signatur Schema. 1 Digitale Signaturen Einführung & das Schnorr Signatur Schema. Digitale Signaturen Einführung und das Schnorr Signatur Schema 1 Übersicht 1. Prinzip der digitalen Signatur 2. Grundlagen Hash Funktionen Diskreter Logarithmus 3. ElGamal Signatur Schema 4. Schnorr Signatur

Mehr

NIST Hash Function Competition and the SHA-3 Standard

NIST Hash Function Competition and the SHA-3 Standard and the SHA-3 Standard Department of Computer Sciences University of Salzburg June 10, 2013 and the SHA-3 Standard Übersicht Aufgaben Sonstiges National Institute of Standards and Technology Bundesbehörde

Mehr

Das Generalized Birthday Problem

Das Generalized Birthday Problem Das Generalized Birthday Problem Problem Birthday Gegeben: L 1, L 2 Listen mit Elementen aus {0, 1} n Gesucht: x 1 L 1 und x 2 L 2 mit x 1 x 2 = 0. Anwendungen: Meet-in-the-Middle Angriffe (z.b. für RSA,

Mehr

IT-Sicherheit - Sicherheit vernetzter Systeme -

IT-Sicherheit - Sicherheit vernetzter Systeme - IT-Sicherheit - Sicherheit vernetzter Systeme - Kapitel 7: Kryptographische Hash-Funktionen Wolfgang Hommel, Helmut Reiser, LRZ, WS 13/14 IT-Sicherheit 1 Inhalt Definition: Kryptographische Hash-Verfahren

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Public Key Kryptographie

Public Key Kryptographie 4. Dezember 2007 Outline 1 Einführung 2 3 4 Einführung 1976 Whitefield Diffie und Martin Hellman 2 Schlüsselprinzip Asymmetrische Verschlüsselungsverfahren public Key private Key Anwendung E-Mail PGP openpgp

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 4 Suchen in Texten Version vom: 15. November 2016 1 / 39 Vorlesung 8 15. November

Mehr

Masterarbeit OCRA Challenge/Response - Framework. Sideris Minovgioudis

Masterarbeit OCRA Challenge/Response - Framework. Sideris Minovgioudis Masterarbeit Challenge/Response - Framework Sideris Minovgioudis 1 Inhalt Einführung Kryptographische Hashfunktionen HMAC HOTP Anforderungen Definition Modi Sicherheit 2 Inhalt Anwendungen Authentifizierung

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für

Mehr

Einführungs- und Orientierungsstudium Informatik, Teil 2. Digitales Geld: Bitcoin und Blockketten Günter Rote. Freie Universität Berlin

Einführungs- und Orientierungsstudium Informatik, Teil 2. Digitales Geld: Bitcoin und Blockketten Günter Rote. Freie Universität Berlin EinS@FU Einführungs- und Orientierungsstudium Informatik, Teil 2 Digitales Geld: Bitcoin und Blockketten Günter Rote Freie Universität Berlin Überblick Geld ohne zentrale Kontrolle Hashfunktionen zum Speichern

Mehr

In beiden Fällen auf Datenauthentizität und -integrität extra achten.

In beiden Fällen auf Datenauthentizität und -integrität extra achten. Stromchiffren Verschlüsseln eines Stroms von Daten m i (Bits/Bytes) mithilfe eines Schlüsselstroms k i in die Chiffretexte c i. Idee: Im One-Time Pad den zufälligen Schlüssel durch eine pseudo-zufällige

Mehr

Speicherklassen (1) Lokale Variablen

Speicherklassen (1) Lokale Variablen Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden

Mehr

Übersicht. Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene

Übersicht. Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene Übersicht Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene 5.0.07 1 IR-System Peter Kolb 5.0.07 Volltextindex Dokumentenmenge durchsuchbar machen Suche nach Wörtern Volltextindex:

Mehr

Literatur. ISM SS 2017 Teil 8/Asymmetrische Verschlüsselung

Literatur. ISM SS 2017 Teil 8/Asymmetrische Verschlüsselung Literatur [8-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [8-2] Schmeh, Klaus: Kryptografie. dpunkt, 4. Auflage, 2009 [8-3] Schneier,

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

Mehr

Einführung Programmierpraktikum C Michael Zwick

Einführung Programmierpraktikum C Michael Zwick Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 [email protected] (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 06 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 6.2 Digitale Signaturen 1. Sicherheitsanforderungen 2. RSA Signaturen 3. ElGamal Signaturen Wozu Unterschriften? Verbindliche Urheberschaft von Dokumenten Unterschrift

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 5

Algorithmen und Datenstrukturen 1 Kapitel 5 Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät [email protected] Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht

Mehr

Message Authentication Codes

Message Authentication Codes Message Authentication Codes Martin Schütte 30. Nov. 2004 Gliederung Denitionen Grundlegende Begrie Konstruktion von MACs häug benutzte MACs Einschätzung der Sicherheit Bedingungslos sichere MACs zusätzliche

Mehr

Algorithmische Kryptographie

Algorithmische Kryptographie Algorithmische Kryptographie Walter Unger Lehrstuhl für Informatik I 16. Februar 2007 Public-Key-Systeme: Rabin 1 Das System nach Rabin 2 Grundlagen Körper Endliche Körper F(q) Definitionen Quadratwurzel

Mehr

Themen. Sicherungsschicht. Rahmenbildung. Häufig bereitgestellte Dienste. Fehlererkennung. Stefan Szalowski Rechnernetze Sicherungsschicht

Themen. Sicherungsschicht. Rahmenbildung. Häufig bereitgestellte Dienste. Fehlererkennung. Stefan Szalowski Rechnernetze Sicherungsschicht Themen Sicherungsschicht Rahmenbildung Häufig bereitgestellte Dienste Fehlererkennung OSI-Modell: Data Link Layer TCP/IP-Modell: Netzwerk, Host-zu-Netz Aufgaben: Dienste für Verbindungsschicht bereitstellen

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Digitale Signaturen. Sven Tabbert

Digitale Signaturen. Sven Tabbert Digitale Signaturen Sven Tabbert Inhalt: Digitale Signaturen 1. Einleitung 2. Erzeugung Digitaler Signaturen 3. Signaturen und Einweg Hashfunktionen 4. Digital Signature Algorithmus 5. Zusammenfassung

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Vorlesung Sicherheit

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

Mehr

FH Schmalkalden Fachbereich Informatik. Kolloquium 21. März 2002

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

Mehr

Sicherheit von PDF-Dateien

Sicherheit von PDF-Dateien Sicherheit von PDF-Dateien 1 Berechtigungen/Nutzungsbeschränkungen zum Drucken Kopieren und Ändern von Inhalt bzw. des Dokumentes Auswählen von Text/Grafik Hinzufügen/Ändern von Anmerkungen und Formularfeldern

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4.4 Semantische Sicherheit 1. Sicherheit partieller Informationen 2. Das Verfahren von Rabin 3. Sicherheit durch Randomisierung Semantische Sicherheit Mehr als nur

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder

Mehr

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. Ü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.

Mehr

Kurzskript MfI:AGS WS 2018/19 Teil II: Gruppen / Teil III: Ringe 34

Kurzskript MfI:AGS WS 2018/19 Teil II: Gruppen / Teil III: Ringe 34 Kurzskript MfI:AGS WS 2018/19 Teil II: Gruppen / Teil III: Ringe 34 Satz 4.2.11 (Chinesischer Restsatz, Ring-Version) Sind N teilerfremd (d.h. ggt( ) =1), so ist die Abbildung ein Ring-Isomorphismus. :

Mehr