La chiave con una forza di 128 bit o superiore è attualmente considerata impossibile da interrompere. Tuttavia, ciò non significa necessariamente che la chiave stessa sia a 128 bit. La dimensione della chiave è legata alla forza della chiave, ma non deve nemmeno essere lineare con la forza della chiave. Prendiamo ad esempio RSA; hai bisogno di una chiave da 15K bit per essere vicino alla sicurezza a 256 bit. Il modo migliore per vedere come le dimensioni e la forza della chiave si correlano tra loro è dare un'occhiata a keylength.com ( scorri verso il basso fino alla seconda tabella).
Questa è solo la dimensione della chiave correlata alla forza però. Se codifica una chiave RSA privata hai bisogno di almeno due volte la dimensione della chiave, per modulo e chiave privata (a meno che tu non voglia generare di nuovo l'intera coppia di chiavi da zero, allora potresti fare con un 128 a 256 bit di seed per un generatore di numeri casuali e un sacco di tempo CPU). Se si includono i parametri CRT, l'overhead ASN.1 e l'armatura ASCII, la codifica della chiave aumenta rapidamente. Le chiavi segrete sono generalmente codificate come byte non elaborati. Quindi una chiave segreta codificata di 128 bit può effettivamente richiedere solo 16 byte.
Si noti che, a meno che la dimensione della chiave non sia chiaramente sufficiente, altri attacchi potrebbero essere molto più fattibili. Pensa agli errori del protocollo, agli attacchi ai canali laterali, agli errori di generazione chiave - la lista continua. Penso che circa il 10% delle domande poste su StackOverflow mostri un'implementazione che potrebbe fare affidamento su pratiche crittografiche valide. Scegliere la giusta dimensione della chiave è probabilmente la parte più semplice di qualsiasi sistema sicuro.