授業(ネットワークセキュリティ)の,「認証」に関する授業の1スライドです.
一方向ハッシュ関数について,昨年度までは「弱衝突耐性」「強衝突耐性」を定義し,それを破るような攻撃を解説していたのですが,今回は「衝突と攻撃」にタイトルを改め,攻撃を主,耐性を従とし,主従関係を逆転させました.
テキストは以下の通りです.なお,hは一方向ハッシュ関数で,前のスライドで定義しています.
衝突と攻撃
- 衝突: m≠nかつh(m)=h(n)を満たすメッセージm,n(が存在すること).
- 原像攻撃:与えられたh(m)から,h(m)=h(n)を満たすメッセージnを求めること.m=nか否かは問わない.
- 第二原像攻撃:与えられたmから,m≠nかつh(m)=h(n)を満たすメッセージnを求めること.
- 衝突攻撃:m≠nかつh(m)=h(n)を満たすメッセージm,nを求めること.
安全な一方向ハッシュ関数を設計・選択する側の用語として,原像攻撃・第二原像攻撃が成立しない場合に「弱衝突耐性」,衝突攻撃が成立しない場合に「強衝突耐性」と呼ぶことがある.名称に反して,強衝突耐性を破るほうがより容易である.
その後は,参考書に指定している『暗号技術入門 秘密の国のアリス』をもとに,「百万円契約書(ハッシュ値も)をアリスとマロリーが共有したのち,ハッシュ値が一致するような一億円契約書をマロリーが作る」というストーリーと,「ハッシュ値が一致するような百万円契約書と一億円契約書をマロリーが作る」というストーリーを,文章と図を使って解説しました.前者のストーリーは第二原像攻撃,後者は衝突攻撃に,それぞれ対応します.