活かす読書

読んだ本を、どう活かすか? セミリタイヤしたikadokuが、週に5冊、ビジネス書・自己啓発本・投資本・ベストセラーなどの本を紹介します。


2017年12月 | ARCHIVE-SELECT | 2018年02月

| PAGE-SELECT |

≫ EDIT

現代暗号入門 いかにして秘密は守られるのか

満足度★★★★
付箋数:24

  「もともと暗号は、軍事的な通信を秘匿する
  ために作られた。長い間、我々の生活とは
  無縁なものだったが、今や暗号なしに生活する
  のは難しい。インターネットショッピング、
  携帯電話、Wi-Fi、ICカードはもちろん、
  ビットコインを始めとする暗号通貨も、
  電子署名とハッシュ関数という暗号技術で
  できている。
  これほど暗号に依存しているのにもかかわらず、
  技術の根本を理解し、最新技術に通じている
  者は驚くほど少ない。」

本書は、タイトルの通り暗号技術の入門書。

ここまで私たちの社会に浸透した暗号技術が、
実際にどのように組み込まれているのか、
そして最新の暗号技術について解説します。

暗号が現在の技術まで発展するには、
開発者(ディフェンダー)と攻撃者(アタッカー)
の熾烈な争いがありました。

その様子は、数学の知識を中心に使った、
まさに知のバトルロイヤルです。

本書では、こうした開発と攻撃の歴史を
追いながら、現代の暗号技術を紐解きます。

著者はブルーバックスで何冊か数学関係の
本を執筆している神永正博さんです。

まずは、暗号のシステムを構成する3要素を
押さえておく必要があります。

1つ目は、「共通鍵暗号」。

これは閉める鍵と開ける鍵が同じ(共通の)
暗号です。

家の鍵のように1つの鍵があれば、開けることも
閉めることもできるのと同じです。

1ビットごとに暗号化するストリーム暗号と、
いくつかの暗号をまとめて暗号化する
ブロック暗号の2つに大別されます。

2つ目は、「公開鍵暗号」。

これは非対称鍵暗号とも呼ばれ、
閉める鍵と開ける鍵が異なる暗号です。

閉める鍵は一般に公開されていて公開鍵と
呼ばれ、開ける鍵は秘密鍵と呼ばれています。

私たちが通常使っている鍵のイメージとは
かなり違った、暗号特有の概念です。

本書では、代表的な公開鍵暗号である
RSA暗号と楕円曲線暗号について解説します。

そして3つ目が、「ハッシュ関数」。

ハッシュとは、ハッシュドポテトなどと同じで、
もともと「切り刻んで混ぜる」という意味です。

ハッシュ関数とは、データを混ぜ合わせて、
一定の長さのデータ(ハッシュ値)を作り出す
関数です。

この関数は元のデータが改竄されていないかを
検証する目的や、ウェブサービス上での
パスワード認証などで利用されています。

これらが暗号技術の根底を支える三種の神器で、
この3つを組み合わせることで、現代の多用な
暗号システムが生み出されています。

また、暗号は数学的な理論だけでなく、
それを動かすハードウェアも重要な構成要素
となります。

本書の最終章では、ICチップの消費電力から
暗号読解の手掛かりを得る方法や、
そのような攻撃をどのように防ぐかについて
解説しています。

このパートは、それほど多くのページが
割かれていないものの、なかなか面白く、
本書の特徴の1つにもなっています。

  第1章 共通鍵暗号
  第2章 ハッシュ関数
  第3章 公開鍵暗号 ― RSA暗号
  第4章 公開鍵暗号 ― 楕円曲線暗号
  第5章 サイドチャネルアタック

本書は、暗号の基本原理や最新の技術につて、
ちゃんと理解するには最も適した本だと思います。

ただし、一定の数式も出てきますので、
理解するには高2レベルの数学知識は必要です。

それぐらいの数学の知識がないと、
本書の面白さは十分に楽しめないので、
数式が苦手な方には、ちょっとハードルが
高いかもしれません。

この本から何を活かすか?

楕円曲線暗号は、楕円曲線上の離散対数問題に
基づく、数学的に複雑な技術です。

一般的に暗号の安全性が高くなれば、
それにともなって、鍵の複雑さも増すものです。

RSA暗号が、鍵長が伸びるに従って処理に
多くのリソースを使うようになっていたのに対し、
楕円曲線暗号は大した変化はありませんでした。

今流行のビットコインにもこの楕円曲線暗号の
技術が使われています。

本書では、本文に加え巻末注と脚注でも
その技術的詳細を補足して解説しています。

Miss a meal if you have to, but don't miss a book.

このエントリーをはてなブックマークに追加

| 数学 | 06:05 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT |