SSLってどんな技術でできてるの?~鍵を利用した暗号化技術その1~

SSLってどんな技術でできてるの?~鍵を利用した暗号化技術その1~

前回のコラムでは、SSL/TLSとはどのような仕組みで成り立っているのか概要を紹介しました。今回はSSL/TLSでの暗号化通信を実現する技術の詳細を説明していきます。SSL/TLSの暗号化フレームワークがさまざまな技術が組み合わさって成り立っていることを感じてください。

鍵を使った暗号方式を理解しましょう

思い出してください(思い出せない…という方は前回のコラムをご参照ください)、安全な暗号化通信を行う中で、達成しなくてはいけなかったのが下記の三つの特性でした。

  1. 機密性
  2. 正真性
  3. 認証

今回はこの中で 1機密性 を取り上げます。
機密性とは、暗号化の最大の目的である、盗聴者に解読されずに、通信相手だけに機密データを送ること です。データに暗号化を施せば、データを盗まれてしまったとしても、それを盗聴者は解読することができません。
機密性を守るために、SSL/TLSプロトコル では、共通鍵暗号 を利用し、暗号化を施します。また、共通鍵暗号で使用する、鍵と呼ばれる値を生成するために 擬似乱数生成器 を使用し、共通鍵暗号方式を使用する際に発生する鍵配送問題(共通鍵の鍵を共有する際に盗聴者に盗まれてしまう問題)を解決するために 公開鍵暗号 を使用します。
今回はこのなかの、共通鍵暗号方式 と、公開鍵暗号方式 の概要と役割 を解説していきます。

そもそも暗号化を行う際に使用するこれらの鍵を使用した暗号方式は何のためにあるのでしょうか。これらは、送信するデータ自体の暗号化 を行うため(共通鍵暗号方式)、さらに、データの暗号化を行うための鍵を暗号化 するため(公開鍵暗号方式)に存在しています。

共通鍵暗号方式

まずは共通鍵暗号方式を確認していきましょう。
共通鍵暗号方式 とは、同じ鍵(ルール)を使用し、暗号化、複合化を行う ものです。
初回のコラムで紹介したシーザー暗号はこの共通鍵を使用した暗号方式ですね。シーザー暗号を紹介した際には、アルファベットx文字ずらして文章を表記するというのが鍵(ルール)でした。

シーザー暗号はかなり簡単な鍵を使用していますが、現代の暗号化技術も複雑さは違えど、通信する2者間で鍵を共有し、同じルールに基づき、暗号化、復号化を行っているという点では変わりません。後述するDESやAESと呼ばれる共通鍵暗号方式は、決まった長さのビットを鍵として利用しています。

ただ、共通鍵暗号は事前に二者間で鍵を共有しておかなければいけないという仕組みであるがゆえに、鍵の共有時に第三者に鍵を盗まれてしまう という危険性がありました。この危険性を 鍵配送問題 と呼びます。

公開鍵暗号方式

共通鍵暗号には鍵配送問題が存在していました。それを解決するのが、公開鍵暗号方式 です。これは、暗号化の鍵と復号化の鍵が別々な暗号化の方式 です。暗号化の鍵のことを 公開鍵 と呼び、復号化の鍵を 秘密鍵 と呼びます。これらは必ずペアで利用し、一対の公開鍵と秘密鍵のペアをキーペアと呼びます。

昔よくこんなペンがあったのを覚えていますか?

インクが特殊なもので書いた文字が透明になり、端からは何が書いてあるのか分からないペンと、ブラックライトで隠された透明な文字を見えるようにするライトです。

これは 暗号化を行うペン と、複合化を行うライト が別々なものです。ただしこれらはペアで必ず使うものです。
このペンで書いた文字はこのライトでのみ見ることができます。暗号化を行う際には、ライトを持つ人が配っているこのペンで伝えたい文字(データ本体)を書きます。


この暗号化を行うペンを盗んだとしても、復号化のためのライトがないので、隠された文字を解読することはできません。ペンを配った人物のみが保有するライトを盗まないと、復号化はいつまでたっても行うことができないという仕組みです。

これをコンピュータ間のネットワークを通じたやり取りに応用させたのが 公開鍵暗号方式 です。

ハイブリッド暗号方式

SSL/TLS はこの 公開鍵暗号方式と共通鍵暗号方式を組み合わせて使用 しています。これらを組み合わせた暗号化方式が ハイブリッド暗号化方式 です。

なぜ先に紹介した公開鍵と秘密鍵を利用し、安全なデータのやり取りを行うことのできる公開鍵暗号方式のみでやり取りを行わないのか。
確かに公開鍵暗号方式は鍵とメッセージを盗まれたとしても復号化自体は行えず、安全なデータのやり取りを行うことができるのですが、仕組みが複雑 なため、二者間でのメッセージのやり取りに非常に時間がかかるのです。

共通鍵暗号方式 は逆に鍵の受け渡しは危険を伴いますが、仕組みがシンプルなので、暗号化、復号化にかかる時間が公開鍵暗号方式よりもずっと短いのです。

そこで登場するのが、両者のいいとこのみを組み合わせた ハイブリッド暗号方式 です。


公開鍵暗号方式を利用して、共通鍵を暗号化 します。


これで安全に共通鍵の受け渡しを行うことができ、二者間で共通鍵(ルール)を事前に決めることができたので、後は共通鍵を使った高速な暗号化通信を行うのです。

 

各種暗号化方式の具体的な技術を紹介

共通鍵暗号方式

共通鍵暗号方式には下記のようなものがあります。

  • DES (Data Encryption Standard)
  • トリプルDES
  • AES (Advanced Encryption Standard)

現在安全に暗号化通信を行う際に使用する共通鍵暗号方式は AES です。なぜならDES等は現代のハイスペックなコンピュータを使用し、少し時間をかければ、暗号を解読することができてしまうためです。

公開鍵暗号方式

公開鍵暗号方式には下記のようなものがあります。

  • RSA (発明者であるR. L. Rivest, A. Shamir, L. M. Adleman頭文字をつなげている)

1976年にWhitfield.DiffieとMartin.Hellmanが公開鍵のアイデアを考え、上記3名がそのアイデアを元に公開鍵暗号方式 RSA を発表。

おわりに

いかがだったでしょうか。
今回のコラムでは暗号化通信の基礎となる共通鍵暗号方式と公開鍵暗号方式の概要をお伝えしてまいりました。
次回のコラムでは 共通鍵暗号方式からDES、公開鍵暗号方式からはRSAの仕組み をお伝えしますのでお楽しみに。

記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。