テクノロジ編 PR

【基本情報】共通鍵暗号方式と公開鍵暗号方式とディジタル署名を解説

記事内に商品プロモーションを含む場合があります

この記事では共通鍵暗号方式公開鍵暗号方式ディジタル署名についてIT初心者にも分かりやすく解説します。

共通鍵暗号方式

  • 暗号化とは送信データを第三者に容易に解読出来ないようにすること。
  • 復号化とは暗号化したデータを元に戻すこと。
  • 共通鍵暗号方式は暗号化にも復号化にも同じ鍵を使う方式。
  • メッセージ認証符号は受信したデータが改ざんされていないことを確認するために使われる。

公開鍵暗号方式

  • 公開鍵暗号方式は送信者が「受信者が作成した暗号化鍵」で暗号化し、
    受信者が「受信者が作成した復号化鍵」で復号化する方式。

ディジタル署名

  • ディジタル署名は送信者が「送信者が作成した暗号化鍵」で暗号化し、
    受信者が「送信者が作成した復号化鍵」で復号化する方式。

基本情報では共通鍵暗号方式や公開鍵暗号方式やディジタル署名に関する問題が出題されます。是非最後までご覧ください。

データの暗号化

インターネット上で通信を行うとき、悪意を持った人から様々な脅威に晒されます。そんな脅威の一つに「盗聴」があります。

盗聴とは送信されたデータの内容を悪意のある第三者が盗み見ることです。

データの暗号化

盗聴への対策として有効な方法がデータの暗号化です。データは暗号化することで容易に解読が出来ないようになります。また、暗号化したデータは復号化することで普通に解読出来るデータとなります。なので、送信者がデータを送信する時にデータを暗号化して、受信者が受け取ったデータを復号化すれば盗聴の危険に晒されることはなくなります。これをデータの暗号化と言います。

データの暗号化には暗号化鍵、データの復号化には復号鍵を使います。

共通鍵暗号方式

共通鍵暗号方式は、暗号化鍵と復号鍵が共通の暗号方式です。データを暗号化するのにも復号化するのにも同じ鍵を使うのが共通鍵暗号方式です。

共通鍵暗号方式では、あらかじめ送信者と受信者で同じ鍵を持っておきます。なので、あらかじめ誰とデータのやり取りをするのかが決まっている場合に使われ、不特定多数とのデータ通信には向いていません

共有鍵暗号方式の仕組みにAESやDESなどがあります。

メッセージ認証符号

共通鍵暗号方式では、受信したメッセージが改ざんされていないかを受信者側が確認するためにメッセージ認証符号を使うケースがあります。送信者はメッセージから特定の計算方法でメッセージ認証符号を生成して、メッセージと一緒に送信します。受信者は受け取ったメッセージから送信者と同じ鍵を使ってメッセージ認証符号を生成し、送信者から送られたメッセージ認証符号と同じであることを検証します。

送信者から送られたメッセージ認証符号と受信者が生成したメッセージ認証符号が一致しなければメッセージが改ざんされたと分かります。

公開鍵暗号方式

公開鍵暗号方式は、暗号化鍵と復号鍵が異なります。送信者は「受信者が作成した暗号化鍵」で暗号化を行い、受信者は「受信者が作成した復号鍵」で復号します

公開鍵暗号方式では暗号化鍵は不特定多数に公開されています。しかし、対となる復号鍵は受信者しか持っていないため、正規の受信者以外はデータを確認出来ません。公開鍵暗号方式は不特定多数との通信に向いています。

公開鍵暗号方式の仕組みにRSA楕円曲線暗号などがあります。RSAは大きな数の素因数分解が難しいことを利用した仕組みで以前はよく使われていましたが、近年はRSAより鍵長が短いにも関わらず安全性が変わらない楕円曲線暗号が使われるようになってきています。

ディジタル署名

ディジタル署名は正規の送信者からのデータなのか、データが改ざんされていないかを確かめるために、公開鍵暗号方式を応用した暗号方式です。送信者は「送信者が作成した暗号化鍵」で暗号化を行い、受信者は「送信者が作成した復号鍵」で復号します

