暗号本にありがちな初心者向けと中級者向けのギャップを埋めたかった――『暗号技術のすべて』著者に訊く|翔泳社の本

暗号本にありがちな初心者向けと中級者向けのギャップを埋めたかった――『暗号技術のすべて』著者に訊く

2017/08/14 07:00

 暗号技術に関心があるけれど、中級者向けの本になると読むのが難しくなる、そんな方は少なくないかもしれません。あの『ハッカーの学校』を手がけたIPUSIRONさんによる『暗号技術のすべて』(翔泳社)は、そういった悩みを解消するために書かれたそうです。本書の狙いについて、IPUSIRONさんにインタビューで詳しくお尋ねしました。

「初級者向け」と「中級者向け」に大きなギャップがあった

――IPUSIRONさんは『ハッカーの教科書』『ハッカーの学校』(ともにデータハウス)といった本を書かれてきて、今回最新刊として『暗号技術のすべて』が発売となりました。本書のテーマである「暗号」にはどういうきっかけで関心を持つようになったのでしょうか。

IPUSIRON:暗号理論と真剣に向かい合うきっかけとなったのは、約10年前に情報セキュリティ大学院大学(以下、IISEC)に入学したことです。IISECで暗号理論の研究室に配属されました。今から考えると、これが人生の大きな分岐点の一つと言えます(大きな幸運)。

 研究室で暗号理論について学んだり研究したりするにつれて、暗号理論の魅力に取り憑かれました。修了後は業務アプリケーションの開発に携わり、暗号とは少し距離が離れてしまいましたが、現場では「暗号は難しい」「暗号は複雑で面倒だ」と思われがちでした。

 当時は暗号理論の書籍を執筆するとは思ってもいませんでした。しかしながら、この約10年の間に、「暗号の魅力を伝えたい」「見方を変えると見通しがよくなることを伝えたい」という思いが徐々に膨らんでいました。そんなときに暗号本の企画をいただき、その結果として本書を出版することになりました。

――企画を受け、本書を執筆するに至ったのはどんな理由からですか?

IPUSIRON:暗号理論を扱った書籍はたくさん存在します。日本語の書籍だけでも数十冊があります。その中には、定番とされるすばらしい書籍もあります。ですが、「初級者向け」と「中級者向け」の間に大きなギャップを感じていました。本書を書いたのは、それを解決したいと考えたからです。

「初級者向け」の本では、数学的表現を避けて解説するアプローチが多いと言えます。暗号や暗号解読の歴史を通して暗号理論の面白さを紹介し、動作原理はイラストや比喩を駆使して解説されています。

 一方、「中級者向け」の本では、第1章で数学的準備を駆け足で解説するアプローチが多いように思います。数学の知識がある方であれば問題ないでしょう。復習しながら、数学的準備の章を読み進められるからです。

 しかし、そうでない方にとっては無味乾燥に感じられ、下手をすると第1章で挫折してしまうことさえあります。たとえば、せっかく「初級者向け」の本で暗号理論に興味を持ち、さらに「中級者向け」の本を手に取ったにもかかわらず、冒頭の解説で挫折してしまうケースがあるでしょう。

 学習意欲のある方であれば何度か「中級者向け」の本に挑戦するかもしれませんが、結局のところ読破できないというケースもありえます。

 こうしたギャップに私自身も苦しんできました。「暗号本を手に取るが、数学的準備の章がわからない」「詳細に書かれている数学書を手に取るが、1冊読み通すだけで何ヵ月もかかる」といった具合です。

 実は、暗号本はポイントとなる数学的事実を押さえておけば読み進められます。それなのに、(周辺知識も含めて)すべて把握しなければならないという勘違いをしていたのです。

 本書では「初級者向け」と「中級者向け」の内容を同時に取り上げ、あらゆる工夫を施すことで、そのギャップを感じさせないようにしました。数学的事実は、必要に応じて解説しています。多くの具体例を挙げているため、そういった数学的事実に自然と慣れ親しむこともできるでしょう。

