SHA-512/tのIV(初期化ベクトル)生成方法

元々は予定していなかったSHA関連ネタですが、折角なので残しておきます。

SHAの仕様が記述されているお馴染みのFIPS 180-4には、SHA-512/tというSHA-512をベースに、SHA-512の出力を任意のtビットに切り詰めるハッシュ関数についての記述があります。

その中にSHA-512/tのIV(初期化ベクトル、initialization vector)の生成方法も記述されていますが、いまいちピンとこなかったので調査を行いました。
その調査の結果を、備忘録代わりに残しておきます。

これを読んだあなたは、384を除く任意のtビット(t<512)のハッシュ関数が作れるようになるはずです(例えば、SHA-512/448とか)。

Continue reading →

SHAの仕様と実装比較(SHA-1編)

とあるソースコードを追っていたらsha_init()やsha_transform()をコールしている部分に遭遇し、飛んでみたら謎すぎた(実際は全く謎ではない)ので、SHA(Secure Hash Algorithm)について色々と調べてみました。

その調査の結果を、備忘録として残しておくための記事です。
長くなることを避けるため、あくまでSHAの仕様とその実装を見比べる程度にします。

今回はSHA-1編です。

Continue reading →