ハッシュチェーンとは、暗号学的ハッシュ関数をデータに連続的に適用することです。コンピュータセキュリティにおいては、ハッシュチェーンは単一のキーまたはパスワードから多数のワンタイムキーを生成するために使用される手法です。否認防止のためには、ハッシュ関数を複数のデータに連続的に適用することで、データの存在履歴を記録することができます。
ハッシュチェーンとは、暗号学的ハッシュ関数を連続的に適用したものである。弦へ。
例えば、
長さ4のハッシュチェーンが得られます。
レスリー・ランポート[ 1 ]は、安全でない環境におけるパスワード保護スキームとしてハッシュチェーンの使用を提案した。認証を提供する必要のあるサーバーは、平文パスワードの代わりにハッシュチェーンを保存することで、送信中のパスワードの盗難やサーバーからの盗難を防ぐことができる。例えば、サーバーはまずハッシュチェーンを保存することから始める。これはユーザーによって提供されます。ユーザーが認証を希望する場合、ユーザーはこれを提供します。サーバーへ。サーバーは計算しますそして、これが保存されているハッシュチェーンと一致することを確認します。次に保存します。次回ユーザーが認証を希望する場合に備えます。
盗み聞きする人が見ているサーバーに伝達されたハッシュチェーンは、認証のために同じハッシュチェーンをサーバーに再送信することはできません。なぜなら、サーバーは現在、暗号学的に安全なハッシュ関数は一方向であるため、盗聴者がハッシュ関数を逆算してハッシュチェーンの以前の部分を取得することは不可能です。この例では、ハッシュチェーンが枯渇するまでにユーザーは1000回認証できます。毎回ハッシュ値は異なるため、攻撃者が複製することはできません。
バイナリハッシュチェーンは、ハッシュツリーと組み合わせてよく使用されます。バイナリハッシュチェーンは、2つのハッシュ値を入力として受け取り、それらを連結し、結果にハッシュ関数を適用することで、3つ目のハッシュ値を生成します。

上記の図は、8つのリーフノードと、3番目のリーフノードのハッシュチェーンからなるハッシュツリーを示しています。ハッシュ値自体に加えて、連結順序(右または左の1、0)または「順序ビット」もハッシュチェーンを完成させるために必要です。
ウィンターニッツ鎖(関数鎖とも呼ばれる[ 2 ])はハッシュベースの暗号で使用される。この鎖は、ウィンターニッツパラメータwdのビット数)とセキュリティパラメータn(ハッシュ値のビット数、通常はセキュリティ強度の、 [ 3 ] 256 または 512)。チェーンは以下で構成されます。秘密鍵skに対して一方向の「連鎖」関数Fを繰り返し適用した結果得られる値:チェーン関数は通常、標準的な暗号学的ハッシュに基づいているが、パラメータ化(「ランダム化」 [ 4 ] )する必要があるため、基となるハッシュの呼び出し回数が少なくなる。[ 5 ]ウィンターニッツ署名方式では、チェーンを使用してmビットメッセージの1桁をエンコードするため、ウィンターニッツ署名は約ビット、計算には約関数 F の応用。[ 3 ]一部の署名標準 ( Extended Merkle 署名方式、XMSS など)では、w を桁の可能な値の数として定義しているため、XMSSでは、上記と同様に、w を桁内のビット数として定義する規格 ( Leighton-Micali Signature、LMS など)では、w は桁内のビット数として定義されます。 [ 6 ]
ハッシュチェーンはブロックチェーンと似ており、どちらも暗号学的ハッシュ関数を用いて2つのノード間のリンクを作成します。しかし、ブロックチェーン(ビットコインや関連システムで使用されているもの)は一般的に、公開台帳(データ)を中心とした分散型合意をサポートすることを目的としており、データのカプセル化と関連するデータ権限に関する一連のルールを組み込んでいます。