我对在SmartCard上存储各种用途的证书感兴趣。自这个答案说明了RSA和AES之间有多么令人困惑的区别和相似之处.以来
什么时候应该使用一个类而另一个类获得最大的互操作性?如果类不像设置那么重要,那么最合适的设置是什么。
我的目的是了解跨平台和跨API (Java,第三方)最适合使用哪个API (和相应的设置)。我会在Crypto论坛上发布这篇文章,但这似乎更多是关于理论的,而不是关于编码的。
发布于 2012-06-04 12:47:19
这是唯一相关的部分:
RijndaelManaged类是.net框架中Rijndael算法的一种实现,它没有在NIST (国家标准和技术研究所)密码模块验证程序( CMVP )下进行验证。但是,类调用使用RSAENH.DLL的Windows,并在CMVP中被NIST验证。
您应该使用符合NIST规范的那个。否则,就无法证明RSA算法如您所认为的那样安全,也无法证明它是否与其他RSA实现兼容。
发布于 2017-12-05 22:20:24
很抱歉,我回答了一个很老的问题,但这是在我的搜索,所选的答案是不正确的。也许选择的答案能回答OP的真正问题,但正如所述的问题是关于RSACryptoServiceProvider和AESCryptoServiceProvider的,而答案是关于RjindaelManaged和AESCryptoServiceProvider的
RjindaelManaged是Rjindael算法的一个实现,后来被NIST选为AES加密标准的基础。AESCryptoServiceProvider是实现AES/Rjindael算法的最佳选择。AES和Rjindael都是对称密码。
RSA是一个完全不同的非对称密码系统.它与AES/Rjindael完全无关。
何时使用RSACryptoServiceProvider和AESCryptoServiceProvider的正确答案取决于使用非对称和对称密码。
在RSA中,您有一个公钥和私钥对。如果您想要交换公钥,或者希望您的密钥由另一方签名,则需要RSA。但RSA的速度相对较慢,正确的做法是单向的:公钥加密,私钥解密.
如果你有很多你想加密的文本,你需要AES。它的速度要快得多,许多计算机也为此进行了优化。但只有一把钥匙。任何拥有密钥的人都可以加密和解密,这使得共享密钥成为一个优先事项。
最好是使用RSA公钥加密和传输AES密钥,然后使用AES进行通信。
https://security.stackexchange.com/questions/15626
复制相似问题