2

ハッシュリブチーム、

SHA3​​ ライブラリ (Keccak) が正しい暗号化を返すかどうかはわかりません。codeplex からダウンロードした最新のソース コード (変更セット 78295) を使用しましたが、Wikipedia (sha3 ページ) で提供されているベクトルと結果と一致しません。

次のコードを使用すると

IHash hash = HashFactory.Crypto.SHA3.CreateKeccak512();
HashResult res = hash.ComputeString("", System.Text.Encoding.ASCII);
string dd = res.ToString();

私のVS 2012 IDEでは、次のような結果が得られます

DF987CFD-23FBC92E-7E87FAAC-A300EC3F-AA1DBADC-678E8EE9-4A830968-F22D9209-64AB402D-C5D0F7B2-0C9644BE-08056555-C789D295-8BDA3DF9-8C94BACC-EA25D3C1

これは実際に返されるはずです:

0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e

次の投稿によると、SHA-3 Keccak ハッシュの単純な実装が C# の間違った出力に出力されますか? David は、最新のコードベースは正しい結果を返すはずだと答えました。変更が適用されているかどうかはわかりません。

ExtremelyLongMsgKAT_512.txt ファイルから取得したテスト ベクトルを使用した場合

abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno

そしてコードを使用して

hash.ComputeString("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno").ToString();

結果も期待とは異なります。テスト ベクトル ファイルには、結果は次のようになります。

3E122EDAF37398231CFACA4C7C216C9D66D5B899EC1D7AC617C40C7261906A45FC01617A021E5DA3BD8D4182695B5CB785A28237CBB167590E34718E56D8AAB8

しかし、実際の結果は

"B9942109-EB762527-FB384E14-7EDA2DAA-71CA782F-4819B53E-E13C1C13-1C572D99-2B387FA7-212FF624-6EED988D-31AFB23B-4D1B7C44-BC38F908-46EE25F4-AABD5920"
4

1 に答える 1

0

Hashlib について話すことはできませんが、ExtremelyLongMsgKAT_512.txt には、入力を 16777216 回繰り返す必要があると記載されています。https://bitbucket.org/jdluzen/sha3の私のポートには、非常に長いテストを含む、ほとんどの組み込みテストが含まれています。

于 2013-06-04T15:28:36.403 に答える