2013-12-19 91 views
13

一個例子,在x86 are Instruction Set to hardware acceleration AES。但是在x86中有沒有加速SHA(SHA1/2/256/512)編碼的指令,以及在x86上對SHA進行編碼的緊迫性是什麼?在x86中是否有加速SHA(SHA1/2/256/512)編碼的指令?

+7

請閱讀http://software.intel.com/zh-cn/articles/improving-the-performance-of-the-secure-hash-algorithm-1 – alexbuisson

+2

投票結束這一決定的人肯定已經完成了錯誤? – TonyK

+0

@TonyK可能是因爲要求*最快的圖書館,這可能會吸引輿論反應。問題的這一部分是無法回答的。 – IInspectable

回答

7

在x86中是否有加速SHA(SHA1/2/256/512)編碼的指令?

這是2016年11月,答案終於有。但它唯一的SHA-1和SHA-256(以及擴展名爲SHA-224)。

Intel CPUs with SHA extensions近期投放市場。它看起來像支持它是Goldmont microarchitecture處理器:

  • 奔騰J4205(桌面)
  • 奔騰N4200(移動)
  • 賽揚J3455(桌面)
  • 賽揚J3355(桌面)
  • 賽揚N3450 (移動)
  • 賽揚N3350(移動)

我在亞馬遜的產品中查看了架構或處理器編號的機器,但是我沒有找到任何可用的(還)。我相信,2016年11月 2016年12月,將滿足測試需求 HP 宏基有一臺筆記本電腦與奔騰N4200預計可在

對於某些技術細節,爲什麼只有SHA-1,SHA-224和SHA-256,然後在內核加密郵件列表上看到crypto: arm64/sha256 - add support for SHA256 using NEON instructions。簡而言之,在SHA-256之上,事情並不容易並行化。


你可以找到英特爾SHA內在和ARMv8 SHA內在的Noloader GitHub | SHA-Intrinsics源代碼。它們是C源文件,併爲SHA-1,SHA-224和SHA-256提供壓縮功能。對於SHA-1,基於固有的實現增加吞吐量約3倍至4倍,對於SHA-224和SHA-256約6倍至12倍。

+0

我在這個鏈接中尋找SHA-512的討論,但是對「512」的文本搜索沒有找到任何東西。你在談論哪篇文章?你可以用軟件和普通標量或SIMD整數指令(即這個補丁的大部分或全部)與英特爾可以在硬件中實現的內容相關嗎?或者矢量寄存器還沒有512b寬的相關事實? (我真的不知道SHA的工作原理。) –

+0

@Peter - 查看Andy Polyakov的評論。他在解釋它的時候做得比我說的更好。 – jww

+0

支持在OpenSSL中實現:[參見crypto/sha/asm/sha1-x86_64.pl](https://github.com/openssl/openssl/blame/5071824/crypto/sha/asm/sha1-x86_64.pl# L388) –

0

嘗試開放源代碼,如OpenSSL 我個人使用過他們的MD5哈希函數,而且工作得很好。 你可能也想看看hashlib2++

據我所知,英特爾還沒有對SHA-1或兩個由專用指令集。他們可能會在即將到來的架構中以CodesInChaos的形式在評論中指出。大多數哈希算法中的主要組成部分是已經在指令集中的XOR操作。

+0

這些庫比由Intel推出的實現更快嗎? alexbuisson給出的鏈接:http://software.intel.com/en-us/articles/improving-the-performance-of-the-secure-hash-algorithm-1 – Alex

+0

請看看我的編輯krish。嘗試並格式化您的答案,並嘗試使用稍微更正式的語言。 –

+0

我沒有親自使用intel的一個。讓我看看我能找到什麼。 – krish

13

一旦英特爾Skylake microarchitecture到達2015年的時候它說接受的答案將是不正確的:「英特爾沒有對SHA-1或兩個由專用的指令集」。 Intel has upcomming instructions用於加速SHA1/256散列的計算。

enter image description here

你可以閱讀更多關於他們,如何檢測,如果你的CPU的支持,以及如何使用它們here。在Skylake到達之前,C/C++程序員可能最好使用OpenSSL

+3

但請注意,這些說明正在添加到Skylake微體系結構中,預計在2015或2016年之前不會發布。 – duskwuff

+3

現在,SHA-1正在逐步淘汰(http://googleonlinesecurity.blogspot.com/2014/ 09 /逐漸-seasonting-sha-1.html)英特爾的新指令有點毫無意義...... –

+3

SHA-1仍然適用於非加密用途...... – voidlogic