Quando si genera una coppia di chiavi RSA 4096 bit, fare in modo che la chiave privata e quella pubblica abbiano sempre esattamente 4096 bit?

4

Quando si genera una coppia di chiavi RSA 4096 bit, fare in modo che la chiave privata e pubblica abbiano sempre esattamente 4096 bit, quindi non iniziare con uno 0 nella rappresentazione binaria?

    
posta Ben Richard 19.07.2015 - 18:02
fonte

3 risposte

4

Come preliminare, in RSA la chiave pubblica è la coppia (N, e) e la chiave privata è d . Come è stato affermato, la dimensione del bit del modulo N è ciò a cui si riferisce il 4096. N rappresenta solo una parte della chiave pubblica, insieme a e . Non è richiesto quale sia il bit size e . L'unico requisito per la crittografia sicura in RSA è quello di esponenziare il messaggio m a e th power "avvolge il modulo", cioè m^e > N . Quindi in pratica sono stati usati valori di e piccoli come 3 (2 bit). Il valore corrente più comune per e è 65537 (17 bit), infatti la maggior parte dei certificati SSL che vedi hanno questo valore, ad es. google.com

La dimensione del bit di d , la chiave privata, non è impostata e può variare notevolmente in quanto è semplicemente l'inversione moltiplicativa di e nel gruppo phi(N) dove phi è la funzione totitiva. Nella maggior parte dei casi sarà molto più piccolo di 4096 bit.

    
risposta data 20.07.2015 - 00:33
fonte
0

4096 si riferisce al modulo di n. La chiave pubblica e la chiave privata devono essere di lunghezza bit "simile" per fornire la sicurezza prevista. La scelta di un valore significativamente inferiore per p o q consente la fattorizzazione di n (cioè tramite forzatura bruta) e può quindi essere utilizzata per recuperare la chiave segreta.

Di conseguenza, è necessario che entrambi i parametri abbiano la lunghezza indicata.

    
risposta data 19.07.2015 - 21:39
fonte
0

Aspettati che gli Zeri si verifichino nel MSB o LSB del BigInteger. (entrambe le estremità dell'output binario)

Ho scritto il codice RSA in C # e ho dovuto tenere conto di uno zero iniziale in BouncyCastle BigInteger e .NET Big Integer. Ciò che è interessante delle due librerie è che si tratta di Big Endian, l'altra Little Endian.

    
risposta data 19.07.2015 - 19:26
fonte

Leggi altre domande sui tag