見出し画像

情報処理技術者試験に挑戦-暗号化-

情報処理技術者試験は、ICTに関わる方にとって人気の試験※1です。
この記事では、「情報処理技術者試験を理解して解く」を目標とし、試験範囲のほんの一部を取り上げて説明します。

取り上げるテーマは、近年重要となっているセキュリティ分野(※2)から「暗号化」です。

はじめに「共通鍵暗号方式」と「公開鍵暗号方式」による「情報漏洩対策」のしくみを説明します。
次に、公開鍵暗号方式を使った「ディジタル署名」による「送信者認証」と「改ざん検知」のしくみを説明します。

※1 令和4年度春期の応募者数161,697人
(引用 令和4年度 情報処理技術者試験・情報処理安全確保支援士試験 推移表、IPA)
※2 基本情報技術者試験,応用情報技術者試験,午前Ⅰ試験の〔試験区分別出題分野一覧表〕におけるセキュリティ分野の表示を他分野と分離して,セキュリティ分野が重点分野であることを明示
(引用 情報処理技術者試験・情報処理安全確保支援士試験 試験要綱 Ver.4.4、IPA)

登場人物

登場人物

共通鍵暗号方式

うさぎさんは、ぶたさんに指輪をプレゼントしようと思いました。
うさぎさんは、うしさんに届けてもらおうと思っています(図1)。

図1

うさぎさんは、うしさんにはプレゼントが指輪であることを秘密にしたいと思いました(図2)。

図2

共通鍵暗号方式

「情報」のやり取りにおいて、情報漏洩対策として鍵を使って秘匿化する方法があります。
情報は鍵を使って「暗号化」することで「暗号」となり、読み取ることができなくなります。また暗号は鍵を使って「復号」することで、ふたたび情報を読み取ることができるようになります。暗号化に使う鍵を「暗号鍵」、復号に使う鍵を「復号鍵」と呼びます。
暗号化と復号に同じ鍵を使う方式が「共通鍵暗号方式」です。
共通鍵暗号方式で使用するアルゴリズムにはDES、AESなどがあります。


うさぎさんとぶたさんは秘密のやり取りをするために、鍵を使うことにしました。鍵は2本用意し、1本はうさぎさんが持っておき、もう1本はぶたさんが持っておきます(図3)。

図3

うさぎさんは次の手順でプレゼントを送ることにしました(図4)。

  1. うさぎさんは暗号鍵を使って指輪を秘匿化(暗号化)する

  2. うしさんを使ってプレゼントを送る

  3. ぶたさんは復号鍵を使って復号して指輪を取り出す

図4

うさぎさんは、うしさんには内緒でぶたさんに指輪を渡すことができました。


共通鍵暗号方式の注意点

共通鍵暗号方式で使う鍵は、他者に渡らないよう安全な鍵の受け渡しが必要になります。もし鍵が別の誰かの手に渡った場合、情報の秘匿性は失われてしまいます。
 
また、共通鍵暗号方式では、やり取りする人数をnとした場合に必要な鍵数は n(n-1)/2 になります。
例えば、100人がやり取りする場合、必要な鍵数は4950となり、非常に多くの鍵が必要になります。

やりとりする相手毎に鍵を用意、すべての鍵を安全に管理する必要がある

共通鍵暗号方式のまとめ

  • 安全な鍵の受け渡しが必要になる

  • やりとりする人数が増えると鍵の数が非常に多くなる

  • アルゴリズムはDESやAESなどが使われる

公開鍵暗号方式

公開鍵暗号方式

暗号化と復号に「公開鍵」と「秘密鍵」という異なる鍵を使う方式を「公開鍵暗号方式」といいます。

暗号化
復号

秘密鍵は厳重に管理する必要がありますが、公開鍵は公開して構わないので、共通鍵暗号方式のような安全な鍵の受け渡しの問題はありません。
公開鍵暗号方式で使用するアルゴリズムにはRSAなどがあります。


うさぎさんとぶたさんの秘密のやり取りを見てみましょう。
受信者であるぶたさんは鍵ペア(秘密鍵・公開鍵)を用意し、送信者であるうさぎさは公開鍵を入手しておきます(図5)。

図5

うさぎさんからぶたさんにプレゼントを秘匿化して送る手順は次のようになります(図6)。

  1. うさぎさんは、ぶたさんの公開鍵を使って暗号化する。

  2. ぶたさんは、ぶたさんの秘密鍵を使って復号する。

図6

ぶたさんの公開鍵で暗号化された暗号は、ぶたさん(の秘密鍵)だけが復号できるところがポイントです。


公開鍵暗号方式では、やり取りする人数をnとした場合に必要な鍵数は 2n になります。
例えば、100人がやり取りする場合、必要な鍵数は200になります。

それぞれが鍵ペア(秘密鍵・公開鍵)を用意、秘密鍵のみ安全に管理する必要がある
鍵の種類

公開鍵暗号方式のまとめ

  • 暗号化と復号に公開鍵と秘密鍵という異なる鍵を使う

  • 秘密鍵は厳重に管理する必要がある

  • アルゴリズムはRSAなどが使われる


補足

公開鍵暗号方式による情報漏洩対策のしくみを説明してきましたが、この後で説明するディジタル署名でも公開鍵暗号方式が使われます。

情報処理技術者試験に挑戦①

暗号化方式に関する記述のうち、適切なものはどれか。

