2008-10-12 52 views
2

我正在处理大量哈希,签名以及非对称和对称加密的项目。由于这些步骤对我们的性能和可用负载有重大影响,因此我想知道是否有基于硬件的解决方案来卸载工作。针对基于非SSL的签名和加密的硬件加速

我已经做了一些上网查找,并且我可以找到的唯一项目是专用于基于SSL的通信。我需要一个更通用的解决方案,使我能够加快签名和加密,无论它发生在哪里。

是否有可能适应这些基于SSL的解决方案(也许它只是市场营销,而且很容易在其他地方重复使用)?有没有一个好的通用协处理器可以帮忙?

我需要这个基于Windows Server 2008的盒子,但我会对任何平台上的解决方案感兴趣。

回答

1

如果您正在使用的算法是3DES和AES等标准加密算法,那么肯定有硬件可用。 Hifn是最知名的,但Broadcom也有几年前收购BlueSteel的一系列芯片。 nCipher也有一系列加密产品,但是当我上次查看它们时(几年前),它们更关注于其安全密钥管理硬件,而不是加速块算法。

甚至为SSL设计的卡可能对您有用,但您需要访问低级别详细信息。 SSL硬件最大的胜利是一个指数乘法器和宽倍数单元,这两个单元通常可以在我所知道的硬件中独立访问。如果你使用的是非对称加密算法,这两个单元对你来说可能也是有用的。

您还应该检查是否有更高效的软件实现可用。例如,Dan Bernstein和Peter Schwabe published在2008年9月发表了一篇关于优化现代CPU的AES的论文。该软件的实施已经被置于公共领域(即,拒绝所有版权,不管你喜欢使用它)。最后,未来的AMD(可能还有英特尔)CPU将包括SSE5,它增加了对AES特别有用的指令。如果你能坚持下去,那么你的下一次服务器升级可能会提供你需要的所有硬件支持。

1

有几家公司生产密码专用硬件。例如,我最近在用于处理卡上AES(并支持许多其他加密算法)的nCipher硬件设备的应用程序中编写了支持。它们并不便宜,但它们确实支持各种算法和操作模式。

1

最受欢迎的硬件加密引擎是VIA Padlock,包含在C3,C7及更高版本的处理器中。这些是低性能,低功耗;但(据说)在加密算法上轻松胜过Core2。

适用于RNG,MD5,SHA1/256,SSL,GPG和其他标准内容的Linux内核2.6.16及更高版本include support。我不确定ssh。

您提到非SSL,因此您可能无法从现有代码中受益,但Via的网站具有从用户空间使用该文档所需的文档。

1

在windows上你想找到一个支持MSCAPI,CAPING或PKCS#11的API的设备,第一个和最后一个都很常见,但MSCAPI不支持硬件AES/3DES。 nCipher(现在的泰雷兹)做几个支持上述(并支持openssl)并支持其他平台的Linux和Solaris的盒子或PCI/PCIe卡,Safenet也使用类似的平台支持来做类似的硬件。

如果我刚开始选择PKCS#11,那么您就可以很好地选择包括C或Java在内的语言。

如果您想用C#/ .Net编写,那么您可以使用.Net中的MSCAPI,或者您可以将PInvoke插入到您的硬件的PKCS#11 DLL中。