エクセルがともだち

会社で一番のともだちがエクセル・・・のアラフィフパート事務員のつれづれ帳。備忘録もかねてエクセルのことやVBAのことを書いていくつもりです。

【基本情報技術者】公開鍵、秘密鍵、暗号化などについて

基本情報技術者試験を受けようと思っている。だがしかしやはり、カタカナ用語が覚えられない、横文字用語が覚えられない、問題文を最後まで読む気力がない、解説を読んでもさっぱり意味が分からない、そんなこと知ってどうすると逆切れしそうになる、等、到底受かる気がしないし、勉強するのもつらい。

このままではいかんとえいやッと試験の申し込みをしてしまった。今回は落ちるでしょう。二回目落ちたらあきらめよう。

でも、回答は選択式だし、もしかしたらもしかしないかしら、という若干の淡い期待も捨てきれない。

 

それはさておき、セキュリティの公開鍵とか秘密鍵とかこんがらがってよくわからなかったので、ネットでいろいろ見てみて学習したことの覚書。

きちんとした知識に基づいたものではなく、ネットを流し読みした程度のものなので、事実と異なることを書いているかもしれません。

 

そもそも暗号化とは

ネットワーク上でデータの安全性を高めるための方法の一つ。

主に以下の二種類に分類される。

秘密鍵暗号方式(共通鍵方式)

公開鍵暗号方式

 

そのまんま送ると、盗み見られちゃったときやばい。なので、内容を何らかの方法でぐちゃぐちゃにして送って、受け取った側は何らかの方法で元に戻して内容を知る、という感じ。

ちなみにそのまんまの文書のことを「平文」というみたいで、ひらぶん?へんな日本語、と思っていた。英語では「plaintext」というらしい。なるほど、略すと平文ね、と納得。暗号化した文書は「暗号文」「ciphertext」というらしい。

 

秘密鍵暗号方式(共通鍵方式)

暗号化と復号に同じ鍵を使用する。暗号化に使用する鍵をあらかじめ安全な方法で相手に届けておく必要がある。

公開鍵暗号方式

暗号化と復号に別のカギを用いる暗号方式。「公開鍵」と「秘密鍵」をペアで使用。鍵の片方は他人にも広く公開する「公開鍵」、もう片方は本人のみが持っている「秘密鍵」。

公開鍵暗号方式のメリットは暗号を解くことを非常に困難でセキュリティが高いこと。公開鍵は一般に公開しているものなので、秘密鍵方式のように安全に注意して鍵を送る、という手間が省ける。

「公開鍵」で暗号化し文書などを本人に送付、復号できるのは本人のみが持っている「秘密鍵」のみ。「公開鍵」は暗号化するのみで複合はできない。なので「公開鍵」は悪い人に盗まれても大丈夫。「秘密鍵」は厳重に保管し盗まれないようにしなければいけない。

公開鍵暗号方式のデメリットは、複雑な計算処理が必要なのでデータの暗号化、複合化に処理の負荷がかかる。

だそうです。

 

実際にどんな時に使われているのか?ということを調べてみました。

 

SSL通信

ネットで買い物するときとかにでてくるやつ。クレジットカード番号を入力したりするときに情報を盗み見られないように安全になっている。

ホームページのアドレスがHTTPではなくHTTPSになっているやつはSSL通信を使用していて安全!

仕組みは、公開鍵方式と共通鍵方式を合わせたものだそうです。

なんとなくこんな感じかなの例。

太郎がネットショッピング、XYZマートのお洋服を購入する。

①太郎は(知らないうちに)公開鍵を取得し、共通鍵を作る

②太郎は公開鍵を使用し、共通鍵をがっちりガードしてサーバー(XYZ商店側)に送る(開封できるのは「秘密鍵」を持ってる人のみ)

③サーバー側(XYZ商店側)は秘密鍵を使用し、がっちりガードされた共通鍵を開封してゲット