本書を読み進めるための三つのアプローチと四つの目標

――では、本書の狙いを教えてください。

IPUSIRON:本書は「初級者向け」と「中級者向け」のギャップを解消する構成になっていると述べました。これを実現するために、三つのアプローチを採用しています。

 一つ目は「考え方を少し変えるだけで、非常に見通しがよくなる」ということです。

 具体的には、アルゴリズムの入出力と内部動作を明確に区別することで見通しがよくなります。内部動作は数学的事実が活用されており、複雑であることも多々あります。そこで、最初は入出力だけに注目します。

 たとえば、RSA暗号とElGamal暗号の内部動作は異なりますが、入出力に注目すると同一の目的を持つデータと言えます。つまり、内部動作をブラックボックスとすれば、公開鍵暗号は三つのアルゴリズムだけで構成されています。

 同様の議論が、共通鍵暗号、デジタル署名などにも当てはまります。よって、端的にいえば暗号理論は、十数個のアルゴリズムだけで説明できるというわけです。

 二つ目は「数学的準備は必要に応じて取り上げる」ということです。

 本書ではアルゴリズムの入出力を把握してから、アルゴリズム同士のデータのやり取りを理解します。それを踏まえたうえで、アルゴリズムの内部動作について学習します。

 アルゴリズムの内部動作を理解するには、複雑なビット処理や数学的事実が必要になります。なぜならば、安全性を満たすために、内部動作にて「AからBを求めることは容易だが、BからAを求めることは困難である」という数学的事実を利用していることが多いからです。必要に応じてこうした数学的事実を取り上げ、読者に負担にならないように配慮しました。

 また、数学を取り扱う場面では、なるべく数値例を挙げるようにしました。数値例を観察することで、一般的な数学的事実を見抜く訓練になります。そして、実際に手計算してみることで、自然とその世界に慣れ親しむことができます。

 三つ目は「多くの試行実験を通して本質に迫る」ということです。

 暗号の教科書では「○○暗号は△△という安全性を持つ」という事実とその証明が解説されています。ところが、「▲▲という安全を満たさない」という解説は省略されていることが多々あります。

 これは筆者が自明と解釈したり、ページ数の観点から省略されたりしたためと考えられます。ところが、初学者(特に独学)にとっては、これを検証することさえ難しいでしょう。

 ほとんどの暗号には何らかの制約があります。たとえば「aは1以上の整数とする」といったものです。制約はないに越したことがありません。制約が設けられているには理由があるはずです。

 つまり、「aを整数とする」のように範囲を広げてしまうと、何らかの問題が生じると予想されます。それは安全性や効率性に関することかもしれません。こうした細かい箇所を一つずつ検証していくことで、その暗号の輪郭を掴み、本質により近づくことができます。

――本書はどういう方をターゲットにしていますか?

IPUSIRON:初級者から中級者であれば、誰でも本書をお勧めできます。特に、開発者や運用者を含むエンジニア、暗号の講義で課題に苦しんでいる学生、暗号の問題が不得意な資格受験者、CTF入門者といった方々には読んでいただきたいです。

 前提知識としては、2進数など基本的なコンピューターの知識と高校レベルの数学がわかれば十分です。数学に関しては、復習のための解説もあります。

 暗号を実装するには、暗号のアルゴリズムの内部動作までを理解しなければなりません。仮に「rを乱数とする」と仕様で決まっているものとします。ところが、「rを定数とする」「rは乱数だが、別の暗号と共用する」という扱い方をしてしまうと、脆弱性につながる恐れがあります。たった1ビットの秘密情報が漏洩する脆弱性であっても、暗号アプリケーションによっては大きな問題となりかねません。

 一方、暗号アプリケーションを開発・設計するには、暗号のアルゴリズムの入出力を理解しておけばよいと言えます。しかし、その入出力は正しく扱わなければなりません。特に、鍵の管理は重要です。いくら暗号の安全性が強くても、鍵が安全でなければ、その暗号アプリケーションは脆弱といえます。

 以上の問題を解決するには、開発者・設計者だけでなく、運用者・利用者も暗号に対して理解を深めておかなければなりません。

 そのため本書では、読者が「読める」「使える」「見える」「楽しむ」という四つの目標を達成できるようにしています。

  • 「読める」は専門書や論文を読む準備ができること。
  • 「使える」は適切な運用や実装ができることこと。
  • 「見える」は日常に隠された暗号技術に気づくこと。
  • 「楽しむ」は古典暗号と現代暗号に魅了されること。

