← 一覧へ
セキュリティ・個人情報
#부채널 공격#전력분석#타이밍 공격#Spectre/Meltdown#마스킹
最終更新 · 2026-10-15

サイドチャネル攻撃(Side-Channel Attack)

1. 概要

定義: サイドチャネル攻撃(Side-Channel Attack)とは、暗号アルゴリズムやシステムの論理的・数学的安全性を直接破る代わりに、その演算が物理的に実行される過程で意図せず漏れ出す副次的情報(演算時間、消費電力、電磁波、キャッシュ状態、音など)を測定・分析して秘密値(鍵・平文)を復元する攻撃手法である。すなわち「錠を壊す」のではなく「錠が回るときに鳴る音と手の震えを盗み聞く」攻撃である。

古典的暗号解読はアルゴリズムを抽象的な数学関数とみなし、平文・暗号文・鍵の間の数学的関係のみを攻撃対象とした。しかし現実の暗号は必ず物理的装置(CPU、スマートカード、HSM、IoTチップ)の上で電気信号として実装され、この実装過程は完全な抽象化ではない。どのビットを処理するかによってトランジスタのスイッチング量が増え、分岐条件によって実行時間が変わり、メモリアクセスパターンによってキャッシュのヒット/ミスが分かれる。このように「演算の内容」と「物理的観測量」の間に相関が存在する限り、数学的に完全なアルゴリズム(AES・RSA・ECC)であってもその実装(implementation)は秘密を漏らしうる。サイドチャネル攻撃はまさにこの抽象化と物理的実体の間の隙間を突く。

情報管理技術士の観点から、サイドチャネルは「暗号理論」ではなく「実装工学と物理セキュリティ、調達・認証をつなぐ融合テーマ」として扱うべきである。安全なアルゴリズム(AES-256、RSA-3072)を選んだという事実だけでは秘密は保護されず、その暗号がどの装置の上でどのコードで動き、攻撃者がどれだけ近づけ、どの認証でその安全性が検証されたかまで総合して初めて実質的な安全性が決まる。本答案は攻撃原理と脅威モデル、種別ごとの技法、実際の事例、標準・認証、そして技術士観点の多層防御戦略の順で展開する。

この脅威が重要になった背景には、暗号が攻撃者の物理的な手が届く場所へ広く拡散した現実がある。交通カード・クレジットカードのスマートカードチップ、自動車の電子制御装置(ECU)、スマートフォンのセキュアチップ(SE・TEE)、IoTセンサ、USBセキュリティトークンはいずれも、利用者であり潜在的攻撃者でもある人の手に握られる。攻撃者が装置を直接所有し、望むだけ電力波形を測定したりクロックを撹乱できるようになったことで、かつて理論的好奇心であったサイドチャネル攻撃は、決済・認証・知的財産保護を脅かす現実的な攻撃ベクトルとなった。さらに2018年のSpectre・Meltdown事態は、共有クラウドの仮想マシン間、さらにはWebブラウザのJavaScriptでもサイドチャネル攻撃が成立することを示し、物理的アクセスなしに遠隔でも可能な脅威であることを刻み込んだ。

サイドチャネル攻撃が他の攻撃と区別される特徴は三つである。第一に、実装依存性である。アルゴリズム仕様ではなく、それを実装したコード・回路・マイクロアーキテクチャが成否を左右するため、同じAESでも実装次第で安全にも脆弱にもなる。第二に、非侵襲性(non-invasive)と低コストである。多くのサイドチャネル攻撃はチップを物理的に分解せず外部から電力・電磁波のみを測定するため痕跡を残さず、数百ドルのオシロスコープでも実行できる。第三に、統計的増幅である。一回の測定に含まれる信号対雑音比(SNR)は低いが、数千~数百万回の測定を統計的に蓄積すると微細な相関が秘密ビットへ収束する。この三つの特徴ゆえに、サイドチャネル防御は「アルゴリズムを変える」問題ではなく「実装を物理的に平坦化する」工学的課題となる。

