ハッシュチェイン

ハッシュチェインとは、あるデータに対して暗号学的ハッシュ関数を繰り返し適用したものである。コンピュータセキュリティにおいて、ハッシュチェインは一つの鍵とパスワードから大量のワンタイムパスワードを作り出すのに使われる。また、否認防止のために、データの追加部分に対してハッシュ関数を次々に適用することで、データの存在を時系列に沿って記録するのにも使われる。

定義

ハッシュチェインは、文字列に対して暗号学的ハッシュ関数を繰り返し適用すること（写像の合成）で作成される。例えば、

は長さ4のハッシュチェインを与える。これはやのように書かれることもある。

応用

レスリー・ランポートは、安全でない環境におけるパスワードの保護にハッシュチェインを利用することを提案している。L. Lamport, “Password Authentication with Insecure Communication”, Communications of the ACM 24.11 (November 1981), pp 770-772.  認証を行うサーバは平文のパスワードの代わりにハッシュチェインを保管しておくことで、通信経路上でパスワードが盗まれることやサーバからパスワードが盗まれることを防ぐ。例えば、ユーザから与えられたがサーバに保存されていたとする。認証を行う際には、ユーザはサーバにを送信する。サーバはを計算し、これが保存されているハッシュチェインと一致することを確かめる。その後、サーバは次回の認証で使うためにを保存しておく。

サーバへ送信されたが盗聴されていたとしても、同じハッシュチェインをサーバへ再送して認証を行うことはできない。なぜなら、サーバはその時点ではを期待しているためである。また、暗号学的ハッシュ関数の一方向性により、盗聴者がハッシュ関数を逆転させてハッシュチェイン中の一つ前のハッシュ得ることは不可能である。この例では、ユーザはハッシュチェインを使い尽くすまでに1000回認証を行うことができる。ハッシュ値は毎回異なるので、攻撃者が複製をすることも不可能である。

関連項目


  - ハッシュチェインの再帰的な構造と違い、ハッシュリストの各要素は独立している。
 ワンタイムパスワード

参考文献

Category:暗号アルゴリズム