デジタル情報学概論 2008年10月16日 第4回資料 担当 重定 如彦
安全な通信とは? 安全な通信を行うには以下の4つの条件が必要 これらの条件を満たすために暗号技術が使われる (注:暗号を使った認証と否認防止については次回説明予定) 機密性 通信内容が盗聴されないこと 完全性 通信内容が改ざんされないこと 認証 通信相手が本人かどうか確認できること 否認防止 通信が行われたことを証明できること
機密性 秘密にしておかなければならない通信内容が第三者に盗聴されてしまうと様々な問題が発生する 秘密にしておかなければならない通信内容が第三者に盗聴されてしまうと様々な問題が発生する 軍事情報の盗聴 軍事情報の盗聴による作戦行動の失敗 要人の場所がわかると暗殺の危険が増す 機密情報などの漏洩 入試問題や企業秘密など絶対に知られてはいけない情報が漏れる プライバシーの侵害 電子メールに書かれた個人的な情報が漏れる インターネットショッピングで行った買い物の内容が漏れる インターネットの場合、インターネットを流れるパケットを調べるなどの方法によって、盗聴を行うことは技術的にそれほど困難ではない
完全性 通信内容が途中で第三者に止められ、それを改ざんしたニセの内容が送られると以下のような問題が発生する 通信内容が途中で第三者に止められ、それを改ざんしたニセの内容が送られると以下のような問題が発生する 軍事情報の改ざん 作戦行動の改ざん。例えば偽の援軍の情報を流す 偽情報 電子メールを改ざんし、誰かの悪口を付け加えることで人間関係を壊す 詐欺 インターネットショッピングの通信を改ざんし振込先の口座を書き換える 振り込みの金額を改ざん(例えば10万円→100万円)する 盗聴や改ざんは、巧妙に行うことによって、問題が発生するまで当事者がなかなか気付かない点も大きな問題である
認証 通信相手を第三者が騙って(なりすまして)通信が行われると以下のような問題が発生する 通信相手を第三者が騙って(なりすまして)通信が行われると以下のような問題が発生する 情報の漏洩や偽情報 盗聴や改ざんと異なり、偽の通信相手と直接対話が行われるため情報の漏洩や偽情報を流すなどの行為をより容易に行うことが可能 詐欺 最近話題になっているオレオレ詐欺もなりすましの被害の一種 また、偽の出前の注文などもなりすましの一例である インターネットを使った通信 インターネットでのやり取りは基本的に相手が見えないため、 年齢、性別、職業を容易に騙ることが可能
否認防止 通信が行われたことを後から証明することができなければ 以下のような問題が発生する 通信が行われたことを後から証明することができなければ 以下のような問題が発生する 契約の問題 通信を使って契約を行い、後でそんな契約は知らない、証拠は?といいはる 実際にお金が送金されたのに、お金が届いていないといいはる 通常の契約では、書面に印鑑を押したり、領収証を発行することで契約が行われた事を証明する。通信でもそれに似たような証明方法が必要 いいのがれ 送られてきた情報をうまく活用できずに失敗した時に、いいのがれをする為に、 そもそもそんな情報は送られていないと言い張る
暗号と用語 あんごう 【暗号】 第三者に漏れないように、当事者間でのみ解読できるよう 取り決めた特殊な記号や文字(大辞林より) 暗号を使うことで、通信の機密性と完全性を保障することができる 暗号で書かれた文章のことを「暗号文」、それに対して誰でも読むことができる文章のことを「平文(ひらぶん)」と呼ぶ 平文を手順に従って暗号文に変換することを「暗号化」、 暗号文を手順に従って平文に戻すことを「復号化」と呼ぶ 第三者が暗号を平文に変換する作業のことを「解読」と呼ぶ
暗号の歴史 暗号の起源と目的 暗号による通信は紀元前のギリシャ文明の時代から既に使われており、軍事情報など特に国家の存亡に関わるような情報の交換に使われてきた 暗号のコスト 暗号は解読されてしまうと意味がなくなってしまうため、暗号化や復号化の手順は複雑にする必要がある。その為、コンピュータが登場するまでは、暗号はかなり高価な(暗号化や復号化の作業に相当な手間のかかる) 通信手段であり、軍事目的などの限られた目的にしか使われなかった
暗号化の方法 その1 平文を暗号文に暗号化するには様々な方法があるがどんな方法でも「ある特定の法則に従って平文を暗号文に変換する」という点では共通する。 この法則のことを暗号の「アルゴリズム」と呼ぶ。また、アルゴリズムで使われる パラメータのことを、暗号の「鍵」と呼ぶ シーザー暗号(文字をずらす暗号) 起源前1世紀にローマのシーザーが使ったといわれる暗号 アルゴリズム:文章をひらがなやアルファベットに直し、それぞれの文字をずらす 鍵:この暗号の鍵は文字を「何に」直し、「何文字」ずらすかである 「ひらがな」と「一文字」を鍵に「シーザー暗号」アルゴリズムで暗号化した例 明日午後5時に市ヶ谷駅で待つ ↓ ひらがなになおす あすごごごじにいちがやえきでまつ ↓ 一文字後ろにずらす いせざざざずぬうつぎゆおくどみて
暗号化の方法 その2 換字(かんじ)暗号 シーザー暗号は非常に単純なアルゴリズムなので、何文字ずらしたかを 試行錯誤することで簡単に解読することが可能 そこで換字暗号のアルゴリズムは文字のずらし方を不規則にする 換字暗号の鍵はずらし方を表した変換表である THIS IS A PEN ↓ UAQL QL G DRB A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
暗号化の方法 その3 明ヶ待か金ふ日谷たき人山・・・ 暗号化の方法 その3 明ヶ待か金ふ日谷たき人山・・・ スキュタレー暗号 スキュタレーと呼ばれる棒に紙をまきつける暗号 この暗号の鍵は「棒の太さ」である 2500年前ギリシャのスパルタで使われていた 明 日 正 午 市 ヶ 谷 駅 に て 待 た れ た し まきつける
暗号化の方法 その4 ここまでで紹介した暗号化の方法は、アルゴリズムがわかると鍵を知らなくても容易に解読できるものであったが、実際に使われる暗号は、アルゴリズムがわかっても鍵を知らなければ容易に解読できないように設計されている シーザー暗号の場合、文字ごとにずらす文字数を変える 換字暗号の場合、文字ごとに鍵となる変換表を変更する 第二次世界大戦でドイツが使った有名な暗号であるエニグマはこの方式 文字の順序を入れ替えてから暗号化する
共通鍵暗号 ここまで紹介した暗号のアルゴリズムは、暗号文を復号化するには、暗号化の逆の手順を取れば良い。すなわち、暗号化のアルゴリズムの逆の手順を鍵を使って行えば暗号文を平文に復号化することが可能 このように、暗号化と復号化に共通の鍵を使う暗号のアリゴリズムを「共通鍵暗号」と呼ぶ アルゴリズム 暗号化 平文 暗号文 復号化 暗号鍵と復号鍵は同じ鍵を使う
共通鍵暗号の特徴その1 鍵の伝達が困難 暗号通信を行うには、暗号のアルゴリズムと鍵をお互いに知らせる必要がある。多くの暗号はアルゴリズムがわかっていても鍵がわからなければ解読されにくいように設計されているので、通信の前に暗号の鍵を秘密裏に交換する必要がある。共通鍵暗号では鍵をどうやって、誰にも知られないように通信するかが大きな問題となる。共通鍵暗号は鍵を第三者に秘密にする必要があるので「秘密鍵暗号」と呼ばれることもある 鍵が第三者に知られてしまうと暗号が解読されてしまうので、鍵は絶対第三者に知られないように相手に届ける必要がある 鍵を交換する前はそもそも暗号通信を行うことができないので、鍵を交換するために暗号通信を使うことはできない
共通鍵暗号の特徴その2 鍵の管理が大変 鍵を知っている人は誰でも暗号文を復号化することが可能なので、異なった人物と別々に暗号通信を行う場合は、人物毎に別の鍵を用意する必要がある ⇒通信相手の数だけ鍵が必要 暗号化と復号化の処理が比較的簡単に行える 暗号化や復号化の処理は人間が行うと非常に手間と時間がかかるほど複雑であるが、コンピュータを使えば短時間で行うことが可能 次に説明する公開鍵暗号と比べると何千分の一という短時間で行える
公開鍵暗号 暗号化 暗号文 平文 複合化 暗号鍵と復号鍵は異なる鍵を使う 共通鍵暗号の鍵の管理の問題を解決する為に考え出された暗号技術 暗号化で使う鍵と復号化で使う鍵に別々の鍵を用意する 暗号鍵 (公開鍵とも呼ばれる) 平文を暗号化する時に使う鍵。暗号鍵は一般に公開する 暗号鍵を一般に公開することから公開鍵暗号と呼ぶ 復号鍵 (秘密鍵とも呼ばれる) 暗号文を復号化する時に使う鍵。復号鍵は秘密にする必要がある 公開する 暗号化 暗号文 平文 複合化 秘密にする 暗号鍵と復号鍵は異なる鍵を使う
公開鍵暗号の安全性 通信の手順(AさんがBさんに秘密の通信を行う場合) 通信の機密性、完全性を保障 Bさんに対する通信を第三者が盗聴したとしても、その内容を、一般に公開された暗号鍵を使って復号化することはできない 暗号文を復号化するには、Bさんだけが知っている復号鍵がなければ行えないので、通信の機密性、完全性は保障される 秘密鍵の安全性 秘密鍵が安全であるためには、一般公開された暗号鍵から復号鍵を類推(計算)できないことが必要である。公開鍵暗号のアルゴリズムは、本授業の範囲を超えるので説明しないが、暗号鍵から秘密鍵を容易に類推できないように設計されている
公開鍵暗号の特徴 鍵の管理が簡単 暗号鍵は一般公開するので、管理する必要がない 復号鍵は秘密にする必要があるが、通信を受け取る本人だけが知っていれば良いので、共通鍵暗号のように他人に通信して知らせる必要がない 暗号鍵と復号鍵の1セット用意すれば、誰からでも暗号通信文を受け取ることができる。⇒暗号通信を行うには一人が一組の鍵を持てばよい 暗号化と復号化のアルゴリズムが非常に複雑 秘密鍵暗号と比べて暗号化と復号化の際に必要な計算が膨大 コンピュータを使っても暗号化や復号化の計算に時間が必要 ⇒大きなデータを公開鍵暗号で通信すると時間がかかってしまう
ハイブリッド方式 共通鍵暗号と公開鍵暗号には以下のように利点と欠点がある 共通鍵暗号は、鍵の受け渡しが困難だが速度が速い 共通鍵暗号と公開鍵暗号には以下のように利点と欠点がある 共通鍵暗号は、鍵の受け渡しが困難だが速度が速い 公開鍵暗号は、鍵の管理が安全で容易だが速度が遅い そこで、通信を行う際に共通鍵暗号と公開鍵暗号を組み合わせた 以下のようなハイブリッド方式が考案された データの通信は速度の速い共通鍵暗号を使う 共通鍵の受け渡しに、安全な公開鍵暗号を使う 共通鍵のデータサイズは小さいので速度が遅くても問題にならない
様々な暗号方式その1 実際に使われている暗号方式には以下のようなものがある 共通鍵暗号 DES 1975年にアメリカ商務省標準局で公表され、1977年以降米国政府の標準として採用された暗号。現在アメリカの標準はAES IDEA スイス連邦技術研究所とAscom社との共同開発 電子メール用の暗号技術であるPGPで使用 RC5 wwwの暗号化(SSL)などで使用 MULTI 日立製作所が開発。デジタル衛星放送などで使用
様々な暗号方式その2 公開鍵暗号 ハイブリッド方式 RSA暗号 Rivest 、Shamir 、Adlemanの3名が考案した暗号 素数と素数の掛け算は簡単だが、数の素因数分解が困難であることを利用し、暗号鍵から秘密鍵を類推することを困難にしている 楕円曲線暗号 ハイブリッド方式 PGP Pretty Good Privacyの略。1991年米国のZimmermannによって個人のプライバシーを保護する目的で開発 PGPで使う共通鍵と公開鍵の暗号のアルゴリズムは、いくつかの中から選択可能。主として電子メールの暗号通信に使われる SSL Secure Sockets Layerの略。Netscape社が提唱。ウェブページでの暗号通信で使われる(URLがhttps://ではじまるページで使用)
暗号と解読技術 その1 暗号には必ず復号化する方法が存在するため、どんな複雑な暗号でも解読される危険は存在する 暗号と解読技術 その1 暗号には必ず復号化する方法が存在するため、どんな複雑な暗号でも解読される危険は存在する 総当り攻撃 鍵をすべて順番に当たる方法。例えばアルファベットを使ったシーザー暗号では、鍵は26種類しかないので26種類の鍵をすべて試せば解読することが可能 この方法は時間がかかるが、暗号のアルゴリズムがわかっていて、時間さえあればいつかはどんな暗号でも解読することが可能 ただし、現在の暗号では鍵の種類が天文学的な数になるようなものが多く、総当り攻撃で解読することは現実的に不可能 例:10の100乗種類の鍵をもつ暗号(RSA暗号など実際にこのような数の鍵をもつ暗号は存在する)を総当り攻撃で解読するには、一秒に一つの鍵を試したとしても10の100乗秒必要。ちなみに一億年=約3*10の14乗秒
暗号と解読技術その2 文章の特徴を使った解読 アルゴリズムを一切考慮せず、文章の特徴を元に解読する方法。例えば英語の文章の統計をとるとスペース(空白)が約20%、アルファベットのEが約10%出現することがわかっている。これをもとに、暗号文で20%でてくる文字をスペース、10%にでてくる文字をEに置き換える。また、英文で最も良く出現する単語が THE であることを考慮するなど、単語レベルで文章を類推する方法もある これを防ぐ為に文字の順番を入れ替えるなどの方法が考えられる 暗号の強度と使い分け 暗号を解読する為に必要な時間を暗号の強度と呼び、必要な時間が長いほど安全な暗号であるといえる。暗号はアルゴリズムを複雑にすればするほど強度が上がるが、暗号化や復号化にかかる時間が増大するという性質がある。実際に暗号を使う際には通信する内容の重要度に応じて暗号の強度を選ぶのが一般的である
間接的な解読攻撃 暗号文そのものを直接解読するのではなく、暗号のシステムのまわり(特に人間)を攻撃して間接的に解読を行う 暗号文そのものを直接解読するのではなく、暗号のシステムのまわり(特に人間)を攻撃して間接的に解読を行う 鍵の盗難 例えば公開鍵暗号の場合、自宅のコンピュータに進入され、復号鍵を盗まれてしまえば暗号として全く役に立たなくなる スパイ 通信先の相手がスパイであった場合、暗号は何の役にも立たない 暗号に限らず、クレジットカードの暗証番号など、鍵の役割を果たすものの管理を怠ってしまうと、どれだけ頑丈なシステムを作っても全くの無意味である どんなに頑丈にみえるシステムでも、システムの周囲も含めて考えると何らかの 穴は存在するものである。皆さんも、将来システム管理の仕事などを行う際には その点に注意して運用を行うように気をつけて下さい