2

我正在从事一个进行大量散列、签名以及非对称和对称加密的项目。由于这些步骤对我们的性能和可用负载有重大影响,我想知道是否有基于硬件的解决方案来卸载工作。

我做了一些冲浪来找出答案,我能找到的唯一项目是专用于基于 SSL 的通信。我需要一个更通用的解决方案,无论它发生在哪里,我都可以加快签名和加密的速度。

是否可以调整这些基于 SSL 的解决方案(也许它只是营销,很容易在其他地方重复使用)?是否有一个很好的通用协处理器可以提供帮助?

我需要在基于 Windows Server 2008 的机器上使用它,但我会对任何平台上的解决方案感兴趣。

4

5 回答 5

1

我不确定这会有多大帮助,但是我看到了一些关于使用图形硬件加速加密的论文

这是一个快速的谷歌搜索

祝你好运。

于 2008-10-12T00:42:33.467 回答
1

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

于 2008-10-12T01:32:25.473 回答
1

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

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

您还应该检查是否有更有效的软件实施可用。例如,Dan Bernstein 和 Peter Schwabe在 2008 年 9 月发表了一篇关于为现代 CPU 优化 AES 的论文。软件实现已被置于公共领域(即否认所有版权,随心所欲地使用它)。

最后,未来的 AMD(可能还有 Intel)CPU 将包括SSE5,它添加了对 AES 特别有用的指令。如果您能坚持到那时,您的下一次服务器升级可能会提供您需要的所有硬件支持。

于 2008-10-12T03:02:33.263 回答
1

最流行的硬件加密引擎是威盛 Padlock,包含在 C3、C7 和更高版本的处理器中。这些是低性能、低功耗;但是(据说)在加密算法上很容易胜过 Core2。

Linux 内核 2.6.16 及更高版本包括对 RNG、MD5、SHA1/256、SSL、GPG 和其他标准事物的支持。我不确定ssh。

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

于 2008-10-12T03:03:24.557 回答
1

在 Windows 上,您想找到一个设备,其 API 支持 MSCAPI、CAPING 或 PKCS#11,第一个和最后一个都很常见,但 MSCAPI 不支持硬件 AES/3DES。

nCipher(现在的 Thales)做几个盒子或 PCI/PCIe 卡,支持上述(并支持 openssl),还支持其他平台,包括 Linux 和 Solaris,Safenet 也做类似的硬件,支持类似的平台。

如果我刚开始我会选择 PKCS#11,那么您可以选择不错的语言来编写,包括 C 或 java。

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

于 2009-12-31T07:23:23.887 回答