Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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