図解サイバー攻撃 [Cyber Attack dot Net]

図解サイバー攻撃。サイバー攻撃・サイバーテロや情報漏洩などのサイバーセキュリティインシデントについて詳しくイラストで解説。

図解サイバーセキュリティ用語

図解:共通鍵暗号方式と公開鍵暗号方式

投稿日:

共通鍵暗号方式

共通鍵暗号方式は、暗号化する鍵と復号する鍵に同じ鍵を使います。つまり、データを暗号化するユーザと暗号化したデータを受け取って復号するユーザは同じ共通鍵を持っている必要があります。

共通鍵暗号方式の仕組み

共通鍵暗号方式は1対1のデータのやり取りの場合であれば特に問題ないですが、複数のユーザに対して暗号化したデータを送信する場合には、ユーザ事に共通鍵を用意する必要があり非常に手間がかかります。

また、共通鍵を相手に渡す方法に問題があります。重要なデータをインターネット上で送信するから暗号化通信を行いたいのに、共通鍵を暗号化通信を開始する前に事前にメール等で送信する必要がありますが、共通鍵をメール等で送信すると、攻撃者に通信を傍受されてのぞき見される可能性があります。これを鍵配送問題と言います。

公開鍵暗号方式

公開鍵暗号方式は、暗号化に使う鍵と復号に使う鍵が違います。公開鍵暗号方式には2つの鍵が存在します。

  • 秘密鍵
  • 公開鍵

秘密鍵は名前の通り他人に知られてはいけない鍵です。一方で公開鍵はインターネット上でも公開しても問題がない鍵です。秘密鍵と公開鍵は数学的な関連性があり以下のような特徴があります。

  • 秘密鍵で公開鍵を作成できるが、公開鍵からは秘密鍵を作成できない
  • 秘密鍵で暗号化したデータは公開鍵で復号できる
  • 公開鍵で暗号化したデータは秘密鍵で復号できる

秘密鍵と公開鍵の関係

下の図の例だと送信者は受信者の公開鍵を利用してデータを暗号化します。そして受信者は暗号化したデータを自分しか持っていない秘密鍵で復号します。

公開鍵暗号方式の仕組み

万が一送信者が間違って別のユーザに暗号化したデータを送信したとしても、そのデータは秘密鍵を持つ人でなければ復号できないので、データを見られる事はありません。また公開鍵から秘密鍵を計算する事はほぼ不可能ですので、公開鍵がインターネット上で公開されていても、問題ありません。

公開鍵暗号方式と共通鍵暗号方式を使ったSSL通信

公開鍵暗号方式は共通鍵暗号方式の鍵配送問題を解決します。そしてそれを利用したのがSSL通信です。下の図ではクライアントとWebサーバ間でSSL通信を開始するまでの手順を説明しています。

クライアントとWebサーバ間でSSL通信、つまり暗号化通信をしたいので、暗号化・復号するための共通鍵をクライアントからWebサーバに安全に配送する必要があります。そこで、Webサーバはクライアントに公開鍵を証明書と共に送信します(①)。

クライアントはその公開鍵を利用してクライアントが用意した共通鍵を暗号化してWebサーバへ送信します。この時点で共通鍵を暗号化する事が可能であり、鍵配送問題を解決しています。公開鍵で暗号化したデータは秘密鍵でしか復号する事ができませんので、攻撃者が公開鍵と暗号化したデータを取得しても復号する事はほぼ不可能です。Webサーバは公開鍵で暗号化された共通鍵を自身の秘密鍵で復号します。(②)。

これでクライアントもWebサーバも同じ共通鍵を安全に共有する事ができたので、この共通鍵を利用して通信を暗号化します(③)。

ところで、なぜデータやデータ自体を公開鍵暗号方式で暗号化しないのでしょうか?それは公開鍵暗号方式は複雑な計算が必要なので処理が遅くなります。ですので、鍵を配送するステージだけ公開鍵暗号方式で暗号化して、データ通信は共通鍵暗号方式で暗号化します。

広告

広告

-図解サイバーセキュリティ用語

関連記事

サイバーセキュリティとセキュリティの違い 図解サイバーセキュリティ用語

サイバーとはインターネットが形成する情報空間の事を表します。ではセキュリティとサイバーセキュリティの違いは何でしょうか?サイバーセキュリティはセキュリティという大きなカテゴリの中の1つの分野です。セキ …

ゼロデイ攻撃 図解サイバーセキュリティ用語

ゼロデイ攻撃とは、システムやアプリケーションに脆弱性が発見され、ベンダーが修正パッチをリリースする前にその脆弱性を悪用した攻撃の事を言います。ベンダーが提供する修正パッチのリリース日をワンデイ(1 d …

第5の戦場、サイバー空間 図解サイバーセキュリティ用語

戦争の歴史は「陸」での争いに始まり船で「海」で各地に進出し、戦闘機で「空」を制覇することで進化を遂げていきました。ここまでを第1の戦場、第2の戦場、第3の戦場と呼んでいました。最近では第4の戦場として …

DMZ(非武装地帯)とは?

DMZとはdemilitalized zoneの略で非武装地帯という意味があります。これは元々は軍事用語として使われており、戦争中もしくは停戦中である国家の間に設けられた地域で、そこでは協定によって軍 …

ハッシュ関数、MD5とSHAとは?

ハッシュ関数とは、あるデータをインプットとしてそのデータを要約する16進数の数列を生成する関数の事を言います。ハッシュ関数はデータ固有の値(ハッシュ値)を生成しますので、データが違うとそのハッシュ値も …