Ce que j'ai est un scénario de serveur client et une charge utile (x).Cryptage asymétrique où la partie réceptrice peut décrypter - mais doit être complètement incapable de crypter les données
- Le serveur génère x et encrypte: enc (x)
- enc (x) est envoyé au client
- Le client décrypte les données pour obtenir x
Cependant, la Je dois respecter les restrictions sont les suivantes:
- Le cryptage et les clés de décryptage doivent être différentes
- Le client ne doit pas avoir la clé de chiffrement
donc tout droit RSA est la fenêtre, car vous avez besoin à la fois la clé publique et privée pour décrypter, et la clé publique vous permet de chiffrer. L'objectif est donc double: permettre au client de déchiffrer un élément de données, en s'assurant qu'il provient d'une source connue, mais que le client soit incapable de produire sa propre version chiffrée de la charge utile d'origine.
C# idéalement, mais je peux accepter des réponses de langue similaires.
Editer: Je suis informé que seule la clé privée est nécessaire pour déchiffrer et pas les deux clés - cependant, il ne semble pas y avoir un moyen de faire en sorte que le RSACryptoServiceProvider dans .Net le fasse.
Cela ressemble à une utilisation standard des signatures RSA. Voulez-vous réellement que le récepteur décrypte, ou voulez-vous que le récepteur vérifie une signature? Si oui, pourquoi? – CodesInChaos
[RSA # Signing messages] (http://en.wikipedia.org/wiki/RSA_ (algorithme) #Signing_messages) – Rawling
Oui, le destinataire a besoin des données d'origine (il contient des informations de licence) et doit pouvoir vérifier son origine . – PhonicUK