そしてWhirlpoolを実装

と書くとどこぞの18禁ゲームブランドっぽく見えるのが悲しいというかおもしろいところです。実際、初めにこの言葉を楕円曲線暗号のコードの情報を探しているときにこれを見て思った言葉が

「え?なに?」

だったですから。(先にこの名前が18禁ゲームブランド名であることを承知していたのでこの反応)

一応日本語版のWikipediaの検索でこのキーワードで引っかけるとメーカーの説明記事しか出ませんでした。

で、今のこの記事中で「Whirlpoolを実装」と言ったときのこれは、メッセージダイジェストアルゴリズムの名称です。

つまり、MD5SumやらSHA-1やらのように「あるデータから一意のハッシュを作り出す」アルゴリズムです。

アルゴリズムを考えた人はRijndael(AES)と同じ人で、Rijndaelのアルゴリズムをメッセージダイジェストに応用したものです。

SHA-3のように標準化されようとしているわけではないですが、ハッシュが512bitとかなり長いのも特徴で、動作速度はあまり早くないですが強度はそれなりです。

あらかじめ「メッセージダイジェストアルゴリズム」と知った上でWikipediaでそちらから検索すると一応名前だけは書いてあります。

リンクは英語版のWikipediaの記事になっていますが・・・。

アルゴリズム自体はそれほど難しいものでもなく、GF(2^8)のS-Boxを使った演算をラウンド処理するだけなのですが、

ちょっとパディングの方法がSHA-1系と異なっていたのでその点が微妙に異なる実装となっています。

実装上の要点としては「S-Boxを定義するときのエンディアン処理とラウンドにおけるS-Boxの共通性をどう処理するか」です。

何も考えずに各ラウンドごとのS-Boxを静的に定義してもいいですが、それをやるとデータがかなり大きくなります。

ちなみに、ゲームブランド側のWhirlpoolも嫌いではないですよ。YU-RISが基本のシステムのようで、システム的には問題ないですので。

これでギャグっぽく「Whirlpool(YU-RIS)がWhirlpoolを実装!」とかやったら(個人的には)おもしろいですが…。

組んでいるときにこのギャグを頭に思い浮かべるたびに半分笑っていた人なので。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この記事のトラックバック用URL