【2話】やさしく学ぶBitcoinの暗号技術:公開鍵の安全性

共通鍵の弱点

前回は暗号の歴史をご紹介しました。

【1話】やさしく学ぶBitcoinの暗号技術:暗号の歴史

2017.09.28
前回までの暗号は共通鍵方式でしたね。つまり、暗号化も復号も同じ鍵で行われていました。スキュタレー暗号を思い出してみましょう。ロッドの”太さ”が”鍵”になり、暗号も復号もこの太さによって行われました。太さが敵に秘密になっている間はいいのですが、敵に知られたら大変なことになります。代表的な危険性は下記の2つがあります。その前にここで用語のご紹介です。平文(ひらぶん)とは暗号化の行われる前のオリジナルの情報のことをいいます

スキュタレー(出典:Wikipedia)

  1. 暗号化しても、すぐに解読されてしまう
  2. 敵に偽の情報(平文)を暗号化されて、味方に流される

1ですがこれはすぐに思いつきますよね。「明日の日の出と同時に奇襲」なんて暗号化して味方に流しても、もろバレなわけです。「明日の日の出に攻撃だとしたら、今腹ごしらえしている時分だろうし、この隙にこっちから攻めておくか」みたいな感じで敵に攻められる可能性があるわけです。

2ですがこれもこまったことになります。「クセルクセス将軍が死んだ」などというデマ情報を暗号化されて流布されてしまった暁にはスパルタ軍は大混乱に陥ります。暗号化の鍵をにぎっているのは味方だけのはずなので、情報の出処は信頼できるだろうという判断がなりたちやすいのが落とし穴です。


これらの危険性を回避するためには、定期的に鍵を変更することです。しかし鍵を変更したら、鍵を変更したよと味方にも伝えておかないと味方は復号ができずに混乱することになります。鍵合わせが必要です。さらにさらに、鍵合わせの情報が傍受されていたらもう最悪です。「もう何やってもダメな気がしてきた。あー、味方も信用できないな。暗号化してセキュリティを確保していたはずなのに余計にセキュリティが心配になってきた。」などというセキュリティ沼にハマることになります。共通鍵の弱点を補える方法はないのでしょうか。こうして生まれたのが公開鍵方式です。

公開鍵の基本的な考え方

公開鍵暗号の提唱者はホイットフィールド・ディフィーとマーチン・ヘルマンです。公開鍵暗号はよく南京錠に例えられます。大切なものを箱に入れて相手から送ってもらう状況を考えましょう。配達員は中身を知ったら盗みを働く可能性がありますが、中身がわからなければしっかり届けてくれるとします。そのような状況であれば、鍵のかかっていない南京錠を予め相手に渡して、箱に鍵をかけて送ってもらえばいいですね。南京錠はとくに秘密にしているわけではなく、公開されています。しかし鍵自体は秘密にされてます。これが公開鍵方式の基本的な考えかたです。

公開鍵暗号はどうすれば安全といえる?

ここで、安全性について考えてみましょう。暗号文を完全に(つまり全文)解読できる攻撃者が存在しない安全性というのは想像しやすいですね。この安全性は悪くいえば、ちょっとだけ復号できるが完全に解読できない安全性が含まれます。全部は解読できないけど、ちょっとなら解読できちゃったよみたいな状況です。「明日の日の出と同時に奇襲」の場合なら、「明日の日の出」だけは解読できちゃったという状況です。これは読者のみなさんの性格がでるかもしれませんが、ちょっとくらい漏れても大丈夫だよ。みたいな人もいるかもしれません。でも、暗号技術的にはダメです。少し足りとも解読できない安全性のことを強秘匿性と言います。

ほー、強秘匿性ね。名前からして安心そうだなと思った方。残念でした。まだこれでも実用レベルの安全性は確保されていません。世の中に絶対って無いんですね。だれかがとんでもない発想をして、「そんな攻撃方法があったか!」みたいな驚きの攻撃を仕掛けてくる可能性があります。そこで、「実際そんなケースないでしょ」というような最悪のケースを考えて攻撃に備えておく必要があります。

実用レベルの暗号技術を設計する際には”復号オラクル”の存在を前提にします。なんだよオラクルって。ラスカル?アスクル?データベース?連想ゲームはさておき、日本語では神託のことです。復号オラクルとは攻撃者が任意の暗号文を送るとそれを復号して平文を返してくれる神的存在のことです。ただし、復号オラクルは解読対象の暗号文だけは受け付けないとします。さっきの例で言えば「明日の〜」の文を解読しようと問い合わせることはできないということです。その代わりにその他の様々な暗号文に関しては問い合わせができるということですね。攻撃者は復号オラクルにたくさん自由に暗号文を送ることで、たくさんのデータを貯めこみ、そのデータをもとに解読対象の暗号文を解読しようとします。しかし、それでも解読できないような安全性をCCA安全性といいます。

ふう。疲れました。安全性についての説明が終わりましたので、今回はこの辺で。次回は代表的な公開鍵暗号であるRSA暗号の準備体操をしたいと思います。次回もお楽しみに!

参考資料

本記事は下記の本を参考にしております。
・『トコトンやさしい暗号の本』 今井秀樹監修 日刊工業新聞社

【3話】やさしく学ぶBitcoinの暗号技術:RSA暗号の準備体操

2017.09.30

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です