Additive secret sharing 加性秘密共享(加法,乘法,向量乘法)

目录

 

前言

Additive secret sharing

Secure addition

Secure multiplication

Secure vectorization


前言

本文前一部分主要来自另一篇博客:https://blog.csdn.net/qq_33154865/article/details/106271611,在此感谢这篇博客的作者。

后一部分是因为我想整体地补充完整additive secret sharing,所以加上了addtion和vectorization的部分。

如果还有不清楚的可以看相关视频:https://www.bilibili.com/video/av285066309/

Additive secret sharing

假设数据拥有者有一个数据x,现在将x秘密共享给两个服务器A, B,服务器A随机得到其中一部分(加密后),服务器B也随机得到其中一部分(加密后)。

想要恢复数据或进行计算的时候,一方将自己的数据发给另一方,或者将数据一起发给第三方(具体根据隐私需求来定)。

A方持有信息:{\left\langle x \right\rangle ^\alpha }{\left\langle y \right\rangle ^\alpha }

B方持有信息:{\left\langle x \right\rangle ^\beta }{\left\langle y \right\rangle ^\beta }

Note:

Additive有两个含义:

1、加性共享(重点):这个过程跟一般的secret sharing不同的就是它的所有共享过程都是通过加性(additive)共享来实现的,也就是说对于每一个共享的信息,都有x = {\left\langle x \right\rangle ^\alpha } + {\left\langle x \right\rangle ^\beta }

2、额外的信息:它的加密是靠在原有数据上共享额外(additive)的信息完成的,解密时需要将这些额外的信息根据一定的规律剥离。

Secure addition

秘密地算加法比较简单,A与B共享一个额外的常数c,假设当A要计算时,需要先自己(locally)计算,然后加上B传来的值(已乘上c加密),然后将结果除以c就可以还原出

验算:

\begin{array}{l} {\left\langle {x + y} \right\rangle ^\alpha } + {\left\langle {x + y} \right\rangle ^\beta } = \frac{​{​{​{\left\langle {c \cdot x + c \cdot y} \right\rangle }^\alpha }}}{c} + \frac{​{​{​{\left\langle {c \cdot x + c \cdot y} \right\rangle }^\beta }}}{c}\\ = {\left\langle x \right\rangle ^\alpha } + {\left\langle x \right\rangle ^\beta } + {\left\langle y \right\rangle ^\alpha } + {\left\langle y \right\rangle ^\beta }\\ = x + y \end{array}

Secure multiplication

为了进行乘法计算,附加的信息就不再是简单的常数c,而是一个三元组a, b, c, 满足:

根据共享的a, b, c可以计算得来ef(此处为A方的计算方式,B方同理):

双方各自计算自己的ef并共享,最终双方都可以得到真正的ef值:

最后的乘法结果是:

验算:

\begin{array}{l} {\left\langle {x + y} \right\rangle ^\alpha } + {\left\langle {x + y} \right\rangle ^\beta } = (f \cdot {\left\langle a \right\rangle ^\alpha } + e \cdot {\left\langle b \right\rangle ^\alpha } + {\left\langle c \right\rangle ^\alpha }) + (e \cdot f + f \cdot {\left\langle a \right\rangle ^\beta } + e \cdot {\left\langle b \right\rangle ^\beta } + {\left\langle c \right\rangle ^\beta })\\ = f \cdot ({\left\langle a \right\rangle ^\alpha } + {\left\langle a \right\rangle ^\beta }) + e \cdot ({\left\langle b \right\rangle ^\alpha } + {\left\langle b \right\rangle ^\beta }) + ({\left\langle c \right\rangle ^\alpha } + \left\langle c \right\rangle ) + e \cdot f\\ = f \cdot a + e \cdot b + c + e \cdot f\\ = (y - b) \cdot a + (x - a) \cdot b + c + (x - a) \cdot (y - b)\\ = ay - ab + bx - ab + ab + xy - ay - bx + ab\\ = xy \end{array}

Secure vectorization

在矩阵这里,加性仍然可以保持,也就是说

为了对XY进行矩阵(向量)相乘,共享的额外信息变成为三个矩阵,其中UX大小相同,VY大小相同,其元素皆为均匀分布的随机数,且满足

类似地,根据共享的U,V,Z,可以计算出

双方各自计算自己的PQ并共享,可以得到最后的乘法结果:

验算方法与Secure multiplication中类似,只不过其中的乘法为矩阵乘法。在此就不缀述了。

参考文献

[1] D. Demmler, T. Schneider, and M. Zohner, “Aby-a framework for efficient mixed-protocol secure two-party computation.” in NDSS, 2015.

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值