Existe-t-il une comparaison entre une clé RSA à 4096 bits et une clé RSA à 2048 bits? J'aimerais connaître son impact sur les performances si je choisis une clé à 4096 bits pour le cryptage SSL. Existe-t-il des informations indiquant combien d’utilisation supplémentaire de la part du processeur sera nécessaire si une clé à 4096 bits est utilisée à la place d’une clé à 2048 bits?
Utilisez la commande commande speed
de OpenSSL pour comparer les deux types et comparer les résultats. Voici un exemple de commande à exécuter sur le serveur pour comparer uniquement les types de clés et les tailles que vous mentionnez:
openssl speed rsa2048 rsa4096
À titre de référence, voici quelques résultats de référence d’un VPS modeste:
sign verify sign/s verify/s
rsa 2048 bits 0.000685s 0.000032s 1459.1 31629.7
rsa 4096 bits 0.007574s 0.000113s 132.0 8851.0
Comme vous pouvez le constater, le fait de doubler la taille de la clé de certificat alourdit considérablement le processeur du serveur et est beaucoup plus lent. Évitez les clés de 4096 bits sauf si vous avez un modèle de menace spécifique qui nécessite leur utilisation.
J'ai décidé de lancer openssl speed
avec trois tailles de clé: 1024, 2048 et 4096 bits. Voici les résultats sur mon PC personnel, décent mais loin d’être exceptionnel en ce qui concerne la puissance de calcul:
sign verify sign/s verify/s
rsa 1024 bits 0.000273s 0.000017s 3662.2 59513.0
rsa 2048 bits 0.001994s 0.000052s 501.5 19254.5
rsa 4096 bits 0.014438s 0.000219s 69.3 4560.3
Ainsi, en doublant la longueur de la clé, le temps nécessaire pour signer un message augmente de 7 fois et le temps nécessaire pour vérifier une signature augmente de plus de 3 fois.
Dans tous les cas, l'impact sur les performances de passer de RSA 2048 bits à RSA 4096 bits est très significatif.
Il est également fort douteux que votre charge de travail SSL nécessite la sécurité supplémentaire offerte par RSA 4096 bits.
Vous feriez presque certainement mieux en mettant en œuvre secret de transmission à la place, , car cela réduirait l'impact d'un compromis clé à très peu de frais supplémentaires pour le serveur ou le client.