鍵交換とは、暗号通信を行う当事者間で共通鍵を取り決めることです。
共通鍵をどのように配送するか(鍵の配送問題)の対応策のことだったね。
公開鍵暗号方式ができてから、共通鍵を公開鍵で暗号化することが一般的になりつつありますが、他にも鍵交換の方法があります。
ここでは、DH法とKDCについてご紹介します。
DH法
DH法とは?
ディフィーさんとヘルマンさんによって確立された鍵交換アルゴリズムです。
DH法とは、公開鍵暗号方式の仕組みを利用して共通鍵を取り決める鍵交換アルゴリズムです。
現在では、TLSで使われています。
DH法は、事前の鍵交換がなくても、盗聴の可能性のある通信路を使って、暗号鍵(共通鍵)の
共有を可能にする公開鍵暗号方式の暗号プロトコルです。
ハイブリット暗号方式では、受信者が公開鍵を持っていることが前提になっていましたが、
DH法では、受信者が公開鍵を持っていなくても鍵交換が可能です。
DH法の流れ
- 事前の取り決めとして、「ある大きい素数P」と「Pに応じてある条件で選定された整数N」
- 送信者・受信者がそれぞれ適当な数字を思い浮かべる(秘密情報)
- 一定の条件に従った数値を互いに作り、送り合う。
- 3で共有した数値と2の数値を計算することで、特定の値が算出できる
- 4の特定の値と2の数値を使って計算し、共通鍵を作成する
3で作成した特定の値は、第三者に盗聴されても、1でそれぞれが秘密にしている最初の値がなければ、共通鍵の情報を推測することは極めて困難なため、問題ないのです。
KDC(Key Distribution Center)鍵配布センター
KDCは共通鍵の配布する役割をもつサーバのことです。
KDCを利用することで、公開鍵暗号方式を利用せずに共通鍵の交換を行うことができます。
KDCの考え方は、広く使われています。
KDCの流れ
- ユーザーは、KDCとの間で使うための共通鍵を、予めKDCに登録する
- 送信者が受信者と暗号通信したい場合、二人の間に共通鍵がない。そのため、送信者は受信者との間の共通鍵をKDCからもらいたい旨を、KDCに連絡する
- KDCはオーダーをもらうと、送信者と受信者との通信に使える共通鍵を生成する。
- 3の共通鍵を、送信者とKDC・受信者とKDCとの共通鍵で暗号化し、両方とも送信者に渡す
- 送信者はKDCとの共通鍵で、自分と受信者の共通鍵を復号する
- 送信者は受信者に対し、受信者とKDCとの共通鍵を渡す
- 受信者は復号することで、送信者と受信者との共通鍵を復号する
KDCの問題点
KDCは送信者・受信者の共通鍵を知ることができるため、KDCが鍵を悪用して復号してしまうと、成り立たない暗号通信です。
そのため、KDCは絶対的な信頼をおけないといけません。