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