ディジタル署名では復号鍵が不特定多数に公開されています。受信者はデータを受け取ったら、公開されている復号鍵でデータの復号を行います。データの暗号に使う暗号化鍵は正規の送信者しか持っていないはずなので、正しくデータの復号が行えるということは正規の送信者から送られたデータであるということが分かります。

また、ディジタル署名ではデータが改ざんされているかどうかも確認できます。

ディジタル署名の仕組み

送信者側の仕組み

ディジタル署名を使ってデータを送信する場合、送信者は2つのデータを送信します。

①送りたいデータ
②送りたいデータのハッシュ値を暗号化したもの

ハッシュ値とはデータから作成した文字列のことで、このような特徴を持っています。

  • 同じデータから作成したハッシュ値は必ず同じ文字列になる
  • データからハッシュ値を作成することは出来るが、ハッシュ値からデータに戻すことは出来ない

まず、送信者は送りたいデータをハッシュ値に変換します。このハッシュ値をメッセージダイジェストと言います。そして、メッセージダイジェストを秘密鍵で暗号化して受信者に送ります。メッセージダイジェストを暗号化したものをディジタル署名と言います。

メッセージからハッシュ値に変換するハッシュ関数としてSHA-256という仕組みがよく使われています。

受信者側の仕組み

受信者は送信者が送った2つのデータを受け取ります。

①送信者が送ってきたデータ
②データのハッシュ値を暗号化したもの

受信者は「送信者が送ってきたデータ」をハッシュ化し、ディジタル署名を復号化します。

受信者側の処理で、正規の送信者から送られたかどうかとメッセージが改ざんされていないかを確認できます。

  • ディジタル署名を復号化出来る ⇒ 正規の送信者から送られてきた
  • ハッシュ値①とハッシュ値②が同じ文字列 ⇒ メッセージが改ざんされていない

もしも、メッセージが改ざんされていたら、送信者側で作成したハッシュ値と受信者側で作成したハッシュ値が違ってきます。ハッシュ関数の特性を活かしてメッセージの改ざんを検知するという訳です。

基本情報技術者試験での出題例

令和元年度秋期問38

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

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

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

イ 受信者の秘密鍵であり,受信者がディジタル署名からメッセージダイジェストを算出する際に使用する。

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

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

正解と解説

正解は”ウ”

令和元年度秋期問40

基本情報技術者
午前試験 
令和元年度秋期問40

ファイルの提供者は,ファイルの作成者が作成したファイルAを受け取り,ファイルAと,ファイルAにSHA-256を適用して算出した値Bとを利用者に送信する。そのとき,利用者が情報セキュリティ上実現できることはどれか。ここで,利用者が受信した値Bはファイルの提供者から事前に電話で直接伝えられた値と同じであり,改ざんされていないことが確認できているものとする。

ア 値BにSHA-256を適用して値Bからディジタル署名を算出し,そのディジタル署名を検証することによって,ファイルAの作成者を確認できる。

イ 値BにSHA-256を適用して値Bからディジタル署名を算出し,そのディジタル署名を検証することによって,ファイルAの提供者がファイルAの作成者であるかどうかを確認できる。

ウ ファイルAにSHA-256を適用して値を算出し,その値と値Bを比較することによって,ファイルAの内容が改ざんされていないかどうかを検証できる。

エ ファイルAの内容が改ざんされていても,ファイルAにSHA-256を適用して値を算出し,その値と値Bの差分を確認することによって,ファイルAの内容のうち改ざんされている部分を修復できる。

正解と解説

正解は”ウ”

サンプル問題問32、平成31年度春期問38

基本情報技術者
科目A サンプル問題問32、午前試験
平成31年度春期問38

メッセージ認証符号の利用目的に該当するものはどれか。

ア メッセージが改ざんされていないことを確認する。

イ メッセージの暗号化方式を確認する。

ウ メッセージの概要を確認する。

エ メッセージの秘匿性を確保する。

正解と解説

正解は”ア”

平成31年度春期問39

