『現代暗号入門』――ネット取引から仮想通貨まで

神永正博=著
表紙 現代暗号入門
著者 神永 正博
出版社 講談社
サイズ 新書
発売日 2017年10月18日
価格 1,058円(税込)
rakuten
ISBN 9784065020357
暗号通貨として今後のビジネス展開が注目されるビットコインでも楕円曲線署名が使われており、RSA暗号は初めから相手にされていない。当初は不利に見えても、真に優れた技術は結果的に市場を席巻するものなのかもしれない。まるで進化のメカニズムのように。(155ページ)

概要

著者は、ICカードの暗号技術の研究開発経験のある神永正博さん。
ネット通販やオンラインバンクで用いられるSSL暗号はもちろん、ビットコインなど仮想通貨の原理についても、数式を極力省き、日本語で平易に解説されており、入門書としておすすめする。

レビュー

第1章では、シーザー暗号に始まり、ストリーム暗号(RC4など)、ブロック暗号(DESなど)を、簡単な実例をまじえて解説してゆく。
暗号アルゴリズムを非公開にすれば、解読される時間を稼ぐことができる一方、公開することで脆弱性を洗い出すことができるメリットがある。現代の暗号方式は、公開する方を選んでいる。
第3章では公開鍵暗号の話だ。これを最初に知ったとき、よくもまあ思いついたものだと感心したものだが、素数を利用する背景についてわかりやすく解説している。代表例のRSA暗号は、1024ビット(10進数309桁)、2048ビット(同617桁)と巨大な素数を利用するが、これは観測可能な宇宙の原子総数(同80~100桁)と比べてもはるかに大きい。
ここで、素数を判定する方法としてミラー・ラビン素数判定法が紹介されている。関心があったので、PHPとPythonで実装してみた(→PHPとPythonで巨大素数を扱う)。Pythonの整数は桁数の制約がないので、巨大素数を扱うにはもってこいだ。

実際の暗号化通信は、「RSA暗号は巧妙な仕組みだが、大きな整数のべき乗と剰余計算が必要となるため、処理には時間がかかる。電子メールやサイズの大きなファイルを暗号化するには大変な時間がかかり、実用的ではない」(115ページ)としたうえで、ストリーム暗号やブロック暗号とのハイブリッド暗号方式を用いている。
また、電子署名が必要であることや、公開鍵暗号方式が電子署名に応用できることを解説する。
PCの計算能力が高くなることで、どんどん長いモジュラス長のRSA暗号が解読されるようになった。1999年には463ビットが解読され、その10年後には768ビットが解読された。このスピードだと、2017年には1024ビットが解読されるだろう。

第4章は、仮想通貨でも使われている楕円曲線暗号だ。RSA暗号より安全で人気が高まった。なぜ安全なのか、グラフを使ってわかりやすく説明している。また、楕円曲線暗号の応用例であるビットコインの仕組みを説明し、「管理者なしに経済取引できること」(180ページ)を示す。その応用としてのスマートコントラクトは、コインだけでなく様々な取り引きを自動化できるという。暗号化技術は実社会にイノベーションをもたらそうとしている。

第5章は、半導体の特性を利用して暗号解析を行う手法を紹介する。ソフトウェアではなく、ハードウェアの挙動を観測して暗号を解読しようとするサイドチャネル攻撃である。たとえば1999年に発表されたDPA(差分電力解析)は、多数回の暗号化あるいは復号処理に対する電源変動を観測し、統計的に解析する手法で、神永さんらが対策に苦心していたところ、他社が対策の特許出願をしたという。いまも、暗号化とサイドチャネル攻撃のイタチごっこが続いている。
(2018年11月21日 読了)
(この項おわり)
header