鍵合意
共有秘密そのものを通信路に流さずに、二者が共同でその値を導き出すプロトコル。
鍵合意では、各当事者が自分の値を差し出し、相手はそれを自分の秘密と組み合わせて同じ結果にたどり着く。1976年に発表されたディフィー・ヘルマンが最初の公開例で、その原理は現在の楕円曲線版にも引き継がれている。ネットワークを流れるのは公開値だけで、共有秘密は盗聴者には見えない。
一方の当事者が鍵を選んで送る鍵転送とは異なる。鍵合意は受動的な盗聴者には強いが、双方と別々に交換を行える能動的な中間者には無力である。TLSなどが公開値に署名したり証明書を付けたりして、身元に結び付けるのはそのためだ。
共有秘密がそのまま最終的な鍵になることはまれで、通常はHKDFのような鍵導出関数に通して用途別の複数の鍵を作る。1本漏れても連鎖全体が崩れないようにするためで、地味だがよく省略される工程である。