問題タブ [keccak]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2088 参照

hash - いくつかのプログラムで Keccak / SHA-3 のハッシュが異なりますか?

私は keccak スポンジ関数を開発していますが、ハッシュ結果に関していくつかの奇妙な動作があります。

24 ビット (3 バイト) の文字列 "abc" を使用します。http://www.di-mgt.com.au/sha_testvectors.htmlの SHA-3 のテスト ベクトルでは、SHA3-512 の結果は次のようになります。

テストベクターからの SHA3-512

また、cryptpp バージョン 5.62 を使用したところ、次の出力が得られました。

CryptoPP 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96

WindowsでHashTab 5.2.0.14を使用すると、「abc」を含むファイルに同じ出力が得られます。

ハッシュタブ 5.2.0.14 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa5bb19a6

したがって、いくつかの参照がありますが、そのうちの 1 つは他とは異なります。Web サイトでは、入力メッセージには FIPS-202 ドラフトで定義されている 2 ビット「10」が付加されていると説明されています。では、CryptoPP と HashTab はおそらく別の実装を使用していますが、どれを使用していますか??

これで、プログラムと keccak サイトの「参照コード」と、Python での別の実装ができました。

私のプログラムは、「abc」に対して次のハッシュ値を返します。

マイプログラム

これは、同じ値を計算するhttp://keccak.noekeon.org/files.htmlの keccak 参照コード ( http://keccak.noekeon.org/KeccakReferenceAndOptimized-3.2.zip )です。

Keccak-Reference 3.2 Message of size 2040 bits with Keccak[r=1024, c=576] 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760 (truncated to the same length)

これはhttps://github.com/mgoffin/keccak-python/blob/master/Keccak.pyからの python 実装で、同じ値になります:

keccak-python Value after squeezing : 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E67601173D04BF5AEC3EBBCA87696355C5FB4D72D00D2CC4F843A0A3A0ED8924A16FC37769A3DB7C3A84F31E92375A7D74A0136D80A647FBC5AF8D733B43873A3709F

だから私の質問:

1) FIPS 202 で作成された NIST の仕様に基づいて、Keccak と SHA-3 の出力が異なるというのは本当ですか?

2) 一意ではない 3 つの異なるハッシュ値があるのはなぜですか?

3) SHA3-512 で容量が変更され、512 ビット容量と 1600-512 ビットレートになりますか? これは、SHA-3 に関するプレゼンテーションで読んだもう 1 つの違いですが、FIPS-202 ドキュメントでは見つかりませんでした。

どうもありがとうございました!

よろしく、

ブラク

0 投票する
2 に答える
886 参照

hash - ハッシュ関数 (SHA など) はプラットフォームに依存しませんか?

異なるプラットフォームからハッシュ化されたデータを比較する必要があります。使用するハッシュ関数は Keccak の SHA3 です。

ハッシュ生成値はプラットフォームに依存しないという仮定から始めました。しかし、次の 2 つのオンライン ツールは逆の結果をもたらしました。

単語データ(sha3 256bits)をハッシュしたときのそれぞれの出力は次のとおりです。

  • 8f54f1c2d0eb5771cd5bf67a6689fcd6eed9444d91a39e5ef32a9b4ae5ca14ff
  • efda893aa850b0c0e61f33325615b9d93bcf6b42d60d8f5d37ebc720fd4e3daf

この件に関する私の知識は非常に限られていますが、ハッシュ関数はプラットフォームに依存しないことを常に当然のことと考えてきました (それが、MD5 チェックサムを使用する理由ですよね?)。

主題に関するどんな光も高く評価されます。

一番。

0 投票する
1 に答える
52 参照

random - ハッシュベース認証の PRNG

http://www.springer.com/us/book/9783540887010またはhttps://www.imperialviolet.org/2013/07/で説明されている「ツリーチェーン」構造を使用して、ハッシュベースの認証を実装しようとしています。 18/hashsig.html

このためには、シード/キーと秘密鍵リストへのインデックスから大量の秘密鍵を生成できる (決定論的な) PRNG が必要です。キーを生成するために単純に Hash(secretkey + index) を考えていましたが、PRNG に関する NIST の推奨事項を読んだ後、より良い/より安全な方法があるのだろうか? ハッシュ関数として sha-3 を想定したこの Hash(secretkey + index) アプローチに深刻な問題はありますか?

ありがとう

0 投票する
1 に答える
308 参照

c++ - Keccak 出力が間違っています

この公式ライブラリで Keccak 224 を実行しようとしています。残念ながら、関数から間違ったハッシュを取得します。ライブラリのせいだとは思いませんが、何か間違ったことをしています。

これは私がしようとしているものです:

SHA-3-224 (Keccak) を使用した "abc" の正しいハッシュは次のようになります。

e642824c3f8cf24a d09234ee7d3c766f c9a3a5168d0c94ad 73b46fdf

しかし、このライブラリの呼び出し方法からはナンセンスしか得られません。私は何を間違っていますか?期待される結果を達成する方法と、何が間違っていたかを説明する小さな例は素晴らしいでしょう。

0 投票する
1 に答える
546 参照

cryptography - KECCAK で使用される Merkle–Damgård とスポンジ関数の違い

素敵な Stackoverflow コミュニティへようこそ!

Merkle-Damgård 構造と KECCAK で使用されるスポンジ関数の違いを理解するのは困難です。Merkle-Damgård Construction は、メッセージ ブロックを反復的に取り込みますが、説明で見つけたように、スポンジ関数は同じことをしませんか? 両方のイラストは非常に似ているように見えますが、本当に理解できる説明が見つかりません. 誰かが違いをもう少し簡単に説明できますか?