ここで重要な分類軸が受動(passive)と能動(active)の区別である。受動攻撃は装置の正常動作を観測するだけのタイミング・電力・電磁波・キャッシュ分析であり、能動攻撃は電圧・クロック・レーザで装置を撹乱して誤動作を誘発する故障注入(fault injection)である。前者は「秘密を盗み聞く」ものであり後者は「秘密を吐き出させるために揺さぶる」もので、防御設計もそれぞれ漏洩最小化と誤り検出・復元に分かれる。もう一つの軸は攻撃者が自らの入力を選べるか(選択平文)であり、これが可能ならDPA・CPAのような統計攻撃の効率が大きく上がる。したがって脅威モデリングの段階で、攻撃者が入力を制御できるか、反復測定が可能かから仮定すべきである。

2. 攻撃原理と脅威モデル

サイドチャネル攻撃の出発点は「秘密値と相関する物理量が観測可能である」という漏洩(leakage)仮説である。例えばCMOS回路はビットが0→1または1→0へ変わるとき(スイッチング)にのみ有意な動的電力を消費するため、ある瞬間の消費電力はその瞬間に処理されるデータのハミング重み(Hamming weight)やハミング距離(Hamming distance)に比例する傾向がある。攻撃者はこの物理モデルを逆用し、観測した電力波形と「鍵推測値に応じた予測消費電力」の相関を計算し、相関が最も高い推測を正しい鍵と判定する。

flowchart LR
    SEC["秘密値<br/>(暗号鍵)"] --> OP["物理的暗号演算<br/>(CMOSスイッチング)"]
    DATA["入力 平文/暗号文"] --> OP
    OP --> LEAK["副次的漏洩チャネル"]
    LEAK --> T["演算時間(Timing)"]
    LEAK --> P["消費電力(Power)"]
    LEAK --> E["電磁波(EM)"]
    LEAK --> C["キャッシュ/状態(Cache)"]
    LEAK --> A["音響/熱(Acoustic)"]
    T --> MEAS["測定・収集<br/>(オシロスコープ/タイマ)"]
    P --> MEAS
    E --> MEAS
    C --> MEAS
    A --> MEAS
    MEAS --> STAT["統計的分析<br/>(相関・差分)"]
    STAT --> KEY["鍵復元"]

上の構造図の核心は、秘密値が直接露出するのではなく、物理的演算を介して複数のサイドチャネルへ分散して漏洩するという点である。攻撃者はこのうち測定が容易なチャネルを選び、統計分析で秘密を再構成する。防御の観点では、漏洩を完全に0にすることは物理的に不可能であるため、漏洩をデータと無関係に(平坦に)するか、雑音に埋もれさせて攻撃者の測定回数を非現実的に増やすことが現実的な目標となる。

漏洩を定量化する核心的な道具が漏洩モデル(leakage model)である。最も広く使われるハミング重み(HW)モデルは、ある時点でレジスタに積まれた値の1ビット数に電力が比例すると仮定し、ハミング距離(HD)モデルは、前の値から新しい値へ変わるとき反転したビット数に比例するとみなす。CMOSが状態遷移時にのみ動的電力を使う特性上、実際のハードウェアではHDモデルがよく合う場合が多い。攻撃者は攻略する中間値(例: AES初回ラウンドのS-box出力 = SubBytes(平文 ⊕ 鍵バイト))を選び、鍵仮説256通りそれぞれについてこの中間値を計算したうえで漏洩モデルにより予測電力を作り、実測と相関をとる。このとき攻略地点が「少数の鍵ビットのみに依存する非線形な中間値」であってこそ分割統治と相関の鮮明さが同時に確保されるため、どの中間値を選ぶかが攻撃効率を左右する。

脅威モデルは攻撃者のアクセス能力に応じて階層化される。物理的に装置を所有する攻撃者は、電力ピンに抵抗を付けて波形を直接測定したり(侵襲度は低い)、クロック・電圧を撹乱して演算を故意に誤動作させる故障注入(fault injection)まで実行できる。一方、遠隔攻撃者はネットワーク応答時間や共有ハードウェア(クラウドの同一物理CPU、同一LLCキャッシュ)を通じて間接的にのみサイドチャネルへアクセスする。次のシーケンスは電力分析(DPA)の典型的な手順を示す。

