下ダイジェストだから私は(あなたがhttp://csrc.nist.gov/groups/STM/cavp/secure-hashing.htmlの下部に見つけることができます)SHA1の実装SHA1ビット指向のテストベクトルが間違っていますopensslの
の有効性をテストするためのテストベクトルのこのリストaccrossの大多数が来ましたテストベクトルは "short"と呼ばれ(そのサイズはブロックサイズより小さいので)、合格します。しかし、すべての長いテストベクトルに対して、opensslは期待されるものとは異なるダイジェストを出力します。
例:
Msg = d372b4bf97daa3be77e0d78c123c7bb39dde10c82824c83f2250308320391247da419a167686b7320a5dc49b5cfc686eec76bb7034edaaeb2e029cb91791569e739c1bdb518418ffd07f0001e0
Expected MD = c60a02fffa45deccb075e386be3aa9313c2df4f2
Openssl output = 77 2d ff f3 54 31 2c df 93 e1 94 2f 10 91 f7 f8 78 61 91 c1
N.B:テストベクトルは、ビット指向の実装のために作られています。私が理解していることは、この種の実装では必ずしもバイトの倍数ではないサイズのメッセージのダイジェストを計算できるということです。
これがなぜ起こっているのか誰かが気づいていますか?
ええ、私はそれを明らかにするために感謝します。 d372b4bf97daa3be77e0d78c123c7bb39dde10c82824c83f2250308320391247da419a167686b7320a5dc49b5cfc686eec76bb7034edaaeb2e029cb91791569e739c1bdb518418ffd07f0001e0'はBITのみの実装を使用してハッシュし、BYTE-一つだけ '違いが存在しなければならない理由しかし、私は非常に把握することはできませんか?ここで説明しているのと同じプロセスではありませんか? http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.198-1.pdf –
つまり、ビットのみの実装のダイジェストとバイトのみのダイジェストの違いは何ですか?同じ任意の長さの入力に適用されますか? –