本書を通じて暗号理論の世界に触れてみてほしい

――暗号の面白さはどういうところにあるのでしょうか。

IPUSIRON古典暗号ではその面白さの一つとして、暗号学者と暗号解読者の攻防と、それを取り巻く人間ドラマが挙げられます。古典暗号の仕組みには様々なアイデアが組み込まれており、パズルのような面白さもあります。エニグマに関しては現代でもファンが多く、レプリカを製作したり、現代の観点から数学的に研究したりする人もいます。

 また、現代暗号の面白さとしては、同じ安全性を持つ暗号であっても、様々なバリエーションを持つことが挙げられます。安全性・仮定・効率性・実装性などの観点から、様々な暗号が提案されています。完全に安全かつ効率性がとてもよい暗号は実現できません。そこで、なるべく効率性を下げずに、強い安全性を満たすような暗号を発見しようと研究されています。

 暗号理論と若干関連するものとして、未解読文字の解読という研究テーマもあります。こうした研究には、言語、歴史、暗号解読といった多岐にわたる知識が必要とされます。未解読の書物や文字は、現在でも残されています。前者にはヴィオニッチ手稿など、後者には線文字Aやロンゴロンゴなどがあります。

――IPUSIRONさんが注目している暗号関連のトピックはありますか?

IPUSIRON:暗号アプリケーションの一つである暗号通貨です。仕組みそのものも興味深いですが、その運用や今後の発展が気になります。特に、一般ユーザーにどのように浸透していくのかに注目しています。

 もう一つは、スマホで解錠できるスマート錠前です。以前からデジタル式の錠前は存在していましたが、現在ではスマホで施解錠できる錠前が登場しています。

 一部の商品は既にIoTと連動しており、今後はより密接に関連すると予想されます。IoTと連動するということは、セキュリティをより考慮しなければなりません。それだけでなく、錠前に関しては、防災に関する課題もクリアしなければなりません。こうした課題を解決する方法の一つとして、暗号理論が役立つと考えています。

――それでは最後に、読者にメッセージをいただけますか?

IPUSIRON:1977年にRSA暗号が提案されてから、まだたった40年しか経っていません。それにもかかわらず、現在のコンピューターやインターネットのあらゆる場面において暗号理論が活用されています。今後も、暗号理論は広がりを見せて、多岐にわたる分野で活用されていくと考えられます。

「暗号について勉強するのは初めてで不安がある方」「これまで何度も暗号に挑戦したが、挫折を繰り返してきた方」はぜひ、本書を通じて暗号理論の世界に触れてみてはどうでしょうか。

 どうしても独学が難しいと感じる場合には、暗号の講義を受けるという手もあります。一般向けの暗号講座もたびたび開催されています。こうした場に参加することで、暗号についての理解を深めたり、モチベーションを高めたりできるでしょう。

 さらにやる気になった方は、学校に入学して専門的にやることをお勧めします。多くの大学や大学院では、社会人向けのコースが用意されているはずです。

本書を購入するともらえる特典も!

暗号技術のすべて

Amazon SEshop その他


暗号技術のすべて

著者:IPUSIRON
発売日:2017年8月3日(木)
価格:3,780円(税込)

本書のポイント

1)古典暗号から現代暗号までを体系的に解説
2)暗号技術の絡み合いを解き明かす
3)数学も克服する
4)いろいろな読み方ができる