本文主要是介绍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方持有信息:,
B方持有信息:,
Note:
Additive有两个含义:
1、加性共享(重点):这个过程跟一般的secret sharing不同的就是它的所有共享过程都是通过加性(additive)共享来实现的,也就是说对于每一个共享的信息,都有
2、额外的信息:它的加密是靠在原有数据上共享额外(additive)的信息完成的,解密时需要将这些额外的信息根据一定的规律剥离。
Secure addition
秘密地算加法比较简单,A与B共享一个额外的常数c,假设当A要计算时,需要先自己(locally)计算,然后加上B传来的值(已乘上c加密),然后将结果除以c就可以还原出。
验算:
Secure multiplication
为了进行乘法计算,附加的信息就不再是简单的常数c,而是一个三元组a, b, c, 满足:
,
根据共享的a, b, c可以计算得来e和f(此处为A方的计算方式,B方同理):
双方各自计算自己的e和f并共享,最终双方都可以得到真正的e和f值:
最后的乘法结果是:
验算:
Secure vectorization
在矩阵这里,加性仍然可以保持,也就是说。
为了对X与Y进行矩阵(向量)相乘,共享的额外信息变成为三个矩阵,其中U与X大小相同,V与Y大小相同,其元素皆为均匀分布的随机数,且满足。
类似地,根据共享的U,V,Z,可以计算出
双方各自计算自己的P和Q并共享,可以得到最后的乘法结果:
验算方法与Secure multiplication中类似,只不过其中的乘法为矩阵乘法。在此就不缀述了。
参考文献
[1] D. Demmler, T. Schneider, and M. Zohner, “Aby-a framework for efficient mixed-protocol secure two-party computation.” in NDSS, 2015.
这篇关于Additive secret sharing 加性秘密共享(加法,乘法,向量乘法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!