他の暗号の構築における利用
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/03 00:38 UTC 版)
「暗号学的ハッシュ関数」の記事における「他の暗号の構築における利用」の解説
暗号学的ハッシュ関数(以下では「暗号学的」を省略する)は他の暗号の構築に使える。それらが暗号学的に安全であるためには、正しく構築するよう注意が必要である。 メッセージ認証符号 (MAC) はハッシュ関数から構築することが多い。例えばHMACがある。 ブロック暗号を使ってハッシュ関数を構築できると同時に、ハッシュ関数を使ってブロック暗号が構築できる。Feistel構造で構築されたブロック暗号は、使用したハッシュ関数が安全である限り、その暗号自体も安全であるといえる。また多くのハッシュ関数(SHAなど)は専用のブロック暗号を使い Davis-Mayer などの構成法で構築されている。そのような暗号は、ブロック暗号として従来のモードでも使えるが、同程度のセキュリティは保証できない。 擬似乱数列生成器 (PRNG) を、ハッシュ関数を使って構築できるが、そのままでは通常の「一般の擬似乱数列生成器の出力を暗号学的ハッシュ関数を通すようにして安全にしたもの」のような安全性はない(過去の出力結果が十分にあれば、未来の結果が予測可能だから)。安全にするにはさらにハッシュ関数を通さなければならない。また、現代的な擬似乱数列生成器では通常、周期は確定的だが、ハッシュ関数を利用したPRNGの周期は、衝突の確率でしか推定できず、確定的ではない。 ストリーム暗号はハッシュ関数を使って構築できる。多くの場合、暗号論的擬似乱数生成器をまず構築し、それが生成するランダムなバイト列を鍵ストリームとして使用する。SEALというストリーム暗号は、SHA-1を使って内部の表を生成し、その表は鍵ストリーム生成に使われる。
※この「他の暗号の構築における利用」の解説は、「暗号学的ハッシュ関数」の解説の一部です。
「他の暗号の構築における利用」を含む「暗号学的ハッシュ関数」の記事については、「暗号学的ハッシュ関数」の概要を参照ください。
- 他の暗号の構築における利用のページへのリンク