【PKI 基礎③】共通鍵暗号化方式とは?

PKI
前回の講座
PKI講座第2回

前回の講座 [sitecard subtitle=PKI講座第1回 url=https://pkiwithadcs.com/what_is_pki/ target=]   前回、インターネット上に潜む脅威の一つに、通信でやりとりするデ[…]

 
前回、データの暗号化の技術の概要について紹介しました。暗号化方式の種類には、大きく分けて「共通鍵暗号化方式」と「公開鍵暗号化方式」の2種類があります。
今回は、そのうちの1つである「共通鍵暗号化方式」について、概要を紹介したいと思います。
 

共通鍵暗号化方式とは

共通鍵暗号方式とは、暗号化と復号に使用する鍵が「同じ鍵」となる暗号化方式のことです。

前回の記事で、暗号化方式の例として紹介した “シーザー暗号” も、暗号化と復号の際にずらす文字数(=鍵となるパラメーター)が同じであるため、共通鍵暗号の一つになります。

同じ鍵を利用して暗号化/復号を行うことから、共通鍵暗号方式のアルゴリズムも比較的シンプルであるため、暗号化/復号の処理にかかる処理速度が速いという特徴があります。

共通鍵暗号を利用して、インターネット上で暗号化して通信を行うことを考えてみます。
共通鍵暗号を利用するためには、通信を行う相手と鍵を共有している必要があります。

共通鍵暗号方式は暗号化と復号に使用する鍵は同じものであるため、「鍵」をオープンなインターネット経由で相手に渡して共有すると、悪意のある第三者に鍵を入手され、せっかく暗号化した通信も復号され盗聴されてしまう恐れもあります。

そのため、インターネット上で暗号化通信を行う際、暗号化に共通鍵暗号を利用する場合は、事前に鍵を共有しておく必要があります。

 

通信相手が数人の場合は、直接、秘密裏に鍵を共有して保持しておくことも可能ですが、インターネット上で不特定多数のユーザーやコンピューターと通信を行う場合、全ての通信相手と鍵を共有しておくことは現実的ではありません。インターネットを利用する際、実際には1日に数十から数百の通信相手と暗号化通信が行われるので、全ての相手と「共通鍵」を交換していたら、鍵を管理するのは難しくなってしまいます。

 

 

このように、不特定多数の通信相手と「事前に」鍵を共有するのは難しいため、現実世界では暗号化通信を行う際に都度、共通鍵暗号に使用する鍵を交換しています。ただし、鍵そのものをオープンなインターネット経由で交換してしまうと、途中で鍵のデータが盗聴される恐れがありますので、安全な方法で鍵を共有する必要があります。

 

インターネット上で安全に鍵を交換する方法が確立されており、その仕組みを「鍵交換」と呼ばれています。鍵交換を行って通信相手と鍵を共有することで、インターネット上でも共通暗号化方式で暗号化通信を行うことが可能となります。

 

代表的な公開鍵暗号化方式のアルゴリズム

代表的な共通鍵暗号化方式として、RC4、DES、3DES、AES というアルゴリズムがあります。

アルゴリズムごとに、セキュリティ強度や共通鍵の長さが異なります。

アルゴリズム

鍵長

セキュリティ強度

RC4

可変 (40256bit)

DES

56 bit

3DES

56, 112, 168 bit

AES

128, 192, 256 bit

一般的には、鍵長が長いほど、暗号化の強度が高いと考えられています。

現在、主流で利用されている共通鍵暗号方式は AES です。
その他の共通鍵暗号方式である RC4、DES、3DES は、脆弱性があることが確認されており、アルゴリズムそのものを利用できないように設定して運用しているシステムも多いです。

PKI の基礎知識を学ぶ上では、各アルゴリズムの詳細な仕組みを理解する必要はありません。
(各アルゴリズムの仕組みは複雑で、数学の知識も必要になります。)
各アルゴリズムの名前や、アルゴリズムで利用される鍵長、また、セキュリティ高度を把握しておけば問題ありません。

 

今回は、共通暗号化方式について、ざっくりとイメージできたかと思います。共通暗号化方式を利用するには、通信相手と事前に「鍵」を共有しておかなければならないことが問題です。この問題を解決する仕組みとして、安全に鍵を交換する「鍵交換」という仕組みがあることを押さえておいてください。

次回は、暗号化方式の別の種類である “公開鍵暗号化方式” について説明します。

 

次回の講座
PKI講座第4回

前回の講座 [sitecard subtitle=PKI講座第3回 url=https://pkiwithadcs.com/shared_key_cryptosystem/ target=]   ここまでに、データの暗号化の技術の概要[…]