La lunghezza della chiave asimmetrica (come in RSA) e la lunghezza della chiave di cifratura (come in AES, RC4) sono molto diverse. Le chiavi RSA utilizzate nella crittografia asimmetrica pubblico-privata devono essere 1024 bit o superiore. AES, RC4 e altre chiavi di cifratura devono essere 128 bit o più. Qual è la differenza? RSA ampiamente conosciamo tutti la chiave pubblica N ed e, dove N è il prodotto di due grandi numeri primi. Se è possibile calcolare il numero composito N, è possibile derivare la chiave privata e decodificare qualsiasi messaggio crittografato con la chiave pubblica.
Il factoring è un problema difficile che non può essere fatto in tempo polinomiale su un computer non quantico, ma ci sono trucchi dalla teoria dei numeri ai numeri dei fattori meglio della forza bruta naive. Banalmente quando si cercano fattori di N, piuttosto che provare ogni intero tra 1 e N, si possono saltare tutti i numeri pari tranne 2, o provare a dividere per fattori primi o fermarsi quando si raggiunge sqrt (N), piuttosto che cercare di dividere di ogni fattore compreso tra 1 e N. Nelle tecniche del mondo reale come il metodo della curva ellittica può fattore ~ Numeri compositi a 260 bit in un paio di minuti su una cpu.
AES e RC4 d'altra parte sono cifrari simmetrici. Hanno solo bisogno di un tasto numerico casuale per decifrare un messaggio. Quindi per forzare una chiave di cifratura a 128 bit devi provare la maggior parte delle 2 chiavi 128 ~ 10 38 finché non trovi quella che funziona. Quindi se riesci a controllare un trilione (10 ^ 12) di chiavi al secondo ci vorrebbero ~ 10 ^ 19 anni prima di aver controllato la maggior parte dei tasti. Nota che una chiave a 256 bit sarebbe 2 ^ 128 volte più difficile da applicare alla forza bruta (impiega 10 ^ 57 anni).
Quindi, quando accedo a un sito bancario e faccio clic sulle informazioni https in google-chrome, vedo:
Your connection to home.ingdirect.com is encrypted with 128-bit encryption.
The connection uses TLS 1.0.
The connection is encrypted using RC4_128, with MD5 for message authentication and RSA as the key exchange mechanism.
Se poi clicco sulle informazioni dettagliate del certificato, e vado sul campo del certificato "Subject's Public Key", vedo che usano un modulo a 2048 bit (N il modulo di due numeri primi grandi).