$30 off During Our Annual Pro Sale. View Details »

秘密計算勉強会#1資料/TEE・マルチパーティ計算・完全準同型暗号

 秘密計算勉強会#1資料/TEE・マルチパーティ計算・完全準同型暗号

秘密計算勉強会で使用した資料です。
- 秘密計算
- TEE
- マルチパーティ計算(Multi-party Computation)
- 完全準同型暗号(Fully Homomorphic Encryption)
- JIFF

https://secure-computing.connpass.com/event/183355/

Takeharu-K

July 31, 2020
Tweet

More Decks by Takeharu-K

Other Decks in Technology

Transcript

  1. 秘密計算勉強会#1
    株式会社Acompany
    近藤

    View Slide

  2. Strictly Confiden/al
    Copyright©株式会社Acompany All rights reserved.
    ⾃⼰紹介
    近藤 岳晴 (25)
    @TakeItHaru
    n 株式会社 Acompany
    - 取締役 CTO
    n 経歴
    - 名古屋のIT系ベンチャーでインターン
    - 名古屋⼯業⼤学 情報⼯学専攻修了
    - 在学中に株式会社AcompanyでCTO就任
    - 秘密計算ソフトウェア SeDi を開発

    View Slide

  3. なめらかなデータ活⽤社会を創る
    Evolve Data into Value
    Strictly Confidential
    Copyright©株式会社Acompany All rights reserved.

    View Slide

  4. 会社概要 –Company profile-
    「データを出したくないが、活⽤したい!」に応える
    秘密計算 AI
    Strictly Confidential
    Copyright©株式会社Acompany All rights reserved.
    ×
    データ保護AIの開発
    マルチパーティ計算
    秘密分散
    機械学習

    View Slide

  5. データを暗号化したまま
    セキュアなデータ活⽤を実現する
    Strictly Confidential
    Copyright©株式会社Acompany All rights reserved.

    View Slide

  6. Strictly Confiden/al
    Copyright©株式会社Acompany All rights reserved.
    秘密計算勉強会とは︖
    秘密計算に関して知⾒を深めるグループ
    知識共有やハンズオンを⾏う
    不定期開催
    主に以下のトピックを扱う
    - 秘密計算
    - プライバシー保護AI
    - データ保護AI
    - マルチパーティ計算
    - 完全準同型暗号
    - Secure Computing
    - Multi-party Computation
    - Trusted Execution Environment
    - Fully Homomorphic Encryption

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 秘密計算とは︖

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. MPCの実現⽅法は︖

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  20. 秘密分散法をより詳しく

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27. 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等を使う

    View Slide

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

    View Slide

  29. 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) の場合

    View Slide

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

    View Slide

  31. 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)

    View Slide

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

    View Slide

  33. 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次元多項式に変化

    View Slide

  34. 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点が必要

    View Slide

  35. 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)
    乗算も実現できた

    View Slide

  36. 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
    乗算ができた︕

    View Slide

  37. 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を満たす場合

    View Slide

  38. 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

    View Slide

  39. 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

    View Slide

  40. 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

    View Slide

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

    View Slide

  42. ハンズオン
    MPCのソフトウェアを
    触ってみよう︕

    View Slide