トピックハブ

ハードウェアセキュリティ

攻撃者がFPGAとそのビットストリームに対して何ができるか、現代のデバイスに組み込まれた防御、そして次世代を形作る研究テーマ(サイドチャネル、故障注入、PQC)を解説します。

更新 2026年11月13日 · ビットストリーム暗号化、セキュアブート、PUF、サイドチャネル解析、故障注入、耐量子暗号、耐タンパー

概要

FPGAには、ASICにはない性質が1つあります。設計がファイルであり、そのファイルはコピーも読み取りも改変もできるということです。そのため、FPGAのセキュリティはビットストリームの保護から始まり、鍵の保管やセキュアブートからダイへの物理攻撃まで、ASIC設計者が気にするすべてに広がっていきます。このハブは、どのデバイス機能を有効にするか、それが何を防ぎ、何を防がないかを判断しなければならないエンジニアのためのページです。ここではデバイスを攻撃対象として扱います。FPGAを使ってセキュリティ製品(暗号アクセラレータ、ネットワークフィルタ)を作る場合も、同じ考え方に反対側から触れることになります。

攻撃者の目的は3つでほとんどの場合を網羅できます。クローン: ビットストリームを別の個体にコピーして販売する。リバースエンジニアリング: ビットストリームから設計やその中の鍵を復元する。改ざん: 現場またはサプライチェーンでデバイスの動作を変える。

重要な考え方

ビットストリームの機密性と認証

2000年代半ば以降のすべての主要ファミリーは、バッテリーバックアップRAMまたはeFuseに置いた鍵を使い、AES暗号化されたビットストリームを復号できます。暗号化はクローンと手軽なリバースエンジニアリングを防ぎます。しかし、デバイスが認証も行わない限り、改変されたビットストリームの読み込みは防げません。認証(古い部品ではHMAC、現行品ではRSAまたはECDSA署名)こそが改ざんに対して重要な機能であり、より多く無効のまま放置されている機能でもあります。AMD UltraScale+では両者は別個のオプションであり、Microchip PolarFireではデバイスがすべてのビットストリームと毎回の起動で署名を検査します。2020年のStarbleed攻撃は、AMD 7 Seriesでは暗号化だけならコンフィギュレーションロジックを通じて破れることを示しました。教訓は一般化できます。認証を有効にし、製品が許す限りバッテリーRAMではなくeFuseに鍵を保管し、鍵書き込み装置もセキュリティ境界の一部として扱うことです。

boot ROM書き換え不可eFuse公開鍵ハッシュ第1段ローダ、署名済み暗号化済みbitstreamAES-GCM署名済みOS, firmware署名済み計測済み検証検証検証鍵の保管eFuse, BBRAM, PUFタンパー検知電圧、温度、クロックチェーンのどこかが破られると、攻撃者はその前段の鍵を使って未署名のコードを実行できる。
FPGA SoCのセキュアブートチェーン: 各段階が次の段階を検証してから制御を渡す

鍵: ヒューズ、バッテリー、PUF

鍵はどこかに置かなければなりません。eFuseは永続的で安価ですが、顕微鏡をもつ資金豊富な研究所なら読み取れます。バッテリーバックアップRAMはタンパー検知時に消去できますが、部品表にバッテリーが加わり、故障モードも増えます。物理複製困難関数(PUF)は、デバイスが起動するたびに製造ばらつき(SRAMの電源投入時の状態、リングオシレータの周波数)から鍵を導出するので、鍵はまったく保存されません。AMD Zynq UltraScale+とVersal、Microchip PolarFireにはPUFベースの鍵ラッピングが含まれています。PUFにはヘルパーデータと誤り訂正が必要で、その安全性はエントロピーの質に依存するため、チェック項目を埋めるためのものではなく、理解してから頼るべき機能です。

物理攻撃: サイドチャネルと故障

サイドチャネル解析は、デバイスが復号している間の消費電力や電磁放射から鍵を復元します。Kocherらによる古典的な差分電力解析はビットストリーム復号器にも適用でき、公開された研究では複数世代のFPGAのコンフィギュレーションエンジンからAES鍵が復元されています。ベンダーは鍵ローリング(ビットストリーム数キロバイトごとに鍵を変える)とマスキング実装で対応してきました。故障注入は、電圧やクロックのグリッチ、レーザー、電磁パルスによって命令をスキップさせたりビットを反転させたりして、署名検査を迂回します。防御には、冗長な検査、タイミングのランダム化、そしてほとんどのファミリーが公開しているオンチップの電圧・温度モニタがあります。ファブリック内に置く独自の暗号コアにも同じ配慮が必要です。FPGAならモニタを追加して自分のボードで攻撃を実行できるので、テストは容易です。

耐量子暗号とサプライチェーン