sequenceDiagram
    participant ATK as 攻撃者
    participant DEV as 暗号装置
    participant OSC as オシロスコープ
    participant PC as 分析システム
    loop 数千~数百万回反復
        ATK->>DEV: 既知の平文を入力
        DEV->>DEV: 秘密鍵で暗号演算を実行
        DEV-->>OSC: 演算中の電力波形が漏洩
        OSC-->>PC: 波形サンプルを保存
    end
    PC->>PC: "鍵バイトごとの仮説設定(0-255)"
    PC->>PC: "仮説別の予測電力と測定値を相関分析"
    PC-->>ATK: "相関最大の仮説 = 正しい鍵バイト"

この手順で注目すべき点は、攻撃が鍵全体を一度に当てるのではなく、鍵を小さな単位(バイト)に分けて分割統治(divide-and-conquer)するという点である。AES-128の鍵は2^128で総当たりが不可能だが、DPAは初回ラウンドの16個の鍵バイトをそれぞれ2^8=256通りだけ検証して独立に復元するため、全体の探索空間が16×256=4,096回へ激減する。このようにサイドチャネル攻撃は、暗号の「分割可能な中間値(intermediate value)」を攻略して指数的困難を線形へ落とすことが本質である。

3. 攻撃種別

サイドチャネルは観測する物理量に応じて複数の種別に分かれ、各種別は要求されるアクセス水準と対応策が異なるため区別が重要である。

A. タイミング攻撃(Timing Attack). 演算時間が秘密値に依存するとき成立する。最も典型的な漏洩源は秘密データに依存する条件分岐と秘密インデックスへのメモリアクセスである。RSAの平方-乗算(square-and-multiply)冪乗は指数ビットが1のときのみ追加乗算を行うため全体の復号時間が指数のハミング重みに比例し、メモリ比較(memcmp)が最初の不一致バイトで早期復帰すると、MAC・トークン・パスワード検証時間が「先頭から何バイトまで一致したか」に線形比例する。攻撃者は入力を変えながら応答時間を測定し、1バイトずつ正答を絞り込む。

1996年にKocherがRSA・Diffie-Hellman・DSSに対してタイミング攻撃を初めて定式化し、2003年にBoneh・Brumleyはネットワーク越しにOpenSSLのRSA復号時間を数百万回測定して遠隔タイミング攻撃が実際に可能であることを実証し、「内部網のみ安全」という仮定を崩した。防御の核心は定数時間(constant-time)実装——秘密値に応じて分岐・メモリアクセス・演算回数が変わらないようコードを書くことであり、比較は最後まで実行して結果をORで累積し(定数時間比較)、条件選択は分岐ではなくビットマスク演算で置き換える。RSAでは入力を乱数で覆ってから復号するブラインディング(blinding)が併用される。

B. 電力分析(Power Analysis). 装置が演算中に消費する電力波形を測定する。単純電力分析(SPA)は一つ二つの波形だけで演算パターンそのもの(例: RSA冪乗で平方のみの区間と平方-乗算が併存する区間)を目視で識別して鍵ビットを読む。これに対し差分電力分析(DPA)と相関電力分析(CPA)は、データ依存漏洩が雑音に埋もれSPAでは見えないとき、数千~数十万個の波形を統計的に蓄積して微細な相関を引き上げる。

CPAはハミング重み/距離モデルで「鍵仮説別の予測消費電力」を作り、これを実測電力とピアソン相関係数で比較して、相関が最も高い仮説を正しい鍵バイトと判定する最も強力な部類に属する。攻撃対象は主にスマートカード・セキュリティトークン・IoTチップのように攻撃者が物理的に所有する低価格装置である。防御はマスキング(masking、秘密を乱数shareへ分割し中間値が秘密と無相関になるようにする)とハイディング(hiding、シャッフル・乱数遅延挿入・デュアルレールロジックで電力消費を平坦化する)に分かれ、測定回数を非現実的な水準へ増やして攻撃コストを上げることが目標である。

