PR
キーワードサーチ
フリーページ
著者・編者 | 神永正博=著 |
---|---|
出版情報 | 講談社 |
出版年月 | 2017年10月発行 |
著者は、IC カードの暗号技術の研究開発経験のある神永正博さん。ネット通販やオンラインバンクで用いられる SSL 暗号はもちろん、ビットコインなど仮想通貨の原理についても、数式を極力省き、日本語で平易に解説されており、入門書としておすすめする。
第1章では、シーザー暗号に始まり、ストリーム暗号(RC4 など)、ブロック暗号(DES など)を、簡単な実例をまじえて解説してゆく。
暗号アルゴリズムを非公開にすれば、解読される時間を稼ぐことができる一方、公開することで脆弱性を洗い出すことができるメリットがある。現代の暗号方式は、公開する方を選んでいる。第3章では公開鍵暗号の話だ。これを最初に知ったとき、よくもまあ思いついたものだと感心したものだが、素数を利用する背景についてわかりやすく解説している。代表例の RSA 暗号は、1024 ビット(10進数 309 桁)、2048 ビット(同 617 桁)と巨大な素数を利用するが、これは観測可能な宇宙の原子総数(同 80~100 桁)と比べてもはるかに大きい。
ここで、素数を判定する方法としてミラー・ラビン素数判定法が紹介されている。関心があったので、PHP と Python で実装してみた。 https://www.pahoo.org/e-soul/webtech/php06/php06-65-01.shtm Python の整数は桁数の制約がないので、巨大素数を扱うにはもってこいだ。
実際の暗号化通信は、「RSA 暗号は巧妙な仕組みだが、大きな整数のべき乗と剰余計算が必要となるため、処理には時間がかかる。電子メールやサイズの大きなファイルを暗号化するには大変な時間がかかり、実用的ではない」(115 ページ)としたうえで、ストリーム暗号やブロック暗号とのハイブリッド暗号方式を用いている。
また、電子署名が必要であることや、公開鍵暗号方式が電子署名に応用できることを解説する。
PC の計算能力が高くなることで、どんどん長いモジュラス長の RSA 暗号が解読されるようになった。1999 年には 463 ビットが解読され、その 10 年後には 768 ビットが解読された。このスピードだと、2017 年には 1024 ビットが解読されるだろう。
第4章は、仮想通貨でも使われている楕円曲線暗号だ。RSA 暗号より安全で人気が高まった。なぜ安全なのか、グラフを使ってわかりやすく説明している。また、楕円曲線暗号の応用例であるビットコインの仕組みを説明し、「管理者なしに経済取引できること」(180 ページ)を示す。その応用としてのスマートコントラクトは、コインだけでなく様々な取り引きを自動化できるという。暗号化技術は実社会にイノベーションをもたらそうとしている。
第5章は、半導体の特性を利用して暗号解析を行う手法を紹介する。ソフトウェアではなく、ハードウェアの挙動を観測して暗号を解読しようとするサイドチャネル攻撃である。たとえば 1999 年に発表された DPA(差分電力解析)は、多数回の暗号化あるいは復号処理に対する電源変動を観測し、統計的に解析する手法で、神永さんらが対策に苦心していたところ、他社が対策の特許出願をしたという。いまも、暗号化とサイドチャネル攻撃のイタチごっこが続いている。
【SFではなく科学】宇宙はいかに始まった… 2024.10.20
【大都会の迷路】Q.E.D.iff -証明終了… 2024.10.06
【寝台列車で密室殺人事件?】Q.E.D.if… 2024.10.05