スライド タイトルなし

インターネット上で個人情報を
どう守るか
ー暗号が守るプライバシー
大阪府立大学総合科学部
数理・情報科学科
高橋哲也
暗号の目的
 暗号の目的
情報を第三者に知られるこ
となく伝えること(秘匿)
伝達(通信)の途中で第三
者が見ても元の情報(文章)
が分からないように暗号化
する。
現在ではより広く改竄防
止、認証(本人確認)にも
用いられる。
暗号の利用
 暗号理論の使われる場面
・コンピュータ内部のデータの
保護
・個人のプライバシーを保護す
る安全で確実な通信システムの
構築(携帯電話、電子メール)
・電子商取引に必須な電子決済
システム
インターネットの普及によ
り急速に高まる重要性
インターネットと暗号
 暗号が必要な理由
インターネット上で行われる
通信は暗号化されていない。
従って、原則的にはインター
ネットを流れる情報はイン
ターネットに接続している人
は入手可能である。
 企業秘密や個人のプライバ
シーを含む情報は暗号化して
送るべきである
使われている暗号技術
 電子メールの暗号化
PGP(Pretty Good Privacy)が主
流。電子メールの暗号化だけ
でなく、本人確認(電子署
名)改竄防止などの機能も含
む。
 電子商取引
SSL(Secure Socket Layer)がよ
く使われている。WWWブラ
ウザーのウインドウ隅にある
「鍵」がつながった状態だと
SSLを使っている。
SSL
下図のように鍵が掛かっているとSSLが使わ
れている。
この時、URLはhttp://ではなくhttps://ではじ
まっている。
SSL
Netscape で左下の鍵をクリックすると次のよ
うな表示が現れます。
ここで証明書を表示をクリックするとそのサ
イトの電子証明書を見ることができます。
電子証明書
証明書の中身はサイトごとに違いますが証
明書の認証局(CA)、有効期限などが分かり
ます。
電子証明書はその他にそのサイトの公開
鍵も含まれています。(公開鍵については
後述)
暗号の用語
 暗号の用語と一般的な枠組
[用語]
平文---元の文章(文字列)
数字(ビット列)に変換した
ものも平文と呼ぶ
暗号文---平文を暗号化したもの
暗号化関数---平文を暗号文に変
換する仕組み(アルゴリズ
ム)
数字に対しては関数として記
述される。暗号化関数には、
暗号化の為の鍵が変数として
必要である。
暗号の用語2
復号化 ---暗号文を平文に戻す
こと。復号化関数は暗号化関
数の逆関数である。(暗号化
して復号化すれば元に戻る)
復号化の為の鍵も必要。
平文
暗号化
盗聴者
平文
復号化
暗号文
暗号文
送信者
受信者
暗号の例
暗号の例(古典暗号)
 換字式暗号
平文に現れる文字を他の文
字に置き換えて暗号文を作
る方法。
[例]シーザー暗号
アルファベット順に3つ後
ろへずらす。(z の次はa と
する)鍵は3
angouhaomosiroi (平文)
dqjrxkdrprvlurl(暗号
文)
暗号の例
 転置式暗号
平文に現れる文字の順序を入れ
換えて暗号文を作る方法
[例]横木柵暗号
o
r
u
v
y
s
p e
t r i e
t
a a f c e n r i
k
e
u
s
osakaprefectureunivesity (平文)
oruvyspetrietaafcenrikeus(暗号文)
鍵は棚の数で4
現代の暗号
 ネットワーク暗号
コンピュータネットワーク
で用いられるようになり、暗
号はその性格が大きく変化
ネットワークで使う暗号に
必要な条件
・アルゴリズムの公開
・世界中で安全性のチェック
・暗号化に時間がかからない
(コンピュータを用いて)
DES
 現代の暗号の歴史
