In teoria, non è così deve essere. Gli algoritmi di crittografia e decrittografia sono essenzialmente identici. Dato:
d = decryption key
e = encryption key
n = modulus (product of primes)
c = encrypted code group
m = plaintext code group
Poi:
- crittografia c i = m ie (mod n)
- decrittografia m i = c id (mod n)
L'algoritmo normale per il passaggio a una potenza è iterativo, quindi il tempo impiegato dipende dalla dimensione dell'esponente. Nella maggior parte dei casi, la coppia funziona con la chiave di decodifica essendo (in genere considerevolmente) più grande della chiave di crittografia.
E 'possibile invertire questo però. Solo per un esempio di giocattolo, considerano:
p=17
q=23
n=391
Ecco un elenco di alcuni coppie di chiavi di cifratura/decifratura validi per questa particolare coppia di numeri primi:
e = 17, d = 145
e = 19, d = 315
e = 21, d = 285
e = 23, d = 199
e = 25, d = 169
e = 27, d = 339
e = 29, d = 85
e = 31, d = 159
e = 35, d = 171
e = 37, d = 333
e = 39, d = 343
e = 41, d = 249
e = 43, d = 131
e = 45, d = 133
e = 47, d = 15
e = 49, d = 273
e = 51, d = 283
e = 53, d = 93
e = 57, d = 105
e = 59, d = 179
Di questi 20 coppie di chiavi solo uno, ha una chiave di decodifica più piccola della chiave di crittografia. Negli altri casi, la chiave di decrittografia varia da poco meno del doppio a quasi 17 volte di più.Naturalmente, quando il modulo è piccolo come questo, è facile e veloce generare un sacco di coppie di chiavi, quindi trovare una piccola chiave di decifrazione sarebbe abbastanza facile - con una vera chiave RSA, tuttavia, non è così banale, e generalmente accettiamo solo la prima coppia che troviamo. Come puoi vedere dall'elenco sopra, in questo caso, è molto probabile che tu abbia una chiave di decrittografia notevolmente più grande della tua chiave di crittografia, e quindi la decrittografia finirà più lentamente della crittografia. Quando lavoriamo con numeri di ~ 100 cifre, dovremmo essere abbastanza pazienti a trovare una coppia per la quale la decrittografia sarebbe stata (anche vicino) veloce come la crittografia.
perché è più lento (ci scusiamo in anticipo) – Jodrell
Se si desidera una decodifica o una firma veloce, è possibile utilizzare la crittografia a curva ellittica anziché RSA. – CodesInChaos