Slide 1

Slide 1 text

秘密計算のお気持ちを理解する 株式会社Acompany 近藤

Slide 2

Slide 2 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. ⾃⼰紹介 近藤 岳晴 (27) @TakeItHaru n 株式会社Acompany - 取締役 CTO n 経歴 - 名古屋のIT系ベンチャーDUO(現ZIZAI)でインターン - 名古屋⼯業⼤学 情報⼯学専攻修了 - 在学中に株式会社Acompanyの第2創業期に参画 - Acompanyの取締役CTO就任 - 複数の事業ピボットを経てプライバシーテック事業へ - 秘密計算エンジン「QuickMPC」を開発継続中 ■ 趣味 - 遊戯王ガチ勢(勇者エルドリッチ) - バイク旅(DUCATI Monster 821) - ⾃転⾞旅(Cannondale CAAD8 SORA)

Slide 3

Slide 3 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. Lightning Acompanyとは︖ 毎週⽉曜⽇17:00 – 18:00開催 ⾶び⼊りLT登壇もOK トピック例 - 秘密計算 - プライバシー強化技術 - 各種⾔語関連の話題 - C++ - Golang - TypeScript/JavaScript - Python - Rust?? - ソフトウェア開発関連の話題 - Docker/gRPC - その他開発にまつわるお話し Acompanyの開発チームLT会をベースに技術イベントにしたもの

Slide 4

Slide 4 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. コンテンツ • 秘密計算とは︖ • TEE • 完全準同型暗号 • MPC • MPCの実現⽅法は︖ • 秘密分散法 • Garbled Circuit • 秘密分散法を詳しく • 加法的秘密分散法 • シャミア秘密分散法 • Beaver’s Trick • ハンズオン • MPCのOSSを使ってみよう︕

Slide 5

Slide 5 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. コンテンツの構成 秘密計算 完全準同型暗号 TEE MPC 秘密分散法 加法的秘密分散法 シャミア秘密分散法 Beaver's Trick Garbled Circuit

Slide 6

Slide 6 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. コンテンツの構成 秘密計算 完全準同型暗号 TEE MPC 秘密分散法 加法的秘密分散法 シャミア秘密分散法 Beaver's Trick Garbled Circuit

Slide 7

Slide 7 text

秘密計算とは︖

Slide 8

Slide 8 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 秘密計算とは 暗号化したままのデータを⽤いて計算を⾏う技術の総称 Secure Compu6ng とも呼ばれる データが外部に漏れずに計算ができればOK

Slide 9

Slide 9 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 秘密計算を実現する技術 秘密計算 完全準同型暗号 TEE MPC 秘密分散法 加法的秘密分散法 シャミア秘密分散法 Beaver's Trick Garbled Circuit

Slide 10

Slide 10 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 完全準同型暗号(Fully Homomorphic Encryption) 特殊な公開鍵暗号による暗号化をすると 暗号化したデータに対して加算と乗算ができる

Slide 11

Slide 11 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. TEE(Trusted Execution Environment) 特殊なCPUからの命令しか受け付けない暗号化領域を⽤意して データの中⾝を外部に知られることなく計算ができる

Slide 12

Slide 12 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. MPC(Multi-party Computation) 特殊な⽅法で分散させたデータに対して複数のマシンが加算と乗算を⾏う ⼀定数の分散データを集めないと中⾝はわからない

Slide 13

Slide 13 text

MPCの実現⽅法は︖

Slide 14

Slide 14 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. MPCを実現する技術 秘密計算 完全準同型暗号 TEE MPC 秘密分散法 加法的秘密分散法 シャミア秘密分散法 Beaver's Trick Garbled Circuit

Slide 15

Slide 15 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 秘密分散法 秘密分散の⽅法によっては加算と乗算が可能

Slide 16

Slide 16 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. Garbled Circuit 2者間でブール回路を実⾏して結果だけを得る⽅法 ⼊⼒が分からないように特殊な回路を使って実⾏する Alice Bob F(a, b) a b GC

Slide 17

Slide 17 text

秘密分散法をより詳しく

Slide 18

Slide 18 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 秘密分散法の種類 秘密計算 完全準同型暗号 TEE MPC 秘密分散法 加法的秘密分散法 シャミア秘密分散法 Beaver's Trick Garbled Circuit

Slide 19

Slide 19 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 加法的秘密分散法 5 8 - 10 +15 5 = -10 + 15 + 6 + 2 8 = 6 + 2 秘密にしたい数字を⾜し算で表現できる値に分割する

Slide 20

Slide 20 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. + 6 - 10 加法的秘密分散法 5 8 +15 + 2 分割した値を1つ交換する

Slide 21

Slide 21 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. + 6 - 10 加法的秘密分散法 5 8 +15 + 2 それぞれが⾜し算を⾏ってみる = = +21 - 8

Slide 22

Slide 22 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 加法的秘密分散法 5 8 +21 - 8 それぞれが⾜し算を⾏ってみる

