首先,如果我使用了任何不正确的术语,我会事先道歉。当涉及到密码学的时候,我只是把脚弄湿了,还有很多东西要学。
在过去的12个月里,我们一直在为云和移动应用程序(iOS/Android)开发应用程序基础设施。作为基础设施的一部分,我们需要使用非对称加密对\text{SHA-}256散列进行加密的能力,在某些情况下,还需要同时加密多个散列。不可解密的数字签名不足以满足我们的要求。对此的简单解释是,我们到目前为止使用的数字签名允许任何拥有相应公钥的人检查内容,以确保它们与数据库行中的相应数据保持一致。如果没有正确的签名,数据行的所有权将无法传输或创建重复行。行有一个签名和一个所有者,两个数字签名验证产品序列号是有效的,并且声明的所有者实际上拥有序列号。
我们在现有框架的基础上构建了一个工作原型,该框架使用PostgreSQL和PHP,使用\text{SHA-}256和RSA 2048进行初步测试,获得了每40秒加密和插入/更新10,000行独特数据的结果。当插入10,000行数据时,必须创建10,000个独特的数字签名。大部分工作是在创建这些数字签名。
我们想知道加快这一进程的最佳方法是什么?最终,我们需要能够大幅度减少这一时间,如果我们可以在5秒内签名和插入10,000行,这将是非常理想的。
是否有更快的解决方案来用私钥签署数字签名?我们已经讨论过用C#编写这个组件。我们还想知道比特币挖掘硬件(ASIC)是否可以用于非对称加密?如果不挖掘硬件,基于GPU的处理会更好吗?购买专门的硬件,应该提高处理时间,这不是一个问题。
我们最终需要每月产生超过10亿个数字签名。如有任何指导或帮助,将不胜感激。
编辑:我忘了提到我们现在的原型使用的是OpenSSL。
发布于 2016-04-10 20:30:28
在花钱购买专用硬件之前,我会探索GPU选项。
我使用CUDA做了一些类似的事情,在那里我做了很多并行的ECC操作。GPU比CPU快30倍-50倍。
您可能会在CPU上散列数据,然后使用GPU进行RSA指数运算。
https://crypto.stackexchange.com/questions/34399
复制相似问题