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

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

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

有帮助吗?

解决方案

安全发送数据包的标准协议是 SSL/TLS。RFC 的 传输层安全协议数据传输层安全 (和 修复最近的一个缺陷)是要走的路。它们还应该被视为那些学习和寻找想法的人的资源。

听起来您正在寻找 苹果. 。一组非常有效的加密原语,可以同时执行加密和 MACing AEAD 密码,参见示例 CCM气相色谱法 分组密码模式。

我不相信 .NET 支持任何 AEAD 密码。您也可以使用速度较慢但完全足够的 哈马卡 .NET 支持的算法,或者您可以使用 bouncycastle C# 库 它确实支持 AEAD 密码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top