うちゅうてきなとりで

The Cosmological Fort 無職戦闘員による本メモ、創作、外国語の勉強その他

『新版暗号技術入門 秘密の国のアリス』結城浩

 暗号技術をわかりやすく紹介する入門書。特に情報技術の発展した現在では、暗号技術に対する理解が不可欠である。

 暗号というと原始的なトンツーを思い出してしまうが、中心はコンピュータである。

  ***

 1部 暗号

 1 暗号の世界ひとめぐり

 暗号は、機密性、真正性、認証、否認不可能性を守るために用いられる。暗号技術においてもっとも重要な6つとは次のとおり。

・対称暗号

公開鍵暗号

・1方向ハッシュ関数

・メッセージ認証コード

・デジタル署名

・疑似乱数生成器

 暗号における常識……秘密の暗号アルゴリズムは使わない、弱い暗号は暗号化しないようりも危険、どんな暗号もいつかは解読される、暗号はセキュリティのほんの一部である。

 2 歴史上の暗号

 歴史上使われたシーザー暗号、単一換字暗号、エニグマ等。

 解読法の基礎……総当たり、頻度分析、機械による解析。

 暗号アルゴリズムと鍵の関係について。

 ――暗号アルゴリズムは何度も繰り返して使いたい。しかし、同じ暗号を繰り返し使っていると解読される可能性がだんだん高くなる。だから、暗号アルゴリズムに「変更可能な部分」を用意しておき、通信ごとにそこを変えるのです。それが「鍵」です。

 3 対称暗号(共通鍵暗号

 対称暗号は暗号化と複合化に共通の鍵を用いる。対称暗号方式の1つである使い捨てパッドは、理論的に解読不可能である。

 対称暗号のうち現在使われているのはAESであるRijndael(ラインダール)である。AESはアメリカのNISTが定めた標準アルゴリズムである。自作のアルゴリズムは使うべきではなく、検証作業に耐えた標準アルゴリズムを用いるのがよい。

 4 ブロック暗号のモード

 ブロック暗号のモードは強いものを使うべきである。

 5 公開鍵暗号

 公開鍵暗号では、暗号化の鍵は公開されており、それを複合する鍵はプライベート化されている。受信者ははじめからプライベート鍵を持っているので、鍵を安全に配送しなければならない問題は解決する。

 公開鍵暗号方式は共通鍵方式より時間がかかる。このため、ハイブリッド暗号システムが用いられる。

 また、公開鍵暗号では、鍵の真正性を確保することはできない。

 6 ハイブリッド暗号システム

 メッセージを対称暗号で暗号化する。対称暗号の鍵は疑似乱数生成器で作成し、公開鍵暗号で暗号化する。受信者はセッション鍵をプライベート鍵で複合化し、メッセージをセッション鍵で複合化する。

  ***

 2部 認証

 7 1方向ハッシュ関数

 1方向ハッシュ関数は、情報が書き換えられていないか、すなわち真正性が確保されているかどうかを確かめる指紋のようなものである。

 ハッシュ関数は入力をメッセージ、出力をハッシュ値という。任意長のメッセージからハッシュ値が計算でき、また高速であり、メッセージが異なるとハッシュ値は変わる。

 ハッシュ値はファイルの改ざん検出、メッセージ認証コード(なりすまし防止、SSL/TLS等)、デジタル署名等に利用される。

 標準にはSHA1やSHA3がある。

 1方向ハッシュ関数は、改ざんは検知できるがなりすましは検知できない。認証には認証コードやデジタル署名が必要である。

 8 メッセージ認証コード

 真正性を確認し、メッセージの認証を行う技術でありMACと呼ばれる。任意長のメッセージと、送信者受信者の共有鍵を元に、ハッシュ値を計算する。このハッシュ値をMAC値と呼ぶ。

 よって、メッセージ認証コードは鍵に依存した1方向ハッシュ関数である。

 利用例としてSWIFT、IPsec、SSL/TLSがある。

 9 デジタル署名

 デジタル署名は、真正性を確保するとともに、第3者に対する証明を行い、またメッセージの否認防止を行う。

 デジタル署名では、署名用の鍵は署名する人だけが持つプライベート鍵であり、検証用の鍵は誰でも使うことのできる公開鍵である。このように、デジタル署名は公開鍵暗号を逆用することにより確立した技術である。

 プライベート鍵による暗号化が署名にあたり、公開鍵による複合化が検証にあたる。

 問題……検証用の公開鍵が本物の送信者の鍵である必要がある。正しい公開鍵を担保するために公開鍵基盤(PKI)が必要となった。

 10 証明書

 公開鍵証明書は、認証局によるデジタル署名が行われている。認証局とは、「この公開鍵はこの人のものである」と認証するための組織や人をいう。

 認証局は鍵ペアの作成、証明書登録、証明書破棄と破棄リスト発行を任務とする。

  ***

 3部

 11 鍵

 鍵において重要なのは鍵空間の大きさ、すなわち「可能な鍵の総数」である。それは鍵のビット長で決まる。

 鍵は平文と同じ価値を持つ。情報の機密性は、鍵を秘密にすることで守るべきである。

 鍵は乱数からつくるのがベストである。鍵を盗まれた場合、遡って解読されるのを防ぐために、鍵の更新が有効である(バックワードセキュリティ)。

 鍵の保管には、金庫等にしまうほか、鍵に鍵をつける(KEK)方策がある。

 パスワードについて……乱数によってつくり、メモを安全なところに保管することが有効である。

 12 乱数

 乱数には次の3つの性質がある。

・無作為性……統計的な偏りがなく、でたらめな数列になる。

・予測不可能性……過去の数列から次の数を予測できない。

・再現不可能性……同じ数列を再現できない。

 サイコロを振ることは真の乱数(再現不可能性を持つ)生成である。真の乱数でないものを疑似乱数という。真の乱数をつくるにはコンピュータが外部の条件を取り入れることが不可欠である。

 13 PGP

 PGPはジマーマンによって作成された暗号ソフトである。PGPは対称暗号、公開鍵暗号、デジタル署名、1方向ハッシュ関数、証明書、圧縮、ファイル分割結合、鍵管理の機能を持つ。

 これまで、世界中で機密保持のために用いられてきたソフトウェアである。

 14 SSL/TLS

 インターネットにおいて通信の秘密を保持するための暗号枠組みである。SSLはNetscape社によってつくられた。TLSはSSLを元に開発されたものである。

 注意……証明書が正しくとも、情報を送る相手が信用できるとは限らない。また入力中のデータ、通信後のデータは守られていない。

 15 暗号技術と現実社会

 暗号技術はすべて圧縮技術である。

 量子暗号は量子の性質を利用した暗号であり、理論的に解読不可能である。量子コンピュータは、実現すれば量子暗号以外のすべての暗号を解読可能にする。

 暗号技術は進歩しているが、その使い手の運用方法次第で情報の保全は破られてしまう。

新版暗号技術入門 秘密の国のアリス

新版暗号技術入門 秘密の国のアリス