全2169文字
PR

 暗号アルゴリズム(前回使った暗号プリミティブのような)を設計すること自体はたやすい。だが、安全な暗号アルゴリズムを設計するとなると、生半可なことではない。本特集でそれを試みるのはやめておくが、良いアルゴリズムを見分ける方法は知っておこう。

 求める以上に選択肢が多いので、容易なことではないかもしれないが、暗号の歴史で繰り返されてきた失敗と、そこから社会が学んだ教訓のなかに手がかりが見つかりそうだ。過去を探ってみれば、暗号アルゴリズムを安全だと信頼するには何が必要か、その要因がつかめるだろう。

 何世紀も経ち、王国がいくつも生まれては消えていった。そのあいだに、主な通信手段として紙はあまり使われなくなり、便利で現実的なテクノロジーが好まれるようになってきた。現在の私たちは、強力なコンピューターとインターネットを手に入れ、実用性はたしかに上がった。

 だがそれは、かつての悪意ある何者かも同じように強力になったことを意味する。悪意のある者は、今や至るところに存在する。スターバックスで接続しているWi-Fiにも、インターネットを構成しメッセージを転送する各サーバーにも、それどころか暗号アルゴリズムが動いているコンピューターにさえ悪意は忍び寄るのだ。

 敵は今や、はるかに多くのメッセージを読み取れるようになっている。ウェブサイトへの要求が誤った経路をたどれば、誰にも気づかれることなく、ナノ秒のうちに書き換えやコピーが可能になるからだ。

 それほど古くない歴史を振り返るだけで、暗号アルゴリズムが崩壊した例はいくらでもある。秘密の国家機関や独立の研究者によって破られたり、メッセージの保護や使命の達成に失敗したりしてきた。そのたびに教訓が生まれ、優れた暗号の作り方を私たちは少しずつ理解していったのだ。

注:暗号アルゴリズムが破られたと考えられるケースはいろいろあり、アルゴリズムへの攻撃方法は何通りも予想できる。秘密鍵が攻撃者に漏れることもあれば、鍵がなくてもメッセージを復号できたり、暗号化メッセージを見るだけで元のメッセージに関する情報が分かったりする場合などだ。アルゴリズムについての前提を少しでも危うくするものがあれば、アルゴリズムは破られるものと考えたほうがいい。

ケルクホフスの原理:秘匿されるのは鍵だけ

 暗号をめぐる長年の試行錯誤を経て、強力な概念がひとつ生まれた。暗号プリミティブが主張するセキュリティレベルに対する信頼性を保証するには、そのプリミティブを専門家の手でオープンに解析する必要がある、という考え方だ。

 その過程を経ないと、隠蔽によるセキュリティに依存することになり、これは歴史的にも成功していない。だからこそ、暗号作成者(暗号を作る側:cryptographer)はたいてい、暗号解析者(暗号を破る側:cryptanalyst)の手を借りて、構成法のセキュリティを解析するのである(もちろん、暗号作成者が暗号解析者であることも、またその逆もある)。

[画像のクリックで拡大表示]