情報セキュリティ

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

お茶ん太
お茶ん太

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

共通鍵暗号方式

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

公開鍵暗号方式

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

ディジタル署名

  • ディジタル署名は送信者が「送信者が作成した暗号化鍵」で暗号化し、
    受信者が「送信者が作成した復号化鍵」で復号化する方式。
  • ディジタル署名を使うことで、メッセージが改ざんされていないことと、正しい送信者からのメッセージであることを検証できます。

データの暗号化

インターネット上で通信を行うとき、悪意を持った人から様々な脅威に晒されます。代表的な脅威に盗聴改ざんなりすましがあります。

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

改ざんとは送信途中で悪意のある第三者がデータを書き換えることです。

なりすましとは悪意のある第三者が本人になりすましてデータを送信することです。

暗号化と復号

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

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

共通鍵暗号方式

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

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

メッセージ認証符号

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

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

公開鍵暗号方式

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

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

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

ディジタル署名

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

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

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

ディジタル署名の仕組み

ディジタル署名を使ってデータを送信する場合、送信者は送りたいデータに加えて、データのハッシュ値を暗号化した値も送信します。

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

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

送信者は送りたいデータをハッシュ値に変換します。このハッシュ値をメッセージダイジェストと言います。そして、メッセージダイジェストを秘密鍵で暗号化して受信者に送ります。メッセージダイジェストを暗号化したものをディジタル署名と言います。メッセージをハッシュ値に変換する関数としてよく使われる仕組みはSHA-256です。

受信者は「送信者が送ってきたデータ」をハッシュ化して、さらにディジタル署名を復号化します。ディジタル署名が復号化できるということは、正規の送信者から送られてきたものだと分かります。また、ハッシュ化した値とディジタル署名を復号化したメッセージダイジェストが同じ文字列ということは、メッセージが改ざんされていないと分かります

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

令和元年度秋期問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の内容のうち改ざんされている部分を修復できる。

正解と解説

正解は”ウ”

受信者は送信者から送られたファイルAにSHA-256を適用してハッシュ化したものと、値Bを比較することで、ファイルAが改ざんされていないことを検証できます。

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

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

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

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

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

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

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

正解と解説

正解は”ア”

メッセージ認証符号ではメッセージが改ざんされていないかどうか検証できます。

平成31年度春期問39

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

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

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

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

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

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

正解と解説

正解は”ア”

楕円曲線暗号は公開鍵暗号方式で使われる仕組みで、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さんも,自身の秘密鍵で復号できる。

正解と解説

正解は”イ”

公開鍵暗号方式に関する問題ですね。
公開鍵暗号方式では、暗号鍵を公開しているBさんだけが、自身の秘密鍵で復号できます。

平成29年度秋期問38

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

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

ア AES
ウ DSA

イ DH
エ RSA

正解と解説

正解は”エ”

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

平成29年度秋期問40

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

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

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

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

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

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

正解と解説

正解は”ウ”

ディジタル署名は送信者の鍵を使って署名を作成し、受信者にメッセージと一緒に送ります。受信者は送られたディジタル署名から、メッセージが改ざんされていないことと正しい送信者から送られたメッセージであることを検証できます。

平成29年度春期問40

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

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

ア AES
ウ RSA

イ KCipher-2
エ SHA-256

正解と解説

正解は”ウ”

RSAは公開鍵暗号方式で使われるアルゴリズムです。