Pourquoi RSA, le texte chiffré me donner des résultats différents pour le même texte
Je suis le chiffrement de données avec openSSL en utilisant le cryptage RSA, qui fonctionne très bien. Ma compréhension de RSA est, que le les mêmes données avec la même clé publique vous donnera toujours le même résultat (comme indiqué ici ou ici).
Cependant, l'utilisation d'openssl-je obtenir des résultats différents à chaque fois je le répète, le chiffrement.
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 est la production qui n'est pas unique? Est-ce parce que j'ai eu le cryptage RSA tort ou à raison openssl n'supplémentaire de la magie?
En fait je suis en train de concevoir une base de données qui stocke uniquement RSA données chiffrées. Je voudrais faire des recherches sur le hashsums de l'information chiffrée, ce qui est impossible si la procédure de cryptage en lui-même n'est pas unique.
- FWIW, rsautil est dépréciée en faveur de la pkeyutil
Vous devez vous connecter pour publier un commentaire.
Sécurisé de cryptage RSA est mis en œuvre avec un rembourrage régime, qui comprend un peu de hasard. Voir PKCS#1 ou OAEP. pour plus de détails.
Le cryptage RSA chiffre message rembourré avec '0' et et une chaîne de bits aléatoires. Dans le processus, la chaîne aléatoire est "caché" dans le texte chiffré par hachage cryptographique et XORing. Sur le déchiffrage, le RSA déchiffrement récupère la chaîne aléatoire à partir du texte chiffré, et l'utiliser pour récupérer le message. C'est pourquoi vous obtenez des résultats différents avec openssl rsautl pour le même message texte.
Ok, je l'ai eu. RSA par lui-même est déterministe.
Toutefois, afin d'obtenir une meilleure sécurité et empêcher les attaquants de deviner l'information chiffrée, le chiffrement se fait pas sur le pur "données", mais sur les "données"+"quelques-aléatoire pattern" (J'aurais du le lire wikipédia avec plus de soin)