Joh*_*ell 17 c# cryptography aes .net-4.0 cng
我目前使用AES在c#中执行大量文本加密/解密.
使用纯软件系统,对于需要解密的大量数据集,可能需要相当长的处理器才能获得相当长的时间.我知道英特尔已经推出了他们的AES-NI指令集,并且AMD已经推出了类似的产品.
我正在使用.NET 4.0,我知道windows CNG框架使用了这些指令集,但似乎并没有AesManaged
在.NET世界中做同样的事情.
有一个梦幻般的项目" CLR安全 ",它建立了一个从.NET 3.5到Windows CNG的网关,但它在一年内没有维护,我宁愿不(如果可能的话)跳上一个垂死的项目.
.NET 4中有一个CNGProvider类,但似乎没有足够的文档可以将AES的工作解密拼凑在一起.
有没有人有这方面的经验,他们可以指出我在正确的方向上如何使用预制的类在纯.NET环境中实现AES-NI,而无需直接从c#进行ap/inv?(如果有一个包装器类,只要它被维护就可以了).
Joh*_*ell 16
那么AesCryptoServiceProvider呢?它说使用CAPI,所以希望CNG如果可用的话. - Rup
这个评论有很大的帮助,在做了一些挖掘之后看起来像AesCryptoServiceProvider将使用AES-NI如果可用,我看不到微软的任何"官方"文档,但是当运行简单的时序基准测试时差异大约15倍因此要么API本身是大规模优化的(增加15倍是非常好的优化)或它使用AES-NI指令集.
Unfortunatley我没有非AES-NI盒子可供测试,但是如果我得到一个,我会用结果更新这个帖子.
所以我非常有信心这是用于AES-NI的API,但如果没有进一步的测试就无法保证.