✨ サイドチャネル攻撃とは?
サイドチャネル攻撃(Side-Channel Attack)とは、暗号アルゴリズム自体(数学)を直接解読しようとするのではなく、暗号処理を行うコンピュータやデバイスの「物理的な振る舞い」(処理時間・消費電力・電磁波・音など)を観察することで秘密鍵などの情報を盗み出す攻撃の総称です。
🔑 核心となる考え方
「AES暗号を数学的に解読するのは不可能に近い。でも、AESを実行しているCPUの消費電力パターンを測定すれば鍵の情報が漏れるかもしれない」——これがサイドチャネル攻撃の発想です。

えっ、消費電力を見るだけで鍵がわかるの!?

実際に可能なんだよ!CPUが「1」を処理するときと「0」を処理するときで消費電力がわずかに違う。その差を統計的に分析すると、秘密鍵のビット列が推測できてしまうにゃ😱 これを「差分電力解析(DPA)」と言うよ🐾
🔸 主なサイドチャネル攻撃の種類
⏱️ タイミング攻撃(Timing Attack)
処理にかかる時間の差を測定して秘密情報を推測。
例:RSA処理やパスワード比較の処理時間が鍵の内容によって変わる場合、それを測定することで鍵が推測できる。
対策:定時間実装(Constant-Time Implementation)——すべての入力に対して同じ時間がかかる実装にする。
⚡ 電力解析攻撃(Power Analysis)
デバイスの消費電力を測定して秘密鍵を推測。
SPA(単純電力解析):1回の測定から視覚的に鍵情報を読む。
DPA(差分電力解析):多数の測定の統計分析から鍵を推測。スマートカード・ICカードへの現実的な脅威。
対策:マスキング処理・ランダムな遅延の挿入・電力ノイズ注入。
📡 電磁波解析(Electromagnetic Analysis, EMA)
デバイスから漏れる電磁波を解析して秘密情報を推測。
物理的に接触せずに近距離から行えるため、より実用的な攻撃が可能。
対策:電磁波シールド・マスキング処理。
🔊 音響解析(Acoustic Cryptanalysis)
CPUやファンが発する音を録音・解析して演算内容を推測。
2013年、スタンフォード大らがRSA秘密鍵を音響解析で復元できることを実証。
対策:防音筐体・ソフトウェア側の定時間実装。
⚠️ フォルト攻撃(Fault Attack)
意図的に誤動作を引き起こして(電圧・クロック・レーザー照射など)、処理の誤りから秘密情報を取り出す。
実例:RSA-CRT実装でfault injectionにより秘密鍵の素因数を1回で取り出せることがある。
対策:計算結果の検証・フォルト検出機構。
🔸 現実世界での脅威:スマートカード・ICカードへの攻撃
サイドチャネル攻撃が特に問題になるのは、物理的にアクセス可能なデバイス(スマートカード・ICチップ・HSM・IoT機器など)です。クレジットカードのICチップやSuica/交通ICカードにも同様の技術が使われているため、研究者の間では対策が重要な課題となっています。
出典: 「システムLSI設計実践演習」三浦典之(大阪大学)講義資料より要約
✅ サイドチャネル対策が施されているもの
- 現代の銀行IC・クレジットカード(EMV規格):電力解析対策済み
- ハードウェアセキュリティモジュール(HSM):企業の秘密鍵管理装置
- 物理セキュリティキー(YubiKeyなど):FIPS認定品はサイドチャネル対策済み
- 最新のスマートフォンのSecure Element:Appleのセキュアエンクレーブ等
🔸 SpectrとMeltdown:CPUレベルのサイドチャネル
2018年に公開されたSpectreとMeltdownは、サイドチャネル攻撃の概念がCPU設計レベルに適用された衝撃的な脆弱性です。
- Meltdown:CPUの「投機的実行」の仕組みを悪用して、プロセス間のメモリ境界を越えて他プロセスのデータを読み取る
- Spectre:CPUの「分岐予測」を悪用して、同じプロセス内の機密データにアクセスする
これらはIntel・AMD・ARMのほとんどすべての現代CPUに影響し、全世界のパソコン・サーバー・スマートフォンに緊急パッチが適用されました。「暗号の数学が正しくても、CPUアーキテクチャの隙が情報漏洩につながる」という典型例です。
📌 まとめ
- サイドチャネル攻撃は暗号の数学を解くのではなく、実装の「物理的な側面」から情報を得る攻撃
- 種類:タイミング攻撃・電力解析(SPA/DPA)・電磁波解析・音響解析・フォルト攻撃
- スマートカード・IoT機器など物理的にアクセス可能なデバイスが主な標的
- 対策:定時間実装・マスキング・電磁波シールド・フォルト検出など
- SpectreとMeltdownはCPUレベルのサイドチャネル脆弱性。全世界のデバイスに影響
- 「アルゴリズムは安全でも実装が脆弱」——だから信頼できるライブラリを使うことが大切

「暗号を使う」よりも「暗号を正しく実装する」の方が難しいんだよ💦 だから素人が一から暗号を実装するのは危険で、実績あるライブラリを使うのが鉄則だよ🐾 暗号の世界は奥が深いにゃ~!