Non è noto alcun punto debole per alcun esponente pubblico breve o lungo per RSA, purché l'esponente pubblico sia "corretto" (cioè relativamente primo a p-1 per tutti i numeri primi p che divide il modulo).
Se usi un piccolo esponente e non usi alcun riempimento per la crittografia e crittografa esattamente lo stesso messaggio con diverse chiavi pubbliche distinte, quindi il tuo messaggio è a rischio: se e = 3 e crittografa il messaggio m con chiavi pubbliche n1 , n2 e n3 , allora hai c i = m 3 mod ni per i = 1 a 3 . In base al Teorema cinese del resto, puoi quindi ricostruire m3 mod n 1 n 2 n 3 , che risulta essere m3 (senza alcun modulo) perché n 1n2n3 è un numero intero maggiore. Un'estrazione della radice del cubo (non modulare) è quindi sufficiente per estrarre m.
Il punto debole, qui, è non il piccolo esponente; piuttosto, è l'uso di un riempimento improprio (vale a dire, nessun riempimento) per la crittografia. Il riempimento è molto importante per la sicurezza di RSA, sia che si tratti di crittografia o firma; se non usi una spaziatura interna adeguata (come quelle descritte in PKCS # 1), allora hai molti punti deboli e quello delineato nel paragrafo sopra non è di gran lunga il più grande. Tuttavia, ogni volta che qualcuno si riferisce a una debolezza correlata alla dimensione di un esponente, si riferisce più o meno direttamente a questo evento. È un po 'di vecchia e scorretta tradizione, che a volte viene invertita in un divieto contro esponenti grandi (poiché è un mito, anche il mito inverso è un mito e non è più - e non meno - - motivato); Credo che questo sia ciò che osservi qui.
Tuttavia, si possono trovare alcuni motivi per evitare un grande esponente pubblico:
-
Piccoli esponenti pubblici promuovono l'efficienza (per operazioni a chiave pubblica).
-
Esistono problemi di sicurezza nell'avere un piccolo esponente privato ; è stato descritto un attacco di ripristino della chiave quando la lunghezza dell'esponente privato non supera il 29% della lunghezza dell'esponente pubblico. Quando si vuole forzare l'esponente privato ad essere breve (es. Per velocizzare le operazioni di chiave privata), è più o meno necessario utilizzare un grande esponente pubblico (grande quanto il modulo); richiedere che l'esponente pubblico sia breve può quindi essere visto come una sorta di contromisura indiretta.
-
Alcune implementazioni RSA ampiamente distribuite soffocano su grandi esponenti pubblici RSA. Per esempio. il codice RSA in Windows (CryptoAPI, utilizzato da Internet Explorer per HTTPS) insiste nel codificare l'esponente pubblico all'interno di una singola parola a 32 bit; non può elaborare una chiave pubblica con un esponente pubblico più grande.
Tuttavia, "i rischi possono essere grandi" sembra la giustificazione generica ("questo è un problema di sicurezza" è il solito modo di dire "non l'abbiamo implementato ma non vogliamo ammettere alcun tipo di pigrizia").