.NET中的确定性非对称加密?

时间:2015-02-17 11:04:45

标签: .net encryption cryptography public-key-encryption encryption-asymmetric

我有一个与中央服务器通信的多代理应用程序,每个代理都有唯一的标识符(Guid),必须保密,但服务器需要能够正确区分代理。我不能像在服务器上那样保存代理标识符,因为服务器可能被黑客入侵,标识符可能被转储,个人用户数据可能会被泄露。我不能保持标识符哈希(如MD5或SHA *),因为在某些时候我需要解密标识符(我从中央服务器获取所有数据并执行一些分析,这需要知道代理标识符)。

我考虑过使用RSA(在服务器上存储代理和加密标识符上的公钥),但每次加密代理标识符时,我都会获得唯一值(因为RSA会向数据添加随机填充),因此RSA不具有确定性。如何以确定性和加密安全的方式转换代理标识符?

1 个答案:

答案 0 :(得分:0)

如何:分析服务器保存每个代理的(真实ID,伪ID)配对。伪ID由代理公钥加密并保存在代理中。代理在将其发送到中央服务器时使用其私钥对其进行解密。

只有分析服务器知道代理的真实ID。伪ID对于所有三个都是已知的,并且在代理上保持加密。伪ID可以来自随机分布,看起来是加密数据。