情報セキュリティ第 06 回 大久保誠也 静岡県立大学経営情報学部 はじめに はじめに いままでの復習 RS 暗号の特徴 一方向関数とハッシュ値 演習 : ハッシュ値 2/34 復習 : 盗聴 lice からデータが来た 前回までの復習 送信 lice 盗聴 送信 :> で送信した情報は 基本的に盗聴し放題! 3/34 覗き見してやろう Eve 重要な情報は送らない or 暗号化 4/34 復習 : 暗号の目的 ( 送りたい文 ) を暗号化し にする この際 鍵を使用する This is a pen. ( 二進数表記 ) 5468697320697320612070656E2E0 ;zb j 鍵 test 暗号化されていると 元の文章がわからない ( 二進数表記 ) 883BC017746D3DCDCE425C610C 5/34 復習 : 暗号と鍵 からを生成するとき 鍵を使用する 復号するときも鍵を使用する 適切な鍵を利用しないと に戻せない 正しい鍵で復号 鍵を利用して暗号化 正しい鍵以外では復号できない 変な 6/34 6/63 文
復習 :2 種類の暗号方式 秘密鍵方式 暗号化も復号も 同じ鍵を使用する 秘密鍵を使用する 鍵は秘匿しておく必要がある 一般的に 処理が軽い 公開鍵方式 暗号化と復号で 異なる鍵を使用する 公開鍵と秘密鍵があり 秘密鍵は秘匿し 公開鍵は公開しておく 一般的に 処理が重い 公 共 秘 7/34 復習 : 暗号による通信 1 を 鍵 で暗号化 lice 2 送信 3 を 鍵 で復号 盗聴しても 復号できない 8/34 秘密鍵暗号による通信 1 秘密鍵 で暗号化 共 lice 2 送信 3 秘密鍵 で復号 共 盗聴しても 復号できない 9/34 公開鍵暗号による通信公 2 公開鍵 で暗号化 lice 公 1 送信 3 送信 4 秘密鍵 で復号秘 公 盗聴しても 復号できない 10/34 今回の内容 基礎技術 : 秘密鍵暗号方式 暗号化 ブロック暗号とストリーム暗号 公開鍵暗号方式 暗号化と認証 ハッシュ値と一方向関数 乱数 実際の実装 : 一方向関数と RS 暗号の仕組み 11/34 12/34
一方向関数とは ある関数 f が 任意の x が与えられたとき f(x) の値を求めることは簡単 任意の y が与えられたとき y=f(x) となる x を求めることは難しいとき この関数は一方向関数であるという とは ファイルの中身に対応して生成した固定長の bit 列 フィンガープリント ファイルの指紋 ハッシュ値とも 異なる中身の場合 同じになる可能性は低い ( ゼロではない ) 一方向関数である 暗号と違い 復号はできない 元の値 簡単 This is a pen. 計算結果フィンガープリント eee0ca57643e4b59 This is a book. 639c7143c6937907 難解 815847fdd152cd5c ef3bfbed7501d898 13/34 14/34 の利用 (1) 文章のテキストファイルから生成できるビット列 フィンガープリント 異なるが 同じ指紋を生成する確率は低い 違う指紋に フィンガープリント フィンガープリント B と指紋を受け取り 比較することで が正しいか否かを判定できる B の利用 (2) 送信 w ファイルをダウンロードしてきたけど 正しくダウンロードできたかなぁ w 15/34 16/34 の利用 (2) の利用 (3) 1) 送信 w w B 2) を計算 3) 比較したら違う値に! 失敗している! 17/34 多くのサイトで ファイルの検証用に MD5 値が置かれています 18/34
の利用 (4) https でも使用されています Firefox では https での通信を行っているサイトで 1. 上の青い部分を押す 2. 詳細を表示を押す 3. 証明書を表示を押すことで確認できます 19/34 の利用 (5) UNIXのパスワード認証は 実際にはパスワードは保存されていません 保存されているのは パスワードのハッシュ値を保存しています パスワードを入力すると 1. 入力されたパスワードのハッシュ値を計算 2. 保存してあるハッシュ値と一致するか検証 3. 一致していたら認証を通過 となります ようするに ハッシュ値が同じになるパスワードなら パスワードが異なっていても 認証を通ります 20/34 広く使われている の代表的なものとして MD5 や SH 等があります は いろいろなところで使用されています OpenOffice.org のような ファイルのダウンロードの検証のため Windows や UNIX におけるパスワード認証 https 等の暗号化プロトコル メールの暗号化プロトコルである PGP メールの認証プロトコルである apop 21/34 の利用 (6) ニュースにも ( それらしきものが ) 登場します 22/34 強衝突耐性と弱衝突耐性 弱衝突耐性 : x が与えられたとき f(x) = f(y) なる y ( ただし y x) を発見することは難しい 強衝突耐性 : f(x) = f(y) なる x と y ( ただし x y) を発見することは難しい 演習 : 一方向関数とハッシュ値 MD5 は強衝突耐性は無いことが知られている 23/34 24/34
smax でのフィンガープリント 1. smaxにログインする 2. Solaris では digest コマンドでMD5の値を求めることができる 3. %/> digest a md5 ファイル名 として ファイルのMD5の値を出力してみましょう %/> digest a sha1 ファイル名とすることで ファイルのsha1の値を出力してみましょう 課題でやること 1. テキストファイルを作成する 中身は以下の通り cat 2. md5とsha1のハッシュ値を計算する 3. テキストファイルを作成する 中身は以下の通り cut 4. md5とsha1のハッシュ値を計算する 5. 中身が異なっていることを確認する 25/34 26/34 Windows で行う MD5: 入手 ファイルをマイクロソフト http://support.microsoft.com/default.aspx?scid=kb;en-us;841290 からダウンロードしてくる必要があります Windows で行う MD5: 展開 ダウンロードしてきたファイルをダブルクリックして ファイルを展開します ダウンロードして ファイルを置く場所を聞いてくるので デスクトップを指定 デスクトップに保存 27/34 28/34 Windows で行う MD5: 実行 (1) このツールは GUI がないので コマンドプロンプトで実行します コマンドプロンプトを立ち上げます Windows で行う MD5: 実行 (2) 実行ファイルのフルパスを プロンプトに貼り付けましょう すべてのプログラム アクセサリ の中の コマンドプロンプト 29/34 Shift を押しながら右クリックして パスとしてコピー を選択 左上のアイコンをクリックして 編集 貼り付け を選択 30/34
Windows で行う MD5: 実行 (3) 同様にして どこかのディレクトリを指定します 実行すると すべてのファイルの MD5 値が出ます スペースを一つ空けて ディレクトリを指定 MD5 値が表示される 使い方まとめ ハッシュ値を求めるのに使用すつfcivというツールは 以下のように使用します fciv オプションフォルダ名 指定したフォルダにある全てのファイルのハッシュ値を出力します オプションには -both sha1 md5 等があり それぞれ出力するハッシュ値の種類が変わります 31/34 32/34 コマンドプロンプトからのコピー 課題の提出 1 左上をクリック 2 編集 を選択 3 範囲指定 コピー 等を利用 ファイル名は学籍番号の末尾に f をつけたもの ハッシュ値を求めた結果をテキストファイルに貼り付け 経情グループウェアから提出しなさい ファイル名は学籍番号の末尾に g をつけたものとする グループ名は H26_ 情報セキュリティ です 33/34 34/34