web-dev-qa-db-fra.com

Pourquoi le texte chiffré RSA me donne-t-il des résultats différents pour le même texte

Je crypte les données avec openSSL en utilisant le cryptage RSA, ce qui fonctionne bien. Ma compréhension de RSA est que le cryptage des mêmes données avec la même clé publique vous donnera toujours le même résultat ( comme indiqué ici ou ici ).

Cependant, en utilisant openssl, j'obtiens des résultats différents chaque fois que je répète le cryptage. Par exemple:

➜  ~  echo '30' | openssl rsautl -encrypt -inkey pub.pem -pubin  | shasum
      11b6e058273df1ebe0be5e0596e07a6c51724ca0  -

➜  ~  echo '30' | openssl rsautl -encrypt -inkey pub.pem -pubin  | shasum
      05cb82595f7429ef196189f4e781088597d90eee  -

Alors pourquoi la sortie n'est-elle pas unique? Est-ce parce que le cryptage RSA est incorrect ou parce que openssl fait de la magie supplémentaire?

En fait, j'essaie de concevoir une base de données qui ne stocke que des données chiffrées RSA. Je voudrais faire des recherches sur les hachages des informations cryptées, ce qui est impossible si la procédure de cryptage en elle-même n'est pas unique.

43
psibar

Un cryptage RSA sécurisé est implémenté avec un schéma de remplissage approprié, qui inclut un certain caractère aléatoire. Voir PKCS # 1 ou OAEP pour plus de détails.

Le cryptage RSA crypte le message rempli avec des "0" et une chaîne de bits aléatoires. Dans le processus, la chaîne aléatoire est "cachée" dans le texte chiffré par hachage cryptographique et XORing. Lors du déchiffrement, le déchiffrement RSA récupère la chaîne aléatoire du texte chiffré et l'utilise pour récupérer le message. C'est pourquoi vous obtenez un résultat différent avec openssl rsautl pour le même message texte.

61
Chiara Hsieh

OK j'ai compris. Le RSA en lui-même est déterministe. Cependant, pour obtenir une meilleure sécurité et empêcher les attaquants de deviner les informations chiffrées, le chiffrement est effectué non pas sur les "données" pures mais sur "données" + "un modèle aléatoire" ( j'aurais dû lire wikipedia plus attentivement )

11
psibar