use*_*745 7 c# encryption winapi aes nshield
我正在尝试弄清楚如何使用MCSAPI与ncipher加密服务提供程序(CSP)进行AES加密.令我困惑的是,AesCryptoServiceProvider构造函数不接受一个CspParameters类,用于将nCipher指定为csp.
CspParameters cp = new CspParameters(24, "nCipher Enhanced RSA and AES Cryptographic Provider");
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(CspParameters) // works fine
AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); // Constructor takes no parameters.
Run Code Online (Sandbox Code Playgroud)
从我所看到的Rijndael类也没有办法指定其他第三方CSP.我错过了什么?有没有办法初始化我的整个系统,为所有后续加密调用加载CSP?我是否想使用CSP来管理对称密钥,然后使用默认值AesCryptoServiceProvider加密/解密? RSACryptoServiceProvider(CspParameters)工作得很好.但我想做对称加密.我需要在C#.NET框架中执行此操作.
小智 8
Microsoft CAPI不支持对称算法的硬件保护密钥.这是API的缺点,而不是nCipher CSP的缺点.唯一可以受硬件保护的密钥是CAPI容器的签名和交换密钥对.创建的任何对称密钥都是在软件中生成和使用的.
您可以在(硬件)容器密钥中包装(软件)对称密钥以实现保护和持久性,但这并不会使这些对称密钥受到硬件保护.
如果要在Vista,Server 2008或更新版本上部署,则应考虑CAPI Next Generation或CNG:它支持生成和使用受硬件保护的对称密钥,而Thales/nCipher CNG CSP支持此功能.但是,Thales/nCipher CNG CSP不支持持久对称密钥,因此,您必须将它们包装在与旧学校CAPI相同的容器密钥对中.
我为Thales工作,但不代表他们:如果您有任何疑问和/或想了解如何获得开发人员支持,请联系Thales支持.
AES 是一种对称算法,因此不能使用 CspParameters。
nCipher 是一种硬件标准(请参阅http://technet.microsoft.com/en-us/library/dd277354),因此您的令牌可能可以计算 AES 算法,但每个人(Alice 和 Bob)都需要知道密钥在硬件令牌上计算或存储密钥没有任何好处。
您可以在MSDN示例中查看如何使用AesCryptoServiceProvider ,也许您想使用AesManaged(也有一个示例)。
| 归档时间: |
|
| 查看次数: |
2389 次 |
| 最近记录: |