準同型暗号(Homomorphic Encryption)
1. 概要
A. 定義
暗号文を復号しないままそのまま演算した結果が、平文を演算した後に暗号化したものと同一になる暗号技術。データを暗号化した状態のまま処理(processing on encrypted data) できるため、処理主体に原文を露出することなく分析・活用が可能である。
準同型暗号の名は代数学の準同型写像(homomorphism) に由来する。準同型写像とは二つの代数構造の間で演算構造を保存する写像(map)を指すが、暗号化関数 Enc が平文空間の加算・乗算構造を暗号文空間へ「保存して移す」という意味である。すなわち平文における加算・乗算が暗号文における対応演算へそのまま対応するため、わざわざ原文へ戻さなくても暗号文の上で計算が成立する。
準同型暗号が他の暗号技術と根本的に区別される点は「保護と活用の同時達成」 である。従来の暗号はデータをロックすると使えず、使うには解かねばならなかった。準同型暗号はこの白黒論理を破り「ロックしたままでも計算される」第三の状態を提供する。この特性はクラウド・AIのようにデータを他者のインフラに預けて処理する時代に特に強力な武器となる。
準同型暗号の主な特徴を整理すると次のとおりである。第一に、原文非露出演算により処理主体はデータも結果も知り得ない。第二に、格子ベースの安全性により量子コンピュータにも強いと期待される。第三に、汎用性によりFHEは理論上どんな関数でも計算できる。第四に、これらすべての強みの代償として高い演算コストを支払う点である。この四つの特徴の均衡点を見つけることが準同型暗号活用設計の本質である。
B. 登場背景および必要性
従来の暗号は保存中(at rest)と伝送中(in transit)にのみデータを保護するだけで、演算するには必ず復号せねばならないため、処理時点(in use)には原文がメモリ上にそのまま現れる。データ保護の三局面(保存・伝送・処理)のうち最後の「処理中の保護」が長らく空白のまま残っていたのである。
この空白は演算を外部に委託する瞬間に直ちに危険となる。クラウドにデータを載せて分析を任せるにはデータ所有者はクラウド事業者を無条件に信頼せねばならないが、医療診断データや金融取引履歴のような機微情報はこの信頼前提自体が規制違反・プライバシー侵害の種となる。例えば病院が患者のゲノムデータを外部AIに送って分析するには原文を渡さねばならず、その瞬間に個人情報保護法・医療法上の責任が発生する。
準同型暗号は「活用のために保護を放棄」するこのジレンマを正面から解消する。データを暗号化した状態でクラウドに載せ、演算まで任せた後、結果だけを持ち帰って復号すれば、処理主体は原文も結果も知らないまま計算だけを代行することになる。このため準同型暗号はプライバシー保存データ分析(Privacy-Preserving Data Analysis) とPET(プライバシー強化技術、Privacy Enhancing Technology) の根本技術として注目され、データ3法・GDPRなど強化されるデータ規制環境において「匿名化なしでも原文保護が可能な」代替手段として評価されている。
2. 動作原理
A. 全体処理フロー
flowchart LR
D["平文 m1, m2"] -->|"暗号化 Enc"| E["暗号文 c1, c2"]
E -->|"暗号文状態での演算 f"| R["演算された暗号文 f(c1,c2)"]
R -->|"復号 Dec"| O["平文の演算結果 f(m1,m2)"]
K["秘密鍵 sk"] -.-> D
K -.-> O
核心は準同型性 Dec(f(Enc(m1), Enc(m2))) = f(m1, m2) である。データ所有者が平文 m1, m2 を公開鍵で暗号化してサーバに送ると、サーバは平文を全く知らないまま暗号文どうしで関数 f(本質的には加算・乗算の組み合わせ)を実行し、秘密鍵を持つ所有者だけが結果の暗号文を復号して f(m1, m2) を得る。ここでサーバが見るのはランダムなノイズのように見える暗号文だけであり、入力値も計算結果も知り得ないという点がこの構造の威力である。
このフローで信頼境界(trust boundary)を押さえてみると準同型暗号のセキュリティ価値が鮮明になる。秘密鍵は所有者だけが持ち、サーバには公開鍵と演算に必要な評価鍵(evaluation key)だけが渡される。したがってサーバが悪意的に振る舞ったり侵害されたりしても、漏洩するのは復号不可能な暗号文だけである。「サーバを信頼しなくてもサーバに計算を任せられる」というこの性質こそ、クラウド委託演算において準同型暗号が持つ決定的な差別点である。
任意の計算は結局加算と乗算の組み合わせ(算術回路) またはAND・XORの組み合わせ(ブール回路) で表現されるため、両演算をともに準同型で支援すれば理論上どんな関数でも暗号文状態で計算できる。例えば平均・分散・内積・行列積は加算と乗算だけで構成され、ディープラーニング推論の大部分(畳み込み・全結合層)も多項式近似で表現されれば準同型演算が可能である。
B. 格子ベース構造とノイズ問題
flowchart TD
P["平文 m"] --> ADD["平文に小さなノイズ e を追加<br/>(LWE/RLWE ベース)"]
ADD --> C0["暗号文 c (ノイズ少量)"]
C0 --> OP1["演算1回 (加算/乗算)"]
OP1 --> C1["ノイズ増加"]
C1 --> OP2["演算の反復"]
OP2 --> LIMIT{"ノイズ > 限界?"}
LIMIT -->|"いいえ"| C1
LIMIT -->|"はい"| FAIL["復号不可"]
C1 -->|"ブートストラッピング"| RESET["ノイズリセット<br/>(再暗号化 without 復号)"]
RESET --> C0
現代の完全準同型暗号は大部分が格子ベース暗号(lattice-based)、具体的にはLWE(Learning With Errors) およびその環(ring)版であるRLWE問題の困難性に安全性を置く。この方式では、セキュリティのために暗号化時に平文へ小さなノイズ(誤差、error) を意図的に混ぜるが、まさにこのノイズが量子コンピュータでも解きにくい格子問題の根拠であり、準同型暗号が量子耐性(Post-Quantum)候補に挙げられる理由である。
問題はこのノイズが演算を重ねるほど累積・増幅される点である。特に乗算はノイズを急激に大きくするため、何の対策もなく演算を続けると一定の限界を超える瞬間に平文がノイズに埋もれて復号が不可能になる。したがって「ノイズをどう制御しながら演算深度(回路 depth)を確保するか」が準同型暗号実装の核心的難題であり、後述のブートストラッピング(Bootstrapping) がこの問題の根本的解法である。
ノイズを扱う補助技法も数多く発展した。モジュラススイッチング(modulus switching) は暗号文の係数サイズを減らしてノイズ増加速度を遅らせ、再線形化(relinearization) は乗算後に大きくなった暗号文の次数を元に戻して以降の演算を可能にする。こうした技法のおかげでブートストラッピングなしでも相当な深度の計算が可能になり、実務性能が大きく改善された。これは準同型暗号が「理論的可能性」から「実用ツール」へ移る過程でアルゴリズム最適化がいかに重要かを示している。
C. ブートストラッピング
ブートストラッピングは2009年にGentryが提示した概念で、暗号文を復号しないまま、その中のノイズを再暗号化で「リセット」 する技法である。直感的には、復号関数自体を準同型演算で暗号文の上で実行し「ノイズが少ない新しい暗号文」に差し替えるものである。これによってノイズ限界に到達する前に周期的にノイズを下げ、無制限深度の演算を可能にした。ただしブートストラッピング自体が非常に重い演算であるため、実務ではブートストラッピングなしであらかじめ定めた深度までだけ計算するレベルド(leveled)FHE を併用し、性能と機能を折衷する。
ブートストラッピングを「ノイズ予算(noise budget)」という比喩で理解すると明快である。暗号文は最初に作られるとき一定のノイズ予算を付与され、加算は予算を少しずつ、乗算は大きく消費する。予算が尽きる前に計算を終えればよいが、より深い計算が必要ならブートストラッピングで予算を再び補充せねばならない。したがって回路設計者は「ブートストラッピングなしで終えられるよう乗算深度を減らす」最適化と「重いブートストラッピングを甘受して汎用性を確保する」選択の間で均衡を取る。
D. 簡単な概念例
加算準同型性を持つPaillierで直感を得られる。二つの給与値 m1=300, m2=200 をそれぞれ暗号化して c1, c2 を得た後、サーバが c1 × c2(暗号文の乗算)を計算すると、これを復号した結果は m1 + m2 = 500 になる。サーバは300も200も500も知らないまま「合計を求める計算」だけを代行したのである。実務の給与統計・アンケート集計で個別回答を露出せずに総計だけを得るシナリオがこの原理で実現される。FHEはここに乗算まで無制限に加え、合計を超えて回帰・分類のような複雑な分析まで暗号文状態で実行できるよう拡張したものである。
3. 種類
準同型暗号は支援する演算の種類と回数によって三段階に分かれ、この発展史はまさに「ノイズをどこまで制御するか」の歴史である。各段階は単なる性能改善ではなく、表現可能な関数の範囲そのものを広げてきた過程である。
| 種類 | 支援演算 | 代表方式 |
|---|---|---|
| 部分準同型(PHE) | 加算または乗算の一種類のみ、無制限 | RSA(乗算)、Paillier(加算)、ElGamal(乗算) |
| 準同型(SWHE) | 加算・乗算ともに、ただし制限された回数 | BGN(無制限の加算 + 乗算1回) |
| 完全準同型(FHE) | 任意の演算・任意の回数 | Gentry(2009)、BGV・BFV、CKKS、TFHE |
部分準同型(PHE, Partially Homomorphic Encryption) は一種類の演算だけを無制限に支援する。Paillierは加算準同型性を持ち暗号文どうしを掛けると平文の和になるため、電子投票(暗号化された票を復号せずに合算)やプライバシー統計に実用的に使われる。RSA・ElGamalは乗算準同型性を持つ。PHEは計算が速く実装も成熟しているが、表現可能な計算が極めて限定的という限界がある。興味深い点は、教科書的なRSA(c = m^e mod n)がすでに乗算準同型性を持っていたという事実であり、これは準同型性自体が特別な発明ではなく「加算と乗算を同時に無制限に支援すること」がこの30年余りの間の未解決難題であったことを示している。FHEの登場がそれほど大きな出来事であった理由がここにある。
準同型(SWHE, Somewhat Homomorphic Encryption) は加算・乗算をともに支援するが、ノイズ限界のため回路深度が浅い計算しかできない。代表的にBGN(Boneh-Goh-Nissim)は無制限の加算に乗算をちょうど一度だけ許す。SWHEはそれ自体でも浅い統計・分類に使えるが、真の汎用性は確保できていない。
完全準同型(FHE, Fully Homomorphic Encryption) は任意の演算を任意の回数だけ実行できる「聖杯」であった。2009年にCraig Gentryがイデアル格子(ideal lattice)ベースでブートストラッピングを導入して初めて実現し(第1世代)、その後LWE/RLWEベースのBGV・BFV(第2世代、整数演算に強い)、高速なブートストラッピングを支援するTFHE(ブール回路・比較演算に強い)、そして実数・複素数の近似演算に特化したCKKS(第4世代)へと発展した。特にCKKSは韓国の研究陣(ソウル大学チョン・ジョンヒ教授チーム)が2017年に提案した方式で、誤差を許容する近似演算であるため、機械学習のように浮動小数点の大量演算が必要な分野で事実上の標準として定着した。
スキーム選択は「何を計算するか」にかかっているという点が実務的に重要である。整数統計・カウンティングはBGV・BFVが、実数ベクトル・行列演算が支配的な機械学習推論はCKKSが、比較・分岐・ビット演算が多いロジックは高速なブートストラッピングを持つTFHEがそれぞれ有利である。一つのスキームがすべてのワークロードで最適ではないため、アーキテクトは対象演算の性格をまず分析してスキームとパラメータを定めることが性能確保の核心である。
4. 長所・短所と関連技術の比較
A. 長所・短所
準同型暗号の強力なプライバシーは膨大な演算コストと引き換えにしたものである。このトレードオフを理解することが実務適用の出発点である。
| 長所 | 短所 |
|---|---|
| 暗号化状態で分析 → 原文非露出・強いプライバシー | 演算量・性能負担が非常に大きい(FHEは平文比で数千〜数百万倍) |
| クラウド・外部委託演算を安全に実行 | 暗号文膨張(ciphertext expansion)で容量が急増 |
| データ規制対応(匿名化なしで原文保護) | ノイズ管理・回路設計など実装難易度が高い |
| 格子ベース → 量子耐性を期待 | 標準化が進行中で相互運用性・検証が未成熟 |
性能負担が最も大きい実務上の障壁である。単純な加算一つが平文演算の数千倍の時間を要することがあり、ブートストラッピングを含めれば格差はさらに開く。暗号文膨張も問題で、数バイトの整数が数KB〜数十KBの暗号文に膨れ上がり保存・伝送コストを増やす。したがって準同型暗号は「すべての演算を暗号文で」ではなく機微度が高く演算頻度が低い地点に選別適用するのが原則である。
もう一つ留意すべき点は、準同型暗号が比較・分岐のような制御演算に根本的に弱いということである。暗号文状態では「この値が0より大きいか」を判断して分岐できないため(判断自体が平文情報を要求する)、条件文が多いアルゴリズムは多項式近似やマスキングで迂回せねばならず、この過程で正確度・性能の損失が発生する。このためアルゴリズムを「準同型フレンドリー(HE-friendly)」に再設計することが導入の隠れたコストであり、ディープラーニングでReLUの代わりに多項式活性化関数を使うことが代表的な例である。
B. MPC・連合学習・差分プライバシーとの関係
準同型暗号は他のPETたちと競争ではなく相互補完関係にある。各技術が保護する対象と信頼モデルが異なるためである。
| 技術 | 核心的アイデア | 準同型暗号との関係 |
|---|---|---|
| MPC(多者間計算) | 複数の主体が各自の入力を隠したまま共同の関数を計算 | 通信量↓・演算分散に有利、HEは通信なしで委託演算に有利 → 結合(HE+MPC) |
| 連合学習(FL) | 原本を集めずモデル更新だけを共有 | 更新値自体をHEで暗号化してサーバの推論を防止 |
| 差分プライバシー(DP) | 結果にノイズを加えて個人識別を防止 | HEは計算過程を、DPは出力結果を保護 → 階層的な組み合わせ |
MPCは複数機関が通信しながら計算を分担するため通信コストが大きいが演算は相対的に軽く、準同型暗号はデータを一度渡せば通信なしでサーバが単独で計算するため委託シナリオに適する。連合学習では各参加者が送るグラディエントだけからでも原本が逆推論され得るため、これを準同型暗号で暗号化(Secure Aggregation)してサーバが個別の値を見られないよう防ぐ。差分プライバシーは計算「結果」にノイズを加えて個人を隠すのに対し、準同型暗号は計算「過程」を隠すため、両者を階層的にともに使えば過程と結果の両方を保護できる。
一方、ハードウェア信頼実行環境(TEE、例:Intel SGX)ベースの機密コンピューティングはCPU内部の隔離された領域で平文を処理するため性能は準同型暗号よりはるかに速いが、ハードウェア製造社を信頼せねばならずサイドチャネル攻撃に露出し得るという信頼仮定の違いがある。準同型暗号は数学的難題にのみ安全性を置くためハードウェアの信頼が不要である代わりに遅い。したがって「どれほど速いか」ではなく「何を信頼基盤とするか」の観点から両技術を配置することが設計の要諦である。
5. 深化:最新動向と実務適用
準同型暗号は長らく「理論的には美しいが遅くて使えない」と評価されてきたが、近年ハードウェア加速・ライブラリの成熟・標準化の三つの軸で実用化が急速に進んでいる。Gentryの最初のFHEは単純な演算一つに数十分かかったが、アルゴリズム改善とSIMDパッキングで数年のうちに数千倍以上速くなった点がこの流れを象徴する。
第一に、ライブラリ生態系の成熟である。MicrosoftのSEAL、IBMのHElib、そして複数プロジェクトが統合されたOpenFHE(PALISADE系列)、GoベースのLattigo、CKKSリファレンスのHEAANなどがオープンソースで公開され、暗号専門家でなくてもBGV・BFV・CKKS・TFHEを選んで使えるようになった。これらはベクトルを一つの暗号文に載せて並列処理するSIMDパッキング(batching) を支援し、大量演算の実効性能を大きく引き上げた。
第二に、専用ハードウェア加速である。FHEのボトルネックは大部分が多項式乗算(NTT演算)とブートストラッピングにあるが、これをGPU・FPGA・ASICで加速しようとする試みが続く。米国DARPAのDPRIVEプログラムはFHE専用プロセッサで演算を大幅に加速することを目標とし、インテル・サムスンなど複数の企業が関連ハードウェアを研究している。こうした加速が成熟すれば、平文比で数千倍だった格差が実用可能な水準に狭まる見通しである。
第三に、標準化である。HomomorphicEncryption.orgコンソーシアムがパラメータ・セキュリティ水準の標準を整理してきており、ISO/IEC次元でもFHE標準化(ISO/IEC 28033など)が進行中である。標準化は異なるライブラリ・組織間の相互運用と安全なパラメータ選択を可能にし、産業拡散の前提となる。例えば同じCKKSでもライブラリごとにパラメータの表記・デフォルト値が異なり相互検証が難しかったが、標準パラメータ集合が確立されれば「このパラメータは128ビットセキュリティを満たす」という合意が生まれ、監査・認証が容易になる。標準化は性能と同じくらい産業的信頼確保の核心的な軸なのである。
実務適用事例としては、医療ゲノム分析コンペティションであるiDASHで準同型暗号により暗号化されたゲノムデータの統計・疾病予測を行った研究が代表的であり、金融界では複数機関が各自のデータを露出せずプライバシー保存の信用評価・異常取引検知への適用を試みている。韓国国内でもCKKSを活用した暗号化状態の機械学習推論サービスが商用化段階に入りつつある。
シナリオを具体化すると次のとおりである。病院が患者の検査数値をCKKSで暗号化してクラウドに載せると、クラウドの診断補助モデルは暗号文の上で多項式で近似されたニューラルネットワークを実行し「異常所見確率」の暗号文だけを算出する。病院はこれを復号して結果だけを確認し、クラウド事業者は元の検査数値も診断結果も全く知り得ない。こうした構造はデータを国外クラウドに送らねばならない規制の機微な産業で「データ主権」と「AI活用」を同時に満たす稀な解法である点で注目される。ただし多項式近似による正確度損失と遅延を勘案し、スクリーニング(1次選別)のような非リアルタイム用途から適用するのが現実的なアプローチである。
予想出題方向も併せて整理しておく価値がある。技術士試験で準同型暗号は単独の定義型よりも「プライバシー保存技術の比較(HE・MPC・DP・連合学習)」「クラウド環境でのデータ保護方策」「量子耐性暗号との関係」のように他の主題と絡めた形で出題される傾向がある。したがって答案では定義・原理にとどまらず、「なぜ今必要か(処理中保護の空白)」「何と組み合わせるか(PETスタック)」「何が障害か(性能・標準化)」の三つの軸で論旨を展開すれば深化答案としての完成度が高まる。
6. 考慮事項および示唆点
技術士の観点から準同型暗号は万能の解法ではなくアーキテクチャ設計上の選択肢として扱うべきである。
- 選別適用戦略:FHEの性能コストを勘案し、遅延に鈍感で機微度が高いバッチ(batch)性格の演算(例:夜間統計・暗号文推論)に優先適用し、リアルタイム・高頻度トランザクションには無理に使わない。「全区間暗号化」ではなく「機微区間のみ暗号化」が現実的である。
- パラメータ・セキュリティ水準の管理:格子ベース暗号はパラメータ選択が即セキュリティ水準と性能を決定する。標準(HomomorphicEncryption.org勧告)に合わせて128ビット以上のセキュリティを確保しつつ、回路深度・精度要求に合わせてパラメータをチューニングする専門性が必要である。
- 組み合わせアーキテクチャ:準同型暗号単独よりMPC・連合学習・差分プライバシー・機密コンピューティング(TEE)と階層的に組み合わせて信頼モデルを設計する。例えば連合学習のグラディエントをHEで保護し、最終出力にDPノイズを加える方式である。
- 量子耐性ロードマップとの整合:LWE/RLWEベースの準同型暗号は量子耐性候補と数学的基盤を共有するため、組織のPQC(量子耐性暗号)移行ロードマップと併せて検討すれば将来対応の投資効率を高められる。
- 規制・ガバナンス連携:個人情報保護法・GDPR対応の観点から準同型暗号を「仮名・匿名化の代替または補完」として位置づけ、導入時には性能・コスト・検証可能性(監査)を併せて評価するガバナンス体系を備える。
- 鍵管理と完全性:準同型暗号は計算の機密性は保証するが、サーバが「約束した計算を正直に実行したか」(完全性)までは自動的には保証しない。したがって検証可能計算(verifiable computation)やゼロ知識証明との結合、そして秘密鍵の安全な保管・ローテーションポリシーを併せて設計してこそ、実際の脅威モデルに対応できる。
- 漸進的導入ロードマップ:パイロット(非リアルタイム統計・スクリーニング)→部分商用(機微バッチ演算)→拡大の段階で導入し、ハードウェア加速・標準の成熟度を見ながら適用範囲を広げるのがリスクを減らす現実的な経路である。
参考資料
- Gentry, C. "A Fully Homomorphic Encryption Scheme" (PhD thesis, Stanford, 2009): https://crypto.stanford.edu/craig/craig-thesis.pdf
- Cheon, Kim, Kim, Song. "Homomorphic Encryption for Arithmetic of Approximate Numbers (CKKS)": https://eprint.iacr.org/2016/421
- Microsoft SEAL: https://github.com/microsoft/SEAL
- OpenFHE: https://www.openfhe.org/
- HomomorphicEncryption.org 標準化コンソーシアム: https://homomorphicencryption.org/
一言まとめ: 準同型暗号は復号なしで暗号文状態のまま演算が可能な格子ベース技術で、PHE・SWHE・FHEへと発展(2009年GentryのブートストラッピングでFHEを実現、CKKSで実数演算を実用化)し、性能負担は大きいがハードウェア加速・標準化で実用化されつつあり、クラウド・AI時代のプライバシー保存データ活用を可能にする核心的PET技術である。