書籍『データ解析におけるプライバシー保護』の紹介

この記事は[EAGLYS Advent Calendar 2021](https://qiita.com/advent-calendar/2021/eaglys_adcal)の16日目の記事です．

書評するコーナーをやってみます．

今回は第２回です．

# 何をするのか

格子暗号に秘密計算・機械学習って最近の話題を色々紹介しているけど，なんか良い本ないの？という要望に応える企画です．
ちなみに暗号全般や暗号で使われる数学関連の書籍は，[「プログラマブルブートストラップの原著論文を理解する回」を理解する回](https://qiita.com/0917laplace/items/679fa72d44bf02b4e17c#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE)という記事で紹介しているので，そちらをご参照ください．

全３回に渡って，主に３冊を取り上げて紹介します．今回は第２回目です．

１冊目：[縫田 光司，『耐量子計算機暗号』，森北出版，2020](https://www.morikita.co.jp/books/mid/087211)
２冊目：[佐久間 淳，『データ解析におけるプライバシー保護』，講談社，2016](https://www.kspub.co.jp/book/detail/1529199.html)
３冊目：[Chiheb Chebbi　著，新井 悠，一瀬 小夜，黒米 祐馬　訳，『セキュリティエンジニアのための機械学習ーAI技術によるサイバーセキュリティ対策入門』，O'Reilly Japan，2021](https://www.oreilly.co.jp/books/9784873119076/)

選んだ理由としては，

１冊目：格子暗号含む秘密計算の理論的な話
２冊目：秘密計算のもう少しざっくりした話やプライバシー・機械学習の話
３冊目：セキュリティと機械学習の話

っていう秘密計算→機械学習の流れが綺麗かなぁって思ったからです．

内容的に全てを紹介するのはできないので，読んでて思ったところを特に紹介していきます．
途中途中で他にも色々と本を紹介するつもりです．

# 今回紹介する本

「秘密計算」とか「プライバシー保護」と聞いたら，こちらの書籍を思い浮かべる方も多いのではないのでしょうか．
実は僕も秘密計算は今回の本から入門しました．

というわけで，今回は↓の本を紹介します．

[佐久間 淳，『データ解析におけるプライバシー保護』，講談社，2016](https://www.kspub.co.jp/book/detail/1529199.html)

また，今回の内容は，僕のインターン先と同じく国内で秘密計算の開発を行なっているAcompanyさんの技術ブログを適宜引用します．

[Acompanyさんのブログ](https://acompany.tech/blog/)


# どのような本なのか

> 日本のプライバシー保護技術の数理を牽引する研究者が、「仮名化／匿名化」「差分プライバシー」「秘密計算」を統計学・データ工学・暗号理論の観点から丁寧に解説した。

です．

上記の分野の入門書的な立ち位置で考えています．特に秘密計算は大雑把なイメージを持つには最適な書物だと思います．
分野が2021年12月現在でも成熟していないこともあり，体系的な解説を行なっている和書は他にはないはずです（あったらすみませんっていうか教えてください()）．

＊ちなみに洋書は分かりません，たぶんあると思いますが・・・


# 構成

> 第1章　データ解析におけるプライバシー保護技術の概要
第2章　パーソナルデータ提供におけるプライバシーの問題
第3章　パーソナルデータ提供におけるデータの構成要素
第4章　パーソナルデータ提供のリスクと有用性
第5章　パーソナルデータの匿名化
第6章　識別不可能性と攻撃者モデル
第7章　統計量の公開における差分プライバシーの理論
第8章　差分プライバシーのメカニズム
第9章　差分プライバシーと機械学習
第10章　秘密計算の定式化と安全性
第11章　秘密鍵暗号と公開鍵暗号
第12章　準同型暗号による秘密計算
第13章　秘匿回路による秘密計算
第14章　秘密分散による秘密計算

もう少し詳しいことは， [販売サイトの詳細目次](https://www.kspub.co.jp/download/978-4-06-152919-9.pdf) で紹介されています．

上記に目次が記載されているのですが，そこから本の内容が深く推測できない程度に紹介します．

と言っても，全ては紹介しきれないので，「第７章〜第９章」と「第10章〜第14章」の2つの視点から紹介します．
前半を「差分プライバシー」パート・後半を「秘密計算」パートとします．

今回は少しの機械学習と秘密計算の話をしたいので，「仮名化／匿名化」は飛ばします．ただ，実際にこの本を読む際には，飛ばさずに読んだ方が特に「差分プライバシー」は分かりやすいかなと思います．


# 差分プライバシー

今更ですが，差分プライバシーとは，個人情報を含む統計量データが公開された際に，任意の知識を持つ攻撃者からの推測を妨げる技術です．
クエリの応答にノイズを加えることで，決定的に情報を得られないようにしています．

何言っているのか分からないと思うので，Acompanyさんのブログで分かりやすくまとめられています．

[【入門】差分プライバシーとは？GAFAが採用したデータ活用手法を紹介！](https://acompany.tech/blog/differential-privacy/)

７章と８章が差分プライバシーのゴリゴリの理論で，９章が機械学習への応用という話です．

７章と８章では，個人の統計データを公開したとき云々の話で，
９章はその応用として，個人データを学習したモデルを公開したときに差分プライバシーは云々の話です．

７章と８章は良い感じでした．
攻撃者の「知識」の話が出たから，零知識証明とかの話が出てくるのかな？と思ったら，８章で結構それに近い感じの話題もあり，読み応えがありました．

９章もなるほどなるほどって感じでした．
ただ，９章も理論の紹介がメインで，実際にどう実現するかが書かれていないのが気になりました．もしかして発売された2016年では，まだそこまで進んでいなかったって感じなんですかね．

ただ９章も理論だけで見たら分かりやすかったですし，ここからもう少し深掘りするのも容易なんだろうなって思いました．興味深かったです．
っていうか実際の応用も上のAcompanyさんの記事しかり，検索かければいくらでも出てくるので，深刻な問題ではないです．


# 秘密計算

こちらも今更ですが，秘密計算は大雑把には，複数のユーザが秘密鍵を共有することなく，共有された関数の出力値を求める手法のことです．

こちらもAcompanyさんのブログで分かりやすく書かれています．

[【超入門】秘密計算って何？図で概要をわかりやすく解説！](https://acompany.tech/blog/secure_computing/)

秘密計算の具体例としては，「金持ち比べ問題」が有名ですね．

秘密計算の実現法としては，「主に」

- 準同型暗号
- 秘匿回路
- 秘密分散

の３つがあります．
個人的には「準同型暗号」と「秘密分散」が好きです（聞いてない）．後，ここには書いていませんが「カードベース暗号」も好きです（合法的にシャカパチをできるので()）．

この本では，その前に公開鍵暗号系の話をして，上記３つに繋いでいます．

準同型暗号
正直なところあっさりめな解説です．準同型暗号そのものの解説というより，応用の方がメインでした．
あと，数値例もほしかったです（こういうのは一般論だけやっても頭に残りづらい気がするので）．

ちなみにこちらもあっさりですが，もう少し深掘りした理論を記載している和書を紹介します．

[岡本 龍明，『現代暗号の誕生と発展 ポスト量子暗号・仮想通貨・新しい暗号』，近代科学社，2019年](https://www.kindaikagaku.co.jp/information/kd0579.htm)

秘匿回路
逆に色々書きすぎ？
分野の性質上，例を出しづらいのは仕方ない気がしますが，さらっと読むだけだと，なんかいっぱい書いてあったねで終わりそうです（読み方が悪かったらすみません）．

準同型暗号や秘密分散と比べて，実際の応用にフォーカスが当てられていないのは，差分プライバシーの機械学習と同じく，2016年時点でそこまで進展がなかったのかなと感じました．
ただ，こちらも調べれば色々出てくるので，発展がすごいなぁとしみじみ（え？）．

準同型暗号や秘密分散は暗号理論の本にも書いてあったりしますが，秘匿回路には触れられないことがほとんどで，しかも和書は他にない（はず）ので，こちらは良いとっかかりになるかなと思います．

秘密分散
一番推し．直感的で分かりやすいと思います．

Shamirの閾値分散もすごいんですが，加法的シェアで情報理論的な安全性に馴染むのが入り口としては良いのかなって思っています．分かりやすい例なので．

全体的に秘密計算への応用が薄いかなぁと思う一方，そちらは上記のAcompanyさんのブログでカバーできると思います．

# 良かった点と悪かった点
良かった点

- なんのためにこれを使うのか，が説明されている（結局これなんだっけ状態にならない）
- ということもあり，「イメージを掴むための入門書」としては最適
- 剰余環の説明がかなり分かりやすい（というか参考にしてほしい）
- ここを深掘りしたいと思ったときの論文の参照も充実している

悪かった点（めちゃくちゃ個人的）

- 全体的に１ページの余白が多いような・・・（数学書に慣れすぎた？）
- 具体例があるないの差が激しい（ので，「この本を理解しよう」と思うなら，自分で数値例を考えながら読むといいかなと）

実際の応用例は，ぶっちゃけ調べればいくらでも出てくると思います．


# 最後に
今回は
[佐久間 淳，『データ解析におけるプライバシー保護』，講談社，2016](https://www.kspub.co.jp/book/detail/1529199.html)
を紹介しました．

プライバシー保護という観点から，差分プライバシーと秘密計算を取り上げて，
少しだけ機械学習にも触れたって感じです．

具体例があったりなかったりですが，恐らくこれより取り組みやすいプライバシー保護の和書はない（と思う，あったらすみませんっていうか教えてください）ので，これから入門するのもありかなと．図もあって分かりやすいですし．

ただ，分野で解説量に差がありますし，そもそもこの本１冊で色々理解しようと思うのは難しいため，その場合は参照となる論文を漁ることになると思います．

個人的には，今の所は計算量的な安全性に興味があるので，準同型暗号のところを少し突っ込んだのですが，
情報理論的な安全性や零知識的な部分をキャッチアップしないわけにもいかないので，今後は関心を持って取り組んでいけたらなと思いました（こなみかん）．