0

大家好,我一直在为我的一些程序开发 p2p 命名空间。我创建了一个系统来加密/解密与类发送/接收的数据包。我使用的是基本的公钥私钥系统:1)使用对称加密加密数据 2)使用 RSA 加密对称密钥。然后在解密时执行相反的操作..

不过,我想知道,您将如何验证数据包是否来自它所说的地方。我打算使用一个基本的证书系统(你用你的私有 RSA 密钥加密,然后他们用你的公钥解密它),但我不知道如何用 C# 做到这一点。我正在使用 RSACryptoServiceProvider 类。

有谁知道怎么做?谢谢,马克斯

4

1 回答 1

1

安全发送数据包的标准协议是 SSL/TLS。TLSDTLS的 RFC (以及对最近缺陷的修复)是可行的方法。对于那些学习和寻找想法的人来说,它们也应该被视为一种资源。

听起来您正在寻找MAC。一组非常有效的同时执行加密和 MAC 的加密原语是AEAD密码,例如CCMGCM分组密码模式。

我不相信 .NET 支持任何 AEAD 密码。您还可以使用 .NET 支持的较慢但完全足够的HMAC算法,或者您可以使用支持 AEAD 密码的bouncycastle C# 库。

于 2010-03-28T12:57:07.660 回答