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