情報セキュリティ: 2007年6月8日

q
q
情報セキュリティ
第8回:2007年6月8日(金)
q
q
本日学ぶこと

鍵の利用と管理
q
q
q




鍵の生成,配送,認証,破棄
乱数
公開鍵基盤(PKI)
鍵は平文と同じ価値を持つ.
擬似乱数生成器には最初に種を与える.
PKIではCAによる(連鎖した)証明書が,公開鍵の正当性を
保証する.
レポート課題2は,PDFで掲示します.
2
鍵が重要

鍵は小さい
q
q
q

DES:56ビット
AES:128, 192, 256ビット
RSA:512~2048ビット
鍵は平文と同じ価値を持つ.
q
鍵が知られる(compromised)と,過去の暗号文の中身も知られ
る.
3
鍵をどう作る?使う?

鍵の生成
q

鍵の配送
q
q

乱数で生成する.
鍵も暗号化して送る.
ハイブリッド暗号
 鍵の暗号化:CK = E1(K, r)
 メッセージの暗号化:CM = E2(r, M)
 E1は公開鍵暗号,E2は対称暗号,rは乱数を使うことが多
い.
鍵の認証
q
q
「Aliceの鍵」が確かにAliceの鍵であると認識する方法は?
公開鍵基盤(PKI)
4
乱数の要件

無作為性
q
q

予測不可能性…暗号学的に安全な乱数の要件
q

でたらめに見える.
統計的検定により判定できる.
過去の乱数列を見ても,次の乱数が求められない.
再現不可能性…真の乱数の要件
q
q
ある乱数列と同じ数列を再現できない.
乱数列に周期がない.
5
乱数生成法

線形合同法
q
q
q

Blum-Blum-Shub
q
q

古典的な擬似乱数生成アルゴリズム.randやrandom関数でも
利用
Xn+1 = (A*Xn + B) % M に基づく.
予測可能.周期が小さく,質が悪い
Xn+1 = (Xn)2 % pq に基づく.
予測不可能,再現可能
/dev/random
q
q
q
UNIXの特殊ファイル.catやddといったコマンドで取り出す.
環境ノイズをもとに生成し,再現不可能
多ビット乱数を生成するには不向き
6
擬似乱数生成器



内部状態を初期化する際に与える値を「種」という.
内部状態は,一つ乱数を生成すると,変わる.
しかし内部状態は有限サイズなので,周期をなくす(周期を∞
にする)ことはできない.
乱数の
初期化
種
内部状態
乱数
生成
乱数列
擬似乱数生成器
図の出典:『暗号技術入門―秘密の国のアリス』 p.303, p306を改変
7
乱数まとめ

「乱数」を使ってすること
q
q

鍵(公開鍵暗号の場合,鍵ペア)の生成
ノンスやソルトの生成
「乱数」の課題
q
q
計算機上でセキュリティを実現するための乱数生成法として何
を選べばよいか?
 rand関数は不可
 周期に注意
種の選び方
 漏洩は,鍵の漏洩と同じ
 推測されるので,「時刻」や,「時刻とプロセス番号の組み合
わせ」は使わない.
8
これまでの授業のおさらい

「対称暗号」ができること
q
q
q

秘密通信:鍵を持つ者しか知ることのできないよう,メッセージ
をやり取りすること.
機密性の保持:鍵を持たない者が,暗号化されたファイルを取
得しても,もとのメッセージは分からない.
高速な暗号化・復号処理
「対称暗号」の課題
q
鍵をどのように生成し,あらかじめ共有すればいいか?
9
これまでの授業のおさらい

「公開鍵暗号」ができること
q
q
q

秘密通信:復号鍵を持つ者しか知ることのできないよう,メッ
セージをやり取りすること.
機密性の保持:復号鍵を持たない者が,暗号化されたファイル
を取得しても,もとのメッセージは分からない.
暗号化鍵の公開:だれでも暗号化ができる.
「公開鍵暗号」の課題
q
q
鍵ペアをどのように生成すればいいか?
「Aliceの暗号化鍵」と言われて本当にAliceの鍵なのか?…改
ざん(man-in-the-middle攻撃)の可能性
10
これまでの授業のおさらい