ア AESは公開鍵暗号方式、RSAは共通鍵暗号方式の一種である。
イ 共通鍵暗号方式では、暗号化及び復号に同一の鍵を使用する。
ウ 公開鍵暗号方式を通信内容の秘匿に使用する場合は、暗号化に使用する鍵を秘密にして、復号に使用する鍵を公開する。
エ ディジタル署名に公開鍵暗号方式が使用されることはなく、共通鍵暗号方式が使用される。

「出典:令和2年度 10月 応用情報技術者試験 午前 問42」

RSA方式のディジタル署名

うさぎさんへメッセージが届きました。(図7)
送信者はうしさんのようなのですが、本当にうしさんが送ったメッセージでしょうか?

図7

ディジタル署名

公開鍵暗号方式を使って、メッセージの送信者の確認(送信者認証)およびメッセージが送信途中で書き換えられていないことを確認(改ざん検知)する技術をディジタル署名といいます。


うさぎさんがメッセージの送信者がうしさんであることを確認する手順は次のようになります(図8、図9)。
ここで公開鍵暗号方式に必要な鍵は用意されているものとします。
また説明を簡単にするために、送信するメッセージは暗号化せずそのまま送るものとします。

うしさんがメッセージを送信

  1. うしさんはメッセージを用意する。

  2. うしさんはメッセージからメッセージダイジェスト(※3)を作成する。

  3. うしさんはメッセージダイジェストを秘密鍵(※4)で暗号化(署名)する。(ここで暗号化されたものを「ディジタル署名」という。)

  4. うしさんはメッセージとディジタル署名をうさぎさんに送信する。

※3 メッセージダイジェスト・・・メッセージに対し、ハッシュ関数という特別な計算(ハッシュ化)によって求めた値(ハッシュ値)のこと。元のメッセージが異なると、求められるハッシュ値も異なる。
※4 ここで秘密鍵はディジタル署名の作成に使われることから、署名鍵とも呼ばれる。

図8

うさぎさんがメッセージを受信

  1. うさぎさんはメッセージとディジタル署名を受信する。

  2. うさぎさんはうしさんの公開鍵でディジタル署名を復号し、メッセージダイジェストを取り出す。

  3. うさぎさんはメッセージからメッセージダイジェストを作成する。

  4. うさぎさんは「2」で取り出したメッセージダイジェストと「3」で作成したメッセージダイジェストを比較し、一致することを確認する。

図9

2では、送信者がうしさんであるかどうかを検証しています。ディジタル署名をうしさんの公開鍵(※5)で復号できるということは、メッセージダイジェストはうしさんの秘密鍵で暗号化されたことになります。うしさんの秘密鍵を持っているのはうしさんだけなので、送信者はうしさんになります(送信者認証)。

4の比較により、メッセージが書き換えられていないかどうかを検証しています。もしメッセージが途中で書き換えられていた場合、作成されるメッセージダイジェストが変わるので、4の比較で一致しません(改ざん検知)。

※5 ここで公開鍵は検証のためのメッセージダイジェストの復号に使われることから、検証鍵とも呼ばれる。


RSA方式のディジタル署名のまとめ

  • 送信者は自分の秘密鍵(署名鍵)でメッセージダイジェストを暗号化し、ディジタル署名を作成する

  • 受信者は送信者の公開鍵(検証鍵)でメッセージダイジェストを復号できることで送信者を認証する

  • 受信者はメッセージダイジェストを比較することで改ざんを検知できる


補足

ディジタル署名だけでは情報漏洩対策にはなりません。
情報漏洩対策をするには、鍵暗号方式などによる情報の秘匿化を組み合わせる必要があります。

情報処理技術者試験に挑戦②

メッセージの送信者における署名鍵の使用に関する記述のうち、適切なものはどれか。

ア 送信者が送信者の署名鍵を使ってメッセージに対する署名を作成し、メッセージに付加することによって、受信者が送信者による署名であることを確認できるようになる。
イ 送信者が送信者の署名鍵を使ってメッセージを暗号化することによって、受信者が受信者の署名鍵を使って、暗号文を元のメッセージに戻すことができるようになる。
ウ 送信者が送信者の署名鍵を使ってメッセージを暗号化することによって、メッセージの内容が関係者以外に分からないようになる。
エ 送信者がメッセージに固定文字列を付加し、更に送信者の署名鍵を使って暗号化することによって、受信者がメッセージの改ざん部位を特定できるようになる。

「出典:令和4年度 春季応用情報技術者試験 午前 問39」

情報処理技術者試験に挑戦③

メッセージにRSA方式のディジタル署名を付与して2者間で送受信する。そのときのディジタル署名の検証鍵と使用方法はどれか。

ア 受信者の公開鍵であり、送信者がメッセージダイジェストからディジタル署名を作成する際に使用する。
イ 受信者の秘密鍵であり、受信者がディジタル署名からメッセージダイジェストを算出する際に使用する。
ウ 送信者の公開鍵であり、受信者がディジタル署名からメッセージダイジェストを算出する際に使用する。
エ 送信者の秘密鍵であり、送信者がメッセージダイジェストからディジタル署名を作成する際に使用する。

「出典:令和元年度 秋期基本情報技術者試験 午前 問38」

回答

情報処理技術者試験に挑戦①の答え イ
情報処理技術者試験に挑戦②の答え ア
情報処理技術者試験に挑戦③の答え ウ


この記事が気に入ったらサポートをしてみませんか?