Andreas Hülsing, Johannes Braun Langzeitsichere Signaturen durch den Einsatz hashbasierter Signaturverfahren Andreas Hülsing, Johannes Braun 16.05.2013 | TU Darmstadt | A. Huelsing | 1 30. März 2017 |
Langzeitsicherheit Realwelt: Handschriftliche Signatur theoretisch unendlich gültig Digital: Sicherheit Kryptographischer Schlüssel „verblasst“ Verfahren können plötzlich unsicher werden Bspw. Testament, Grundbucheintrag, Medizinische Daten, 16.05.2013 | TU Darmstadt | A. Huelsing | 2 30. März 2017 |
Outline Hash-basierte Signaturen Langzeitsicherheit 16.05.2013 | TU Darmstadt | A.Huelsing | 3
Hash-basierte Signaturen 16.05.2013 | TU Darmstadt | A. Huelsing | 4
RSA – DSA – EC-DSA - … RSA, DH, SVP, MQ, … Trapdoor one-way function Collision resistant hash function RSA, DH, SVP, MQ, … Digital signature scheme 16.05.2013 | TU Darmstadt | A. Huelsing | 5 30. März 2017 |
Merkles Signaturverfahren PK h OTS h h h h h h h h h h h h h h OTS OTS OTS OTS OTS OTS OTS Secret Key 16.05.2013 | TU Darmstadt | A. Huelsing | 6 30. März 2017 |
State of the Art eXtended Merkle Signature Scheme (XMSS) / XMSS+ [PQ-Crypto, 2011] XMSS+ [SAC 2012] Minimale komplexitätstheoretische Annahmen Generische Konstruktion Effizient (vergleichbar mit RSA) Vorwärtssicher 16.05.2013 | TU Darmstadt | A. Huelsing | 7
Vorwärtssichere Digitale Signaturen 16.05.2013 | TU Darmstadt | A. Huelsing | 8
Vorwärtssichere Digitale Signaturen pk classical sk pk forward sec sk sk1 sk2 ski skT time t1 t2 ti tT Key gen. 16.05.2013 | TU Darmstadt | A. Huelsing | 9
XMSS Implementierungen C Implementierung mit OpenSSL Sign (ms) Verify (ms) Signature (byte) Public Key (byte) Secret Key (byte) Bit Security XMSS-SHA-2 15,17 1,02 2.083 1.696 3.364 146 H = 20, w = 64 33,47 2,34 1.923 100 w = 108 XMSS-AES-NI 1,72 0,11 2.451 912 1.684 93 w = 4 XMSS-AES 2,87 0,22 RSA 2048 3,08 0,09 ≈ 256 ≈ 512 87 Die Implementierungen sind halt bis auf die C Implementierung noch GMSS Intel(R) Core(TM) i5 CPU M540 @ 2.53GHz with Intel AES-NI 16.05.2013 | TU Darmstadt | A. Huelsing | 10 30. März 2017 |
XMSS Implementierungen Smartcard Implementierung Sign (ms) Verify (ms) Keygen (ms) Signature (byte) Public Key (byte) Secret Key (byte) Bit Sec. Comment XMSS 134 23 925.400 2.388 800 2.448 97 h = 16, w = 4, k = 4 XMSS+ 106 25 5.600 3.476 544 3.760 96 H = 16, w = 4, k = 2 173 28 10.500 1.588 3.056 92 w = 32, k = 2 124 22 28.300 1.956 576 3.744 89 H = 20, w = 16, k = 4 RSA 2048 190 7 11.000 ≈ 256 ≈ 512 87 Die Implementierungen sind halt bis auf die C Implementierung noch GMSS 15min Infineon SLE78 16Bit-CPU@33MHz, 8KB RAM, TRNG, Sym. co-processor 16.05.2013 | TU Darmstadt | A. Huelsing | 11 30. März 2017 |
Langzeitsicherheit 16.05.2013 | TU Darmstadt | A. Huelsing | 12
XMSS Langzeitmechanismen „Frühwarnsystem“ Redundanz Effizientere Archivierung (siehe Robuste PKI) FREE Bilder von ePerso, eGK und Co 16.05.2013 | TU Darmstadt | A. Huelsing | 13 30. März 2017 |
Frühwarnsystem 16.05.2013 | TU Darmstadt | A. Huelsing | 14
Eigenschaften von (Hash)Funktionsfamilien stark / leichter Kollisionsresistenz Annahme / Angriffe 2nd-preimage-resistenz Einweg Pseudozufällig schwach / schwerer 16.05.2013 | TU Darmstadt | A. Huelsing | 15
Angriffe auf Hashfunktionen MD5 Kollisionen (theo.) MD5 Kollisionen (praktisch!) MD5 & SHA-1 Keine (Second-) Preimage Attacks! SHA-1 Kollisionen (theo.) 2^123 anstatt 2^128 ist Stand der Dinge für MD5 2004 2005 2008 2012 16.05.2013 | TU Darmstadt | A.Huelsing | 16 30. März 2017 |
Frühwarnsystem XMSS benötigt keine Kollisionsresistenz Wenn Kollisionsresistenz gebrochen – wechsel Hashfunktion Archiv: Übersignatur Nur halbe Wahrheit: Nachrichtenhash! Aber: Kein Problem für Archiv 16.05.2013 | TU Darmstadt | A.Huelsing | 17
Redundanz 16.05.2013 | TU Darmstadt | A.Huelsing | 18
Redundanz Hash-Combiner - Kollisionsresistenz / 2nd-Preimage-Resistenz: - PRF: 16.05.2013 | TU Darmstadt | A. Huelsing | 19
Redundanz (cont‘d) Verhindert unerwarteten Bruch des Verfahrens ersetzt Doppelsignatur Signaturgröße wächst nur minimal, i.e. +H*n Laufzeit ~ verdoppelt 16.05.2013 | TU Darmstadt | A.Huelsing | 20
Effiziente Archivierung 16.05.2013 | TU Darmstadt | A.Huelsing | 21
Kettenmodell mittels FSS Root certificate sk1 sk2 ski skT CA certificate sk1 sk2 End entity certificate Without explicite calndar dates Index unforgeable included into signature mathematical validation results into chain model (revocation checking based on index) Proposed solutions how calendar dates can be integrated (time tags) sk1 sk2 skj time 16.05.2013 | TU Darmstadt | A.Huelsing | 22 30. März 2017 |
Robuste PKI Kettenmodell mit FSS -> Weniger Zeitstempel -> Effizientere Archivierung 16.05.2013 | TU Darmstadt | A. Huelsing | 23
Danke! Fragen? 16.05.2013 | TU Darmstadt | A.Huelsing | 24
02.12.2011 | TU Darmstadt | A.Huelsing | 25
Ausgabelänge von Hashfunktionen Hashfunktionsfamilie Annahme: - generische Angriffe, - Sicherheitslevel n Collision resistance: → Generischer Angriff = Geburtstagsangriff → m = 2n 2nd-preimage resistance: → Generischer Angriff = Vollständige Suche → m = n 16.05.2013 | TU Darmstadt | A. Huelsing | 26
Konstruktion 16.05.2013 | TU Darmstadt | A. Huelsing | 27
WOTS+ Winternitz parameter w, security parameter n, message length m, function family Key Generation: Compute l , sample k, sample R c0k(sk1, R ) = sk1 pk1 = cw-1k(sk1, R ) c1k(sk1, R ) One promissing group of candidates are hash-based signature schemes They start from an OTS – a signature scheme where a key pair can only be used for one signature. The central idea – proposed by Merkle - is to authenticate many OTS keypairs using a binary hash tree These schemes have many advantages over the beforementioned Quantum computers do not harm their security – the best known quantum attack is Grovers algorithm – allowing exhaustiv search in a set with n elements in time squareroot of n using log n space. They are provably secure in the standard model And they can be instantiated using any secure hash function. On the downside, they produce long signatures. c1k(skl , R ) pkl = cw-1k(skl , R ) c0k(skl , R ) = skl 21.03.2013 | TU Darmstadt | Andreas Hülsing | 28 30. März 2017 |
WOTS+ Signature generation M b1 b2 b3 b4 … … … … … … … bl 1 bl 1+1 bl 1+2 … … bl c0k(sk1, R ) = sk1 pk1 = cw-1k(sk1, R ) C σ1=cb1k(sk1, R ) Well, this work is concerned with the OTS. There are several OTS schemes. LD, Merkle-OTS which is a specific instance of the W-OTS, the BM-OTS and Biba and HORS. The most interesting one is the Winternitz OTS as it allows for a time-memory trade-off and even more important - It is possible to compute the public verification key given a signature. This reduces the signature size of a hash based signature scheme as normaly the public key of the OTS has to be included in a signature of the scheme. Now for WOTS this isn‘t necessary anymore. pkl = cw-1k(skl , R ) c0k(skl , R ) = skl σl =cbl k(skl , R ) 21.03.2013 | TU Darmstadt | Andreas Hülsing | 29 30. März 2017 |
XMSS – Secret key XMSS verwendet mehrere Einmalsignaturschlüssel. Generiert mittels Pseudozufallsgenerators (PRG), konstruiert mittels PRFF Fn: Secret key: Zufälliger SEED für pseudozufällige Erzeugung des aktuellen Signaturschlüssels. PRG PRG PRG PRG PRG PRG 16.05.2013 | TU Darmstadt | A. Huelsing | 30
XMSS – Public key = ( , b0, b1, b2, h) Modifizierter Merkle Tree [Dahmen et al 2008] h: 2nd-preimage resistant Hashfunktion = ( , b0, b1, b2, h) Public key bh b1 b1 Wir benutzen einen PRG basierend auf PRFs… also ein bisschen geschummelt b_i sind die Bitmasken H_Tree ist H in Treehash Mode, also mit genau so einem Baum… b0 b0 b0 b0 16.05.2013 | TU Darmstadt | A. Huelsing | 31 30. März 2017 |
XMSS Signatur i Signatur = (i, , , , ) i b2 b1 b1 b0 b0 b0 b0 16.05.2013 | TU Darmstadt | A. Huelsing | 32 30. März 2017 |
Vorwärtssicheres XMSS PRG FSPRG FSPRG FSPRG FSPRG FSPRG FSPRG: Vorwärtssicherer PRG basierend auf PRFF Fn 16.05.2013 | TU Darmstadt | A. Huelsing | 33
Beschleunigte Schlüsselerzeugung Tree Chaining (XMSS+) 2h+1 → 2*2 h/2+1 = 2 h/2+2 j i Aber: Größere Signaturen! 16.05.2013 | TU Darmstadt | A. Huelsing | 34 30. März 2017 |
XMSS in der Praxis 16.05.2013 | TU Darmstadt | A. Huelsing | 35
XMSS – Instantiierungen Blockchiffren Gegeben: Blockchiffre Ist pseudozufällige Funktionsfamilie Hashfunktion mittels Matyas-Meyer-Oseas & Merkle-Darmgard: K C M = M1 || M2 M1 M2 Das Naor und Yung Signaturschema signiert Nachrichten fester Länge k hk(M) 16.05.2013 | TU Darmstadt | A. Huelsing | 36 30. März 2017 |
XMSS – Instantiierungen Hashfunktion Gegeben: M-D Hashfunktion Annahme: Ist zufällige Funktion aus Familie PRFF mittels HMAC Variante: M Pad(k) Das Naor und Yung Signaturschema signiert Nachrichten fester Länge h h(M) h IV 16.05.2013 | TU Darmstadt | A. Huelsing | 37 30. März 2017 |