dans le cadre de mes études, je dois réaliser des benchmark d'algorithme de chiffrement. Pour l'AES, tout c'est bien passé (merci OpenSSL). Pour algorithme asymétrique, j'ai choisi RSA, qui fait figure de référence.
Je commence par créer une clé privé :
$ openssl genrsa -out private.key
puis je dérive la clé publique :
$ openssl rsa -in private.key -pubout -out public.key
enfin, je chiffre :
$ openssl rsautl -encrypt -pubin -inkey public.key -in input.txt -out output.txt
Mais cela ne fonctionne pas :
RSA operation error
4302:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:rsa_pk1.c:151:
J'ai cru comprendre au cours de mes recherches sur Internet que openssl refusait de chiffrer par RSA des messages de longueur supérieur à 160 bits.
Quelqu'un pour confirmer cela ?
Dans ce cas, est il possible de débrider OpenSSL ?
Sinon, un autre logiciel pourrait il me rendre service ?
Merci.
# Ce n'est pas un bridage...
Posté par Guillaume Duc . Évalué à 4.
En effet, les algos asymétriques (comme RSA) sont tellement lents que l'on ne chiffre jamais un message entier avec. On chiffre pratiquement tout le temps une clé symétrique (dite de session) qui va servir après à chiffrer le message à l'aide d'un algorithme symétrique qui est beaucoup plus rapide.
Je ne sais plus si l'on peut chiffrer des messages plus longs directement avec RSA, il faudrait regarder les normes PKCS pour voir si c'est prévu mais visiblement ce n'est pas prévu dans OpenSSL. Petit ordre de grandeur pour le chiffrement (en hard et pas en soft) : 11 cycles d'horloge pour un chiffrement d'un bloc d'AES, > 400.000 pour un chiffrement RSA.
Guillaume
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.