C++ x86中是否有加速SHA(SHA1/2/256/512)编码的指令?
例如,在。但是x86中是否有任何加速SHA(SHA1/2/256/512)编码的指令,以及在x86上编码SHA的快捷库是什么?尝试一些开源的方法,例如 我个人使用过他们的MD5散列函数,这些函数工作得很好。 您可能还想看看 据我所知,英特尔还没有为SHA-1或SHA-2制作专用指令集。正如CodesInChaos在评论中指出的那样,它们可能会出现在即将到来的体系结构中。大多数散列算法的主要组成部分是已经在指令集中的异或运算。用于加速SHA1/256散列的计算 您可以阅读更多关于它们的信息,了解如何检测CPU是否支持它们以及如何使用它们 (但不是SHA-512,您仍然需要使用常规SIMD指令手动将其矢量化。AVX512对于SHA-512(以及使用AVX512但不使用SHA扩展的CPU上的SHA-1/SHA-256)应该有帮助,例如,提供SIMD旋转和移位) 人们希望英特尔公司能拥有它们,但事实并非如此。2016年,英特尔CPU的功耗较低,2017年是Goldmont Plus。英特尔的第一个带有SHA扩展的主流CPU将是。天湖/卡比湖/咖啡湖不需要 AMD Ryzen(2017)拥有SHA扩展 C/C++程序员最好使用它,它可以使用任何CPU特性来快速散列。(如果您的OpenSSL版本足够新,则包括拥有它们的CPU上的SHA扩展。) x86中是否有加速SHA(SHA1/2/256/512)编码的指令 2016年11月,答案终于是肯定的。但它只有SHA-1和SHA-256(延伸到SHA-224) 最近上市。它看起来像是支持它的处理器:C++ x86中是否有加速SHA(SHA1/2/256/512)编码的指令?,c++,c,cryptography,x86,sha,C++,C,Cryptography,X86,Sha,例如,在。但是x86中是否有任何加速SHA(SHA1/2/256/512)编码的指令,以及在x86上编码SHA的快捷库是什么?尝试一些开源的方法,例如 我个人使用过他们的MD5散列函数,这些函数工作得很好。 您可能还想看看 据我所知,英特尔还没有为SHA-1或SHA-2制作专用指令集。正如CodesInChaos在评论中指出的那样,它们可能会出现在即将到来的体系结构中。大多数散列算法的主要组成部分是已经在指令集中的异或运算。用于加速SHA1/256散列的计算 您可以阅读更多关于它们的信息,了解
- 奔腾J4205(台式机)
- 奔腾N4200(移动)
- 赛扬J3455(台式机)
- 赛扬J3355(台式机)
- 赛扬N3450(手机)
- 赛扬N3350(移动式)
您可以在上找到英特尔SHA内部函数和ARMv8 SHA内部函数的源代码。它们是C源文件,为SHA-1、SHA-224和SHA-256提供压缩功能。基于内部的实现将SHA-1的吞吐量提高约3倍至4倍,将SHA-224和SHA-256的吞吐量提高约6倍至12倍。2019更新: 存在时使用H/W加速度 在英特尔方面,µarch拥有(Atom系列)和(台式机/移动设备,10nm)之后的产品,包括SHA-NI支持、服务器CPU和旧版it。是的,由于存在并行的CPU/µ拱线,因此支持在时间轴上是非线性的 2017年,AMD发布了他们的µarch,因此当前所有基于Zen的服务器和桌面CPU都完全支持它
我的
OpenSSL速度SHA256
基准测试显示,块大小为8KiB时,速度提高了550%
对于加载到RAM的真正1GB和5GB文件,散列速度大约快3倍
(在Ryzen 1700@3.6 GHz、2933CL16 RAM上进行基准测试;OpenSSL:1.0.1无支持与1.1.1有支持)
用于与其他哈希函数进行比较的绝对值:
sha1 (1.55GHz): 721,1 MiB/s
sha256 (1.55GHz): 668.8 MiB/s
sha1 (3.8GHz) : 1977,9 MiB/s
sha256 (3.8GHz) : 1857,7 MiB/s
直到有办法在上面添加表
,第298页:EAX中的07h→ EBX位29==1 ,第1264ff页 他对指令延迟/µops等进行基准测试(目前有Zen、Goldmont、Goldmont Plus)
代码示例,SIMD比较:请阅读投票关闭此功能的人肯定是搞错了?在即将到来的体系结构中会有这样的指令。使SHA变慢是一项功能,这样很难破解。“不可避免地,我们会得到更多的比特数。”HansPassant这是一个非常不知情的评论,对于安全哈希算法来说,速度慢肯定不是一个好特性。选择SHA-3的原因当然是安全性和速度(以及最终与SHA-2在架构上的差异),但其输出位数将与SHA-2完全相同。对于某些使用安全散列的算法,比如PBKDF,它可以用于密钥增强。这些库是否比Intel引入的实现更快?alexbuisson给出的链接:我个人没有使用过intel的。让我看看我能找到什么。但请注意,这些指令正在添加到Skylake微体系结构中,该微体系结构预计要到2015年或2016年才会发布。现在SHA-1正在逐步淘汰()英特尔的新指令有点毫无意义……SHA-1仍然被永久地烘焙到Git版本控制之类的系统中SHA-1仍然是引导过程的一部分(在安全引导过程中,Windows中的许多文件仅使用SHA-1签名和检查Authenticode,而不是SHA-256)。随着最新版本的Windows 10(包括Insider和企业版)的加速,这仍然是事实。它可能会提高引导速度。此外,TPM 2.0目前不支持SHA-3用于UEFI引导。TPM 1.2不支持SHA-2(与UEFI安全引导的新要求不兼容),它只能对TCL度量日志使用SHA-1(但仍在聚合容器中使用,然后必须使用SHA-2)。我在该链接中查找SHA-512的讨论,但对“512”的文本搜索没有找到任何内容。你在谈论这篇文章的哪一部分?并且是您可以使用软件和普通标量或SIMD整数指令执行的操作(即大部分或全部p