本記事では、秘密計算とFLoCの違いを解説します。
はじめに
EUでGDPRが施行されたことをきっかけに、世界中でプライバシーを保護しようとする動きが強まってきています。
そうした動きの中で、Web上でユーザの行動をトラッキングし、広告を配信するために活用していたCookieが個人情報として扱われるようになり、Googleをはじめとする企業が、ブラウザでのCookieの利用取りやめを公表しています。
そこで最近では、プライバシーに配慮した計算手段として、秘密計算やFLoCなどの新しい技術が注目されています。
本記事では、秘密計算とFLoCの違いについて、解説していきます。
秘密計算とは
秘密計算とは、暗号化したままの状態で計算を実行することです。
秘密計算の代表的な仕組みは以下の2つです。
- 準同型暗号ベース
- 秘密分散 + MPCベース
準同型暗号ベースの秘密計算は、暗号鍵を用いて情報を暗号化することで秘匿性を担保し、秘密分散 + MPCベースの秘密計算は、データを分割し、物理的な計算空間を隔てることによってデータの秘匿性を担保します。
秘密分散+MPCベースの秘密計算の場合は、構築難度は高い反面、計算スピードは完全準同型暗号ベースに比較して早いことが一般的に知られています。ある研究では同一の計算を実行する際、秘密分散+MPCベースの秘密計算に比べ、準同型暗号ベースの秘密計算は、実行時間が3,000倍以上長かったという演算結果が得られています。 (下記表参照)

参照元:菊池 亮 五十嵐 大 秘密計算の発展 (2018) https://www.jstage.jst.go.jp/article/essfr/12/1/12_12/_pdf
なお、詳細な両者のメリット・デメリットの比較は以下の記事にて解説しています。
計算速度が遅いことは、データ分析での利用において非常に大きなデメリットとなります。そのため、準同型暗号に関しては、上記理由から今回の比較からは除外して考えることとします。
FLoCとは
FLoCとは、Federated Learning of Cohorts (群れの連合学習) の略称です。
ちなみに、連合学習の詳細については、以下の記事にて解説しています。
FLoCではまず、同じようなWebページを閲覧しているユーザを一つのグループにまとめ、それをコホート(群れ)と呼びます。そして、そのコホートごとにトラッキングを実行します。この時、コホートごとにトラッキングが行われているため、特定の個人のプライバシーが侵害されることはありません。このようにして、FLoCでは、特定の個人のプライバシーを侵害することなく、適切な広告配信を実現しています。
FLoCに関する詳細は以下の記事にて解説しています。
秘密計算とFLoCの違い

秘密分散 + MPCベースの秘密計算では、システム構築や、通信などに必要なコストが大きく、実装効率が低かったり、計算が完了するまでその結果を得られなかったりする反面、情報理論的安全性が担保されていることに加え、理論上、任意の計算を実行することが可能であることが知られています。
それに対し、FLoCは、計算の中間結果、つまり、全ユーザをコホートする前にある程度の計算結果を取得することができるメリットがありますが、ユーザの人数によって個人の特定に繋がったり、ユーザの更新データが流出してしまう危険性を持つなどのデメリットもあります。
まとめ
本記事では、秘密計算とFLoCの違いを解説しました。
- 秘密計算とは、暗号化したままの状態で計算を実行することである。
- 主な手法として、秘密分散 + MPCベースと準同型暗号ベースが存在する
- 計算速度の観点から、秘密分散 + MPCベースの秘密計算を比較対象として扱う
- FLoCとは、同じようなWebページを閲覧しているユーザをコホートとしてまとめ、コホートごとにトラッキングを実行することで、個人のプライバシーを侵害することなく、適切な広告配信を行う手法のことである。
- 秘密分散 + MPCベースの秘密計算は、情報理論的安全性が担保され、理論上任意の計算を実行可能だが、システム構築や、通信などにコストがかかる。
- FLoCは、計算途中であってもその経過を取得可能だが、ユーザの人数等により個人の特定につながるデータが公表されるなどのデメリットがある。