1970年代以降、ネットワーク
のための新しい暗号
(DES と RSA)
DES(Data Encryption Standard)
・米国商務省標準局(NBS) が公募
し、1977年に公布
・アルゴリズムを公開し,暗号
の安全性を鍵の秘匿のみに依
存。
・鍵の長さは、56ビット
DES
・アルゴリズムは換字式暗号
と転置式暗号を組み合わせて
16回繰り返す。
・計算機の性能向上により、
パソコン1万台で1日弱で破
られるようになり現在次世代
の標準暗号(AES)の策定が行
われている。
・米国の暗号政策として、長
い間、輸出禁止であった。
(現在は暗号の殆どの輸出規
制はなくなっている)
RSA
 RSA
暗号化するときの鍵を公開
するという公開鍵暗号の最初
の実装(1977)。開発者Rivest,
Shamir, Adleman の頭文字を
取ってRSA暗号と呼ばれる。
・大きな整数(300桁ぐらい)
の素因数分解が難しいことに
基づくアルゴリズム。
・現在は、鍵の長さは512ビッ
トか1024ビット
公開鍵暗号
 公開鍵暗号とは暗号化の為の
鍵を公開し、復号化の為の鍵
を秘密にするものである。
(それ以前は暗号化の鍵と復
号化の鍵が同じであった)こ
の暗号方式によって鍵を相手
に送らなくても暗号を送れる
ようになった。
・公開鍵方式は、1976年に
Diffie,Hellman によって提唱
された。
公開鍵方式でない暗号を秘
密鍵暗号という。
公開鍵暗号
 公開鍵暗号の仕組み
