Slide 1

Slide 1 text

準同型暗号による バーチャルセキュアプラットフォーム の開発 松岡 航太郎 伴野 良太郎 松本 直樹 京都大学工学部 B3

Slide 2

Slide 2 text

通常のクラウドコンピューティング プログラムは平文で実行される

Slide 3

Slide 3 text

悪意ある第三者によって盗聴される恐れ (ハードウェアのバス信号を読むなど) 通常手法の問題点

Slide 4

Slide 4 text

提案手法:Virtual Secure Platform(VSP) プログラムを含めすべて暗号化した状態で実行  盗聴自体を無効化する

Slide 5

Slide 5 text

VSPの特徴 ● プログラム・データすべてを暗号化 した状態で実行可能 ● 数学的安全性の保証 ● C言語による記述が可能 本プロジェクトが世界で初めて実現

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

未踏ロゴ反転デモ

Slide 8

Slide 8 text

平文 暗号化済み ROMダンプ

Slide 9

Slide 9 text

平 文 暗 号 化 済 み

Slide 10

Slide 10 text

暗号化されたプログラムを どのように実行するか?

Slide 11

Slide 11 text

通常のプログラム実行 実行バイナリ CPU 結果 コンパイラ によって生成 実行バイナリ を読み込み実行 結果を出力 101011100.... 0100110100.... 画像出典:https://www.rockpapershotgun.com/2019/08/12/best-gaming-cpu-2019-2/

Slide 12

Slide 12 text

CPU内部の論理回路(一部) プ ロ グ ラ ム 結 果

Slide 13

Slide 13 text

暗号化されたプログラムを実行するには? 暗 号 化 さ れ た 結 果 暗 号 化 さ れ た プ ロ グ ラ ム ? ? ? ?

Slide 14

Slide 14 text

暗号化されたままで等価な処理を行う技術 準同型暗号

Slide 15

Slide 15 text

準同型暗号 暗号化された0と1に対して平文時と等価な処理を行う

Slide 16

Slide 16 text

暗号化されたプログラムを実行するには? 暗 号 化 さ れ た 結 果 暗 号 化 さ れ た プ ロ グ ラ ム ? ? ? ?

Slide 17

Slide 17 text

暗号化されたプログラムを実行するには? 暗 号 化 さ れ た 結 果 暗 号 化 さ れ た プ ロ グ ラ ム

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

物理的論理ゲート 準同型暗号 課題:準同型暗号の遅さ

Slide 20

Slide 20 text

課題に対する解決策 準同型暗号・CPU設計・コンパイラを 全ての面から最適化 本プロジェクトが世界で初めて実現

Slide 21

Slide 21 text

KVSP (Kyoto Virtual Secure Platform) ● VSPのリファレンス実装 ● KVSPをビルドすれば必要な全ての サブプロジェクトがビルドされる kvsp github

Slide 22

Slide 22 text

VSP; Virtual Secure Platform

Slide 23

Slide 23 text

KVSPデモ

Slide 24

Slide 24 text

KVSPデモ

Slide 25

Slide 25 text

KVSPデモ

Slide 26

Slide 26 text

KVSPデモ

Slide 27

Slide 27 text

KVSPデモ

Slide 28

Slide 28 text

KVSPデモ

Slide 29

Slide 29 text

KVSPデモ

Slide 30

Slide 30 text

KVSPデモ

Slide 31

Slide 31 text

TFHE; Torus Fully Homomorphic Encryption ● 使用している準同型暗号 ● 既存実装を高速化 https://tfhe.github.io/tfhe/

Slide 32

Slide 32 text

KVSPデモ

Slide 33

Slide 33 text

CAHPv3 / cahp-diamond ● VSPに使用している 独自命令セット/独自CPU設計 ● ゲート数を削減し高速化

Slide 34

Slide 34 text

VSPの現状性能 ● 約5.5秒/クロック on V100 ● 約1.5秒/クロック on V100 x 8 ● ROM・RAM:512バイトずつ コンピュータ黎明期の性能に相当

Slide 35

Slide 35 text

KVSPデモ

Slide 36

Slide 36 text

Fully Open Source! ● 成果物は全てGitHubで公開中 ● ライセンスはApache-2.0など https://github.com/virtualsecureplatform kvsp github

Slide 37

Slide 37 text

今後の展望 ● 論文発表 ● ハードウェアアクセラレータ ● Multi Keyへの拡張

Slide 38

Slide 38 text

VSPの未来 ● VSPは黎明期のコンピュータ ● プログラム秘匿は無二の価値 ● 演算器集積による性能向上 ● 数十年後の普及

Slide 39

Slide 39 text

謝辞 GPU 版の開発にあたって さくらインターネット株式会社様より 高火力コンピューティング をお貸しいただきました。

Slide 40

Slide 40 text

ご清聴ありがとうございました VSPは ● プログラム・データすべてを 暗号化した状態で実行可能 ● 数学的安全性の保障 ● C言語による記述が可能

Slide 41

Slide 41 text

計算量的安全性 ● 古典的コンピュータ 154bit ● 量子コンピュータ 95bit

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

CAHPv3 Diamond Iyokan LLVM TFHE

Slide 44

Slide 44 text

TFHE; Torus Fully Homomorphic Encryption ● 使用している準同型暗号 ● CPU向けはフルスクラッチ(TFHEpp) ● GPUは修正版(cuFHE)

Slide 45

Slide 45 text

CAHPv3 ● CPUの上で動く独自命令セット ● 16bitアーキテクチャ ● 16/24bit可変長命令 ● 実行バイナリサイズが小さい

Slide 46

Slide 46 text

CPU実装 VSP (Diamond) ARM Cortex M0+ ● 独自開発のCPU ● CAHPv3準拠 ● 約 4,000 ゲート ● IoT向けCPU ● ARMv6-M準拠 ● 約 12,000 ゲート

Slide 47

Slide 47 text

Cコンパイラ実装 ● LLVMをベースにCAHPv3に対応 ● LLVMの最適化フェーズを利用 ○ 実行バイナリの効率化 ○ 実行バイナリサイズの低減

Slide 48

Slide 48 text

Iyokan ● 準同型暗号ゲートの並列実行基盤 ● 回路情報を読み込み実行する ● CPU(TFHEpp)/GPU(cuFHE)に対応 ● 回路情報変換部(L1)・並列実行部 ※回路の合成はyosysを利用

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content