首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合使用ncipher CSP和MSCAPI进行AES加密

结合使用ncipher CSP和MSCAPI进行AES加密
EN

Stack Overflow用户
提问于 2012-06-30 02:02:56
回答 2查看 2.7K关注 0票数 7

我正在尝试弄清楚如何使用MCSAPI与ncipher cryptographic service provider (CSP)进行AES加密。让我感到困惑的是,AesCryptoServiceProvider构造函数不接受CspParameters类,该类用于将nCipher指定为csp。

代码语言:javascript
复制
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.

据我所知,Rijndael类也无法指定其他第三方CSP。我错过了什么?有没有办法初始化我的整个系统,为所有后续的加密调用加载一个CSP?我是不是应该使用CSP来管理对称密钥,然后使用默认的AesCryptoServiceProvider来加密/解密?RSACryptoServiceProvider(CspParameters)工作得很好。但我想做对称加密。我需要在C# .NET框架中做到这一点。

EN

回答 2

Stack Overflow用户

发布于 2012-07-09 07:02:12

Microsoft CAPI不支持对称算法的硬件保护密钥。这是API的缺点,而不是nCipher CSP的缺点。唯一可以受硬件保护的密钥是CAPI容器的签名密钥和交换密钥对。创建的任何对称密钥都会生成并在软件中使用。

您可以将(软件)对称密钥包装在(硬件)容器密钥中以进行保护和持久化,但这并不会使这些对称密钥受到硬件保护。

如果你在任何Vista,Server 2008或更新版本上部署,你应该考虑CAPI下一代或CNG:它支持生成和使用硬件保护的对称密钥,Thales/nCipher CNG CSP支持这一点。但是,Thales/nCipher CNG CSP不支持持久化对称密钥,因此要做到这一点,您必须将它们包装在容器密钥对中,就像使用旧的CAPI一样。

我为Thales工作,但不为他们说话:如果您有问题和/或想了解如何获得开发人员支持,请与Thales支持部门联系。

票数 8
EN

Stack Overflow用户

发布于 2012-07-05 22:34:20

AES是一种对称算法,因此不能使用CspParameters。

nCipher是一种硬件标准(参见http://technet.microsoft.com/en-us/library/dd277354),因此,您的令牌可以计算nCipher算法,但由于每个人(爱丽丝和鲍勃)都需要知道密钥,因此在硬件令牌上计算或存储密钥没有任何好处。

你可以看到如何在MSDN example中使用AesCryptoServiceProvider,也许你想使用AesManaged (还有一个例子)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11266758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档