Slide 23

Slide 23 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 加法的秘密分散法 5 8 +21 - 8 結果を⾜してみる 21 - 8 = 13

Slide 24

Slide 24 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. 加法的秘密分散法 5 8 +21 - 8 加法の結合法則と交換法則より明らかに加法が成⽴する 5 + 8 = (-10 + 15) + (6 + 2) = (6 + 15) + (2 - 10) = 13 乗算は普通にはできない 後述するBeaver‘s Trick等を使う

Slide 25

Slide 25 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. シャミア秘密分散法 h"ps://mathtrain.jp/shamir 秘密にしたい情報を多項式の切⽚に埋め込む⽅法 f(0) = 秘密情報 となるような多項式を適当に作る 多項式上の点 (i, f(i)) ただし i = 1,2,...,n を分割した値とする 復号には多項式の次数+1 個の点を集めれば良い

Slide 26

Slide 26 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. シャミア秘密分散法 f(1) f(2) g(1) g(2) 分割した値を交換する f(0) g(0) 1次元多項式f(x), g(x) の場合

Slide 27

Slide 27 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. g(1) f(2) シャミア秘密分散法 f(1) g(2) 分割した値を交換する f(0) g(0)

Slide 28

Slide 28 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. g(1) f(2) シャミア秘密分散法 f(1) g(2) 加算を実⾏してみる f(0) g(0) = = h(1) h(2) h(x) = f(x) + g(x)

Slide 29

Slide 29 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. f(0) g(0) シャミア秘密分散法 h(1) h(2) h(1) とh(2) からh(0) が復元できる h(0) 加算が実現できる

Slide 30

Slide 30 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. g(1) f(2) シャミア秘密分散法 f(1) g(2) 乗算をしてみる f(0) g(0) = = h(1) h(2) h(x) = f(x)g(x) 2次元多項式に変化

Slide 31

Slide 31 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. f(0) g(0) シャミア秘密分散法 h(1) h(2) h(1) とh(2) からh(0) は復元できない h(0) h(x)が2次元多項式になっているので 3点が必要

Slide 32

Slide 32 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. シャミア秘密分散法 f(1) f(2) g(1) g(2) 分割数を3にしておけば乗算しても復元可能になる f(0) g(0) 1次元多項式f(x), g(x) f(3) g(3) 乗算も実現できた

Slide 33

Slide 33 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. Beaverʼs Trick • 秘密分散法で効率的に乗算を⾏うために考え出された技 • 加法的秘密分散法でも、シャミア秘密分散法でも使⽤できる • ⽅法 • c = ab となる a, b, c の値を事前に分割しておく • 参加者は a, b, c の分割した値をそれぞれが保持しておく • 参加者 X,Y は秘密情報 x, y を2つに分割した値 x1, x2, y1, y2 を持っているとする • 各参加者が以下を計算する • X: d1 = x1 - a1, e1 = y1 – b1 • Y: d2 = x2 - a2, e2 = y2 – b2 • d, e を復元し、以下を計算する • X: z1 = e*a1 + d*b1 + c1 + d*e • Y: z2 = e*a2 + d*b2 + c2 + d*e • この時 z1, z2 から復元できる z は z = xy を満たす • z = e*a + d*b + c + d*e = (y - b)a + (x - a)b + ab + (x - a)(y - b) = xy 乗算ができた︕

Slide 34

Slide 34 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. Beaverʼs Trick x1 y1 x2 y2 乗算を⾏う前の初期状態 x y a1 a2 b1 c1 b2 c2 c = abを満たす場合

Slide 35

Slide 35 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. Beaverʼs Trick x1 y1 x2 y2 d, e を計算した状態 x y a1 a2 b1 c1 b2 c2 d1 e1 d2 e2 d2 = x2 - a2, e2 = y2 – b2 d1 = x1 - a1, e1 = y1 – b1

Slide 36

Slide 36 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. Beaverʼs Trick x1 y1 x2 y2 d, e を復元した状態 x y a1 a2 b1 c1 b2 c2 d e d e

Slide 37

Slide 37 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. Beaverʼs Trick x1 y1 x2 y2 z の計算を⾏った状態 x y z1 z2 z = x*y を満たすので 乗算が実現できた z1 = e*a1 + d*b1 + c1 + d*e z2 = e*a2 + d*b2 + c2 + d*e

Slide 38

Slide 38 text

Strictly Confiden/al Copyright©株式会社Acompany All rights reserved. まとめ • 秘密計算 • 暗号化したまま計算を⾏う技術の総称 • 完全準同型暗号 • 準同型性を持った公開鍵暗号によって実現 • TEE • メモリ上に暗号化領域を作って実現 • MPC • 秘密分散法とGCで実現 • 秘密分散は加法的、シャミアの2つ • Beaver’s Trick で乗算を効率化 秘密計算 完全準同型暗号 TEE MPC 秘密分散法 加法的秘密分散法 シャミア秘密分散法 Beaver's Trick Garbled Circuit