zkat’s diary

技術ブログ

KDF(Key Derivation Function)とCSPRNG(Cryptographically Secure Pseudo Random Number Generator)の使分けについて

KDFもCSPRNGも共通鍵を生成するために使用できる仕組みです。しかし、どのように使い分けるべきかよく分かっていませんでした。 最近読んだ本、「現代暗号技術入門」にて使い分けに関する記載がありましたので、引用したいと思います。

www.amazon.co.jp

KDFは必ずしも一様の秘密を必要としないので(エントロピーが十分でありさえすれば)、鍵交換から秘密を導出するときに都合がよい。

一方で、CSPRNGの入力には一様にランダムな入力が必要であるとされていました。

CSPRNGやKDFの入力とする値(CSPRNGの場合は、シードとして)にどのような特性があるかに応じて(一様であるか否かに応じて)、使うべきアルゴリズムを決めるのがよさそうです。

この件以外についても、この本は暗号技術を応用するに当たってとても有益な情報がたくさん記載されているのでお勧めです。