C. 電磁波分析(EM Analysis). 回路に電流が流れるとき放射される電磁波を近接プローブで捉える。電力分析と数学的原理は同じだが、チップの特定領域(暗号コア)のみ局所的に狙えるため空間分解能が高く、電力測定用の抵抗を挿入する必要なく非接触で実行可能である点が攻撃者に有利である。さらにパッケージを開けなくても測定される場合があり検出が難しい。

この部類の古典はTEMPESTで、ディスプレイ・ケーブル・キーボードから漏れる電磁波を遠距離から受信して画面内容やキー入力を再構成する国家情報次元の脅威を扱う。防御には電磁波遮蔽(シールド)、接地・フィルタリング、そして漏洩を減らす回路設計が用いられ、軍・政府施設はTEMPEST認証機器を使用する。

D. マイクロアーキテクチャ・キャッシュ攻撃. 物理的計測なしに共有ハードウェア資源の状態変化をサイドチャネルとして利用する。Flush+Reloadは共有キャッシュラインを空にした後(clflush)、被害者実行後にそのラインの再アクセス時間を測って「被害者がそのアドレスへアクセスしたか」を判別し、Prime+Probeはキャッシュを攻撃者データで満たした後、被害者実行後にどのキャッシュセットが追い出されたかでアクセスパターンを推論する。両技法とも暗号テーブル(S-box)参照インデックスが鍵に依存するAES実装を強く脅かす。

2018年に公開されたSpectre・Meltdownは、CPUの投機的実行(speculative execution)がアクセス権限のないメモリを一時的に読み、その値に応じてキャッシュ状態を変え、その後キャッシュタイミングのサイドチャネルでその値を漏洩させる複合攻撃で、事実上すべての現代CPUに影響を与えた。この種別は物理的アクセスを全く必要とせず、同一物理サーバを共有するクラウドテナント間や、さらにはブラウザのJavaScriptサンドボックス内でも成立する点で波及が特に大きい。

このほか故障注入(Fault Injection)は観測ではなく能動的撹乱である。電圧グリッチ・クロックグリッチ・レーザ・電磁パルスで演算を故意に誤らせた後、正常結果と誤り結果の差から鍵を逆算する(差分故障解析、DFA)。RSA-CRTは署名中の一度の誤りだけでモジュラスが素因数分解される致命的事例で、冗長演算・結果検証で防御する。音響(acoustic)分析はCPU電源部のコイルから出る超高周波の振動音で異なるRSA鍵を区別した2014年の研究(Genkinら)が代表的であり、サイドチャネルが電力・電磁波を超えて音・熱・光まで広範であることを示している。

4. 比較および実際の事例

種別ごとの特性を比較すると、攻撃者が必要とする資源と防御の優先順位が明確になる。下の表は代表的なサイドチャネル種別を測定対象・アクセス水準・代表的防御で整理したものである。

種別 観測物理量 アクセス水準 代表事例 核心防御
タイミング 実行/応答時間 遠隔可能 OpenSSL RSA遠隔攻撃(2003) 定数時間実装
電力(SPA/DPA/CPA) 消費電力 物理所有 スマートカードAES鍵復元 マスキング・ハイディング
電磁波 放射電磁波 近接非接触 TEMPEST画面再構成 遮蔽・シールド
キャッシュ/マイクロアーキ キャッシュヒット時間 共有HW(遠隔) Spectre・Meltdown(2018) 隔離・投機実行緩和
故障注入 撹乱後の誤り値 物理所有 RSA-CRT DFA素因数分解 演算検証・冗長実行

表から浮かび上がる核心的含意は、アクセス水準が低くなるほど(遠隔化するほど)防御が難しくなるという点である。物理所有が必要な電力・故障攻撃はハードウェアセキュリティモジュール(HSM)の耐タンパ設計と改竄検知センサで相当部分抑制されるが、キャッシュ・タイミング攻撃はネットワークや共有クラウドだけで成立するため物理防御が通じず、ソフトウェア・マイクロアーキテクチャ水準の対応が必須となる。すなわち「物理アクセス遮断」という伝統的統制が無力化される地点でサイドチャネルの危険度が急上昇する。

