当サイトにおける暗号に関するページでは、説明が足りなかったり、誤った記述をしていたりするところがあります。今後、少しずつ修正する予定です。
暗号理論の『暗号技術のすべて』が発売されています。初心者向けの暗号本です。これまで暗号本に何度か挑戦しつつも挫折してしまった方、学校の課題で悩んでいる方、資格試験にて暗号の問題が苦手な方などにお勧めです。
興味がある方は宣伝サイトを参照してください。Amazonでも発売中です。
共通鍵暗号系では送受信者は秘密鍵を共有している必要がある。アリスとボブが直接の知り合いなら秘密鍵を手渡しすればよいが、ネットワーク上での知り合ったならどうしたらよいだろうか。この問題を鍵配送問題という。
この鍵配送問題を解決する方法はいくつか存在する。
もっとも簡単な方法は「安全な方法で鍵を前もって渡しておく」というものである。当たり前だがこれには限界がある。隣のデスクにいる人に安全な方法で渡すことはできるが、インターネットのように遠隔地にいる人に安全に渡すことは困難である。郵送するという方法もあるが、本当に郵送途中で改竄や盗まれていないとも言い切れない。
また、もし鍵の事前共有が可能だとしても、人数が多くなると通信のための鍵が膨大な数になってしまう。n人いたとして、彼らが一人一人自分以外のn-1人と通信する可能性があるとすると、通信用の鍵は一人当たりn-1個必要となる。よって、合計で次のようになる。
例:1,000人いたら、
鍵配送センター(KDC:Key Distribution Center)といった鍵を管理できる存在を活用する手段もある。
欠点は次が考えられる。
この場合は、まず受信者のボブが公開鍵を公開する。
また、送信者のアリスは共通鍵をランダムに選ぶ。次にアリスはボブの公開鍵を使って共通鍵を暗号化し、暗号文をボブに送る。
ボブは受け取った暗号文を復号し、共通鍵を得る。
これで2人は第三者に内容がばれないように、共通鍵を共有することができる。
DH鍵配送(DH鍵共有プロトコル)を使うと、共通鍵を暗号化して送るという予備通信をせずに、安全でないネットワークだけを用いて共通鍵を共有することができる。ただし、アリスとボブの双方が公開鍵を公開する必要がある。
セッション鍵の共有のために使われる暗号プロトコルである。
そのためには次のような条件が求められる。