結城浩のレビュー一覧
-
Posted by ブクログ
ネタバレだいぶ長い間積読になってたこの本、再開したいと思います。
自然数がいくつか並んでいたときにそれが偶数か奇数かを考えるのと同じように奇数を4で割ったときにどうなるか考える。余りが1か3に分類される。
------------
数学に触れたことがある人ならば誰でもその答えを知りたいと思うシンプルな定理それがフェルマーの最終定理かなと思う。本書ではフェルマーの最終定理が証明可能であることを解き明かしていくのだが、実際にその式が文中登場するのはP.222ページの中盤から後半にかけてである。それまでの間、導入部分では数字の仲間外れ、完全巡回をめぐって素数の不思議や互いに素であることの訓練を行っていく。またピタゴラスの定理という誰もが知っている直角三角形で使われる言葉から、原子ピタゴラス数は何かに触れそれが無数に存在することを証明する。
フェルマーの最終定理には背理法を使うため、前半クライマックス部分で「√2が有理数でないことを証明せよ」という問題を背理法で解決しその考え方に慣れる。
またその証明の仕方において偶奇(パリティ)を調べていくことの手段を知る。偶奇を調べる、辺々足す、辺々引く、式の部分を別の文字で置き換えるというプラクティスをずっと続け、やはり最後の証明に必要な基礎的な考え方を実践していく。
素数が複素数を含んだ積の形で表すことができるかどうかを考え、その結果砕ける素数は4で割った余りが3である素数であることを突き止める。
*4で割った余りが3であることで素数を分類のは一番最初の「数字の仲間外れ」で僕が用いた手法で従妹のユーリが「まるでこじつけみたい」とコメントしたように不自然な手法のようにも思われるが、やがて偶奇を調べることと同じくらい柔らかくなじんだ手法に感じられるようになっていく。
その後、数学の群を定義する。そして数学らしからぬ緩やかな定義に感じられる合同の考え方を学ぶ。
さてここまでを学んだ上でのフェルマーの最終定理である。その前に最も美しい数式といわれるオイラーの公式に触れるのであるが、これはフェルマーの最終定理を背理法で証明するにあたって、楕円関数と保型形式の世界をつなぐ谷山・志村の定理において指数関数をテイラー展開して得られた結果をあてはめると、素数=楕円関数の数例と保型形式の数列の間に和が成り立つという答えを得られるためであった。
このようにしてわかりやすいフェルマーの最終定理をその式の形とは全く異なる要素の背理法を使って証明し物語を終える。 -
Posted by ブクログ
暗号化とは何なのか、本書を読んでようやくわかった気がする。以下を見てわかるように、網羅的に書かれているのもよかった。
・暗号とセキュリティの常識
・秘密の暗号アルゴリズムは使うな
・弱い暗号は暗号化しないよりも危険である
・どんな暗号もいつかは解読される
・暗号はセキュリティのほんの一部である
暗号アルゴリズムと鍵を分ける意味はここにあります。暗号アルゴリズムは何度も繰り返して使いたい。しかし、同じ暗号を繰り返し使っていると解読される可能性がだんだん高くなる。だから、暗号アルゴリズムに「変更可能な部分」を用意しておき、通信ごとにそこを変えるのです。それが「鍵」です。
メッセージ認証コードは正真性を確認し、メッセージの認証を行う技術です。頭文字をとって、MACと呼ばれます。
メッセージ認証コードは、任意長のメッセージと、送信者と受信者が共有する鍵という2つの入力を元にして、固定ビット長の出力を計算する関数です。この出力値をMAC値と呼びます。
任意長のメッセージから固定ビット長の出力を計算する、というのは一方向ハッシュ関数とよく似ていますね。ただし、一方向ハッシュ関数でハッシュ値を計算するときには鍵は使いませんでした。それに対してメッセージ認証コードでは、送信者と受信者で共有する鍵を使います。…
…メッセージ認証コードは鍵に依存した一方向ハッシュ関数と考えておくと理解しやすいでしょう。
対称暗号は、暗号化と復号化に同じ鍵を用いる暗号で、メッセージの機密性を守るために使われます。対称暗号のアルゴリズムとして、AESがメインとして使われています。対称暗号は、メッセージの機密性を守れますが、復号化のための鍵を受信者へ配送しなければならないという鍵配送問題を解決する必要があります。
公開鍵暗号は、暗号化と復号化で異なる鍵を用いる暗号で、対称暗号と同じくメッセージの機密性を守るために使われます。公開鍵暗号のアルゴリズムとして最も用いられているものはRSAですが、そのほかにもELGamalやRabin、関連技術としてDiffine-Hellman鍵交換(DH)や、楕円曲線Diffine-Hellman鍵交換(ECDH)も用いられます。公開鍵暗号は対称暗号に比べて速度が非常に遅いため、対称暗号と組み合わせたハイブリッド暗号システムとして用いられるのが普通です。公開鍵暗号は、対称暗号の鍵配送問題を解決することができますが、man-in-the-middle攻撃によって、なりすましをされる危険性があるので、デジタル署名を用いた公開鍵の認証が必要になります。
一方向ハッシュ関数は、長いメッセージを短いハッシュ値に変換する技術で、メッセージの正真性を確認するために用いられます。一方向ハッシュ関数のアルゴリズムとして、SHA-1が使われてきましたが、いくつかの理論上の攻撃が発見されていますので、新たな用途には使われなくなります。現在使われているSHA-2と共に、新しい構造を持つSHA-3がメインとして使われるでしょう。一方向ハッシュ関数は単独で用いられる場合もありますが、メッセージ認証コード、デジタル署名、疑似乱数生成器などを構成する際の要素技術としてもよく用いられます。
メッセージ認証コードは、通信相手からのメッセージが改竄されていないことを確かめる認証技術で、メッセージの正真性を検証し、認証を行うために用いられます。メッセージ認証コードのアルゴリズムとして、一方向ハッシュ関数を用いたHMACがよく用いられます。HMACは、一方向ハッシュ関数の具体的なアルゴリズムに依存せずにメッセージ認証コードを構成することができます。メッセージ認証コードは、通信相手に対して認証を行うことはできますが、第三者に対して認証を行うことはできません。また、通信相手の否認防止にも使えません。メッ
セージ認証コードは、認証付き暗号という用途にも使われています。
デジタル署名は、第三者に対してメッセージの認証を行い、通信相手の否認防止を行うことができる認証技術です。デジタル署名のアルゴリズムとして、鍵や初期化ベクトルやノンスなどを作るために用いられています。公開鍵基盤(PKI)で用いられる証明書は、公開鍵に対して認証局がデジタル署名を施したものです。公開鍵のデジタル署名を検証するためには、何らかの方法で認証局自身の正しい公開鍵を入手する必要があります。
疑似乱数生成器は、予測可能性を持つビット列を生成する技術で、暗号や一方向ハッシュ関数などを使って構成します。疑似乱数生成器は、鍵や初期化ベクトルやノンスなどを作るために使われます。