暗号技術の基礎と応用

TLS 1.3などのプロトコルで、ECDHEの鍵交換で得た共有の秘密をそのまま暗号の鍵には使わず、HKDFのような鍵導出関数(KDF)を通して鍵を作る理由として、適切なものはどれか。

  1. A鍵導出関数を通すと、量子コンピュータに対しても、共有の秘密が安全になるから
  2. B鍵交換で得た値は短すぎるので、わざと計算に時間をかけて、総当たりを遅くするため
  3. C鍵交換で得た値は一様な乱数とは限らないので、偏りのない鍵に変換し、用途ごとに別の鍵を取り出すため
答えと解説を見る

正解:C. 鍵交換で得た値は一様な乱数とは限らないので、偏りのない鍵に変換し、用途ごとに別の鍵を取り出すため

鍵交換で得られる共有の秘密は、楕円曲線上の点の座標などで、すべてのビットが一様にランダムとは限りません。HKDFは、HMACを使って、まず共有の秘密から偏りのない擬似乱数の鍵を取り出し(Extract)、次にそれを「クライアントからサーバへの暗号化用」などのラベルとともに展開して(Expand)、必要な数と長さの鍵を作ります。用途ごとに独立した鍵を使えば、1つの鍵の問題がほかの用途に広がりにくくなります。パスワードから鍵を作るPBKDF2やArgon2はわざと計算を重くしますが、HKDFはエントロピーの十分大きな入力を前提とした、軽い処理です。

  • A. 鍵導出関数は、鍵交換そのものの量子コンピュータに対する強さを変えません。耐量子化には、鍵交換の方式を替える必要があります。
  • B. わざと計算を重くするのは、パスワードから鍵を作るPBKDF2やArgon2の考え方です。鍵交換の出力は、十分な長さとエントロピーをもっています。
  • C. 正しい。偏りを取り除くExtractと、用途ごとの鍵を作るExpandの2段階で鍵を作ります。
この分野を解く 分野ページへ

暗号技術の基礎と応用の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

暗号技術の基礎と応用のほかの問題

  1. RSA暗号の仕組みを小さな数で確かめる。素数 p = 5、q = 11 から n = pq を作り、公開指数を e = 3 とする。φ(n) = (p − 1)(q − 1) として、e × d ≡ 1 (mod φ(n)) を満たす秘密指数 d(0 < d < φ(n))はどれか。
  2. RSA暗号で、公開鍵を n = 55、e = 3 とする。平文 m = 7 を c = m^e mod n で暗号化したときの暗号文 c はどれか。
  3. 教科書どおりのRSA暗号(平文 m をそのまま c = m^e mod n とする方式)を、パディングを付けずに実際の通信に使うことの問題点として、正しいものはどれか。
  4. ディフィー・ヘルマン鍵交換では、素数 p と生成元 g を公開し、AさんとBさんがそれぞれ秘密の値 a、b を選んで、g^a mod p と g^b mod p を互いに送る。盗聴者がこれらの公開された値をすべて見ても、共有の秘密 g^(ab) mod p を求められないと考えられている理由として、正しいものはどれか。
  5. ディフィー・ヘルマン鍵交換を小さな数で確かめる。p = 23、g = 5 とし、Aさんは秘密の値 a = 6、Bさんは秘密の値 b = 15 を選ぶ。Aさんは A = g^a mod p を、Bさんは B = g^b mod p を送り合う。2人が得る共有の秘密はどれか。

この分野の比較