2013-12-19 14 views
13

例:x86 are Instruction Set to hardware acceleration AESです。しかし、SHA(SHA1/2/256/512)エンコーディングを加速するためのx86命令はありますか?また、x86上でSHAをエンコードするためのファセットはどのライブラリですか?SHA(SHA1/2/256/512)エンコーディングを高速化するための指示がx86にありますか?

+7

http://software.intel.com/en-us/articles/improving-the-performance-of-the-secure-hash-algorithm-1 – alexbuisson

+2

これを閉じるに投票した人は、必ず間違い? – TonyK

+0

@ TonyKおそらく、*最も速い図書館を求める質問のために、これは恐喝された反応を引きつけるでしょう。問題のその部分は答えられません。 – IInspectable

答えて

7

SHA(SHA1/2/256/512)エンコーディングを高速化する手順はx86にありますか?

これは2016年11月です。答えはついてはいです。しかし、その唯一のSHA-1とSHA-256(そして拡張によって、SHA-224)。

Intel CPUs with SHA extensions最近市場に出た。それはGoldmont microarchitectureあるサポートするプロセッサのようになります。

  • ペンティアムJ4205(デスクトップ)
  • ペンティアムN4200(モバイル)
  • はCeleron J3455(デスクトップ)
  • はCeleron J3355(デスクトップ)
  • はCeleron N3450 (モバイル)
  • セレロンN3350(モバイル)

Iアーキテクチャーやプロセッサー番号のあるマシンではAmazonの製品を見ていたが、まだ(まだ)入手できなかった。私は信じている HP エイサーはペンティアムN4200のノートPCを1台持っていて、テストのニーズを満たす 11月2016 12月2016年12月に利用できると見込んでいます。

SHA-1、SHA-224、SHA-256の技術的な詳細については、カーネル暗号メーリングリストのcrypto: arm64/sha256 - add support for SHA256 using NEON instructionsを参照してください。簡単な答えは、SHA-256より上では、物事は容易に並列化できないということです。


あなたはNoloader GitHub | SHA-Intrinsicsの両方でインテルSHA組み込み関数とARMv8 SHA組み込み関数のソースコードを見つけることができます。これらは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または2の専用命令セットを作成していません。彼らは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

私は個人的にインテリアのものを使用していません。私は何を見つけることができますか? – krish

13

Intel Skylake microarchitectureが2015に到着すると、「インテルはSHA-1または2の専用命令セットを作成していません。 SHA1/256ハッシュの計算を高速化するためのIntel has upcomming instructions

enter image description here

あなたは、あなたのCPUは、それらをサポートするかどうかを検出する方法、それらについての詳細を読んで、どのように彼らにhereを使用することができます。 Skylakeが到着するまで、C/C++プログラマはおそらくOpenSSLを使用するのが最も良いでしょう。

+3

しかし、これらの命令はSkylakeマイクロアーキテクチャに追加されており、おそらく2015年または2016年にリリースされる予定はありません。 – duskwuff

+3

SHA-1が段階的に廃止されました(http://googleonlinesecurity.blogspot.com/2014/)。 09 /徐々に夕焼け - シャー - 1.html)インテルの新しい指示はちょっと無意味です... –

+3

SHA-1は暗号化以外の用途に有効です。 – voidlogic

関連する問題