Upgrade to Pro — share decks privately, control downloads, hide ads and more …

準同型暗号による バーチャルセキュアプラットフォーム の開発/Development of Virtual Secure Platform

9fe4381a03354f15872004472aa8da72?s=47 nindanaoto
February 16, 2020

準同型暗号による バーチャルセキュアプラットフォーム の開発/Development of Virtual Secure Platform

Run your encrypted C code AS IS!
https://github.com/virtualsecureplatform/kvsp

9fe4381a03354f15872004472aa8da72?s=128

nindanaoto

February 16, 2020
Tweet

More Decks by nindanaoto

Other Decks in Research

Transcript

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

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

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

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

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

  6. None
  7. 未踏ロゴ反転デモ

  8. 平文 暗号化済み ROMダンプ

  9. 平 文 暗 号 化 済 み

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

  11. 通常のプログラム実行 実行バイナリ CPU 結果 コンパイラ によって生成 実行バイナリ を読み込み実行 結果を出力 101011100....

    0100110100.... 画像出典:https://www.rockpapershotgun.com/2019/08/12/best-gaming-cpu-2019-2/
  12. CPU内部の論理回路(一部) プ ロ グ ラ ム 結 果

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

    号 化 さ れ た プ ロ グ ラ ム ? ? ? ?
  14. 暗号化されたままで等価な処理を行う技術 準同型暗号

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

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

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

    号 化 さ れ た プ ロ グ ラ ム
  18. None
  19. 物理的論理ゲート 準同型暗号 課題:準同型暗号の遅さ

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

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

    kvsp github
  22. VSP; Virtual Secure Platform

  23. KVSPデモ

  24. KVSPデモ

  25. KVSPデモ

  26. KVSPデモ

  27. KVSPデモ

  28. KVSPデモ

  29. KVSPデモ

  30. KVSPデモ

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

  32. KVSPデモ

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

  34. VSPの現状性能 • 約5.5秒/クロック on V100 • 約1.5秒/クロック on V100 x

    8 • ROM・RAM:512バイトずつ コンピュータ黎明期の性能に相当
  35. KVSPデモ

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

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

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

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

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

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

  42. None
  43. CAHPv3 Diamond Iyokan LLVM TFHE

  44. TFHE; Torus Fully Homomorphic Encryption • 使用している準同型暗号 • CPU向けはフルスクラッチ(TFHEpp) •

    GPUは修正版(cuFHE)
  45. CAHPv3 • CPUの上で動く独自命令セット • 16bitアーキテクチャ • 16/24bit可変長命令 • 実行バイナリサイズが小さい

  46. CPU実装 VSP (Diamond) ARM Cortex M0+ • 独自開発のCPU • CAHPv3準拠

    • 約 4,000 ゲート • IoT向けCPU • ARMv6-M準拠 • 約 12,000 ゲート
  47. Cコンパイラ実装 • LLVMをベースにCAHPv3に対応 • LLVMの最適化フェーズを利用 ◦ 実行バイナリの効率化 ◦ 実行バイナリサイズの低減

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

  49. None
  50. None