「一方向ハッシュ関数」ができること
q
q

ハッシュ値の生成
 ハッシュ値は,メッセージに対して非常に小さい値である.
 メッセージが1ビットでも変われば,ハッシュ値も大きく変わる
ので,メッセージの改ざんを検出できる.
第三者検証:関数が公開されていれば,メッセージとハッシュ値
のペアが適切かどうかだれでも確認できる.
「一方向ハッシュ関数」の課題
q
メッセージとハッシュ値をともに改ざんしたときは?
11
これまでの授業のおさらい

「メッセージ認証コード」ができること
q

MAC値の生成とその検証:鍵を持つ者は,メッセージとMAC値
のペアが適切かどうかを確認できる.
「メッセージ認証コード」の課題
q
q
第三者検証ができない.
否認(生成したが,後になって自分は生成していないと主張す
ること)ができてしまう.
12
これまでの授業のおさらい

「ディジタル署名」ができること
q
q
署名文の作成:RSAでは,「Aliceの署名文」は,Aliceの復号鍵
を持つ者(通常はAlice)のみが生成できる.
第三者検証
 署名文復元法では,署名文が適切かどうか,暗号化鍵(公
開鍵)を用いてだれでも確認できる.
 認証子照合法では,メッセージと署名文のペアが適切かどう
か,暗号化鍵(公開鍵)を用いてだれでも確認できる.
13
公開鍵基盤



Public Key Intrastructure, PKI
公開鍵を効果的に運用するために定められた規格・仕様の
総称
構成要素
q
q
q
利用者:PKIを利用する人・コンピュータ
認証局(Certification Authority, CA):証明書を発行する人・コ
ンピュータ
リポジトリ:証明書を保管するデータベース
14
証明書とは



公開鍵証明書,ディジタル証明書とも呼ばれる.
利用者の公開鍵と,それに対する認証局のディジタル署名
からなる情報のこと.
フォーマットは,X.509 が最も有名.
q
署名の対象となる情報(公開鍵),署名文のほかに,ディジタル
署名アルゴリズム,発行日時と有効期限,公開鍵の所有者,証
明書の作成者なども記載される.
証明書
Aliceの
公開鍵
CAの
署名
15
認証局とは



公開鍵証明書の発行や管理をする.
信頼される第三者(Trusted Third Party, TTP)である.
業務
q
q
q
q
鍵ペアを生成する.
公開鍵登録において,本人確認をする.
公開鍵証明書を作成し発行する.
公開鍵証明書を破棄する.証明書破棄リスト(Certificate
Revocation List, CRL)に,申請のあった鍵情報を登録する.
16
利用者がすること

自分の公開鍵を登録する.
q
q

自分の公開鍵を破棄する.
q

鍵は,自分または認証局が生成する.
プライベート鍵は,秘密に保管する.
以後使用しないというときや,復号鍵(プライベート鍵)が他者に
知られてしまった可能性があるときに.
暗号化したい人の公開鍵を含む証明書を取り寄せる.
q
q
暗号化,署名文の検証のいずれかに使用する.
証明書の検証も忘れずに.
 適切な署名文である
 証明書の有効期限が切れていない
 証明書が破棄されていない(CRLを参照する)
17
証明書をどのように検証するか?

証明書には,認証局による署名がついているので,その認
証局の鍵を含む証明書を取り寄せればよい.
q

認証局は階層化されている.
q

「認証局の鍵を含む証明書」の検証は? ……
例:札幌支店の従業員Bob - 札幌支店認証局 - 北海道支社認
証局 - 東京本社認証局
最上位の認証局の証明書は,自分自身の鍵による署名(セ
ルフ署名)がついている.
証明書
Bobの
公開鍵
証明書
CA1の
公開鍵
CA1の
署名
CA2の
署名
…
証明書
CAXの
公開鍵
CAXの
署名
18