④以降、同じ共通鍵を使用して通信内容を暗号化、複合し通信する

 

電子証明書

マイナンバーカードでも使われているらしい。マイナンバーカード取得時に「電子証明書を利用する場合は・・・」とかなんとか言われ訳が分からないまま暗証番号などを設定したような記憶が。。。で、訳が分からないまま「有効期限が切れます」という通知を受け取り役所に申請に行ったような記憶が。。。

 

電子署名とは。

これまた公開鍵方式を使っているらしい。

情報を送信する際に本人しか持ちえない秘密鍵で暗号化

→受信者がその人の公開鍵で複合できれば間違いなく本人からの通信だと証明出来て安心。

→文書が改ざんされていないことを調べることができて安心。(送られてきたハッシュ値?と送られてきた文書から公開鍵を使って生成されるハッシュ値が同じであることで文書が改ざんされていないことを確認できるらしい)

 

公開鍵はだれでも持てる「公開鍵」だから、この場合「秘密鍵」では「文書の中身が見られちゃいけない暗号化」が目的なわけではなく、「秘密鍵」でしかできない計算をしてハッシュ値?を作成するためのもの。

 

マイナンバーカードは持ってるけど、秘密鍵とかどこに入ってるんだ?というと、ICチップの中に入っているらしい(知らなかったわ。いつのまにか鍵を持っていた!)

公開鍵もICチップの中に入っているらしい。公開鍵と電子証明書はセットみたい。

 

どんな用途に使うのか?

①署名用電子証明書

②利用者証明電子証明書

 

①署名用電子証明書 は 本人ですよ!と証明できる

e-taxとか利用するときに、本人が申請しましたよ!と証明できる。

また、文書が改ざんされてないかどうかも確認できる。

署名用秘密鍵と「公開鍵+電子証明書」を利用。

 

②利用者証明電子証明書 は 本人がログインしましたよ!と証明できる。コンビニで住民票を取りたいなとか、サービスを利用するときに使える

本人であることの認証手段。

利用者証明用秘密鍵と「公開鍵+電子証明書」を利用。

 

どうやって「本人ですよ!」と確認できるのか。(ざっくりこのように理解しました)

①認証してください、とリクエスト(本人)

②乱数を送付(認証側)

③乱数をマイナンバーカードの秘密鍵で変換しハッシュ値(?)を作成(本人)

④乱数を変換したハッシュ値と公開鍵・電子証明書を送付(本人)

⑤送られてきたハッシュ値を、同時に送られてきた公開鍵(電子証明書)で復号し、元の乱数と比べて一致を確認(認証側)

⑥送られてきた電子証明書(公開鍵)を認証局に確認。有効ですよと返事をもらい、本人であると認証

 

本人しか持っていない「秘密鍵」で作成したハッシュ値はその人の「公開鍵」でしか復号できない。

「公開鍵」で復号したハッシュ値の結果が一致することを確認できた。

⑥で「公開鍵」が正しいことを確認しているから「本人と認証成立!」

 

 

こちらを参考とさせていただきました↓

マイナンバーカードの安全性 (cao.go.jp)

マイナンバーカードはどうやって認証してる? 意外と知らない「所有物認証」のハナシ (4/4) - ITmedia NEWS

そしていつもお世話になっているピヨ太さん

公開鍵暗号方式 (public-key cryptography)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 (i-3-i.info)

 

電子署名」がむかしながらので例えると「押印」

電子証明書が昔ながらで例えると「印鑑証明書」→電子証明書は国が指定した認証局が「これは正しいもので信用できるものです!」と証明してくれる。

 

わかったようなわからないような。。。

とにかくマイナンバーカード申請時に電子証明書申請しておいてよかった。コンビニで住民票とか取りたいときに使えるんだろうな。

 

最後まで読んでいただいた方、、、なんだかごめんなさい。

 

2021.1.31加筆しました 

2021.3.8加筆修正しました