Forum Linux.général Chiffrer par RSA avec OpenSSL

Posté par  .
Étiquettes : aucune
0
20
nov.
2004
Bonjour à tous,

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  . Évalué à 4.

    Ce n'est pas que OpenSSL est bridé mais tout simplement que lorsque l'on chiffre avec RSA, on ne peut chiffrer que des "messages" de tailles inférieures à la taille de la clé, donc probablement 1024 bits (en fait tout dépend du padding utilise : sans padding 1024, RSA_PKCS1_PADDING 1024-11 bits et RSA_PKCS1_OAEP_PADDING 1024-41 bits, voir http://www.openssl.org/docs/crypto/RSA_public_encrypt.html#(...) ).

    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.