基本情報技術者
午前試験 
平成31年度春期問39

楕円曲線暗号の特徴はどれか。

ア RSA暗号と比べて,短い鍵長で同レベルの安全性が実現できる。

イ 共通鍵暗号方式であり,暗号化や復号の処理を高速に行うことができる。

ウ 総当たりによる解読が不可能なことが,数学的に証明されている。

エ データを秘匿する目的で用いる場合,復号鍵を秘密にしておく必要がない。

正解と解説

正解は”ア”

平成30年度秋期問36

基本情報技術者
午前試験 
平成30年度秋期問36

アプリケーションソフトウェアにディジタル署名を施す目的はどれか。

ア アプリケーションソフトウェアの改ざんを利用者が検知できるようにする。

イ アプリケーションソフトウェアの使用を特定の利用者に制限する。

ウ アプリケーションソフトウェアの著作権が作成者にあることを証明する。

エ アプリケーションソフトウェアの利用者による修正や改変を不可能にする。

正解と解説

正解は”ア”

平成30年度秋期問38

基本情報技術者
午前試験 
平成30年度秋期問38

共通鍵暗号方式の特徴はどれか。

ア 暗号化通信に使用する場合,鍵を相手と共有する必要があり,事前に平文で送付することが推奨されている。

イ 暗号化通信をする相手が1人の場合,使用する鍵の個数は公開鍵暗号方式よりも多い。

ウ 同じ程度の暗号強度をもつ鍵長を選んだ場合,公開鍵暗号方式と比較して,暗号化や復号に必要な時間が短い。

エ 鍵のペアを生成し,一方の鍵で文書を暗号化すると,他方の鍵でだけ復号することができる。

正解と解説

正解は”ウ”

平成30年度春期問38

基本情報技術者
午前試験 
平成30年度春期問38

AさんがBさんの公開鍵で暗号化した電子メールを,BさんとCさんに送信した結果のうち,適切なものはどれか。ここで,Aさん,Bさん,Cさんのそれぞれの公開鍵は3人全員がもち,それぞれの秘密鍵は本人だけがもっているものとする。

ア 暗号化された電子メールを,Bさんだけが,Aさんの公開鍵で復号できる。

イ 暗号化された電子メールを,Bさんだけが,自身の秘密鍵で復号できる。

ウ 暗号化された電子メールを,Bさんも,Cさんも,Bさんの公開鍵で復号できる。

エ 暗号化された電子メールを,Bさんも,Cさんも,自身の秘密鍵で復号できる。

正解と解説

正解は”イ”

平成29年度秋期問38

基本情報技術者
午前試験 
平成29年度秋期問38

非常に大きな数の素因数分解が困難なことを利用した公開鍵暗号方式はどれか。

ア AES
ウ DSA

イ DH
エ RSA

正解と解説

正解は”エ”

平成29年度秋期問40

基本情報技術者
午前試験 
平成29年度秋期問40

ディジタル署名における署名鍵の使い方と,ディジタル署名を行う目的のうち,適切なものはどれか。

ア 受信者が署名鍵を使って,暗号文を元のメッセージに戻すことができるようにする。

イ 送信者が固定文字列を付加したメッセージを署名鍵を使って暗号化することによって,受信者がメッセージの改ざん部位を特定できるようにする。

ウ 送信者が署名鍵を使って署名を作成し,それをメッセージに付加することによって,受信者が送信者を確認できるようにする。

エ 送信者が署名鍵を使ってメッセージを暗号化することによって,メッセージの内容を関係者以外に分からないようにする。

正解と解説

正解は”ウ”

平成29年度春期問40

基本情報技術者
午前試験 
平成29年度春期問40

公開鍵暗号方式の暗号アルゴリズムはどれか。

ア AES
ウ RSA

イ KCipher-2
エ SHA-256

正解と解説

正解は”ウ”

基本情報に関する他の記事

基本情報技術者で学ぶべきことをまとめた記事一覧

ハードウェア ソフトウェア システム構成
ネットワーク データベース 開発手法 情報セキュリティ

情報セキュリティに関する記事