インターネット上で個人情報を どう守るか ー暗号が守るプライバシー 大阪府立大学総合科学部 数理・情報科学科 高橋哲也 暗号の目的 暗号の目的 情報を第三者に知られるこ となく伝えること(秘匿) 伝達(通信)の途中で第三 者が見ても元の情報(文章) が分からないように暗号化 する。 現在ではより広く改竄防 止、認証(本人確認)にも 用いられる。 暗号の利用 暗号理論の使われる場面 ・コンピュータ内部のデータの 保護 ・個人のプライバシーを保護す る安全で確実な通信システムの 構築(携帯電話、電子メール) ・電子商取引に必須な電子決済 システム インターネットの普及によ り急速に高まる重要性 インターネットと暗号 暗号が必要な理由 インターネット上で行われる 通信は暗号化されていない。 従って、原則的にはインター ネットを流れる情報はイン ターネットに接続している人 は入手可能である。 企業秘密や個人のプライバ シーを含む情報は暗号化して 送るべきである 使われている暗号技術 電子メールの暗号化 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
© Copyright 2025 ExpyDoc