你可能不应该试图在这里重新发明轮子。 .net alrady中的System.Security.Cryptography命名空间提供了大量的加密功能,经过了很好的审查。不要试图使用自己的非对称函数来完成此任务。
如果您想通过公钥加密进行私钥分发,您应该使用类似的东西 RSAPKCS1KeyExchangeFormatter 或者甚至是 RSAOAEPKeyExchangeFormatter 如果你有灵活性支持PKCS#1v2
我建议阅读如何实现SSL或OpenPGP。
我不确定你正在努力的部分。
简而言之,非对称算法用于对称密钥交换。
对称算法用于批量数据(流/块)加密。只需修改2个函数就无法完成它,您需要实现握手和密钥交换。
由于您有一个MVC.NET应用程序,您可以在Web服务器中托管它并获得HTTPS / SSL传输。您也可以使用WCF执行相同的操作。有什么理由不使用底层传输提供的东西?您甚至可以将应用程序(web.config)配置为需要客户端证书。
PS:我同意不重新发明轮子,即使是微软与Erik联系的文章提供了关于它的警告。
注意我们建议您不要尝试从提供的基本功能创建自己的密钥交换方法,因为必须仔细执行操作的许多细节才能使密钥交换成功。