暗号Iの基礎

暗号の基礎
情報社会と情報倫理
12/20/07
暗号とは

何となく分かるだろう
 他人が見ても意味が分からなくしたもの
 暗いイメージ
 推理小説

参照サイト
http://www.ipa.go.jp/security/pki/index.html
安全なネットサーフィン
本題に入る前に
https(1)

httpではなく,httpsとなっている場合がある
 どこかに鍵マークが表示されている(例 IE)
ブラウザのバージョンにより
色が変わる場合がある
https(2)


この時,ブラウザとサーバの間の通信は暗号化
されている
 盗聴されても,通信内容は安全
SSL(Secure Sockets Layer)と呼ばれるものを
使っている
https(3)

鍵マークをクリックす
ると,サーバの証明
書
 自分がアクセスし
ている相手かどう
か分かる
 それを保証する
機関(認証局)
https(4)

このとき
 通信が暗号化される
 サーバが認証される
証明書のサイトを確認することにより,
自分がアクセスしているサイトが
どこであるか確認できる
https(5)

実現のために暗号システムを用いている
暗号の基礎
インターネットで商取引を行う場合の問題
(メールに関して)




盗聴
 送信したメールを第三者が読む
成り済まし
 当事者を装ってメールを送る
改ざん
 第三者がメールを書き換える
否認
 自分が送信したメールの内容を否定する
P K I

以上の問題を解決するインフラ
公開鍵基盤 PKI
Public Key Infrastructure
暗 号 (1)

PKIを支える重要な要素が暗号化技術である
暗 号 (2) - 用語

元のメッセージを平文(ひらぶん)

暗号化したメッセージを暗号文

暗号文を平文に戻すことを復号
 復号化と言わないことはない
 第三者が(盗聴した)暗号文を平文に戻すこと
は解読
共通鍵暗号方式
共 通 鍵 暗 号 (1)



シーザ暗号
英大文字だけを考える
例えば
と3文字ずつ後にずらして暗号化する
 HELLO → KHOOR
共 通 鍵 暗 号 (2)



復号するときは,3文字ずつ前にずらす
この “3” を(暗号の)“鍵(かぎ)”と呼ぶ
暗号化と復号に同じ鍵を使うものを共通鍵暗号
と呼ぶ
共 通 鍵 暗 号 (3)



暗号化してメッセージを送れば盗聴対策になる
相手ごとに別の鍵を用意しなければならない
 同じ鍵を使ったのでは,暗号化の意味がない
 たくさんの鍵が必要になる
鍵をどうやって安全に相手に渡すかが問題
 インターネットの商取引では,実際には会った
ことのない相手の場合もある
共 通 鍵 暗 号 (4)


共通鍵暗号の問題
 相手ごとに鍵を用意する
 どうやって相手に鍵を渡すか
この問題を解決したのが
公開鍵暗号
公開鍵暗号方式
公 開 鍵 暗 号 (1)


2つの鍵key1とkey2を用いる
どちらの鍵でも暗号化できるが,
 key1で暗号化した暗号文は,key2で復号でき
るが,key1では復号できない
 key2で暗号化した暗号文は,key1で復号でき
るが,key2では復号できない
公 開 鍵 暗 号 (2)

つまり,暗号化と復号に別々の鍵を用いる
key1では復
号不可
公 開 鍵 暗 号 (3)

A 暗号メッセージの受け手

B 暗号メッセージの送り手

Aが,
鍵のペアーkey1とkey2を用意し,
(例えば)key1をBに伝える
公 開 鍵 暗key1号
(4)
Aの公開鍵
key2 Aの秘密鍵

B が A に暗号化メッセージを送信
 key1とkey2は,Aが用意する
 key1をBに渡す
公 開 鍵 暗 号 (5)




key1を知っているCが,この暗号化メッセージを
入手したとする
key1では復号できない
key1しか知らないCには,秘密を保つことができ
る
盗聴対策
公 開 鍵 暗 号 (6)



Aに暗号化メッセージを送りたい人は誰でも,key1
により暗号化すればよい
つまり,key1は秘密にする必要はない(積極的に
公開する?)
一方,key2はAだけの秘密にしなければならない
“個人鍵”とも
呼ばれる

key1をAの公開鍵,key2をAの秘密鍵
公 開 鍵 暗 号 (7)

デジタル署名
Aが秘密鍵key2であるメッセージを暗号化し,
それをBに送る

受け取ったBは,Aの公開鍵key1で復号

ただし,key1を知っているCでも可能

AがBに秘密のメッセージを送ることは不可
公 開 鍵 暗 号 (8)

デジタル署名
Aの公開鍵key1で復号できる暗号化メッセージは
誰が用意したものか?!