具体的な事例として第一に、スマートカード決済・交通カードはDPAの古典的標的である。2000年代初頭、研究者らは数千回の電力測定だけで保護されていないDES・AESスマートカードの鍵を分単位で抽出し、これはEMV決済チップがDPA耐性認証(コモンクライテリアCC EAL)とマスキングを義務化する直接の契機となった。第二に、クラウド共用CPUでは2018年のMeltdown/Spectreで、ある仮想マシンが同一物理サーバの他テナントのメモリを読めることが明らかになり、AWS・Azure・GCPが緊急マイクロコード・カーネルパッチ(KPTI)を配布し、一部ワークロードは数%~30%の性能低下を受け入れた。第三に、TLS実装では2013年のLucky Thirteen攻撃がCBCモード復号のパディング検証時間差(タイミングサイドチャネル)で平文を復元し、定数時間パディング検証とAEADモード(GCM)への移行を加速した。

第四に、ハードウェアウォレット・IoTデバイスも故障注入の標的である。2020年代に入り、研究者が電圧グリッチだけで一部の暗号通貨ハードウェアウォレットのPIN検証を回避したり保護メモリを読み出した事例が公開され、低価格IoT・ウェアラブルセキュリティチップの故障注入耐性が実務課題として浮上した。これらの事例が共通して示すのは、暗号アルゴリズム自体は全く破られていないのに実装と物理環境の隙間だけで秘密が漏洩したという点であり、したがって「FIPS・CC認証を受けたアルゴリズムを使う」ことと「その実装がサイドチャネルに安全である」ことは全く異なる保証であると明確に区別すべきである。

5. 深化 — 最新動向と標準化

A. 拡大する攻撃面

近年のサイドチャネル脅威は二方向へ拡大している。第一はマイクロアーキテクチャサイドチャネルの深化である。Spectre以降もMDS(Microarchitectural Data Sampling)、LVI(Load Value Injection)、2022年のHertzbleedのように、CPUの動的周波数スケーリング(DVFS)がデータに依存して電力・周波数を変える性質を遠隔タイミングで観測する攻撃が次々と登場した。これは「定数時間コードを使ってもハードウェアが電力をデータ依存的に調整すればタイミングが漏れ出す」という、ソフトウェア単独防御の限界を露わにした。第二は耐量子暗号(PQC)のサイドチャネル安全性である。NISTが2024年に標準化したML-KEM(Kyber)・ML-DSA(Dilithium)などの格子ベースアルゴリズムは多項式演算・サンプリング過程で新たなサイドチャネル面を持ち、標準移行と同時に定数時間・マスキング実装が核心課題として浮上した。

B. 標準・認証と産業適用

標準・認証体系もサイドチャネルを正面から扱う。米国のFIPS 140-3(ISO/IEC 19790ベース)とコモンクライテリア(CC、ISO/IEC 15408)は高等級暗号モジュールに対し非侵襲攻撃(電力・電磁波・タイミング)耐性試験を要求し、ISO/IEC 17825はその試験方法論(テストベクトル漏洩評価、TVLA)を規定する。TVLAは固定入力群と任意入力群の電力分布差をt検定で比較して「統計的に区別できる漏洩があるか」を定量判定する産業標準の評価法で、基準値|t|>4.5を超えると漏洩リスクとみなす。すなわちサイドチャネル安全性は今や研究テーマを超え、調達・認証の必須通過要件となった。

産業別適用でもサイドチャネルは核心的な論点である。決済分野のEMVチップと交通カードはCCベースのDPA耐性認証を事実上義務化し、自動車分野はISO 21434(サイバーセキュリティ)とISO 26262(機能安全)がECU・セキュリティゲートウェイの故障注入・電力分析耐性を要求する。通信分野のUSIM/eSIM、電子パスポート・住民登録スマートカードもすべて高等級サイドチャネル評価を経る。このように「物理的に攻撃者の手に入る暗号装置」は分野を問わずサイドチャネル安全性検証が量産前の必須関門となり、国内でも国家情報院の暗号モジュール検証(KCMVP)が類似の要件を適用する。

