Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
準同型暗号による バーチャルセキュアプラットフォーム の開発/Development of V...
Search
nindanaoto
February 16, 2020
Research
3
2k
準同型暗号による バーチャルセキュアプラットフォーム の開発/Development of Virtual Secure Platform
Run your encrypted C code AS IS!
https://github.com/virtualsecureplatform/kvsp
nindanaoto
February 16, 2020
Tweet
Share
More Decks by nindanaoto
See All by nindanaoto
準同型暗号による バーチャルセキュアプラットフォーム の開発
nindanaoto
1
340
TFHEのための多項式乗算入門
nindanaoto
2
1.1k
Other Decks in Research
See All in Research
情報技術の社会実装に向けた応用と課題:ニュースメディアの事例から / appmech-jsce 2025
upura
0
240
ウェブ・ソーシャルメディア論文読み会 第31回: The rising entropy of English in the attention economy. (Commun Psychology, 2024)
hkefka385
1
110
Galileo: Learning Global & Local Features of Many Remote Sensing Modalities
satai
3
410
RHO-1: Not All Tokens Are What You Need
sansan_randd
1
200
Learning to (Learn at Test Time): RNNs with Expressive Hidden States
kurita
1
280
Submeter-level land cover mapping of Japan
satai
3
470
大学見本市2025 JSTさきがけ事業セミナー「顔の見えないセンシング技術:多様なセンサにもとづく個人情報に配慮した人物状態推定」
miso2024
0
170
なめらかなシステムと運用維持の終わらぬ未来 / dicomo2025_coherently_fittable_system
monochromegane
0
4.5k
一人称視点映像解析の最先端(MIRU2025 チュートリアル)
takumayagi
6
4k
Combining Deep Learning and Street View Imagery to Map Smallholder Crop Types
satai
3
150
「どう育てるか」より「どう働きたいか」〜スクラムマスターの最初の一歩〜
hirakawa51
0
990
まずはここから:Overleaf共同執筆・CopilotでAIコーディング入門・Codespacesで独立環境
matsui_528
2
680
Featured
See All Featured
Bash Introduction
62gerente
615
210k
Testing 201, or: Great Expectations
jmmastey
46
7.7k
Site-Speed That Sticks
csswizardry
13
950
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Fireside Chat
paigeccino
41
3.7k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
660
Optimizing for Happiness
mojombo
379
70k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Music & Morning Musume
bryan
46
6.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Transcript
準同型暗号による バーチャルセキュアプラットフォーム の開発 松岡 航太郎 伴野 良太郎 松本 直樹 京都大学工学部 B3
通常のクラウドコンピューティング プログラムは平文で実行される
悪意ある第三者によって盗聴される恐れ (ハードウェアのバス信号を読むなど) 通常手法の問題点
提案手法:Virtual Secure Platform(VSP) プログラムを含めすべて暗号化した状態で実行 盗聴自体を無効化する
VSPの特徴 • プログラム・データすべてを暗号化 した状態で実行可能 • 数学的安全性の保証 • C言語による記述が可能 本プロジェクトが世界で初めて実現
None
未踏ロゴ反転デモ
平文 暗号化済み ROMダンプ
平 文 暗 号 化 済 み
暗号化されたプログラムを どのように実行するか?
通常のプログラム実行 実行バイナリ CPU 結果 コンパイラ によって生成 実行バイナリ を読み込み実行 結果を出力 101011100....
0100110100.... 画像出典:https://www.rockpapershotgun.com/2019/08/12/best-gaming-cpu-2019-2/
CPU内部の論理回路(一部) プ ロ グ ラ ム 結 果
暗号化されたプログラムを実行するには? 暗 号 化 さ れ た 結 果 暗
号 化 さ れ た プ ロ グ ラ ム ? ? ? ?
暗号化されたままで等価な処理を行う技術 準同型暗号
準同型暗号 暗号化された0と1に対して平文時と等価な処理を行う
暗号化されたプログラムを実行するには? 暗 号 化 さ れ た 結 果 暗
号 化 さ れ た プ ロ グ ラ ム ? ? ? ?
暗号化されたプログラムを実行するには? 暗 号 化 さ れ た 結 果 暗
号 化 さ れ た プ ロ グ ラ ム
None
物理的論理ゲート 準同型暗号 課題:準同型暗号の遅さ
課題に対する解決策 準同型暗号・CPU設計・コンパイラを 全ての面から最適化 本プロジェクトが世界で初めて実現
KVSP (Kyoto Virtual Secure Platform) • VSPのリファレンス実装 • KVSPをビルドすれば必要な全ての サブプロジェクトがビルドされる
kvsp github
VSP; Virtual Secure Platform
KVSPデモ
KVSPデモ
KVSPデモ
KVSPデモ
KVSPデモ
KVSPデモ
KVSPデモ
KVSPデモ
TFHE; Torus Fully Homomorphic Encryption • 使用している準同型暗号 • 既存実装を高速化 https://tfhe.github.io/tfhe/
KVSPデモ
CAHPv3 / cahp-diamond • VSPに使用している 独自命令セット/独自CPU設計 • ゲート数を削減し高速化
VSPの現状性能 • 約5.5秒/クロック on V100 • 約1.5秒/クロック on V100 x
8 • ROM・RAM:512バイトずつ コンピュータ黎明期の性能に相当
KVSPデモ
Fully Open Source! • 成果物は全てGitHubで公開中 • ライセンスはApache-2.0など https://github.com/virtualsecureplatform kvsp github
今後の展望 • 論文発表 • ハードウェアアクセラレータ • Multi Keyへの拡張
VSPの未来 • VSPは黎明期のコンピュータ • プログラム秘匿は無二の価値 • 演算器集積による性能向上 • 数十年後の普及
謝辞 GPU 版の開発にあたって さくらインターネット株式会社様より 高火力コンピューティング をお貸しいただきました。
ご清聴ありがとうございました VSPは • プログラム・データすべてを 暗号化した状態で実行可能 • 数学的安全性の保障 • C言語による記述が可能
計算量的安全性 • 古典的コンピュータ 154bit • 量子コンピュータ 95bit
None
CAHPv3 Diamond Iyokan LLVM TFHE
TFHE; Torus Fully Homomorphic Encryption • 使用している準同型暗号 • CPU向けはフルスクラッチ(TFHEpp) •
GPUは修正版(cuFHE)
CAHPv3 • CPUの上で動く独自命令セット • 16bitアーキテクチャ • 16/24bit可変長命令 • 実行バイナリサイズが小さい
CPU実装 VSP (Diamond) ARM Cortex M0+ • 独自開発のCPU • CAHPv3準拠
• 約 4,000 ゲート • IoT向けCPU • ARMv6-M準拠 • 約 12,000 ゲート
Cコンパイラ実装 • LLVMをベースにCAHPv3に対応 • LLVMの最適化フェーズを利用 ◦ 実行バイナリの効率化 ◦ 実行バイナリサイズの低減
Iyokan • 準同型暗号ゲートの並列実行基盤 • 回路情報を読み込み実行する • CPU(TFHEpp)/GPU(cuFHE)に対応 • 回路情報変換部(L1)・並列実行部 ※回路の合成はyosysを利用
None
None