Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBàrtolo Casini Modificato 11 anni fa
1
RSA O PTIMAL A SYMMETRIC E NCRYPTION P ADDING Tecnologie per la Sicurezza LS Anno 2007 / 2008 Alessio Della Motta Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS
2
C ARATTERISTICHE DI RSA Cifrario asimmetrico deterministico A blocchi di testo in chiaro identici corrispondono blocchi uguali di testo cifrato Occorre rendere il cifrario probabilistico Esistono due standard: PKCS #1 v. 1.5 – Padding Casuale PKCS #1 v. 2.0 (OAEP) – Codifica più Complessa Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS
3
PKCS #1 V. 1.5 Lo standard impone di premettere al messaggio un padding di 88 bit Il formato è il seguente: 0x00 || 0x02 || r || 0x00 || m con r un numero casuale e m il messaggio da inviare. Oggi è sconsigliato e si raccomanda luso di OAEP In [1] viene mostrato un attacco CCA2 in grado di rompere il cifrario con PKCS #1 v. 1.5. Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS
4
C HOSEN C IPHERTEXT A TTACK Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS Lavversario dispone di un decryption oracle al quale può sottoporre testi cifrati a sua scelta; tuttavia, per non rendere banale lattacco, si suppone che il malintenzionato non possa sottoporre alloracolo il testo cifrato a cui è interessato. Non è una prospettiva puramente di studio: ad esempio un attaccante può avere a disposizione una macchina a cui sono dati i permessi di decifrare solo certe tipologie di messaggi. Questo attacco può essere svolto secondo due modalità: CCA1 – Indifferent Chosen Ciphertext Attack Accesso alloracolo prima di scegliere il testo cifrato di interesse CCA2 – Adaptive Chosen Ciphertext Attack Accesso alloracolo dopo aver scelto il testo cifrato di interesse
5
O PTIMAL A SYMMETRIC E NCRYPTION P ADDING (OAEP) Procedimento di codifica (EME – Encoding Method for Encryption) parametrizzabile Garantisce una buona soglia di casualità Stesso messaggio codificato in modi diversi Padding deterministico per il controllo dellintegrità Sicuro a fronte di attacchi del tipo CCA2 Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS
6
EME-OAEP-E NCODE Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS Primitiva di codifica: EME-OAEP-Encode (M, P, emLen) Opzioni: Hash – Hash Function MGF – Mask Generation Function Ingressi: M P emLen Uscita: EM – Messaggio codificato – Messaggio da codificare – Parametri di codifica, ovvero una stringa di byte – Lunghezza totale in byte del messaggio codificato
7
M ASK G ENERATION F UNCTION Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS MGF (Z, l) Opzioni: Hash – Funzione Hash, con output lungo hLen byte Ingressi: Z l Uscita: mask – Maschera di lunghezza l byte Tale funzione accetta in ingresso una stringa e ne restituisce unaltra di lunghezza specificata in input. Il comportamento di questa funzione è deterministico, ovvero per stringhe in ingresso identiche, si ottengono maschere identiche in uscita. Loutput deve essere pseudo-casuale, cioè, data una sua parte, non deve essere possibile prevedere il seguito. – Seed dal quale verrà generata la maschera – Lunghezza in byte della maschera che verrà generata, al massimo 2 32 hLen Lindice del ciclo non può essere contenuto nei registri macchina...
8
A LGORITMO MGF Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS string MGF (string Z, int l) { string T = ; if (l > exp (2, 32) * hLen) then { generate_error(mask too long); exit(1); } for (int i = 0; i < sup_int(l div hLen); i++) T = T || Hash (Z || i); return T; }
9
E NCODING P ASSO P ASSO... (1) Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS 1)Poiché la stringa di parametri andrà in input alla funzione hash scelta, se la sua lunghezza eccede quella prevista da tale funzione verrà generato il seguente errore: 2)Se: mLen > emLen – 2hLen – 1, genera il seguente errore e termina: message too long parameter string too long Si vuole codificare tramite lo standard il seguente messaggio: M = d4 36 e9 95 69 fd 32 a7 c8 a0 5b bc 90 d3 2c 49 Si suppone che non ci siano parametri di ingresso e di volere in uscita un messaggio codificato lungo 127 byte. Invochiamo la funzione in questo modo: EME-OAEP-Encode (M, NULL, 127) Lalgoritmo di codifica prevede i seguenti passi:
10
E NCODING P ASSO P ASSO... (2) Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS 3)Si genera una stringa PS di byte nulli (con tutti i bit a zero). In particolare: 4)Si fa lhash (SHA-1) dei parametri P:pHash = hash (P) len (PS) = emLen – mLen – 2hLen – 1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Nel nostro esempio: len (PS) = 127 – 16 – 2*20 – 1 = 70 NOTA: la lunghezza di PS può essere anche zero. da 39 a3 ee 5e 6b 4b 0d 32 55 bf ef 95 60 18 90 af d8 07 09 hash (NULL) = La lunghezza dellimpronta è costante (dipendendo dalla funzione) e nel nostro caso pari a 20.
11
E NCODING P ASSO P ASSO... (3) Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS 5)Si forma un blocco di dati DB nella maniera seguente: DB = pHash || PS || 01 || M Proseguendo con i dati dellesempio si ottiene il seguente blocco dati: da 39 a3 ee 5e 6b 4b 0d 32 55 bf ef 95 60 18 90 af d8 07 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 d4 36 e9 95 69 fd 32 a7 c8 a0 5b bc 90 d3 2c 49 NOTE: Il byte 01 è necessario nel caso in cui M iniziasse per 00; PS serve per avere in uscita un messaggio esattamente lungo quanto specificato in ingresso.
12
E NCODING P ASSO P ASSO... (4) Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS 6)Si genera un seed casuale di lunghezza hLen: aa fd 12 f6 59 ca e6 34 89 b4 79 e5 07 6d de c2 f0 6c b5 8f Il seed garantisce una codifica differente anche per messaggi identici. seed = 7)Si calcola:dbMask = MGF (seed, emLen – hLen) 06 e1 de b2 36 9a a5 a5 c7 07 d8 2c 8e 4e 93 24 8a c7 83 de e0 b2 c0 46 26 f5 af f9 3e dc fb 25 c9 c2 b3 ff 8a e1 0e 83 9a 2d db 4c dc fe 4f f4 77 28 b4 a1 b7 c1 36 2b aa d2 9a b4 8d 28 69 d5 02 41 21 43 58 11 59 1b e3 92 f9 82 fb 3e 87 d0 95 ae b4 04 48 db 97 2f 3a c1 4e af f4 9c 8c 3b 7c fc 95 1a 51 ec d1 dd e6 12 64 Proseguendo lesempio:dbMask = MGF (seed, 107)
13
E NCODING P ASSO P ASSO... (5) Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS 8)Si calcola:maskedDB = XOR (DB, dbMask) dc d8 7d 5c 68 f1 ee a8 f5 52 67 c3 1b 2e 8b b4 25 1f 84 d7 e0 b2 c0 46 26 f5 af f9 3e dc fb 25 c9 c2 b3 ff 8a e1 0e 83 9a 2d db 4c dc fe 4f f4 77 28 b4 a1 b7 c1 36 2b aa d2 9a b4 8d 28 69 d5 02 41 21 43 58 11 59 1b e3 92 f9 82 fb 3e 87 d0 95 ae b4 04 48 db 97 2f 3a c1 4f 7b c2 75 19 52 81 ce 32 d2 f1 b7 6d 4d 35 3e 2d 9)Si calcola: seedMask = MGF (maskedDB, hLen) = MGF (maskedDB, 20) 41 87 0b 5a b0 29 e6 57 d9 57 50 b5 4c 28 3c 08 72 5d be a9 10) Si calcola:maskedSeed = XOR (seed, seedMask) eb 7a 19 ac e9 e3 00 63 50 e3 29 50 4b 45 e2 ca 82 31 0b 26
14
E NCODING P ASSO P ASSO... (6) Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS 11) Si ottiene il messaggio finale codificato nel modo seguente: EM = maskedSeed || maskedDB eb 7a 19 ac e9 e3 00 63 50 e3 29 50 4b 45 e2 ca 82 31 0b 26 dc d8 7d 5c 68 f1 ee a8 f5 52 67 c3 1b 2e 8b b4 25 1f 84 d7 e0 b2 c0 46 26 f5 af f9 3e dc fb 25 c9 c2 b3 ff 8a e1 0e 83 9a 2d db 4c dc fe 4f f4 77 28 b4 a1 b7 c1 36 2b aa d2 9a b4 8d 28 69 d5 02 41 21 43 58 11 59 1b e3 92 f9 82 fb 3e 87 d0 95 ae b4 04 48 db 97 2f 3a c1 4f 7b c2 75 19 52 81 ce 32 d2 f1 b7 6d 4d 35 3e 2d Tale messaggio andrà quindi cifrato con la chiave pubblica di RSA {e, n} e quindi trasmesso al diretto interessato.
15
S CHEMA DI C ODIFICA Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS seed pHash PS M M DB MGF XOR maskedDB MGF XOR maskedSeed EM
16
EME-OAEP-D ECODE Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS Primitiva di decodifica: EME-OAEP-Decode (EM, P) Opzioni: Hash – Hash Function MGF – Mask Generation Function Ingressi: EM – Messaggio codificato P – Parametri di codifica, ovvero una stringa di byte Uscita: M – Messaggio ripristinato
17
D ECODING Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS 1)Se P è maggiore della limitazione in input della funzione Hash genera un errore decoding error e termina 2)Se emLen < 2hLen + 1 genera un errore decoding error e termina 3)I primi venti byte di EM costituiscono il maskedSeed, mentre il resto costituisce il maskedDB 4)Calcola: seedMask = MGF (maskedDB, hLen) 5)Ottieni: seed = XOR (maskedSeed, seedMask) 6)Calcola: dbMask = MGF (seed, emLen – hLen) 7)Calcola: DB = XOR (maskedDB, dbMask) 8)Calcola: pHash = Hash (P) 9)Separa DB nelle stringhe: pHash || PS || 01 || M Se non cè il byte 01 genera un errore decoding error e termina 10)Se pHash pHash genera un errore decoding error e termina 11)Restituisci il messaggio originale M La procedura di decoding è speculare a quella di encoding. Questi sono i passi dellalgoritmo:
18
S CHEMA DI D ECODIFICA Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS seed pHash PS M M DB MGF XOR maskedDB MGF XOR maskedSeed EM
19
C ARATTERISTICHE RSA-OAEP Introduce elementi di casualità È in grado di prevenire decifrazioni parziali del testo cifrato Per ottenere il testo in chiaro, lattaccante deve necessariamente invertire completamente la funzione pseudo-unidirezionale di RSA Si ha sicurezza a fronte di attacchi di tipo CCA2 se si utilizzano determinati accorgimenti [2] Shoup [3] ha mostrato altre vulnerabilità dello standard ed ha proposto una versione più sicura, denominata OAEP+. Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS
20
R IFERIMENTI [1] D. Bleichenbacher, Chosen Ciphertext Attacks Against Protocols Based on RSA Encryption Standard PKCS#1, Advances in CryptologyCRYPTO 98 Proceedings, Springer-Verlag, 1998, pp. 1–12. [2] J. Manger, A Chosen Ciphertext Attack on RSA Optimal Asymmetric Encryption Padding (OAEP) as Standardized in PKCS #1 v2.0, Proceedings of the 21st Annual International Cryptology Conference on Advances in Cryptology, Springer- Verlag, 2001, pp. 230 – 238. [3] V. Shoup, OAEP Reconsidered. In J. Kilian, editor, Advances in Cryptology - Crypto 2001, volume 2139 of Lecture Notes in Computer Science, pp. 239 - 259. Springer Verlag, 2001. Optimal Asymmetric Encryption Padding Tecnologie per la Sicurezza LS
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.