【公開鍵暗号方式とは】仕組み、メリット・デメリット・デジタル署名への利用

公開鍵暗号方式とは?その仕組みと、メリット・デメリットデジタル署名への利用についてまとめました。

スポンサーリンク

公開鍵暗号方式とは?メリット・デメリット

デジタル署名とは、「公開鍵暗号方式」を使って通信内容が改ざんされていないことを保証する技術です。
つまり、送信されてきたデータが途中で改ざんされていない、間違いなく本人のものであるのかを証明するのためのものです。
公開鍵暗号方式では、受信者が作成した2つの鍵(公開鍵、秘密鍵)を利用して、送信者とデータのやり取りを行います。

特徴
メリット1 通信でやり取りするデータの安全性が高い(改ざんやなりすましの防止ができる)。
メリット2 公開鍵の管理が楽(公開鍵を1つだけ公開すればいい)。
デメリット1 処理時間がかかる(共通鍵暗号方式と比べて鍵のデータの長さを長く確保する必要があり、暗号化・復号の計算コストが大きい)
スポンサーリンク

【応用例1】公開鍵暗号方式を使った通信暗号化

公開鍵暗号方式を使った通信暗号化の手順は以下のとおりです。

公開鍵暗号方式を使った通信暗号化の手順
1 受信者が「秘密鍵」を作成
2 受信者が「秘密鍵」を使って「公開鍵」を作成(秘密鍵は受信者が大切に保管し、公開鍵は誰でも取得できる場所に公開)
3 送信者は、受信者が公開している「公開鍵」を取得
4 平文(暗号化したい文)を送信者が公開鍵を使い暗号化し送付
5 受信者が暗号文を受け取る。
6 受信者は暗号文を秘密鍵で平文に復号化(秘密鍵を持っている受信者のみが暗号を解くことができる)

このように、公開鍵暗号方式では、公開鍵は誰でも簡単に入手できる公開された鍵ですが、秘密鍵を持っている受信者のみが暗号を解くことができる仕組みになっています。

公開鍵と秘密鍵のポイント
公開鍵 送信者が、データを暗号化するための鍵。受信者が作成し、送信者向けに公開(公開鍵で作成した暗号文は、秘密鍵でないと復号化できない)
秘密鍵 受信者が送信されてきたデータ(公開鍵で暗号化されている)を復号化するための鍵。受信者が作成して、受信者のみが大事に保管しておく(他人に公開してはいけない)

秘密鍵が漏洩してしまうと、対応する開鍵は安全ではありません(使ってはいけません)。
捨てて新しい鍵ペアを作るしかありません。
また、誰のものかわからない公開鍵を使って暗号化しすると、知らない第三者だけが読める暗号文となるため、利用してはいけません。

スポンサーリンク

【応用例2】デジタル署名

公開鍵暗号方式は、送信者と受信者の鍵を逆にすると、デジタル署名(電子署名)に利用できます。
逆にすると、公開している「公開鍵」で、誰にでも復号化することが可能になりますが、「秘密鍵で送信してきたら、そのデータは改ざんされていない」ということが証明されます。
秘密鍵は本人のみ保有しているため、公開鍵で正しく復号化できれば本人に間違いないということになります。

デジタル署名の手順
1 送信者は「秘密鍵」を作成し、さらに「秘密鍵」から「公開鍵」を作成する。
2 送信者は受信者に「公開鍵」を送付し、受信者は「公開鍵」を取得します。
3 送信者は、「送信するデータ」から「ハッシュ関数」により「ハッシュ値」を計算します。
4 「ハッシュ値」を「秘密鍵」で暗号化します。
5 送信者は「送信するデータ」に「暗号化されたハッシュ値」をつけて受信者に送付します(ハッシュ値が署名となる)。
6 受信者は、送信されてきた「データ」と「暗号化されたハッシュ値」を受信します。そして、3で取得した「公開鍵」で「暗号化されたハッシュ値」を復号化します。
7 受信者は、送信されてきた「データ」からハッシュ関数で「ハッシュ値」を計算します。
8 「6で復号化されたハッシュ値」と「7で計算されたハッシュ値」を比較し、完全に一致していれば改ざんされていないデータと判断します。

この方法では、送信するデータ自体は暗号化されないため第三者に内容は漏れますが、ハッシュ値は暗号化されるため、「送信したデータが途中で改竄されていないかどうか」がわかります。
これがデジタル署名の仕組みとなります。

【ハッシュ関数】メッセージダイジェスト、ハッシュ値

ハッシュ関数とは、メッセージダイジェストともよばれ、任意長のデータブロックを入力すると、固定長ビット列のハッシュ値を返します。
メッセージダイジェストは以下の特性をもっているため、デジタル署名やメッセージ認証符号、その他の認証技術で使われています。

特性
1 ハッシュ値から元のメッセージを得ることがほぼ不可能(一方向性)
2 ハッシュ値を変えずメッセージを改竄することがほぼ不可能
3 ハッシュ値は1つのメッセージにつき1つ(ハッシュ値の重複が発生するのは極めて稀)

【例題】公開鍵暗号方式での鍵の数

【問1】
公開鍵暗号方式によって,暗号を使ってn人が相互に通信する場合,異なる鍵は全体で幾つ必要になるか。
ここで,公開鍵,秘密鍵をそれぞれ一つと数える(応用情報技術者試験 平成22年秋期 問41)。

【解答】
1人と相互に通信するのに必要な鍵数は秘密鍵と公開鍵の2つです。
したがってn人と通信する場合に必要な鍵の数は「2n個」となります。

【情報処理入門】用語解説・資格試験対策まとめ
情報処理分野の用語・原理・資格試験対策について解説します。
IPA試験対策
スポンサーリンク

コメント