È necessario utilizzare SHA-1 con RSA-OAEP?

9

PKCS # 1 definisce SHA1 come una funzione di hash predefinita e tutte le implementazioni supportano questa funzione di hash e le funzioni di generazione di maschere basate su SHA1. In alcune implementazioni è possibile modificare la funzione di hash utilizzata per il riempimento OAEP.

È possibile utilizzare un hash SHA1 con la crittografia di dati casuali (chiavi di crittografia simmetriche) o utilizzare un altro metodo di hashing?

Sono noti attacchi o vulnerabilità?

Quali sono i vantaggi delle altre funzioni hash?

    
posta Bernhard 28.01.2016 - 16:53
fonte

1 risposta

12

SHA-1, come funzione di hash, è noto per essere "leggermente traballante". È una funzione hash a 160 bit (il suo output è una sequenza di 160 bit); come tale, dovrebbe offrire 2 80 resistenza alle collisioni, mentre sembra che la sua vera resistenza sia più vicina a 2 61 o giù di lì.

Tuttavia, OAEP non chiede molto dalla sua funzione di hash sottostante. Sembra che la resistenza alla collisione non sia effettivamente necessaria per garantire la sicurezza del sistema di crittografia. Vedi questo articolo per i dettagli (è un po 'tecnico).

Bottom-line: non sappiamo di alcun attacco che possa funzionare contro RSA-OAEP sfruttando qualsiasi debolezza di SHA-1; non siamo nemmeno sicuri che un tale attacco possa esistere del tutto. In questo senso, non vi è alcun vantaggio noto, dal punto di vista crittografico, nel passaggio da SHA-1 a un'altra funzione hash nel contesto di RSA-OAEP .

Tuttavia , la moda attuale è quella di sparare SHA-1 a vista e insistere sul passaggio a una delle funzioni SHA-2 (ad esempio SHA-256 o SHA-512) sistematicamente. Pertanto, l'utilizzo di SHA-256 è utile per le pubbliche relazioni e ti farà risparmiare un po 'di tempo, perché attenersi a SHA-1 richiede di giustificare te stesso a molte persone.

Si noti che SHA-256 ha un output più grande (256 bit), che impone un limite inferiore alle dimensioni dei dati che sarà possibile crittografare. Se si utilizza una chiave pubblica RSA a 2048 bit (256 byte), la dimensione massima del messaggio con RSA-OAEP + SHA-1 sarà 214 byte (1712 bit), mentre sarà di 190 byte (1520 bit) per RSA-OAEP + SHA-256. Se tutto ciò che si sta crittografando sono le chiavi per la crittografia simmetrica, questo non dovrebbe avere importanza nella pratica.

    
risposta data 28.01.2016 - 17:12
fonte

Leggi altre domande sui tag