加法秘密共享(Additive Secret Sharing)和加法共享上的乘法运算(mulplication on two additives shares)

文章目录

  • Additive Secret Sharing 加法秘密共享
  • mulplication on two additives shares 加法共享上的乘法运算

Additive Secret Sharing 加法秘密共享

假设数据拥有者有一个数据x,现在将x秘密共享给两个服务器A, B,服务器A随机得到 ⟨ x ⟩ A \langle x \rangle^A xA ⟨ x ⟩ B ← x − ⟨ x ⟩ A \langle x \rangle^B \leftarrow x-\langle x \rangle^A xBxxA,用 ⟨ x ⟩ \langle x \rangle x来表示 x x x的共享。
想要恢复数据的时候,一方将自己的数据发给另一方,或者将数据一起发给第三方(具体根据隐私需求来定)。

mulplication on two additives shares 加法共享上的乘法运算

input
A ⟨ x ⟩ A \langle x \rangle^A xA ⟨ y ⟩ A \langle y \rangle^A yA
B ⟨ x ⟩ B \langle x \rangle^B xB ⟨ x ⟩ B \langle x \rangle^B xB
output
A ⟨ z ⟩ A \langle z \rangle^A zA
B ⟨ z ⟩ B \langle z \rangle^B zB
s.t. ⟨ z ⟩ A + ⟨ z ⟩ B = z = x ∗ y \langle z \rangle^A+\langle z \rangle^B =z=x*y zA+zB=z=xy ⟨ x ⟩ , ⟨ y ⟩ \langle x \rangle,\langle y \rangle x,y是隐私数据,不能泄露
方案

  1. 准备一个三元组 ( a , b , c = a ∗ b ) (a, b, c=a*b) (a,b,c=ab) a , b a, b a,b是随机选择的。然后将 ( a , b , c = a ∗ b ) (a, b, c=a*b) (a,b,c=ab)加法共享给A,B。三元组的可以由可信第三方生成或者是两方执行OT。
  2. A ⟨ x ⟩ A \langle x \rangle^A xA ⟨ y ⟩ A \langle y \rangle^A yA, ⟨ a ⟩ A \langle a \rangle^A aA, ⟨ b ⟩ A \langle b \rangle^A bA, ⟨ c ⟩ A \langle c \rangle^A cA
    B ⟨ x ⟩ B \langle x \rangle^B xB ⟨ x ⟩ B \langle x \rangle^B xB, ⟨ a ⟩ B \langle a \rangle^B aB, ⟨ b ⟩ B \langle b \rangle^B bB, ⟨ c ⟩ B \langle c \rangle^B cB
    两方各自计算自己的 ⟨ e ⟩ = ⟨ x ⟩ − ⟨ a ⟩ , ⟨ f ⟩ = ⟨ y ⟩ − ⟨ b ⟩ \langle e \rangle=\langle x \rangle-\langle a \rangle, \langle f \rangle=\langle y \rangle-\langle b \rangle e=xa,f=yb用来盲化 ⟨ x ⟩ , ⟨ y ⟩ \langle x \rangle, \langle y \rangle x,y
  3. A ⟨ x ⟩ A \langle x \rangle^A xA ⟨ y ⟩ A \langle y \rangle^A yA, ⟨ a ⟩ A \langle a \rangle^A aA, ⟨ b ⟩ A \langle b \rangle^A bA, ⟨ c ⟩ A \langle c \rangle^A cA, ⟨ e ⟩ A \langle e \rangle^A eA, ⟨ f ⟩ A \langle f \rangle^A fA
    B ⟨ x ⟩ B \langle x \rangle^B xB ⟨ x ⟩ B \langle x \rangle^B xB, ⟨ a ⟩ B \langle a \rangle^B aB, ⟨ b ⟩ B \langle b \rangle^B bB, ⟨ c ⟩ B \langle c \rangle^B cB, ⟨ e ⟩ B \langle e \rangle^B eB, ⟨ f ⟩ B \langle f \rangle^B fB
    两方共享自己的 ⟨ e ⟩ , ⟨ f ⟩ \langle e \rangle, \langle f \rangle e,f,计算出 e , f e, f e,f,这样就避免直接暴漏 ⟨ x ⟩ , ⟨ y ⟩ \langle x \rangle, \langle y \rangle x,y
    4.A ⟨ x ⟩ A \langle x \rangle^A xA ⟨ y ⟩ A \langle y \rangle^A yA, ⟨ a ⟩ A \langle a \rangle^A aA, ⟨ b ⟩ A \langle b \rangle^A bA, ⟨ c ⟩ A \langle c \rangle^A cA, ⟨ e ⟩ \langle e \rangle e, ⟨ f ⟩ \langle f \rangle f
    B ⟨ x ⟩ B \langle x \rangle^B xB ⟨ x ⟩ B \langle x \rangle^B xB, ⟨ a ⟩ B \langle a \rangle^B aB, ⟨ b ⟩ B \langle b \rangle^B bB, ⟨ c ⟩ B \langle c \rangle^B cB, ⟨ e ⟩ \langle e \rangle e, ⟨ f ⟩ \langle f \rangle f
    计算
    ⟨ z ⟩ A = f ∗ ⟨ a ⟩ A + e ∗ ⟨ b ⟩ A + ⟨ c ⟩ A \langle z \rangle^A=f*\langle a \rangle^A+e*\langle b \rangle^A+\langle c \rangle^A zA=faA+ebA+cA
    ⟨ z ⟩ B = e ∗ f + f ∗ ⟨ a ⟩ B + e ∗ ⟨ b ⟩ B + ⟨ c ⟩ B \langle z \rangle^B=e*f+f*\langle a \rangle^B+e*\langle b \rangle^B+\langle c \rangle^B zB=ef+faB+ebB+cB

验证:
⟨ z ⟩ A + ⟨ z ⟩ B = e ∗ f + f ∗ a + e ∗ b + c \langle z \rangle^A+\langle z \rangle^B=e*f+f*a+e*b+c zA+zB=ef+fa+eb+c
( x − a ) ∗ ( y − b ) + ( y − b ) ∗ a + ( x − a ) ∗ b + a b (x-a)*(y-b)+(y-b)*a+(x-a)*b+ab (xa)(yb)+(yb)a+(xa)b+ab
x y − x b − y a + a b + y a − a b + x b − a b + a b = x y xy-xb-ya+ab+ya-ab+xb-ab+ab=xy xyxbya+ab+yaab+xbab+ab=xy

你可能感兴趣的:(加法秘密共享,乘法秘密共享)