鍵 Kで暗号化 y=f(x,K)
平文 x
暗号文 y
送信
平文 x
暗号文 y
鍵 K’で復号化 x=g(y,K’)
暗号化と復号化の鍵が異なる!
RSAのアルゴリズム
•この暗号を使って通信を行うメンバーは各
自自分の公開鍵を以下のように作り公開す
る。
•まず、2つの大きな素数 p , q を選び、次の
n , m を計算する。
n = p q , m = (p-1) (q-1)
•次に、任意に m と互いに素な正の整数 e
を選び、d e が m で割って 1 余るような正
の整数 d を求める。この d が秘密鍵となる。
•n と e をみんなに公開する。(n と e の組が
公開鍵。 p, q, m, d は秘密にしておく。また、
p, q, m は破棄してよい。
•このようにして、電話帳のように、
名前・n・e の一覧表を作っておく。
RSAのアルゴリズム
名前
n(= pq )
e
A
91
5
B
85
3
(実際には、 p ,q は 150 桁以上ないと安
全ではない。従って、n は 300 桁以上と
なる。)
さて、ある人(仮に T 氏)の公開鍵が n
と e であるとき、誰かが T 氏に暗号文を
送りたいなら、平文(の基本単位)を数字
に変換したもの(ここでは、x としておく)
を次のようにT氏の公開鍵 e を使って変
換してT 氏へ送る。
RSAのアルゴリズム
ここで mod n は n で割った余りを表して
いる。
y を受け取った T 氏は 自分の秘密鍵
d を使って
を計算すると元の x が求まり、平文が得ら
れる。d を知っているのはT氏だけなので
暗号文 y が他の人に知られても平文は大
丈夫である。(この部分に代数学の初歩が
用いられている。)
RSAのアルゴリズム
この閉める鍵と開ける鍵が違う所が公開鍵
暗号のポイントである。先程の例で計算して
みよう。
B 氏が A氏に平文 7 を暗号化して送るとす
る。A氏の公開鍵は 91,5 だから 7 を5乗して
91で割った余りを計算すればよい。計算する
と63になるのでこれを A氏に送る。
A氏の秘密鍵は 29 (n=13×7なので
m=12×6=72、5×29 mod 72=1 なので確か
に 29が秘密鍵である)従って、63 を受け取っ
た A 氏は 63 を 29乗して 91 で割った余りを
計算すると確かに 7 になる。
RSAのアルゴリズム
図で表すと、
鍵 5で暗号化 7^5 mod 91
B氏
平文 7
暗号文 63
A氏
送信
B氏
平文 7
暗号文 63
A氏
鍵 29 で復号化 63^29 mod 91
RSAのアルゴリズムについてもっと詳しく知りた
い人は下記のホームページをみて下さい
http://wwwmi.cias.osakafu-u.ac.jp/
~takahasi/souken/rsa.html
DESとRSAの比較
 DES(秘密鍵暗号)とRSA
(公開鍵暗号)の比較
暗 号 復 号 ア ルゴ 暗 号 化
化鍵 化鍵 リ ズム 速度
DES 非 公 非 公 公開
開
開
RSA 公開 非 公 公開
開
速い
遅い
上記の表のような特長があ
るため、本文全体の暗号化
には、秘密鍵暗号を使い、秘
密鍵の送信に公開鍵暗号を
使うのが一般的
認証(電子署名)
 認証(本人確認)
認証とは、電子商取引やEmail の送信の際に確かにその
人であることを確認する手段
である。電子署名(印鑑の代
わり)もその一形態。
 公開鍵暗号での電子署名
秘密鍵と公開鍵を入れ換え
ると電子署名ができる。
電子署名の例
A さんの公開鍵を K、秘密鍵を
K’ とする。
秘密鍵 Kで暗号化 y=g(x,K’)
x
y
送信
x
y
公開鍵 Kで復号化 x=f(y,K)
電子署名の例
Aさんは自分の秘密鍵で署名したい文 x
(自分の名前とか本文の要約など)を暗
号化して送る。(y=g(x,K’)を送る)受け
取った人は誰でもAさんの公開鍵K を用
いてもとの文 x を復元できる。(f(y,K)を
計算すると x になる)
しかし、その文を暗号化できたのはAさ
んだけである。
(Aさんの秘密鍵を知っているのはAさん
だけ)
従って、送り主がAさんであることが確
認できる。
これが公開鍵暗号を用いた電子署名
の仕組みである。
RSAによる電子署名
名前
n(= pq )
e
d
A
91
5
29
RSAでAさんが 4 を署名する。
鍵 29で暗号化 4^29 mod 91
B氏
平文 4
暗号文 23
A氏
送信
B氏
平文 4
暗号文 23
鍵 5 で復号化 23^5 mod 91
A氏
改竄防止技術
・Hash 関数
大きなデータ x に対して 小さなデータ
f(x) (32bitぐらい) を出力する関数 で
f(x)=f(x’) となる x’を作ることが難しい関
数。MD5 というアルゴリズムが有名。勿
論、f(x) から x は復元できないが、暗号と
組み合わせて x が改竄されてないことの
確認には使える。
このHash 関数と公開鍵、秘密鍵暗号を
組み合わせることによって、暗号文の送
信、電子署名、改竄防止を備えた暗号シ
ステムが構築できる。
実際の暗号システム
AさんとBさんがいて、AさんからBさんへ平
文 x を電子署名をつけて、暗号化して送る
とします。Aさんは送りたい平文のHash関数
の値を計算し(yとする)、これを自分の公開
鍵暗号の秘密鍵で暗号化します(zとする)、
y が電子署名となります。(x,z)を秘密鍵暗号
で暗号化します(w とする。)最後に、秘密鍵
暗号の鍵をBさんの公開鍵で暗号化します
(uとする)(w,u)を送ります
受け取ったBさんは、まず、u から自分の
公開鍵暗号の秘密鍵を使って、Aさんの秘
密鍵暗号の鍵を取り出します。その後、この
鍵を使って、wを復号化し、(x,z) が得られま
す。最後に、Aさんの公開鍵を使って、zを復
号化したものと x から計算した Hash関数の
値が一致するかどうかで、改竄がないかど
うか確かめます。
レポート問題
•公開鍵暗号について出来るだけ詳しく述べ
よ。(少なくとも、その仕組み、利点、欠点、用
途についての記述を含むこと)
•この授業についての感想を述べよ(特に改
善して欲しい点について)
•以下の表を使って、BからAへ 2 を暗号化し
て送り、受け取ったA がそれを元に戻す作業
について解説せよ。
名前
n(= pq )
e
秘密鍵
A
91
5
29
B
85
3
43