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