このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

  • 追加された行はこの色です。
  • 削除された行はこの色です。
*目次 [#t3a0db01]

#contents


*敵のモデル [#t1bbd465]

 敵は何らかの方法で(平文,暗号文)の組(mSUB{1};,cSUB{1};),…,(mSUB{q};,cSUB{q};)を入手したとします。この情報をもとに、鍵Kを求める攻撃を考えます。
 敵は何らかの方法で(平文,暗号文)の組(mSUB{1};,cSUB{1};),…,(mSUB{q};,cSUB{q};)を入手したとする。この情報をもとに、鍵Kを求める攻撃を考える。

 暗号攻撃にはあらゆるアプローチがあります。まずブルートフォースタック、サイドチャネルアタック、ショートカット方式に分類できます。
 暗号攻撃にはあらゆるアプローチがあります。まずブルートフォースタック、サイドチャネルアタック、ショートカット方式に分類できる。


*ブルートフォースアタック [#k35fdc0a]

**ブルートフォースアタック(全数探索攻撃) [#dea3d4f2]

 これは考えられる鍵をすべて総当り式に調べていくという方法です。このアタックはすべての暗号において用いることができます。これはアタックの方法の中でも一番時間がかかるもので、そのため通常このアタックで解読されてしまう可能性のあるものは暗号として使えません。

**誕生日攻撃(バースデーアタック)=暗号文一致攻撃 [#yd40053a]

 バースデーパラドックスと呼ばれる「ランダムに23人を集めると誕生日が同じ人間が2人以上いる確率が高い」という理論に基づいている攻撃方法です。一般化すると、Nビットの出力がある場合は、2SUP{N/2};個程度の出力を集めると、その中に同じデータが存在する可能性が高いという確率性をもとにして解析を進めます。

**辞書攻撃(ディクショナリーアタック) [#h09e14cb]

 事前に、できる限り平文と暗号文のペアを管理しておいて、解析対象の文章と一致するものを探し出す方法です。


*サイドチャネルアタック [#z77f8b3a]

 実装するハードウェアの特性を狙う方法です。

**SPA攻撃(Simple Power Analysis attack:単純電力解析攻撃) [#v2d63953]

**DPA攻撃(Differential Power Analysis attack:電力差分解析) [#qaec869c]

 SPA攻撃とDPA攻撃は、計算中に消費電力が増えることに注目したアタックです。

**タイミング攻撃 [#i6cd1e1d]

 計算している時間に注目したアタックです。

**キャッシュ攻撃 [#pf36059c]

 自動的に鍵が変化していく暗号に対して、キャッシュメモリ内にデータにヒットしたかどうかで計算時間が変化することに注目したアタックです。

**DFA攻撃(Differential Fault Analysis attack) [#j068875b]

 外部から強力な光(レーザー光)などを照射することにより、意図的にエラーを発生させて、それをもとに解読の手がかりを得るアタックです。


*ショートカット方式 [#tbe812f0]

 数学的に解を求める方式です。
 数学的に解を求める方式である。

**暗号文攻撃 [#db778b57]
**暗号文攻撃(cipertext-only attack) [#db778b57]

 敵が知っているのは暗号文のみで、その暗号文からそれに対応する平文あるい
は鍵を解読しようとする方法です。
 暗号文のみを使った攻撃のこと。つまり、敵が知っているのは暗号文のみで、その暗号文からそれに対応する平文あるい
は鍵を解読しようとする方法である。

**既知平文攻撃 [#v8ab5669]
 盗聴が自由にできるという現実的な世界の状況と対応できる。総当り攻撃、平文言語の確率的性質を利用する攻撃が含まれる。

 敵に平文と暗号文のペアである(mSUB{1};,cSUB{1};)、…、(mSUB{q};,cSUB{q};)がランダムに与えられ、そこから鍵Kを解読する方法です。
 これは暗号のアルゴリズムも非公開になっているときの攻撃モデルである。よって、古典暗号における最も標準的な攻撃モデルといえる。


**既知平文攻撃(known-plaintext attack) [#v8ab5669]

 敵は平文と暗号文のペアを知っている場合における攻撃。ただし、敵はそのペアを自由に選択することはできない。つまり、敵に平文と暗号文のペアである(mSUB{1};,cSUB{1};)、…、(mSUB{q};,cSUB{q};)がランダムに与えられ、そこから鍵Kを解読する方法である。

#img(http://s-akademeia.sakura.ne.jp/main/image8/attacker1.jpg)
#img(,clear)

**選択平文攻撃 [#j33ecdef]
 通信した後で不用になった平文をゴミ箱から敵が得られるというような現実的な世界の状況と対応できる。また、例えば「敬具」「草々」などの結びの言葉が常に平文に含まれていることを敵が知っていた場合も、このアタックの状況といえる。

 敵は平文mSUB{1};,…,mSUB{q};を自由に選び、それに対応する暗号文を入手できるときに、鍵Kを解読する方法です。
 現代暗号の場合は、暗号化アルゴリズムも公開されているので、既知平文攻撃以上である選択平文攻撃が実行できる。あくまで古典暗号における攻撃モデルである。暗号文攻撃よりも有益な(と思われる)情報を敵が得られるので、この攻撃に対しても耐性があるように古典暗号は作るべきである。


**選択平文攻撃(chosen-plaintext attack) [#j33ecdef]

 敵は平文mSUB{1};,…,mSUB{q};を自由に選び、それに対応する暗号文を入手できるときに、鍵Kを解読する方法である。

#img(http://s-akademeia.sakura.ne.jp/main/image8/attacker2.jpg)
#img(,clear)

**選択暗号文攻撃 [#d439f363]
 この攻撃は現代暗号における[[公開鍵暗号スキーム]]では常に可能である。よって、現代暗号における一番低いレベルの攻撃モデルである。現代暗号は最低でもこの攻撃モデル以上を持っていなければ意味がない。


**選択暗号文攻撃(chosen-cipertext attack) [#d439f363]

 敵は選択平文攻撃に加えて、暗号文cSUB{1};,…,cSUB{q};を自由に選び、それに対応する平
文を入手することができます。そういった状況で鍵Kを解読する方法です。
文を入手することができる。そういった状況で鍵Kを解読する方法である。

#img(http://s-akademeia.sakura.ne.jp/main/image8/attacker3.jpg)
#img(,clear)

 例として、すべてが1や0の暗号文を想定して、それを復号するとどうなるのかを調べることができるので、敵の解読能力はとても高いといえる。
 また対応する平文を得た後に、また別の暗号文を選んでその平文を聞けるかどうかなどの条件によって、攻撃名に1,2という数値が付く。もちろん自由に何回でもたずねられる方が敵が得するので、強い攻撃と言える。

 ショートカット方式の場合は下の解読法のほうが敵に与えられる情報量が多くなります。つまり、Kを解読できる可能性も高くなるわけです。
 自分で選択した暗号文を復号アルゴリズム(鍵を使わずに)を実行できる。これは公開鍵暗号スキームにおける攻撃モデルの最も強い攻撃である。この攻撃に対しても安全な暗号を作れたら一番嬉しいことになる。

 ちなみに、暗号がある程度わかっているひとのために一応述べておきます。本当は適応的かどうかも考慮しなければなりませんが、ここではとりあえずそれは考えずに上記のことだけを理解しておいてください。

*鍵を求めるのか、平文を求めるのか [#iecf0158]

 上記の説明では敵の目標は鍵を見つけることであった。しかしながら、安全性の証明において、敵は鍵を求めるというよりも、暗号文とその平文を求めるというように考えることが多い。しかし注意すべき点がある。例えば、選択暗号文攻撃においては、復号オラクルを使えてしまうので、自由に暗号文と平文のペアは知ることができる。そこで、最終的に求める暗号文と平文のペアは、あくまで復号オラクルで利用したもの以外でなければならない。この条件がなければ、自明に敵が勝ってしまうからである。

 まとめると、「敵は公開鍵などを入力として、復号オラクルなどを利用して、最終的に暗号文とそれに対応する平文のペアが出力できれば、敵の勝ちである(攻撃成功である)。ただし、敵の出力の暗号文は復号オラクルに投げることができない」ということになる。