そのメッセージは,秘密鍵key2で暗号化したもの

key2を知っているのは誰か?
公 開 鍵 暗 号 (9)
デジタル署名
途中で,誰かがメッセージを
 key2はAだけが知っているハズ
書き換えていないことが保証
される。



Bが受け取ったメッセージは,Aが送ったものであ
なぜか?!
るとみなすことができる
メッセージそのものを
成り済まし対策・改ざん対策・否認対策
デジタル署名・電子署名
 実際には,もうちょっと複雑
暗号化するのではなく,
メッセージダイジェストを
用意し,それを暗号化
したものを付ける
公 開 鍵 暗 号 (10)

このように公開鍵暗号では

暗号化による秘密保持

デジタル署名による相手の確認など
公 開 鍵 の 問 題 (1)



Bの持っているAの公開鍵key1は本物か?
直接,渡されたものならば信用してもよいかも知
れない
インターネットの世界では,直接渡せない場合の
方が多いだろう
公 開 鍵 の 問 題 (2)

Cを,Bが信用している人で,Aの公開鍵を持って
いる

Bは,CからAの公開鍵をもらう

“友達の輪”方式
公 開 鍵 の 問 題 (2)



日本では重要な契約書には実印で捺印する
実印は,市役所などで印鑑登録を行い,印鑑証
明書が発行される
 市役所が印鑑が本物であることを証明する
市役所は皆が信用しているので,その証明書も
信用する
公 開 鍵 の 問 題 (3)


同様に,公開鍵の登録を行い,それが本物であ
ることを証明する機関があると便利
認証局
公 開 鍵 の 問 題 (4)



Aは自分の公開鍵key1を認証局で登録し,証明
書を発行してもらう
 大雑把に言うと,key1を認証局の秘密鍵で暗
号化したものが証明書
Aは,その証明書をBに送る
Bは,証明書を認証局の公開鍵で復号して,Aの
公開鍵を入手する
デ ジ タ ル 署 名の 問 題 (1)



認証局は信用できる機関でなければならない
そもそも,デジタル署名が有効であることの法的
な裏付けが必要
電子署名及び認証業務に関する法律(4/1/01施
行)
デ ジ タ ル 署 名の 問 題 (2)


認証局の公開鍵の入手方法が問題
実はブラウザの中にあらかじめ入っている(例
FireFox)
デ ジ タ ル 署 名の 問 題 (3)

秘密鍵が漏えいしたら,とんでもないことになる
住民基本台帳カード



議論が沸騰した住民基本台帳ネットワーク
希望者個人にカードが発行される
http://www.soumu.go.jp/cgyousei/daityo/juki_card.html
そのカードに,その人の秘密鍵が保管され,電
子的な身分証明書となる
補足


暗号化の方式(アルゴリズム)は,いろいろある
暗号は鍵だけでなく,アルゴリズムも重要
 シーザ暗号では,“文字をずらす”がアルゴリ
ズム
暗 号 の 限 界 (1)




鍵の長さは有限
すべてを試せば解読できる
 つまり,時間をかければ解読できる
コンピュータのスピードは速くなる
 今,10年かかっても、来年には…
複数のコンピュータを同時に使う
 スーパーコンピュータでなくてもかまわない
暗 号 の 限 界 (2)

アルゴリズムに問題があって,解読できる場合も
ある
 データ(平文・暗号文)を解析
 たくさんデータがあれば,より容易
 暗号への攻撃
公開鍵・秘密鍵の使い方 再
AとBの関係は,
前の例とは同じではない!
復 習(1)



誰のどちらの鍵か,区別すること!
AとBが公開鍵暗号により,通信を行う
それぞれが,鍵を用意する
 Aの公開鍵(A-公開),秘密鍵(A-秘密)
 Bの公開鍵(B-公開),秘密鍵(B-秘密)
自分の公開鍵を相手に教える
(悪意をもつ)第三者Cに
知られてもかまわない!
復 習(2)
この暗号化メッセージをCが入手

AがBに秘密のメッセージを送る
Cは,B-公開を知っているが,
 Aは,B-公開で暗号化
B-秘密は知らない
 送信
Cは,復号できない!
 Bは,B-秘密で復号
復 習(3)

Aが自分のメッセージであることを保証したい
 Aは,A-秘密で暗号化
 送信
 Bは,A-公開で復号
復 習(4)

前の2つを合わせたもの

AがBに秘密のメッセージを送る

そのメッセージは,Aのものであることを保証した
い
復 習(5)
デジタル署名
メッセージの秘匿
Aが行う
送信
Bが行う
Aが送信したものであることが分かる
Bだけ読むことができ
る