Est-il possible de chiffrer avec une clé privée en utilisant .net RSACryptoServiceProvider?
Je sais que RSACryptoServiceProvider peut chiffrer avec la clé publique, alors il peut être déchiffré qu'avec la clé privée.
Est-il possible de chiffrer avec la clé privée et déchiffrer avec la clé publique à l'aide de la RSACryptoServiceProvider ?
source d'informationauteur guaike
Vous devez vous connecter pour publier un commentaire.
Pas. Ce n'est pas tout publique/clé privée de chiffrement fonctionne. Vous ne pouvez chiffrer avec la clé publique, et seulement déchiffrer avec la clé privée.
Juste pour éclaircir un peu les choses:
RSA peut être utilisé pour le chiffrement (en veillant à ce que Eve ne peut pas lire les messages qu'Alice envoie à Bob) ou pour la signature (faire en sorte que si Alice envoie un message à Bob, Bob sait que c'était Alice qui a envoyé le message, et pas la Veille de faire semblant d'être Alice)
RSA génère une paire de clés, une clé publique et une clé privée. RSA est conçu de sorte que si vous appliquez la clé publique et d'appliquer ensuite la clé privée, ou vice versa, vous obtiendrez le même message. Et la clé publique ne peuvent être dérivées à partir de la clé privée (ou vice versa).
Utilisation de RSA pour le chiffrement, Alice crypte le message avec la clé publique de Bob. La seule façon de lire ce message, c'est avec Bob clé privée, qui lui seul possède. Ainsi, Eve ne peut pas lire le message parce qu'il n'a pas cette clé. D'autre part, cette offre aucune authentification de la source du message. Eve pouvez également obtenir la clé publique de Bob (puisque c'est public) et envoyer des messages à Bob, se faisant passer pour Alice.
Utilisation de RSA pour la signature, Alice prend un hachage du message, le chiffre de la valeur de hachage à l'aide de sa propre clé privée, et ajoute le résultat (c'est la signature) pour le message. Eve peut toujours déchiffrer ce à l'aide de la clef publique d'Alice. Toutefois, Bob peut déchiffrer la signature à l'aide de la clef publique d'Alice et de voir si elle correspond. Si elle le fait, il doit avoir été chiffrés à l'aide d'Alice clé privée, qui elle seule a, donc ça doit venir d'Alice.
Maintenant, je ne suis pas familier avec le .NET API de chiffrement, donc je ne sais pas si il fonctionne exactement comme décrit ici. Mais cette explication peut vous aider à comprendre certaines des réponses que vous obtenez.
Tout le monde en prétendant qu'il n'y a pas une telle chose soit ne savent pas comment la RSA, ou ils sont coincés dans la "signature" de l'ornière.
Il est tout à fait possible, et prend tout son sens, pour chiffrer avec la clé privée. Oui, ce qui est similaire à la signature, mais ce n'est PAS du tout ce que la plupart des modernes bibliothèques prendre comme une signature. Pour eux, cela signifie que le calcul d'un message digest, ou HMAC, et le chiffrement avec la clé privée. En comparant le chiffrement avec la clé privée de signature fait autant de sens que de dire que le fait de tenir un document dans un coffre-fort, et en laissant la clé qui traînent, est un stand-in pour la signature du document.
Oui, c'EST le chiffrement, parce que c'est la même opération. La clé privée chiffrée texte chiffré est tout aussi illisible car la clé publique chiffré chiffré; on a besoin de deux clés pour déchiffrer le texte chiffré.
Voir http://fringe.davesource.com/Fringe/Crypt/RSA/Algorithm.html de référence sur l'algorithme RSA.
D'effectuer les premières RSA fonctionnement avec la clé privée est généralement appelé l'opération de déchiffrement (tout comme l'exécution avec la clé publique est appelée l'opération de chiffrement).
Il est utile d'avoir accès à cette opération, par exemple pour mettre en œuvre une opération qui n'est pas pris en charge par le framework.
L'opération existe: c'est le DecryptValue-méthode, qui est définie par RSACryptoServiceProvider de la classe de base: Système.De sécurité.La cryptographie.RSA. Malheureusement, il n'est pas pris en charge par RSACryptoServiceProvider (depuis le sous-jacent win32 api, CryptoAPI, ne le supporte pas). Si vous pouviez mettre la main de l'autre .NET-la mise en œuvre du RSA-classe, vous serez en mesure de le faire, cependant.
Heureusement pas. Cependant, vous pouvez signer avec la clé privée et vérifier la signature avec la clé publique.
Tandis que les mathématiques impliquent de sens que si les principaux rôles sont inversés et c'est la façon dont les signatures de travail), le cryptage de la vie privée n'a pas beaucoup de sens lorsque la clé de déchiffrement est bien connu et public.
Vous pouvez crypter et décrypter avec PrivateKey. PrivateKey enfait contient à la fois Privé et PublicKey.
Au moins en théorie, vous pouvez chiffrer avec PublicKey et décrypter avec PrivateKey et vice-versa. Dans VB.net je vois le premier cas, de travaux et de secondcase jette BadKey erreur
Vous pouvez faire les deux; crypter avec la vie privée et decypt avec le public, OU, chiffrer avec un public et de le décrypter avec le privé. Vous ne pouvez pas chiffrer ensuite déchiffrer avec la clé privée seulement, et vous ne pouvez faire de même avec les clés publiques seul.
Remus cloué; chiffrer avec la clé privée n'a pas beaucoup de sens lorsque la clé de déchiffrement est bien connu et public.
Aussi, vous pouvez dériver la clé publique à partir de la clé privée, mais pas vice-versa.
La sécurité des cryptosystèmes à clé publique repose sur le fait que le signe()/encrypt() la fonction est un un moyen de la fonction qu'il serait impossible de quantité de temps pour les déchiffrer sans la clé publique de "trappe".
Aussi, généralement, les clés générées ne sont pas de la même longueur, alors qu'ils pourraient être. Il y a beaucoup de documents sur clé asymétrique longueur avec le RSA.