6. 考慮事項および示唆点

技術士の観点から、サイドチャネル対応は単一技法ではなく設計・実装・検証・調達を貫く多層戦略として臨むべきである。下の対応分類は漏洩をどの層で抑制するかを基準に整理したもので、実際の設計では脅威モデルに合わせて複数の層を重ねる。

flowchart TD
    ROOT["サイドチャネル対応戦略"] --> SW["ソフトウェア層"]
    ROOT --> HW["ハードウェア層"]
    ROOT --> VER["検証・運用層"]
    SW --> SW1["定数時間実装<br/>(分岐・メモリ非依存)"]
    SW --> SW2["マスキング<br/>(乱数share分割)"]
    SW --> SW3["ブラインディング<br/>(入力乱数化)"]
    HW --> HW1["ハイディング<br/>(シャッフル・遅延・デュアルレール)"]
    HW --> HW2["遮蔽・タンパ検知"]
    HW --> HW3["故障検出<br/>(冗長演算・検証)"]
    VER --> VER1["TVLA漏洩評価"]
    VER --> VER2["FIPS 140-3 / CC認証"]
    VER --> VER3["投機実行緩和・隔離"]

上の分類が示すように、ソフトウェア対策だけでは電力・電磁波・故障攻撃を防げず、ハードウェア対策だけでは遠隔タイミング・キャッシュ攻撃を防げない。したがって次の項目を組み合わせて深層防御を構成すべきである。

  • 適用戦略 — 深層防御の組合せ. いかなる単一対策も完全ではないため、定数時間実装(タイミング)、マスキング(電力・電磁波)、ハイディング・雑音挿入(測定困難度の増加)、ハードウェアシールド・タンパ検知(物理)、投機実行緩和・サイト隔離(マイクロアーキテクチャ)を脅威モデルに合わせて重ねる。資産の価値と攻撃者の想定アクセス水準(遠隔/近接/物理所有)をまず分類して投資優先順位を定めることが出発点である。
  • トレードオフ — 性能・コスト対安全性. マスキングは演算量を次数(order)に応じて数倍に増やし、定数時間実装は早期終了最適化を放棄し、投機実行緩和パッチはスループットを下げる。低電力IoT・リアルタイムシステムではこのコストが致命的になりうるため、全数防御ではなく保護対象(鍵取扱い区間)に限定した選択的強化が現実的である。
  • 検証・調達の観点. 自前実装の暗号はサイドチャネル脆弱性を内在しやすいため、検証済みの定数時間ライブラリ(例: libsodium、BoringSSLの定数時間経路)とCC・FIPS 140-3認証ハードウェア(HSM・SE)を優先採用する。導入時にはTVLAなど漏洩評価結果と認証等級(EAL)を調達要件に明記し、サプライチェーン次元で検証を強制すべきである。
  • 展望および連携技術. クラウド・マルチテナンシーの拡散によりマイクロアーキテクチャサイドチャネルはゼロトラスト・テナント隔離設計と直結し、PQC移行期には新規アルゴリズムのサイドチャネル耐性確保が暗号アジリティ(crypto-agility)の一部となる。長期的にはハードウェア設計段階で漏洩を抑制するleakage-resilient設計と、電力消費をデータと無関係にする回路(デュアルレールロジック)の研究が根本的解決策として注目される。

参考資料


一言まとめ: サイドチャネル攻撃は暗号の数学ではなくその物理的実装から漏れ出す時間・電力・電磁波・キャッシュ状態を統計的に分析して秘密鍵を復元する攻撃であり、定数時間実装・マスキング・ハードウェア耐タンパ防御・マイクロアーキテクチャ緩和を脅威モデルに合わせて重ね、FIPS 140-3・CC認証で検証すべきである。