NISTは2024年に最初の耐量子暗号標準(ML-KEM、ML-DSA、SLH-DSA)を公開しました。格子ベース方式のFPGA実装は、数論変換がDSPスライスによく写像できるため、最初にベンチマークされたものの一つでした。ベンダーはPQC対応のブートを追加し始めており(本稿執筆時点でAMD Versal Gen 2はLMSベースの署名をサポート)、10年の稼働期間をもつ製品は今から計画しておくべきです。サプライチェーンのセキュリティはもう一つの活発な領域です。偽造品や再マーキング品、委託製造業者が読み込むビットストリーム、ベンダーIPを信頼するかどうかという問題があります。デバイス認証と個体ごとの鍵が一部に答えます。残りは調達の規律が答えます。

どこから始めるか

ビットストリームのセキュリティは、ビットストリームとは何か、どうやってデバイスに入るかを知っていることが前提なので、まず/learn/beginner/02-how-an-fpga-is-programmed/と/learn/beginner/10-from-rtl-to-board/を読んでください。次に、対象ベンダーのセキュリティユーザーガイドを最初から最後まで読んでください。デフォルト設定が安全な設定であることはめったにないからです。実践的な最初の演習は、開発ボードで暗号化と認証を有効にし、わざと署名を壊して、デバイスが起動を拒否することを確認することです。セキュリティエンジニアリングに関する上級トラックは準備中です。

ツールとベンダー

ベンダー ビットストリーム保護 鍵の保管 特筆すべき機能
AMD AES-256-GCM、RSA-4096およびECDSA認証 eFuse、BBRAM、PUF(Zynq UltraScale+、Versal) 鍵ローリング、タンパーモニタ、PMU/PLMでのセキュアブート、Versal Gen 2でのPQC
Altera AES-256、ECDSA認証 eFuse、BBRAM、PUF(Agilex) Stratix 10とAgilexではSecure Device Managerがすべてのコンフィギュレーションを処理
Microchip AES-256、署名付きビットストリームを常に検証 eFuse、PUF フラッシュベースで電源投入時に外部ビットストリーム不要、RambusからライセンスされたDPA対策、Design Security認証
Lattice AES-256、新しい部品ではECDSA OTP Mach-NXとMachXO3Dはプラットフォームのルートオブトラスト部品として販売
Efinix TitaniumではAES-256と認証 eFuse Titaniumは認証付きビットストリームを追加、Trionは暗号化のみ

オープンソースのツールでは主要ファミリー向けの暗号化ビットストリームを生成できないので、暗号化が必要な設計では最終ステップにベンダーツールが必要です。

よくある間違い

  • 暗号化は有効にするが認証は有効にしない。これでは改ざんが可能なままです。
  • 誰が鍵を見るかを管理せずに製造ラインで鍵を書き込み、全個体で単一の鍵を使い回す。
  • PUFやeFuseは読み取れないと仮定する。意欲のある研究所なら保存された秘密は何でも読めると仮定し、1個体の喪失が全体を破綻させないように設計してください。
  • ピンが実装されていないからJTAGは無効だと信じる。デバイス内で無効にするか、ベンダーの機構でロックしてください。
  • サイドチャネル対策なしで独自のAESをRTLで書き、ユーザーがアクセスできる電源レールの隣に置く。
  • ソフト側を忘れる。未署名のブートローダが読み込んだ完璧なビットストリームは、未署名です。

さらに深く

このトピックの最新ニュース

最近の論文

  • NonSense: On the (In)security of FPGA Anti-tamper Sensors

    M. A. Cetin, F. Khojasteh Dana, S. Khalaj Monfared et al. · arXiv cs.CR · ダイジェスト

    著者らは、FPGAがグリッチングなどの能動的な物理攻撃を検出するために使うオンチップセンサーは、信頼できる土台ではなくむしろ弱点だと論じています。最近の実験結果をもとに、現行のハードIPおよびソフトIPセンサーの検出経路と応答経路の両方が、パッケージを開けずに無効化できることを示します。脅威モデルにほとんど含まれない3つの効果を指摘しています。電源供給網が近くのセンサーを避けつつ故障を標的に誘導し得ること、温度が検出しきい値をずらすこと、経年劣化が校正をドリフトさせることです。本論文は新しい攻撃ではなく対策案を含むポジションペーパーなので、センサーベースのゼロ化に依存する人向けのチェックリストとして読んでください。

  • End-to-End NTT on FPGA for FHE Acceleration

    M. Allam, T. Spendlhofer, H. Sanz-González et al. · arXiv cs.CR · ダイジェスト

    数論変換(NTT)とその逆変換はFHEベースのニューラルネットワーク推論でCPU時間の約63%を占めるため、著者らは完全展開のディレイコミュテータ型ストリーミングNTTカーネルを構築し、AMD Alveo V80の3つのダイにまたがってフロアプランしました。400 MHzで65,536係数の多項式を5.12マイクロ秒ごとに変換し、著者らはこれをそのサイズでのFPGA最高スループットとしています。オフロード時には変換1回あたりCPUの最大22倍高速です。128ビットセキュリティのパラメータでLattigoライブラリに統合すると、鍵切り替えとブートストラッピングが1.8〜2.2倍、エンドツーエンドの推論が1.8〜2.1倍高速化します。カーネルの高速化に比べてエンドツーエンドの利得が控えめなことは、FHEのうちNTT以外の部分がいかに多いかを示しています。