秘密計算エンジニアを始めて２年半が経った。

## 概要
縁があり秘密計算という分野に携わるスタートアップに関わり、気づけば２年以上の月日が経ちました。
アドベントカレンダーにて記事を投稿したかったですが、もう４月になってしまいました。
しかしながら、２年程秘密計算、特に準同型暗号という要素技術を研究、プロダクト実装を目標に取り組んできた上で考えたことなどを、これを機にまとめておくことは有益であろうと考えています。

１年前に準同型暗号の理論的、応用的なバックグラウンドを身につけるための論文やキーワードをたくさん紹介しました。
今回は論文の紹介というよりは、最近の秘密計算に関連するニュースや大企業やスタートアップなどの動向をまとめ、紹介していこうと思います。
また、最後にはどのような方向に研究開発が向かっているのかを簡単に書きたいと思っています。


一年前にまとめた記事については、
[秘密計算エンジニアを始めて１年が経った。 kenmaro](https://qiita.com/kenmaro/items/416657efca2ff296169b)
を見ていただければと思います。


## 秘密計算とは
秘密計算とは、個人情報などを含んだ機密データを秘匿したまま（つまりデータを開示することなく）データの分析を行うことを可能にする技術のことです。
今まで、データの暗号化には

- データ通信における暗号化（TLS）
- データ保存時の暗号化（AES暗号化などによるストレージ暗号化）

などがありましたが、データを解析する際には一時的にデータを復号する必要があり、
分析時のメモリハッキングや、サイドチャネルアタックなどはセキュリティ上の大きな課題でした。
また、この課題によりDX推進時のクラウド活用などに法的にGoサインが出せなかったり、抵抗があったりしていました。

秘密計算の技術を用いることで、データの解析時もデータを守ることができるので、
ビッグデータをつくるこれからの社会での注目技術とされています。

AIなどの開発に関わっているエンジニアの方、コンサルの方、DX部門の方、
データをどう活用するかという大きな問のなかで、異なる企業や部門間のデータの突合は大きな課題となっています。
例えばAが持っている顧客データと、Bが持っている購買データなどを組み合わせることで作られるビッグデータは、より質の高い分析を可能にすると推察されます。しかしながら、このようなデータ連携を行うことは個人情報保護法の観点から非常に難しいです。
後述しますが、基本的に個人情報を含むデータどうしを自在に突合し分析することは現状の法規制のもとではできません。

技術の側面からこの問題を解決しようとするもの、それが秘密計算になります。


## 秘密計算手法
大きく分けて、秘密計算技術は

- 準同型暗号によるもの
- 秘密分散によるもの

の２つがあります。どちらの技術も、データを秘匿した上で分析をすることを可能にする、という点では同じです。
そこへのアプローチが違うだけです。

もちろんどちらも一長一短がありますが、準同型暗号に関するメリットを取り上げると、

- 完全準同型暗号を用いると、理論上いかなる計算（回路演算）を暗号上で行うことができる。
- 計算サーバは構成した計算グラフと計算用の公開鍵の保持だけが必要で、システム構成が非常にシンプルになる。
- 計算時の通信量が理論上そこまで増大しない。
- OSSライブラリが活発に開発され、使い勝手が良くなっている。（後述）
- ハードウェアによる高速化が行われれば、１０００倍以上の効率化が見込まれ、そこの研究開発に対して資金が投下され始めている。（後述）

などです。


## 秘密計算周りの世の中の動向(法規制など)


ビッグデータを作り、マーケティングに活かすとき、データの突合が鍵となるとしましたが、
個人情報保護法の観点からそのようなデータ活用はとても難しいものになります。
しかしながら、秘密計算関連の法律を整備することで、リスクを抑えた状態でそのような分析を可能にしようと世の中は動いています。

#### 個人情報と暗号化
２０１８年に問題になったリクルートキャリアがクッキー情報を顧客企業に提供し、個人の同意なしに内定辞退率を算出するようなサービスを提供していたことについて話題になりました。（詳しくは他の方の記事、たとえば[個人情報保護法ニュースNo.1：リクナビ事件と個人情報保護法の改正](https://miyake.gr.jp/topics/201912/%E5%80%8B%E4%BA%BA%E6%83%85%E5%A0%B1%E4%BF%9D%E8%AD%B7%E6%B3%95%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9no1%EF%BC%9A%E3%83%AA%E3%82%AF%E3%83%8A%E3%83%93%E4%BA%8B%E4%BB%B6%E3%81%A8%E5%80%8B%E4%BA%BA%E6%83%85%E5%A0%B1%E4%BF%9D%E8%AD%B7%E6%B3%95%E3%81%AE%E6%94%B9%E6%AD%A3)や、[個人情報保護法改正で変わる！Cookie規制を弁護士が解説](https://web-lawyers.net/cookie_personal_data/)　などをお読みください）
クッキー情報そのものは日本では個人情報そのものとしては扱われていませんが、他の情報と結びつくことで個人を特定できる場合、個人情報とみなされるとされています。
このように、ビッグデータを複数データを突合して作成しようとする場合、個人情報とみなされてデータの分析が制限されることがほとんどになります。

現状、個人情報は暗号化を行っても個人情報として扱われます。
つまり、今回の準同型暗号などで暗号化したデータであっても、第三者とデータの突合を行ったり、相関分析などによりマーケティングに活用するという行為を自由に行うことはできません。
暗号化はあくまでも安全措置として考慮されるべき要素であり、個人情報該当性には影響しないというのが現状です。


#### 情報法制研究所による法改正提言
これに対して、情報法制研究所は現行の個人情報保護法への提言をまとめ、秘密計算技術を用いた際のデータに対しての取扱を可能にするように動いています。あくまで秘密計算の結果として出力されるものは統計データとして扱われ、個人を特定するようなものではないときであったとしても、相関分析などには個人情報としての突合が必要となるため、そこの処理は秘密計算で行うことを認可してはどうか、ということです。
(詳しくは[JLIS 「個人情報保護制度の見直しに関する最終報告」に対する意見](https://www.jilis.org/proposal/pages/2021-01-15.html)　などをご覧ください。)


#### 各業界でのビッグデータ創出
また、医療分野に関しては、「次世代医療基盤法」により、製薬会社などの第三者企業が医療用ビッグデータを活用できるようなパイプラインづくりが進められ、昨年米国ファイザーが初めて活用を申請しました。
（[医療ビッグデータ法（次世代医療基盤法）の概要](http://www.miyauchi-law.com/f/170828iryobigdata.pdf) や、 [医療ビッグデータ、コロナ対策にも　匿名で共有・活用](https://style.nikkei.com/article/DGXKZO67998090Y1A100C2TCC000/?page=2)などをご覧ください。）

## 秘密計算周りの世の中の動向(企業、学術)

ビッグデータの活用、それに伴うデータの紐付け突合という操作は医療分野などではすでに業界単位で始まっており、
他の業界でもこれからそのような整備が行われていくものと思われます。
このときに、データの紐付けをより簡単、安全に行うために、秘密計算という技術が間に入っていくことは十分に予想されるものと思っています。

### 国内のニュース

#### 秘密計算研究会
デジタルガレージ、NEC,レピダムが２０２１年２月に秘密計算研究会というものを立ち上げ、今年の前半には秘密計算領域の安全性基準の初版を発行し、企業が活用する際の指標として役立てる、としています。
([ＮＥＣ、デジタルガレージおよびレピダムと「秘密計算研究会」を発足](https://finance.yahoo.co.jp/news/detail/20210222-00109395-mosf-stocks) などをご覧ください。)

#### 医療支援AI
また、NTT コミュニケーションと千葉大医学部附属病院が２１年２月に共同研究を発表し、医療情報を複数の施設から安全に収集し、分析できる医療支援AIシステムの構築を目指す、と発表しました。
([千葉大学病院とNTT Com、「秘密計算ディープラーニング」などの技術を活用した臨床データ分析の共同研究を開始](https://www.ntt.com/about-us/press-releases/news/article/2021/0208.html) などをご覧ください。)

#### ゲノム情報分析
更に、NEC と大阪大学がヒトゲノムデータなどを分散処理、処理結果のみを復元することで秘密計算を用いて解析するシステムを共同研究しており、２１年度での事業化を目標にして動いている、という記事も発表されています。
([NEC・大阪大学、複数機関が保有するゲノム情報をプライバシー侵害リスクを抑えて解析できることを実証](https://jpn.nec.com/press/201907/20190723_03.html) などをご覧ください。)


#### パーソナルデータとICデータの突合プロジェクト
秘密計算領域(主に準同型暗号)のスタートアップ　[EAGLYS](https://eaglys.co.jp/)のプレスリリースより。
([EAGLYS、「秘密計算 ×パーソナルデータ」で新たなデータビジネス創出に向けてJR東日本と協業開始](https://prtimes.jp/main/html/rd/p/000000018.000041103.html) などをご覧ください。)

#### 医療用データの秘密計算による分析
秘密計算領域(主に秘密分散)のスタートアップ [Acompany](https://acompany.tech/)のプレスリリースより。 
([三谷産業とAcompany、秘密計算を用いた統合分析の実証実験に成功](https://acompany.tech/news/successful_poc_with_mitani_sangyo/) などをご覧ください。)

#### セグエグループがZenmuTech に資本参加
秘密計算領域のビジネスを持つZenmuTechのプレスリリースより。
([セグエ、ＺｅｎｍｕＴｅｃｈの一部株式を取得し資本参加](https://kabushiki.jp/news/431014) などをご覧ください。)

### 海外のニュース

#### ハードウェア高速化への取り組み
準同型暗号のランタイム改善を目的とし、ハードウェアによる高速化を目指してMicrosoftとIntelが協力体制に入っていることなどは、ワクワクするニュースでした。
DARPA(Defense Advanced Research Projects Agency）の出資のもとプロジェクトを推進していくものと見られます。
後述しますが、ハードウェアによる高速化はこの数年で急速に進んでいくと思っています。
(記事は例えばこちらをご覧ください。[Intel と MicrosoftがDARPAプログラムで準同型暗号のハードウェア高速化を目指す](https://www.bloomberg.com/press-releases/2021-03-08/intel-to-collaborate-with-microsoft-on-darpa-program))


#### 準同型暗号の標準化委員会と学会
HomomorphicEncryption.org は、企業、政府機関、大学などの研究機関らの有志団体であり、
LWE問題によってセキュリティを担保する格子暗号を、既存の暗号と同じように標準化し、社会実装に対するハードルを下げようとしています。2018年に最初のドラフトがドキュメント化されましたが、そのときはCKKSスキームやTFHEスキームなどは対象外でした。現在バージョン2が作成途中であり、そこではCKKSスキームの標準化についても行われるとのことです。
秘密計算に関連する暗号技術の国際学会として、WAHCがあり、標準化委員会のメンバーも中心となっています。採用されている論文のうち、約半分は理論系、もう半分は実装系となっています。


https://homomorphicencryption.org/workshops/wahc20/


## 秘密計算関連の主要ライブラリ
秘密計算（準同型暗号、秘密分散）に関するOSSのライブラリも急速に整備が進んでいます。
それぞれ実装している暗号形式などが異なりますが、wikipediaに載っていたテーブルがとてもわかり易かったのでスクリーンショットを載せておきます。
この中で一番整備がされていて活発に開発が行われている物としては、Microsoft からの SEALライブラリが挙げられると思います。

![test1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/519792/19d3e69b-cfd6-9ab8-5982-7886379acbf7.png)



> https://en.wikipedia.org/wiki/Homomorphic_encryption

ここに載っていないもので言及するとすれば、

- アリババグループが開発しているライブラリ [OpenPEGASUS](https://github.com/Alibaba-Gemini-Lab/OpenPEGASUS)
- Zama AI が開発しているライブラリ　[concrete](https://github.com/zama-ai/concrete)
- Wei Dai さんらが開発したライブラリ　[cuHE](https://github.com/vernamlab/cuHE)

などが挙げられると思います。
これらのライブラリについては後述の「準同型暗号のこれから」で言及します。


## 秘密計算（準同型暗号）のこれから
世界でも秘密計算領域をビジネスドメインとするスタートアップ企業がいくつか誕生し、
日本でも数社のスタートアップ企業が見られます。
大手企業のMicrosoftや、NTT, NEC, デジタルガレージなども積極的に秘密計算を用いたデータ活用に取り組んでおり、これからより注目がなされていく分野であると考えています。

#### ハードウェアによる高速化
ここでは準同型暗号を対象として、これからの数年でどのような研究が進んでいくのかについて書いていきます。
結論から言うと、ハードウェアによる高速化が今から数年で進み、それが次のブレークスルーとなると考えています。
DARPAプロジェクトによりMicrosoftとIntelが本格的にASIC開発を始めた、という記事を上で紹介しましたが、それにより１０００倍やそれ以上（記事には１０万倍の高速化が見込まれるとあります）の高速化が図られれば、現実的なサービスにも問題なく応用されていくでしょう。
上のライブラリの章で取り上げたNucypherによるNuFHE やWeiさんなどによるcuHEなどでは、GPUによる高速化がすでに実装されており、根本となるパーツは揃っている状態です。



#### TFHEタイプの将来性

また、重点的に研究が進んでいく暗号形式としては大きく分ければ

- BFVやCKKSタイプ
- TFHEタイプ

が挙げられるでしょう。
これらの暗号スキームは使いやすく、ユースケースとして画像認識やマーケティングなどに使われるSaaS型のAIサービスの秘密計算状態での実行、がビジネス的にも一番大きいでしょう。
AIモデルの準同型暗号での実装は、今までは速度面の制約から、SIMD計算が可能なBFV、CKKSを用いた実装がほとんどでした。
しかしながら、非線形関数の取扱が非常に難しく、一時的な復号もしくは近似を用いる手法しか使えない、といった実装上の苦しみがありました。
そういう面で ZamaAI が発表したTFHEの亜種(TFHE Variant)による[Programmable Bootstrap](https://eprint.iacr.org/2021/091.pdf)は非常に画期的で、TFHEタイプの将来性を一段階引き上げてくれました。
これから両スキーム共に研究されていくことは間違いないですし、実装上の使い分けは重要になると考えますが、高速化、GPUなどでの数千コアでの並列化などが整備された場合TFHEタイプの方が魅力的になるのではないかと感じているところです。

また、これらのスキームをつなぐ　[キメラ手法](https://eprint.iacr.org/2018/758.pdf)　を部分的に実装しようとしているのが先述の[OpenPEGASUS](https://github.com/Alibaba-Gemini-Lab/OpenPEGASUS) です。
キメラ手法に関しては暗号形式を暗号状態のまま行き来できる実装が可能であればとても魅力的だと思う一方で、TFHEが　[Programmable Bootstrap](https://eprint.iacr.org/2021/091.pdf)　の実装が高速化された場合、TFHEだけで完結するような気もしています。

## 自社 としての取り組み

秘密計算を活用したDBソリューション、
また、AIソリューションを展開し、
ユーザーが扱いやすいプロキシ型のソフトウェアを提供しています。
https://gitlab.com/dataarmor-open/cf-inference-tutorial
上にGateDB,AIへのAPIアクセスデモコードなどを載せています。

これらは yahoo! hack day 2021 にて、技術提供をしました。
(こちらをご覧ください。https://hackday.jp/#Technologies)


また、上記のWHAC20に向けて論文を執筆しましたが、今回はレビューにて落選となってしまいました。
非常に悔しかったですが、またリベンジできたらと思っています。
内容は、SEALライブラリをバックエンドとし、ニューラルネットの学習を暗号状態で行った実装論文です。
アーカイブに載せているので興味のある方はご覧ください。
https://arxiv.org/abs/2012.13552?fbclid=IwAR3JGv0TYWdO4c7dKG-uZHeMIMNKIIjocWVM7aOnwbb4Ofk0iOumOtwpA5M


## まとめ
今回は研究のこれからの動向などについて、最近のニュースや論文、ライブラリの実装状況からまとめを書いてみました。
理論方面での研究動向には言及しませんでしたが、理論の観点からもなにかブレークスルーがもしかすると起こるかもしれません。それも楽しみです。

今回はこの辺で。
kenmaro