サイボウズ・ラボの光成です。
私は先月のDevelopers Summit 2015で、「クラウドを支えるこれからの暗号技術」という講演をいたしました。そのとき、近いうちに詳細なテキストを公開する予定と申し上げました。その準備ができましたので報告いたします。
講演と同じタイトル『クラウドを支えるこれからの暗号技術』のpdfはgithubから取得できます。
2015/6/21追記。このテキストが秀和システムから出版されました。
表題の講演は、主に2000年に入ってから登場した新しい暗号技術の紹介がメインです。そのときのプレゼン資料は3月の時点で4万5千ビューを超えていて、デブサミ資料の中でもかなり上位に入る閲覧数のようです。技術者の暗号に関する関心が高いことを伺わせます。
しかし一般向けの暗号のテキストは、公開鍵暗号の一つであるRSA暗号やElGamal暗号ぐらいしか詳しい原理が記されていないことが多いです。それ以上の詳しい話となるとどうしても専門書になってしまいます。また専門書でも新しい暗号技術についての記載は多くありません。 このテキストは入門書と専門書の合間を埋める目的で書かれました。
テキストは約200ページあり、3部からなっています。
I部「暗号の基礎」
ここでは共通鍵暗号や公開鍵暗号、乱数、デジタル署名、PKIなど基本的な暗号概念の紹介をします。このあたりは『新版暗号技術入門 秘密の国のアリス』(結城浩)がとてもわかりやすく解説されているので、初めての方は手元に用意するとよいでしょう。テキストではPOODLEなどの新しい話題にも触れます。
そのあと楕円曲線暗号について紹介します。2013年、アメリカ国家安全保証局(NSA)の盗聴問題以降、前方秘匿性(PFS)と呼ばれる技術に対応したサーバが増えました。 楕円曲線暗号はそのPFSの実装に使われています。また暗号通貨として有名なビットコインでも使われています。 楕円曲線暗号は前述の『暗号技術入門』では触れられていないので詳しく説明しました。
II部「新しい暗号技術」
ここではこのテキストのメインである新しい暗号技術の紹介をします。 クラウドサービスが普及し、従来の公開鍵暗号だけでは対応しきれない要望に応えるべく登場した技術です。
以下のような暗号技術を紹介しています。
- 暗号化したまま検索できる検索可能暗号
- 暗号文を復号することなく別の人に向けた暗号文を作り直すプロキシ暗号
- 沢山の人に安全に効率よく暗号文を配信する放送型暗号
- IDを指定して暗号化できるIDベース暗号
- 復号できる条件を自由に指定できる属性ベース暗号や関数型暗号
- 暗号化したままクラウド上で計算できる準同型暗号
- 自分が知っているということだけを相手に仕えるゼロ知識証明
デブサミの講演を聞いたり、資料を見たりして「へえ、そんなことができるのか。どうやっているのだろう」と興味を持たれた方はご覧になるとよいと思います。図だけで分かった気になるのは避けたかったので数式成分は多少多めですが、できるだけ丁寧に解説したつもりです。準同型暗号は先日のx86/x64最適化勉強会7 レポートで実装の発表もあったホットな話題です。
これらの技術は現時点で研究段階のものも多いです。しかし近年進展が著しく、今後クラウドサービスに必要不可欠になっていくものもあると思います。
III部「数学的なはなし」
I部、II部で使われる楕円曲線やペアリングと呼ばれる写像の詳しい解説をします。やや専門的になるので意欲ある方が読んでくださるとありがたいです。
まとめ
きっかけは2年前のセキュリティ・ミニキャンプ in 横浜という高校生向けの勉強会で、講師として講演したことでした。ネットショップやSNSなどで普段暗号は使っているけど、高校生向けにその中身を解説した本はあまりないと思ったので少しずつ書き始めたのです。 最初はもっと短いもののつもりだったのですが、レビューした下さった方々の意見を反映しているうちに結構な分量になりました。暗号の勉強にお役に立てれば幸いです。
分かりにくいところや間違っているところも多々あると思います。ご意見は@herumiやgithub、herumi@nifty.comに下さるとありがたいです。
それからレビュワーの方々には感謝いたします。この場を借りてお礼申し上げます。