概要
準同型暗号(Homomorphic Encryption)は、データを暗号化したまま計算でき、その計算結果を復号すると平文で計算した場合と同じ結果が得られる暗号方式です。従来の暗号(RSA・AESなど)は「保存中・通信中のデータを守る」ことが目的でしたが、準同型暗号は「使用中(処理中)のデータを守る」という新しいパラダイムを実現します。マルチパーティ計算(MPC)を含む秘密計算とあわせて、医療データや金融データを第三者に渡さずに分析・機械学習させる用途で注目されており、SC試験でもプライバシー保護技術として扱われます。
仕組みと動作原理
「使用中のデータ保護」という新しいパラダイム
データのライフサイクルには「保存中(at rest)」「通信中(in transit)」「使用中(in use)」の3状態があり、それぞれ異なる技術で保護します。
| データの状態 | 主な保護技術 | 課題 |
|---|---|---|
| 保存中(at rest) | AES等の共通鍵暗号によるディスク暗号化 | 処理する際は復号が必要 |
| 通信中(in transit) | TLS等のハイブリッド暗号 | 受信者側では復号が必要 |
| 使用中(in use) | 準同型暗号・秘密計算・TEE(信頼実行環境) | 計算コストが高い |
準同型暗号が解決するのは「使用中」の保護です。クラウド事業者や分析者に平文データを一切見せずに、暗号化したまま計算を委託できます。
加法準同型と完全準同型の違い
「準同型」とは、暗号文に対する演算結果が、平文に対する演算結果の暗号文と一致する性質を指します。対応できる演算の種類によって段階があります。
| 種別 | 対応する演算 | 代表方式 | 特徴 |
|---|---|---|---|
| 加法準同型(Partially Homomorphic) | 加算のみ | Paillier暗号 | 計算は軽量。集計・投票システム等に利用 |
| 乗法準同型(Partially Homomorphic) | 乗算のみ | RSA(一部性質)、ElGamal | 加算はできない |
| Somewhat Homomorphic | 加算・乗算を限定回数 | — | ノイズが蓄積し一定回数で計算不能になる |
| 完全準同型(Fully Homomorphic Encryption, FHE) | 加算・乗算を任意回数・無制限 | CKKS・BFV・BGV等 | 任意の計算が可能だが計算コストが非常に高い |
加法準同型の例(イメージ):
Enc(a) ⊕ Enc(b) = Enc(a + b)
→ 暗号文同士を「足す」操作をすると、復号した結果が a+b になる
完全準同型(FHE):
加算・乗算の組み合わせで任意の関数 f を暗号文のまま評価可能
Dec( f(Enc(a), Enc(b), ...) ) = f(a, b, ...)
FHEは2009年にGentryが「ブートストラッピング」という技術でノイズを定期的にリセットする方式を考案したことで理論的に実現しました。ノイズを除去する処理自体が重く、これが実用上の計算コストの高さの主因です。
秘密計算(マルチパーティ計算・秘密分散)との関係
秘密計算(Secure Computation)は「複数の当事者が、互いの入力データを非公開のまま共同で計算する」ことを目的とする技術の総称で、準同型暗号はその実現手段の一つです。もう一つの代表的な実現手段がマルチパーティ計算(MPC: Multi-Party Computation)です。
| 技術 | アプローチ | 参加者の役割 |
|---|---|---|
| 準同型暗号(HE) | 1人がデータを暗号化し、別の1者(クラウド等)が暗号文のまま計算 | データ所有者と計算実行者が分離 |
| マルチパーティ計算(MPC) | 複数の当事者が秘密分散等でデータを分割し、協調して計算 | 全参加者が計算に関与し、互いの入力を知らないまま結果のみ得る |
| 秘密分散(Secret Sharing) | 1つの秘密を複数のシェアに分割し、一定数以上が揃わないと復元できないようにする | MPCの構成要素として利用されることが多い |
秘密分散のイメージ(Shamirの秘密分散法):
1. 秘密値 s を n個のシェアに分割する(k個以上集めれば復元可能な (k, n) しきい値方式)
2. 各シェアを異なる参加者に配布する
3. 単独のシェア保有者は s の情報を一切得られない
4. k個以上のシェアが揃った時点でのみ s を復元できる
医療・金融データのプライバシー保護分析への応用フロー
準同型暗号を使うことで、データ所有者はクラウド事業者に平文を渡さずに分析結果だけを受け取れます。
1. データ所有者(病院・銀行等)が保有データを準同型暗号で暗号化
2. 暗号化データをクラウド上の分析サービスへ送信
3. クラウド側は暗号文のまま統計処理・機械学習推論を実行(平文は一切見えない)
4. 計算結果(暗号文)をデータ所有者へ返却
5. データ所有者が自身の秘密鍵で復号し、平文の結果のみを得る
代表的な応用分野:
| 分野 | 用途例 |
|---|---|
| 医療 | 複数病院の診療データを共有せずに統合的な疫学分析・創薬研究を行う |
| 金融 | 複数金融機関の取引データを共有せずにマネーロンダリング検知の共同分析を行う |
| 選挙・投票 | 個々の投票内容を秘匿したまま集計する電子投票システム |
| 広告 | ユーザの行動データを事業者に渡さずに広告効果測定を行う |
実用上の計算コストの課題
FHEは理論的には任意の計算が可能ですが、実用面では大きな制約があります。
- 処理速度:平文での計算と比較して数百倍〜数万倍の処理時間がかかる場合がある
- 暗号文サイズ:暗号化後のデータサイズが平文より大幅に膨張する
- ノイズ管理:演算を重ねるほど暗号文中のノイズが蓄積し、一定回数を超えると復号不能になるため、ブートストラッピング等のノイズ除去処理が必要
- 対策の方向性:用途を限定した加法準同型やSomewhat Homomorphicの活用、専用ハードウェア(FPGA・GPU)による高速化、MPCとのハイブリッド運用などで実用化が進められている
SC試験での頻出ポイント
- 準同型暗号が保護する対象:「保存中」「通信中」ではなく「使用中(処理中)」のデータを保護する技術という位置付け
- 加法準同型と完全準同型の違い:対応できる演算の種類(加算のみ/加算と乗算を無制限)と、それに伴う計算コストの差
- 秘密計算とMPCの関係:秘密計算は総称であり、準同型暗号とMPC(秘密分散を含む)がその代表的な実現手段であること
- プライバシー保護分析への応用:医療・金融など機密性の高いデータを「共有せずに」統合分析できる点が従来の匿名化・仮名化との違い
- 実用上の最大の課題は計算コスト:FHEは理論的に万能だが処理速度・暗号文サイズの問題で用途が限定される
よくある誤問・ひっかけパターン
誤り① 「準同型暗号は通信経路の盗聴を防ぐための技術である」→ 誤。通信経路の保護はTLS等のハイブリッド暗号の役割です。準同型暗号が対象とするのは「計算処理中」のデータ保護であり、目的が異なります。
誤り② 「加法準同型でも完全準同型と同じく任意の計算ができる」→ 誤。加法準同型(Paillier等)は加算のみに対応し、乗算を含む任意の計算はできません。任意回数の加算・乗算に対応するのは完全準同型(FHE)です。
誤り③ 「秘密計算はデータを匿名化・仮名化してから共有する技術である」→ 誤。匿名化・仮名化は元データを加工して識別性を下げる手法ですが、秘密計算(準同型暗号・MPC)は元データそのものを一切開示せずに計算結果のみを得る技術であり、保護の考え方が根本的に異なります。
関連用語
- 公開鍵暗号(RSA)とデジタル署名 — 準同型性を部分的に持つ古典的な公開鍵暗号の例
- ハイブリッド暗号 — 「保存中・通信中」のデータ保護を担う従来型の暗号アプローチとの対比
- 個人情報保護法とデータガバナンス — プライバシー保護分析のニーズが生まれる法的背景
重要キーワード
| 用語 | 説明 |
|---|---|
| 準同型暗号 | 暗号化したまま計算でき、復号すると平文計算と同じ結果が得られる暗号方式 |
| 完全準同型暗号(FHE) | 加算・乗算を任意回数組み合わせて計算できる準同型暗号 |
| 加法準同型 | 暗号文のまま加算のみに対応する準同型暗号(Paillier暗号等) |
| 秘密計算 | 複数当事者が互いの入力を非公開のまま共同で計算する技術の総称 |
| マルチパーティ計算(MPC) | 秘密分散等を用いて複数当事者が協調して計算する秘密計算の一手法 |
| 秘密分散 | 1つの秘密を複数のシェアに分割し、一定数以上が揃わないと復元できない仕組み |