Transcript 暗号化
共通教育 「情報セキュリティ・モラル」 第2週 暗号化と認証 学習内容 1. 2. 3. 4. 符号と暗号 共通鍵暗号と公開鍵暗号 認証とデジタル署名 暗号化の具体的な方法 ※ 本資料において,「ED2」なる透かしの入ったコンテンツは,下記のWeb サイトから引用したものである。 http://kyoiku-gakka.u-sacred-heart.ac.jp/jyouhou-kiki/index.html 2 本時の目標について 暗号化と認証の必要性を認識すること。 高度情報通信ネットワーク社会における 共通鍵暗号と公開鍵暗号の役割を理解 すること。 デジタル署名の仕組みを理解すること。 3 1. 符号と暗号 インターネットの普及に伴い,その利便性の故に,ありとあら ゆる情報が,インターネットを通じてやりとりされるようになった。 インターネットでは,情報は多数のコンピュータにより中継され, 伝達されていく。 多数のコンピュータが通信に介在するということから,無関係 の第三者に対して本来秘匿されなければならない個人情報な どが,故意に又は偶然に,通信の途中で盗み見られるという危 険性が,インターネットには,常に存在する。 高度情報通信ネットワーク社会では,通信の秘密を確保する ことが最重要の課題の一つとされている。その通信の秘密の基 盤となるのが,暗号である。 4 一つの例 次に示す記号列(記号の並び)は,何を表しているの であろうか。 57656C636F6D6520746F2059616D6167756368692055 6E69766572736974792E 実は,これは,JISコードと呼ばれる符号によって, ある英語の文を符号化したものである。 5 符号とは 「符号」とは,一定の規則に基づいて,記号列を別の記 号列に変換する仕組みをいう。 符号によって,与えられた記号列を別の記号列に変換 することを「符号化」という。 6 JISコードについて(参考) 「JISコード」は,日本工業規格で定められた,数字,英字,ひら がな,カタカナ,漢字等からなる文を16進数字(0~9, A,B,C, D,E 及び F)の並び又はビット列(0と1の並び)に変換する符号 である。 16進数字のA,B,C,D,E及びFは,各々,10進数の10,11,12, 13,14及び15を表す。また,16進数字の並びとビット列とはいつで も変換可能で,各16進数字に長さ4のビット列が対応する。例は次 の通り: 016 ⇔ 00002 (0=0×23+0×22+0×21+0×20) A16 ⇔ 10102 (A=10=1×23+0×22+1×21+0×20) 7 JIS X 0201コード表(参考) 8 一つの例 57656C636F6D6520746F2059616D6167756368692055 6E69766572736974792E は,JISコードによって,英語の文 Welcome to Yamaguchi University. を符号化したものである。 この符号化は,文字’W’には57を,文字’e’には65 を,… ,文字’.’には2Eを,といった具合に,英語の文 を1文字ずつ置き換えることで行われている。 9 暗号とは JISコードは,変換の仕組みが公開されているので,暗 号とは呼ばれない。それでは,暗号とは,どのようなも のをいうのであろうか。 「暗号」とは,符号のうち,その変換の規則が秘匿され ているものをいう。 10 暗号に関する諸定義 暗号化 暗号による符号化。 平文(ひらぶん, へいぶん) 暗号化する前の記号列。 暗号文 平文を暗号化して得られる記号列。 復号化 暗号文を元の平文に戻す(変換する)こと。 鍵 暗号化又は復号化における変換の規則を機能させ るのに必要となる一定の情報。 暗号鍵 暗号化するための鍵。 復号鍵 復号化するための鍵。 11 暗号方式の例1: シーザー暗号(オリジナル) アルファベットを3文字シフトさせる暗号化方式 暗号化例: NDA QGD NDA が平文,QGD が暗号文 3文字シフトが暗号化 3文字逆シフトが複合化 暗号鍵・複合鍵は無し. 12 暗号方式の例2: シーザー暗号(現代版) アルファベットを何文字かシフトさせる暗号化方式 暗号化例: NDA QGD NDA が平文,QGD が暗号文 3文字シフトが暗号化 3文字逆シフトが複合化 暗号鍵・複合鍵は「3」 鍵の概念があるので,シーザ暗号であることがばれても ,複合化はできない. ただし,暗号強度は弱い. 鍵が25通りなのでコンピュータを使えば平文の候補を簡単に挙 げることができる. 13 2. 共通鍵暗号と公開鍵暗号 ■ 暗号文を解読することが困難であることを「暗号の安全性」 というが,数千年の歴史をもつ従来の暗号では,その安全性は, 暗号化と復号化における変換の規則(以下「アルゴリズム」とい う。)の秘匿性に依存していた。 ■ ところが,1970年代に入ると,コンピュータを用いて暗号化と 復号化を行う必要性が高まり,暗号のアルゴリズムそのものは 公開し,アルゴリズムを機能させるのに必要となる鍵のみを秘 匿するタイプの暗号が考案された。 ■このタイプの暗号を「現代暗号」と呼んでいるが,その代表が 共通鍵暗号と公開鍵暗号である。 14 共通鍵暗号とは 「共通鍵暗号」とは,暗号鍵と復号鍵とが同一である暗号を いう。また,同一である鍵を「共通鍵」という。 共通鍵暗号は,換字(記号を別の記号又は記号列に置き換えること)と置 換(記号列における記号の並びの順序を入れ換えること)とを高度に組み合 わせることで,実現されている。 = シーザ暗号(現代版)は共通鍵暗号である。 15 共通鍵暗号による暗号通信 AさんがBさんに,共通鍵暗号を用いて「暗号通信」(情報を暗 号化して伝達する通信をいう。)を行う手順は,次のようになる。 ① Aさんは,自分の作成した共通鍵CAをBさんに配送する。 ② Aさんは,平文m をCAにより暗号化し,暗号文c をBさんに 送る。 ③ c を受け取ったBさんは,それをCAにより復号化し,m を入 手する。 16 鍵配送問題 Aさん ①共通鍵CAの配送 Bさん ②暗号文c の送信 通信の秘密は本当に確保されるのか? ③CAによるc の復号化 共通鍵暗号では,共通鍵をいかに安全に配送するかというこ とが問題になり,これを「鍵配送問題」という。 17 公開鍵暗号とは 鍵配送問題を見事に解決したのは,ディッフィ(W. Diffie)と ヘルマン(M. Hellman)が1976年に考案した公開鍵暗号である。 「公開鍵暗号」とは,相異なる二つの鍵を用意して,その一方 を暗号鍵とし,他方を復号鍵とする暗号であって,それら二つの 鍵のうち,一方が公開され,他方が鍵の作成者によって秘匿さ れるものをいう。 公開鍵 公開される鍵。 秘密鍵 作成者によって秘匿される鍵。 18 公開鍵暗号とは(その2) 公開鍵を暗号鍵としたときは秘密鍵が復号鍵となり,秘密鍵を 暗号鍵としたときは公開鍵が復号鍵となる。 暗号鍵 ≠ 復号鍵 19 公開鍵暗号による鍵配送 公開鍵暗号を用いることで,鍵配送問題は解決される。鍵配 送の手順は,次の通りである。 ① Aさんは,Bさんの公開鍵PBを取得する。(公開されている ので,これは誰でも可能である。) ② Aさんは,自分の作成した共通鍵CAをPBにより暗号化し (CAを暗号化したものをcAとする。),cAをBさんに送る。 ③ cAを受け取ったBさんは,自分の秘密鍵SBによりcAを復号 化し,CAを入手する。 20 鍵配送の手順 Aさん ①公開鍵PBの取得 Bさん ②共通鍵CAをPBで 暗号化して送信 ③秘密鍵SB による 暗号文cAの復号化 21 鍵配送問題の解決 それではこれで,共通鍵が安全に配送されたとどうして言える のであろうか。 文書の暗号化に用いる共通鍵(CA)が盗聴されても,こ れは公開鍵 (PB)で暗号化されているため,秘密鍵(SB) の持ち主でなければ復号化することができない。これ によって「鍵配送問題」を解決している。 22 公開鍵暗号の革命性(参考) 鍵は秘匿されなければならないという暗号の常識に 反して,公開鍵暗号では一方の鍵を公開してしまうとい う点は,暗号の世界における革命的なアイデアといえる。 この革命性の故に,公開鍵暗号は,前述の鍵配送問題 を解決しただけでなく,後述するように,認証(本物であ ることを証明すること)の問題をも解決してしまった。 23 公開鍵暗号の安全性の基盤(参考) 一方の鍵を公開しても公開鍵暗号が安全であるの は,その安全性の基盤として,「素因数分解問題の困 難性」などが用いられていることによる。ここで,「困難 性」という言葉は,現在まで効率的な解法が知られて いないことを意味する。 24 RSA暗号(参考) p とq を相異なる素数とするとき,それらの積n のみを与えて, n からp とq を求める問題を「素因数分解問題」という。p とq が 同じ程度の大きさであるとき,n が十分に大きいと,素因数分解 を現実的な時間で行うことは困難であることが知られている。こ の素因数分解問題の困難性を利用した公開鍵暗号を,「RSA暗 号」という。 RSA暗号のRSAは,この公開鍵暗号を考案したリベスト(R. Rivest),シャミア(A. Shamir)及びエイドルマン(L. Adleman)の 頭文字を採ったものである。 25 RSA暗号(参考その2) RSA暗号の公開鍵と秘密鍵は,次のように構成されている。 λ(n )=LCM(p - 1,q - 1)として,1より大きくてλ(n )より 小さい適当な整数e を,λ(n )と互いに素となるように選ぶ。 さらに,d e ≡ 1 (mod λ(n ))となるような最小の正整数d を 求める。このとき,(e,n )を公開鍵とし,d を秘密鍵とする。 平文に対応する整数をm とし,暗号文に対応する整数をc とするとき,暗号化と復号化は, c =me mod n (暗号化), m =cd mod n (復号化) によって行われる。なお,秘密鍵で暗号化し,公開鍵で復号 化することもできる。 26 RSA暗号の簡単な例(参考) n の大きさは,1024ビット(長さ1024のビット列)が推奨されて いる。これは,10進数でいえば,約308桁の整数ということになる。 簡単のため,p =7,q =11,n =77とすると, λ(77)=LCM(6,10)=30 なので,e の候補としては, 7,11,13,17,19,23,29 がある。例えば,e =7とすると,7d ≡1 (mod 30)から d =(30k +1)/ 7=4k +(2k +1)/ 7 となる。従って,k =3のとき30k +1は7で割り切れ,d =13を得る。 この場合,公開鍵は(7,77)であり,秘密鍵は13ということになる。 27 途方もない計算時間(参考) 合成数(素数ではない数)n の素因数分解を効率的 に行う方法は現在まで知られておらず,素因数を見つ けるには,n を√n 以下の素数で小さいものから順に 割ってみるしか,現実的な方法はない。 自然数x 以下の素数がどのくらいあるかの目安として,次の 定理がある。 〔素数定理〕 自然数x 以下の素数の個数をπ(x )とすると,x が十分に 大きいとき,π(x )~ x / ln x が成り立つ。 28 途方もない計算時間(参考その2) 宇宙の年齢は,100億年程度とされている。1日は86,400秒 なので,宇宙の年齢を秒に換算すると,たった 100億年=86,400秒×365日×100億年~1017 秒 にしかすぎない。ところで,n が308桁の合成数であれば,その 素因数分解を行うには,最悪の場合,10152 個ほどもある素数 でn を割ってみる必要がある。高速のコンピュータを使って,1 回の割算が1ピコ秒(ピコ=10-12)で行えたとしても,全部の割 算を終えるのに,10140 秒もかかる。この地球に100億台の高速 コンピュータがあって,それらが同時に使えたとしても,10130 秒 に短縮されるにすぎない。この途方もない計算時間に比べれば, 宇宙の年齢など,わずかなものといえる。 29 現代暗号の利点と難点 共通鍵暗号には,鍵の長さを短くすることができるため(代表 的なものでは,128ビットである。),暗号化と復号化が高速に行 えるという利点がある反面,鍵配送問題という難点がある。 一方, 公開鍵暗号には,鍵配送の問題がないという利点がある反 面,鍵の長さを長くする必要があるため(代表的なものでは, 1024ビットである。),暗号化と復号化に時間がかかるという難 点がある。 30 ハイブリッド暗号方式 現代暗号の利点と難点とを考慮して,共通鍵の配送 に公開鍵暗号を利用し,その後の通信には,共通鍵暗 号を用いるという方式が,一般に採用されている。 このような方式を,「ハイブリッド暗号方式」と呼んで いる。 31 3. 認証とデジタル署名 ■ 紙の文書が本物であることを証明するために,署名や印鑑 が用いられている。 ■ 署名や印鑑が本物であることを証明する手段になりえるの は,それらの表す情報が有体物に固定されているため,その完 全な複製を作ることが原理的に不可能だからである。 ■ ビット列で表されるデジタル情報は,アナログ情報と異なり, 容易にその完全な複製を作ることができてしまうので,「電子文 書」(ビット列で表される文書をいう。)を認証することは非常に 難しく,公開鍵暗号に基づくデジタル署名が考案されて初めて, 有効な実現方法が確立された。 32 認証と検証 「認証」とは,何らかの仕組みで本人又は本物であ ることを証明することをいう。また,その証明を実際に 調べ確かめることを「検証」という。 代表的な認証に,本人認証(ユーザ認証),メッセー ジ認証,時刻認証などがある。 33 本人認証とは 「本人認証」とは,ある人(被認証者)が他の人(認証者)に自 分が確かに本人であることを納得させることをいう。 本人認証のうち,ID(ユーザを特定するために用いられる文字列)と パスワード(正規のユーザであることをコンピュータに通知するため に用いられる,あらかじめ取り決めた文字列)を用いて正規のユー ザであることを証明するものを,「ユーザ認証」という。 これ以外にも,本人認証の手段として,ICカードを用いる方式や生 体認証と呼ばれる指紋,虹彩,静脈等を利用する方式などがある。 34 ユーザ認証の仕組み ① IDとパスワードの入力 認証者 被認証者 ② IDとパスワードの送信 ③ 登録されて いるID,パス ワードとの照合 ④ 一致すれば利用の許可 そうでなければ利用の拒否 35 メッセージ認証とは 「メッセージ認証」とは,ハッシュ値(メッセージダイ ジェスト)を用いてメッセージが改ざんされていないこ とを保証することをいう。 メッセージ 情報を伝達する記号列。 ハッシュ値 ハッシュ関数の出力。 メッセージダイジェスト メッセージのハッシュ値。 36 ハッシュ関数とは 「ハッシュ関数」とは,入力したいろいろな長さの記号列から 一定の長さのビット列を出力する関数であって,そのビット列 が擬似乱数になっているものをいう。 擬似乱数 無秩序に出現する数に似ていてそれと区別がつけ 難く,その出現頻度がほぼ等しいもの。 abcdefghijklmnopqrstuvwxyz 0123456789 あかさたなはまやらわ 記号列 10 …1 ハッシュ関数 01… 0 00 …1 ビット列 37 ハッシュ関数の性質(参考) ハッシュ関数H は,次の性質をもつ。 ① 不可逆性(一方向性) 与えられたビット列b からH (m )=b を満たす記号列m を見付けることが困難である。 ② 2次不可逆性 与えられた記号列m からH (m )=H (m’ )と なる,m とは別の記号列m’を見付けることが困難である。 ③ 衝突困難性 H (m )=H (m’ )となる,互いに異なる記号列 m とm’の組を見付けることが困難である。 38 メッセージ認証の仕組み メッセージm に対し,ハッシュ関数H によりそのメッセージダイ ジェストmd=H (m )を計算し,m を保管する場所よりも安全な所 にmdを保管する。メッセージm が改ざんされて別のメッセージm’ になっていた場合,md≠H (m’ )なので,メッセージが改ざんされ ていることが分かる。 メッセージ 保管 Welcome to Yamaguchi University. … ハッシュ関数 保管 ××× … × メッセージダイジェスト 39 時刻認証とは(参考) 「時刻認証」とは,タイムスタンプを用いて物事が確かにその 時刻に起ったことを保証することをいう。 タイムスタンプ データがある時刻に存在していたこと及びその時刻以降に 当該データが改ざんされていないことを証明することのできる機能を有す る時刻情報。 ※ 「e-文書法」(平成16年法律第149号及び第150号)の制定により,日本にお いても,電子文書の形で作成し,保存したものを原本として認める方向にある。 容易に完全な複製を作成することのできる電子文書では,その原本性を保証 するため,それがいつ作成されたかということと,その後それが改ざんされて いないということとを証明する仕組みが必要であり,それを実現するのがタイ 40 ムスタンプである。 印鑑の画像で認証は可能か? 印鑑の画像 山口太郎 山 口 電子文書 印鑑の画像はそのままにして文書 の内容を変更したり,他の文書にそ の画像を流用したりすることができる ので,印鑑の画像は,認証の手段に なりえない。 41 デジタル署名とは 「デジタル署名」とは,本人であることを示すデジタル情報で あって,それを付加した電子文書が本人にしか作れないもので あること及び通信の途中で改ざんされていないことを,誰にで も検証することができるものをいう。 〔デジタル署名の要件〕 ① 電子文書が本人にしか作れないものであることを検証する ことができる。 ② 電子文書が通信の途中で改ざんされていないことを検証す ることができる。 42 デジタル署名の実現方法 デジタル署名は,公開鍵暗号を利用することにより, 実現することができる。 自分の作成した公開鍵暗号の秘密鍵S により電子 文書m を暗号化したものをσとするとき,m にσを付 加したmσが署名付文書であり,σが自分のデジタル 署名ということになる。 mσ σ m 秘密鍵S による暗号化 43 デジタル署名の実現方法(その2) それでは,mσを送ってきたのがAさんであるとして,σがどう してAさんのデジタル署名であるといえるのであろうか。 σをAさんの公開鍵により復号化して得られるm ’がm と一致 すれば,Aさんの公開鍵により正しく復号化することができたこと から,次のことが確認される。 m は,Aさんだけにしかつくれない。(別な人が作成していた らmσを正しく作成することができない。) m は,通信の途中で改ざんされていない。(改ざん文書 m” からm”σを正しく作成することはAさん以外にできない。) 従って,σはAさんのデジタル署名であることになる。 44 メッセージダイジェストとデジタル署名 秘密鍵を用いて電子文書(メッセージ)をそのまま暗号化する と,暗号化や復号化に手間がかかるので,実際には,いったん ハッシュ関数によりメッセージダイジェストを作成し,それを暗号 化することでデジタル署名を作成する。 Aさん Dear B-san, Thank you very much for ... H メッセージ ダイジェスト Bさん Dear B-san, Thank you very much for ... 10 …1 H メッセージ ダイジェスト 10 …1 比較 秘密鍵で暗号化 送信 公開鍵で復号化 ○△□…× ○△□…× デジタル署名 デジタル署名 10 …1 45 認証局について デジタル署名は,電子文書が公開鍵の作成者によって作成されたものであ ることを保証するが,「なりすまし」(ある者が別の者を装うことをいう。)を防ぐ ことができない。この問題を解決する仕組みが,認証局である。 「認証局(Certificate Authority)」とは,公開鍵の作成者がそ う称している通りの者であることを保証するための電子証明書 を発行する,信頼することのできる第三者機関をいい,「CA」と 略される。 ※ 電子証明書には,氏名や機関名などの登録者情報,登録者の公開鍵, 有効期限,認証局のデジタル署名などが含まれている。 46 牛です. 証明書はこ れです. でも 本当は馬. 牛です [デジタル署名] 確かに「牛です」が正 しくデジタル署名され ている.信じて良い か? 馬の公開キー置き場 だめ.証明書は本人が作成しているし,改ざんもされていないが,あくま で自分は「牛」だと言い張っているだけ.いくらでも証明書は偽造できる. 47 牛です. 証明書はこ れです. 牛です [CAのデジタル署名] 牛です 牛です [CAのデジタル署名] 確かに「牛です」が信 頼できるCAによって 正しくデジタル署名さ れている.信じても良 さそうである. (信頼できる)認証局(CA) 問題無し.証明書作成は信頼できる認証局がしているし,改ざんもされて いない.この証明書は信頼できる. 48 牛です. 証明書はこ れです. でも 本当は馬. 牛です [馬CAのデジタル署名] 牛です 牛です [馬CAのデジタル署名] 確かに「牛です」が馬 CAによって正しくデジ タル署名されている. 信頼して良いか? 馬の(なんちゃって)認証局(CA) 問題あり.CAは個人でも運用できる.信頼できないCAが作成した証明 書を信頼してはいけない。この手の証明書は「なんちゃって証明書」など と呼ばれる。 49 信頼できるCAとは? 「信頼できるCAがお墨付きを与えているCAは信頼でき る.」 この連鎖の大元になるものをルートCAと呼ぶ. ルートCAは社会的信頼を得た企業や政府機関など が行う. 多くのWebブラウザには信頼できるCAがあらかじめ組 み込んである: ブラウザはWebサイトが提示した証明書が信頼でき ないと判断した時には(設定にもよるが)警告を出す. 50 4. 暗号化の具体的な方法 Office 2000以前は,Microsoft Office固有のアルゴリズムが用 いられ,鍵の長さも固定されていたため,暗号化しても,あまり安 全とはいえなかったが,Office 2003からは,RC4と呼ばれる共通 鍵暗号が採用され,共通鍵の長さも40ビット(中程度の強度)から 128ビット(高強度)まで選べるようになった。 Microsoft Officeでは,パスワードを利用してドキュメントの暗号 化と復号化を行うための共通鍵を生成する。パスワードそのもの がドキュメントに格納されることがないため,攻撃に対する安全性 が高くなっている。 51 Office 2007の暗号化 Office 2007におけるドキュメントの暗号化については, [Officeボタン]→[配布準備]→[ドキュメントの暗号化] を選択し,ダイアログボックスにパスワードを入力することだけで行える。 「OK」をクリックすると,確認のためのダイ アログボックスに変わるので,同じパスワード を入力する。 52 Office文書の暗号化(参考その1) ① 「ツール」をクリック 53 Office文書の暗号化(参考その2) ② 「オプション」を選択 54 Office文書の暗号化(参考その3) ③ 「セキュリティ」タブを選択 55 Office文書の暗号化(参考その4) ④ 「詳細」ボタンをクリック 56 Office文書の暗号化(参考その5) ⑤ ⑥ RC4のいずれかを選択し,「OK」ボタンをクリックする。 57 Office文書の暗号化(参考その6) ⑦ パスワード(8文字以上)を入力 ⑨ 「パスワードの確認」ウィンドウが現れ たら,同じパスワードを入力し,「OK」ボタ ンをクリックする。 ⑩ ⑧ 「OK」ボタンをクリック 58 気を付けなければならないこと Office文書の暗号化においても,また他の多くの暗号化ソフト においても,共通鍵を生成するためにパスワードを利用するので, パスワードの強度がそのまま暗号化の強度に直結する。 ■ 容易に推測されるパスワードは,使用しない。 ■ パスワードは,8文字以上にする。 ■ パスワードには,英数字以外の文字を少なくとも一つ含める ようにする。 ■ 必要に応じて,ワンタイムパスワードを利用する。 ※ここでは使い切りのパスワードということ。同じパスワードを使い回していては,暗 号化の意味がない。 59 5. おさらい DVD ビデオクリップ 「公開鍵暗号は縁の下の力持ち」 物語編(1分22秒) 解説編(11分48秒): (※RSA暗号の説明部分は時間があれ ば) => 確認問題「本日のおさらい」 60 最後に 課題 最近マスコミを騒がしているものに,フィッシング詐欺がある。 「フィッシング詐欺」とは,金融機関等からの正規の電子メール やそのWebサイトを装い,暗証番号,クレジットカード番号等を 騙し取る行為をいう。 フィッシング詐欺は,なりすましの一種で ある。 さて,A銀行からあなたに,電子メールで署名付文書が届き, 確認のため,指定のWebサイトにアクセスして,あなたの口座の 暗証番号を入力して欲しいと通知してきた。A銀行のデジタル署 名があるからといって,本当に信用してもよいものであろうか? 61