【経営情報】セキュリティ~暗号の世界ひとめぐり~ byくま
![](https://rmc-oden.com/blog/wp-content/uploads/image-286.png)
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
はじまり はじまり
![](https://rmc-oden.com/blog/wp-content/uploads/夏セミナー-1024x576.jpg)
![](https://rmc-oden.com/blog/wp-content/uploads/くま-1.png)
夏セミナーやります
多年度生の方に向けてお知らせです。今年も2次試験対策セミナーをやっちゃいます!
『二次試験で驚異的な点数をたたき出したあの人は、如何に80分過ごしたのか!?』や『不屈の精神でトライ続けて合格を勝ち取った彼は、2次試験をどうとらえているのか!?』などなど、受験生お役立ち情報をたくさんお伝えしていく予定です。
今回は、多年度生向けということで、基本的な情報は割愛となっています。
別途、一次試験後に初学者向けセミナーも実施予定なので、初学者の方は安心して一次試験の注力ください!
話は変わって、本日(5月最終水曜日)は、「世界カワウソの日(World Otter Day)」だそうです。
世界カワウソの日とは、世界のカワウソの現状や取り組みについて多くの人に知ってもらうことを目的としているとのこと。
![](https://rmc-oden.com/blog/wp-content/uploads/くま-1.png)
残念ながら、私からカワウソの現状や取り組みについてお伝えできることはないので、
いつもより多めにカワウソの画像を張り付けて、本題へ向かいます。
本題
今日はセキュリティについてです。
セキュリティに関しては継続的に出題されており、過去15年分(H19 ~ R3)の中で、セキュリティに関する出題がなかったのは H29 のみでした。(くまちゃん調べ)
また、昨今リモートワークの推進により、世の中のセキュリティへの関心は非常に高まっています。
![](https://rmc-oden.com/blog/wp-content/uploads/くま-1.png)
以上のことから、今年もセキュリティに関して出題されると予想します。
そんなセキュリティを支える一つの要素が暗号化です。
本日は暗号化の世界を広く浅くお伝えしていきます。
ほとんど茶番なので、小学生の絵日記だと思ってゆるっと息抜き程度にどうぞ。
今日の記事をご覧いただいたのちに、テキストなどで詳しく確認されると、より理解しやすくなるかと思います!
こんな方におすすめ
①暗号化って何それという方、②何となく暗号化についてわかって、あわよくば点数を上乗せしたい方。
![](https://rmc-oden.com/blog/wp-content/uploads/yoshimoto_nao.png)
暗号化って何?
![](https://rmc-oden.com/blog/wp-content/uploads/IMG_5389.jpg)
公開鍵と共有鍵って何がちがうの?
そもそも暗号化って何?
![Free photos of Numbers](https://cdn.pixabay.com/photo/2012/02/25/18/41/numbers-16804_960_720.jpg)
セキュリティというのはは、性悪説に基づいて考えられています。インターネットの世界は全員悪人です。アウトレイジみたいな世界なのです。
![](https://rmc-oden.com/blog/wp-content/uploads/bura_kichi.png)
隙あらば、やっちゃうよ~
みたいな人ばかりです。
こんな世界で普通に手紙を送ったら、間違いなく盗み見られてしまいます。
具体的に見てみましょう。下の図はリットが次回の記事にむけて、りいあにアンケートを送った図です。
この図では、リットはセキュリティを意識していません。
![](https://rmc-oden.com/blog/wp-content/uploads/image-273.png)
あぁなんということでしょう。。。折角アンケートを取ったのに、あらきちにアンケート内容が情報漏洩してしまった結果、先を越されて同じネタを記事にされてしまったので、リットの記事は2番煎じになってしましました。
![](https://rmc-oden.com/blog/wp-content/uploads/ガーン.png)
あらきち、、、信じてたのに
そこで、リットは対策を考えました。
![](https://rmc-oden.com/blog/wp-content/uploads/にっこり-4.png)
盗み見されても、意味が分からないように中身をぐちゃぐちゃにして送ったらええんや
これが暗号化です。早速暗号化して りいあ に手紙を送りましょう!
![](https://rmc-oden.com/blog/wp-content/uploads/image-274-1024x526.png)
無事、あらきちの魔の手を逃れることに成功しました.
が、またまた問題発生です。
確かに、あらきちに盗み見られても問題ないようになったのですが、このままでは りいあ も読めません。
![](https://rmc-oden.com/blog/wp-content/uploads/りいあ-2.png)
飼ってるうさぎ(きなお)のいたずらかな?
きなお、すまん。。。
濡れ衣や
![](https://rmc-oden.com/blog/wp-content/uploads/ガーン.png)
そこで、リットはまたまた考えました。
![](https://rmc-oden.com/blog/wp-content/uploads/にっこり-4.png)
一定のルールでぐちゃぐちゃにして、りいあだけが元の文章に戻せればええんや
この「一定のルール」のことをアルゴリズム、「元の文章に戻すこと」を復号といいます。
※ちなみに元の文章のことを平文(ひらぶん)といいます。
リットは事前にりいあにアルゴリズムを伝えておいて、りいあはそれを基に復号して手紙を読みます。
![](https://rmc-oden.com/blog/wp-content/uploads/image-275-1024x575.png)
この手法により、安全にふたりはやり取りできるのでした。めでたし、めでたし。
【おまけ】暗号とセキュリティの常識
下記は、最初に暗号を学んだ時に引っ掛かるポイントです。
- 独自のアルゴリズムを使うべきではない
- 弱い暗号は暗号化しないよりも危険
- どんな暗号もいつかは解読される
1.独自アルゴリズムを使うべきではない
「独自の暗号アルゴリズムを作り、それを秘密にしておけば安全だ」と考えがちなのですが、これは誤りです。「独自の暗号アルゴリズム」を作るのではなく、公開されていて強いアルゴリズムを使うべきです。
理由は2点あり、①暗号アルゴリズムは必ず暴かることと、②強いアルゴリズムを作ることは非常に困難であることです。
①…暗号アルゴリズムが暴かれなかったことは歴史上ありません。アルゴリズムを秘密にし、それで安全性を担保することは無意味なのです。それであれば、初めから公開されているアルゴリズムを使用するべきです。
②…暗号アルゴリズムの強弱は作った時点ではわかりません。長年解読されなかったという結果がアルゴリズムの「強さ」を示します。暗号アルゴリズムは公開されていて、多くの暗号解読者が復号を試みても、復号できないのが「強い」暗号アルゴリズムです。現在、「強い」とされているアルゴリズムは、暗号解読者が解読を試みたが、解読されていないという実績があります。
2.弱い暗号は暗号化しないよりも危険
「どんなに弱い暗号であっても、暗号化しないよりはマシだろう」というのも危ない考え方です。
その理由は、「暗号の強度とは関係なく暗号化した」という事実だけで、安心感が生まれて機密情報の扱いがぞんざいになるためです。
3.どんな暗号もいつかは解読される
どんな暗号文であっても、鍵をしらみつぶしに探すことで、いつかは解読されます。
暗号鍵について
秘密にするには「一定のルール(アルゴリズム)」で「元の文章(平文)」をぐちゃぐちゃにすればよい というのが前項の話でした。
しかし、現実には、他の人もやり取りしますから、やり取り都度アルゴリズムが必要になってしまい。アルゴリズムいくつがあっても足りません。
先ほどコラムにも記載しましたが、アルゴリズムは簡単に作ることはできませんし、そもそもアルゴリズムを秘密にして安全性を担保するべきではありません。
そこで、考えられられたのが暗号鍵という考え方です。
アルゴリズムに暗号鍵を含めることで、暗号鍵だけ変えて、異なる結果(暗号文)を生成することができるようします。
暗号鍵というのは、平たく言うとパスワードです。パスワードなら簡単に作ることはイメージしやすいかと思います。
暗号鍵は種類いくつか種類があります。
確認していきましょう!
●共有鍵暗号方式
共有鍵暗号方式では、暗号と復号で同じ暗号鍵を使用します。
共有鍵を持っていない第三者は、暗号文を解読することはできません。
![](https://rmc-oden.com/blog/wp-content/uploads/image-285-1024x482.png)
上図では、さろ がYOSHIHIKOへ密約を宝箱に入れて送っています。まん が途中で宝箱を盗んだとしても、鍵がないので開けることができません。
共有鍵暗号方式の有名なアルゴリズムとしてDES、トリプルDES、AESがあります。
右へ行くほど強度が高く、一番強度が低いDESは現状使用が推奨されていません。
実は共有鍵暗号方式は1つ難点があります。
それは共有鍵をどうやって共有するかです。
さろとYOSHIHIKOは共有鍵を まんにバレず共有しなければなりません。
まんにバレたら全てが台無しです。ふたりの密約がすべてバレてしまいます。
![](https://rmc-oden.com/blog/wp-content/uploads/yotti.png)
ヨットでフィリピンまで届ければいいヨット
大半の人はヨットを持っていないし、途中で海賊に鍵を奪われる可能性があるのでダメです。
![まんキー・D・ルフィー](https://rmc-oden.com/blog/wp-content/uploads/image-278.png)
うるせェ!!!いこう!!!!
この問題を解決するのが、公開鍵暗号方式です。
●公開鍵暗号方式
公開鍵暗号方式では、暗号化と復号化で異なる鍵を使用しています(暗号化には公開鍵、復号化には秘密鍵)
南京錠をイメージするとわかりやすいかもしれません。
YOSHIHIKOは事前に、南京錠を広く公開し、自分への手紙はすべてその南京錠かけて貰うことにします。
わっせわっせ
![](https://rmc-oden.com/blog/wp-content/uploads/YOSHIHIKO-2.png)
さろは、その南京錠を使って鍵をかけて、YOSHIHIKOへ手紙を配送します。
![](https://rmc-oden.com/blog/wp-content/uploads/image-283-1024x540.png)
この場合も、まんが宝箱を盗んだとしても秘密鍵がないので、宝箱を開けることはできません。
公開鍵暗号方式の素晴らしいところは、公開鍵(南京錠)はバレても全く問題ないところです。なぜならでは公開鍵(南京錠)では暗号文を復号することはできないからです。
一方で、秘密鍵(南京錠を開ける鍵)がYOSHIHIKOの家から出ることがありません。大切に家の仏壇の裏にしまっておけば、まんにバレる可能性が低いのです。
※まん がYOSHIHIKOの家に忍び込んで、仏壇の裏から秘密鍵を見つけ出す可能性はあります。だからあくまで「低い」です。
また、さろ以外も、YOSHIHIKOに手紙を送るときは同じ南京錠を使えばよいので、鍵の数の節約にもなります。
公開鍵暗号方式の主なアルゴリズムとしてはRSAがあります。
【おまけ】RSA暗号の余談
リベスト(Rivest)、シャミア(Shamir)、エーデルマン(Adleman)の3人によって発明された暗号アルゴリズムでそれぞれの頭文字をとって「RSA」となっているそうです。
RSA暗号の強度は「素因数分解の難しさ」によって担保されています。ここでいう「難しさ」とはコンピュータにとって難しいといういことで、具体的に言うと計算量の多さを指しています。
そのため、コンピュータの進化に伴って、暗号アルゴリズムは陳腐化していきます。
ただし、RSA暗号は今のところ安全です。
過去には、コンピュータの技術の向上によって1993年(発表は1994年)に129桁の素因数分解に成功し、テストメッセージを解読された事例があります。これの解読には、1600台ほどの計算機が投入され、8カ月かかったとされています。
それ以降もコンピュータが素因数分解ができる桁数は増えているますが、現在RSA暗号の鍵に一般的に利用されている617桁以上(2048bit)の素因数分解は、未だ踏破された記録がありません。
ところで、皆さんはサマーウォーズという映画をご覧になったことがありますか?毎年8月の末に金曜ロードショーで放送されている名作です。
その中で主人公「健二」が解いた暗号がRSA暗号でないかと言われています。
作中で、健二は千桁以上の素因数分解をおこなっています。
前述した通り、素因数分解はコンピュータでも膨大な時間がかかるのです。世界の最先端の技術をもってしても難しいとされる暗号解読を、恐るべきことに彼は紙とペンだけでやってのけます。
RSA暗号は今やインターネットを使ううえで欠かせない技術です。
ということは、健二という一人の人間によって、この情報化社会が崩れ去るのといっても過言ではありません。
クレジットカードの暗証番号を安全に送信することができないので、Amazonで買い物をすることもできませんし、インターネットバンクなんてもってのほかです。世界はRSA暗号無しで生活していた1980年代へのタイムスリップを余儀なくされます。。。
もし、あなたがRSA暗号を解読できたとしても、絶対周りに吹聴してはいけません。もし既に言いふらしてしまっている場合は、一刻も早く身を隠しましょう。
よろしくお願いしまぁぁぁすっ!!
実は、公開鍵暗号方式にも一つ欠点があります。
それは、暗号化・復号化に時間がかかることです。
一回だけならそこまで問題ありませんが、何度もやり取りすることを考えると時間がかかりすぎるのは考えものです。。。
![](https://rmc-oden.com/blog/wp-content/uploads/sarogokuu.png)
待ってる間に元気玉が溜まっちまうぞ
※フリーザ相手に元気玉溜めるシーンは、なんと30分番組で3週に渡って放送されました。
この問題を解決したのが「ハイブリッド暗号方式」です。
●セッション鍵暗号方式(ハイブリッド暗号方式)
セッション鍵暗号方式とは、共有鍵暗号方式と公開鍵暗号方式のイイとこどり(ハイブリッド)した暗号方式です。
各方式の問題点は以下でした。
各方式の問題点
・共有鍵暗号方式 → 鍵自体の配送が難しい
・公開鍵暗号方式 → 暗号・復号に時間がかかる
これらを解決するための手順が次です。
①公開鍵暗号方式を利用して共有鍵を配送する
②それ以降は共有鍵でやり取り(暗号化・復号)するで行う
『①公開鍵暗号方式を利用して共有鍵を配送する』によって、共有鍵を安全に配送することができます。
『②それ以降は共有鍵でやり取り(暗号化・復号)するで行う』ことによって、公開鍵暗号方式による暗号化・復号化の回数は1回で済み、それ以降はのやり取りは時間のかからない共有鍵暗号方式を使うことができます。
![](https://rmc-oden.com/blog/wp-content/uploads/image-284-1024x668.png)
安全かつスピーディにやり取りをすることができました。これで完璧です!
、、、とは、残念ながらなりません。
YOSHIHIKOが受け取った手紙は本当に さろ から送られたものなのでしょうか?
冒頭で言った通り、インターネットの世界は全員悪人です。送られてきた手紙についても様々な可能性が考えられます。
①実は、まんが さろになりすまして手紙を送っているかもしれません。
②途中でまんによって内容を改ざんをされていたりしないでしょうか?
③さろが送っていたとしても、突如さろの気が変わって、自分は送っていないと言い張るかもしれません。
次は、このあたりを確認する方法である「デジタル署名」についてです。
デジタル署名
「本人かどうかを確認すること」を認証と言います。
認証する仕組みの一つとしてよく使用されているのが、デジタル署名です。
デジタル署名は「ハッシュ関数」と「公開鍵暗号方式」を組み合わせた仕組みです。
ハッシュ関数
ハッシュ関数は特殊な計算方法によって、一見ランダムに見える別の値(ハッシュ値)にデータを変換する関数です。
ハッシュ関数は、以下の特徴を持ちます。
①同じデータからはつねに同じハッシュ値が出力される
②データの内容が少しでも変化すると出力される異なるハッシュ値になる
③ハッシュ値からもともとのデータを導き出すことは不可能
※①②の特徴は暗号化と同じ特徴ですが、③の特徴は大きく異なります。ハッシュから元の値に戻すことはできません(不可逆性)。つまり復号することはできません。
さろは手紙と一緒に「デジタル署名」を付けて送付します。
![](https://rmc-oden.com/blog/wp-content/uploads/sarogokuu.png)
手紙にデジタル署名を投函!
デジタル署名によって以下を確認することができます。
- 送信者の証明(本当にさろが送ったのか?)
- 改ざん検出(まんによって、内容を変更されていないのか?)
- 否認防止(さろのデジタル署名が付いているメールに対して、さろが「俺はそんなの送ってないよ」とか言うことはできません。なぜなら、さろのデジタル署名はさろにしか作れないのです。)
さろのデジタル署名がついてるから、間違いなく さろからの手紙だよっと
![](https://rmc-oden.com/blog/wp-content/uploads/yotti.png)
デジタル署名を活用することで、さろとYOSHIHIKOは安心して密約を交わすことができました。めでたし、めでたし
デジタル署名の詳細を書くと、それだけで記事一本ぐらいになってしまうので、今回は「そういうものがあるんだ」ぐらいを抑えてください。
一応、下記にあまり易しくない説明を記載しますので、興味がある方は各自調べてください。
![](https://rmc-oden.com/blog/wp-content/uploads/くま-1.png)
ポイントは2点です。
①「秘密鍵を持っている=本人」という考え方。
②秘密鍵で暗号化したものは公開鍵でしか復号できない。
(通常の使い方とは逆。通常は公開鍵で暗号化して、秘密鍵で復号)
易しくないデジタル署名の仕組みの説明
前述した通り、デジタル署名は、ハッシュ関数と公開鍵暗号方式を組み合わせて電子的な署名を作成します。
署名者は送付するデータをハッシュ値にして、ハッシュ値を秘密鍵で暗号化して「署名」を作成します。
受信者は署名者の公開鍵でその署名が正しいかどうかを検証します。
デジタル署名の処理手順
- 送信者が公開鍵と秘密鍵を生成する。
- 送信者は受信者に公開鍵を送付する。
- 受信者は送信者が生成した公開鍵を入手する。
- 送信者が受信者に送付するデータをもとにハッシュ関数を使用してハッシュ値を算出する。
- 送信者はハッシュ値を秘密鍵を使用して暗号化する。
- 送信者は送付データと暗号化されたハッシュ値を送信する。
- 受信者は暗号化されたハッシュ値を、送信者から入手した公開鍵を使用して復号する。
- 受信者は受信データをもとにハッシュ関数を使用してハッシュ値を算出する。
- 受信者は復号されたハッシュ値と、算出されたハッシュ値を比較して、一致すれば正しいデータと判断する
まとめ
①暗号化とは
送信者と受信者以外の人に盗聴されても、情報漏洩しないようにするための技術
②暗号化手法
共有鍵暗号方式 | 公開鍵暗号方式 | セッション鍵暗号方式 | |
鍵の種類 | 共有鍵 | 公開鍵と秘密鍵 | 共有鍵と公開鍵と秘密鍵 |
平文の暗号化鍵 | 共有鍵 | 公開鍵 | 共有鍵 |
平文の復号化の鍵 | 共有鍵 | 秘密鍵 | 共有鍵 |
暗号化・復号速度 | 早い | 遅い | 普通 |
鍵の共有 | 必要 (鍵の配送時に漏洩するリスクが高い) | 不要 (送信者が、勝手に受信者の公開鍵で暗号化) | 最初だけ必要 (公開鍵暗号方式を利用して、共有鍵を配送) |
③デジタル署名
「ハッシュ関数」と「公開鍵暗号方式」を組み合わせた仕組み。
「送信者の証明」、「改ざん検出」、「否認防止」が可能。
おわります
明日はのあの方です。
もし わしの みかたになれば せかいの はんぶんを くまに やろう。
どうじゃ? わしの みかたに なるか?
![](https://rmc-oden.com/blog/wp-content/uploads/どらごん-2.png)
![](https://rmc-oden.com/blog/wp-content/uploads/にっこり-3.png)
はい
ほんとうだな
![](https://rmc-oden.com/blog/wp-content/uploads/どらごん-2.png)
![](https://rmc-oden.com/blog/wp-content/uploads/にっこり-3.png)
はい
では せかいの はんぶん やみのせかいを あたえよう!
おまえの しんだんしかつどうは おわった。
さあ ゆっくり やすむがよい! わあっはっはっはっ
![](https://rmc-oden.com/blog/wp-content/uploads/どらごん-2.png)
![](https://rmc-oden.com/blog/wp-content/uploads/真っ白-2.png)
・・・
☆☆☆☆☆
いいね!と思っていただけたらぜひ投票(クリック)をお願いします!
ブログを読んでいるみなさんが合格しますように。
にほんブログ村
にほんブログ村のランキングに参加しています。
(クリックしても個人が特定されることはありません)
【今日のボツネタ】
こんなブログの果てまでご覧いただき、ありがとうございます。
泣く泣くボツとなったパートです。
内容は、「RSA暗号の公開鍵と秘密鍵の作り方」です。
ボツとした理由は①趣味全開すぎるから、②内容が難しすぎるから、②診断士試験の受験に役立たない知識だから、、、
ただ、折角書いたのにもったいないので、こっそりを掲載します。
自己責任でご拝読ください。クレームは受け付けません。コメントは受け付けてます(笑)
それではどーぞ。
RSA暗号の暗号化を数式で表すと下記の式になります
暗号文 = 平文E mod N (※modは余りを表します、例えば、8 mod 3 = 2、5 mod 2 = 1)
※「平文E」は違和感があるかもしれませんが、コンピュータの世界では 文字もすべて数字に置き換えることができます。
たったのこれだけです。情報社会の根幹をなしているにしてはシンプルな式だと思いませんか?
EとNの組み合わせが公開鍵を表しています。
ただし、EとNはどんな数でもよいわけではありません。これらは綿密な計算のもとに作られた数です。
ちなみにEは暗号化(Encryption)の頭文字、Nは数(Number)の頭文字です。
復号化は下記です。
平文 = 暗号文D mod N
こちらもシンプルです。
DとNの組み合わせが秘密鍵です。
つまり、DとNの組み合わせを知っている人だけが、復号化を行うことができます。
こう鍵と同様にD,Nも何でもよいわけではありません。
ちなみにDは復号化(Dencryption)の頭文字、Nは数(Number)の頭文字です。
つぎに、D、E、Nの用意の仕方です。つまり、公開鍵と秘密鍵の生成と同義です。
具体的な数字を用いて、D、E、Nを計算してみましょう。
①Nを求める。
Nは二つの素数の積である必要があります。それ以外に特に条件はありませんので適当に素数を選べばよいです。現実では疑似乱数生成器で作った大きな数を使いますが、今回は計算を楽にするために小さな数にします。17と19にしましょう。
N = 17×19 = 323
②17-1 と 19-1 の最小公倍数を求める
つまり、16と18の最小公倍数を求めます。
結果は144です。
③Eを求める
Eは先ほど求めた144と互いに素である必要があります。Eはいくつか候補(5,7,11,13,,,,)がありますが、今回は一番小さい5にします。これでE=5、N=323となりました。これが公開鍵です。
④Dを求める
Dは次の式を満たす必要があります。
(E × D) mod 144 = 1
いくつか候補はありますが、D=29 は上記式を満たします。
具体的に計算してみると、
(5 × 29) mod 144 = 145 mod 144 = 1
となり、D=29 で問題ないことがわかります。
まとめると、公開鍵(E=5、N=323)秘密鍵(E=29、N=323)となりました。
次に、本当に暗号化、復号化ができるのか確認してみましょう
●暗号化
今回は平文として123を選びます。
暗号化の式「暗号文 = 平文E mod N」に従って、暗号化してみましょう
暗号文 = 1235 mod 323 = 225
となります。
●復号化
では、暗号文 = 225 を復号してみましょう。
平文 = 暗号文D mod N でしたから、
平文 = 22529 mod 323
= 22510 × 22510 × 2259 mod 323
= 16 × 16 × 191 mod 323
= 48896 mod 323
= 123
無事復号できました!
でも、シンプルすぎて本当に安全なのか心配になりませんか?
なんだか、公開鍵から秘密鍵を簡単に求められそうな気がしませんか?
盗聴者が知ることができるのは、暗号文と公開鍵(E=29、N=323)です。
復号するために必要なのは暗号文と秘密鍵(D=??、N=323)ですから、Dを算出できればよいのです。
Dはどうやって計算したかというと
(E × D) mod ??? = 1
でした。???がわかれば、Dは出せそうですね。
???はどうやって計算するかというと、「②17-1 と 19-1 の最小公倍数を求める」で計算しました。
つまり、Nを算出するときに使用した二つの素数を使っています。
だんだん近づいてきました。Nはすでに分かっています(N=323)から、Nを素因数分解できればDが求められますね。
がっ!!!!!そこまでなのです!!!!
【おまけ】RSA暗号の余談でも書きましたが、大きな数の素因数分解は難しく、コンピュータであっても何百時間もかかります。
つまり、NからDを求めることは現実的ではないといいうことです。言い換えると、公開鍵から秘密鍵を求めることが無理なのです。
素因数分解さん ありがとー