ハードウェアセキュリティの最新動向

間接分岐の予測を悪用するSpectreの変種(分岐ターゲットインジェクション)への対策である、retpolineとIBRSの説明の組み合わせとして、正しいものはどれか。

  1. AretpolineはCPUの回路を作り直して予測器を取り除く対策で、IBRSはコンパイラが間接分岐の命令を別の命令の並びに書き換える対策である
  2. Bretpolineは間接分岐を予測器に頼らない命令の並びに置き換えるソフトウェアの対策で、IBRSは間接分岐の予測を制限するCPUの機能である
  3. CretpolineもIBRSも、CPUの投機的実行の機能そのものを止める対策で、どちらを使っても投機的実行による性能の向上はなくなる
答えと解説を見る

正解:B. retpolineは間接分岐を予測器に頼らない命令の並びに置き換えるソフトウェアの対策で、IBRSは間接分岐の予測を制限するCPUの機能である

retpolineは、コンパイラが間接分岐の命令をcallとretを組み合わせた命令の並びに置き換え、悪用されうる間接分岐の予測器ではなく戻り先の予測を使わせて、投機的な実行を無害なループの中で空回りさせます。IBRSは、マイクロコードの更新などで加わったCPUの制御の機能で、例えばカーネルの中の間接分岐の予測が、ユーザのプログラムが学習させた内容に従わないように制限します。古いCPUではIBRSを切り替えるたびに大きな時間がかかったのでretpolineが広く使われ、新しいCPUでは常に有効にしておける改良版(eIBRS)が用意されました。ただし、CPUによっては戻り先の予測も別の予測器に頼る場合があり、2022年に公表されたRetbleedなどで、retpolineだけでは不十分な場合が示されています。

  • A. 逆です。retpolineはコンパイラによるソフトウェアの対策で、IBRSはCPUの機能です。
  • B. 正しい。ソフトウェアで予測を避ける方法と、CPUの機能で予測を制限する方法です。
  • C. どちらも投機的実行そのものはなくさず、悪用される予測を避けたり制限したりします。
この分野を解く 分野ページへ

ハードウェアセキュリティの最新動向の参考書を探す PR

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

ハードウェアセキュリティの最新動向のほかの問題

  1. ある処理は、投機的実行への対策を入れる前に10秒かかり、その間にシステムコールを500万回呼んでいた。対策を入れると、システムコール1回あたりの処理時間が0.4 µsから0.6 µsに増え、それ以外の部分の時間は変わらないとする。処理全体の時間の増加の割合はどれか。
  2. 格子に基づく耐量子計算機暗号では、次数 n = 256 の多項式の掛け算を何度も行う。係数どうしをすべて掛け合わせる素朴な方法では約 n² 回、数論変換(NTT)を使う方法では約 n log₂ n 回の掛け算が必要とすると、NTTを使うことで掛け算の回数がおよそ何分の1になるかとして、最も近いものはどれか。
  3. ML-KEM-768の公開鍵は1,184バイト、暗号文は1,088バイトで、楕円曲線の鍵交換X25519の公開値は32バイトである。ML-KEM-768の公開鍵の大きさが、X25519の公開値の何倍かとして、正しいものはどれか。
  4. ML-KEMのカプセル化の解除では、受け取った暗号文を秘密鍵で復号した結果から暗号文をもう一度作り、受け取った暗号文と一致するかを比べる。この部分の実装の注意として、正しいものはどれか。
  5. 10年以上使われる組込み機器のSoCを設計する。将来の暗号の移行(耐量子計算機暗号への移行など)に備えるハードウェアとファームウェアの設計として、適切なものはどれか。