Secure Single-Server Aggregation with (Poly)Logarithmic Overhead
前提现状
通过 Practical Secure Aggregation for Privacy-Preserving Machine Learning 这篇论文,我们已经实现了一个在半诚实情形下的多方之间安全加法聚合的方案。
但是,在这个方案中存在两个问题(或者叫做限制)。
- 安全聚合时候的效率问题
因为如果将中心节点看做是一个中间节点(可以理解为中间商),则所有参与方的连接方式可以看做是一张图。在这个基础方案中的图是个无向完全图。也就是连接线不论方向,每个节点均与其他所有节点有且仅有一条连接线的图。
然而这种连接方式会导致效率低,每个参与方与其余所有参与方均产生连接,这会导致资源消耗几何形式上升 O ( n 2 ) O(n^2) O(n2) - 方案本身仅支持半诚实情形,对于恶意人员没有防范。
注意,在平衡安全性和正确性的时候,调整的是秘密分享阈值t。而需要生成的k正则图中的k则是越大越好,最大变成完全图都可以。
但是k的增大会导致效率的快速下降,于是我们需要选择一个满足条件的最小k来进行计算。
另:k正则图代表每个节点(参与方)的连接节点均为k个。
半诚实场景
注意该场景称之为半诚实,但是其中包含了一种弱恶意场景,即参与方出现恶意用户,但是中心节点是诚实的。
恶意的用户:互相之间的数据是可以互通的,即会反向推导其他参与方的数据,但是在秘密还原,上传数据等阶段上传的是正确的数据。因为他们传输错误的数据或是密文只可能暴露自己或是让结果出错,自己无法获取任何利益。
注意:以下所有在半诚实场景下的讨论均为减少参与方之间通讯为主要思想。目标为减少通讯之后仍然能保障系统的正常运行。
简单来说是进行了以下讨论。
原先安全聚合的逻辑是完全图。现在想增加效率,那就减少连接方式,重新构建图。这就涉及了几个问题要解决。
- 如何生成图?
- 半诚实系统(中心节点诚实)
由中心节点生成即可。 - 恶意系统(中心节点恶意)
有参与方生成
- 半诚实系统(中心节点诚实)
- 图是否可用?
- 在半诚实情形下,有一套自身的数学推导,验证中心节点生成的图在什么前提下可以保证聚合的正确性和安全性
- 在恶意情形下,通过另一个数学推导(图变为了有向图后进行推导),验证了图的安全性和正确性
- 图中的信息交换是否具有安全性?
在每个参与方传输信息时候,会将信息加上自身的签名,来保证中心节点不会篡改信息
以下均为解决上述问题对各种情形进行讨论和数学推导。
在半诚实的情形下
前提假设为:
- 安全参数 σ \sigma σ 其代表在 1 − 2 σ 1 - 2^\sigma 1−2σ 的基础上是安全的
- 正确性参数 η \eta η 其代表在 1 − 2 η 1 - 2^\eta 1−2η 的基础上结果是正确的
- 最大恶意参与方比例 δ \delta δ
- 最大掉线参与方比例 γ \gamma γ
- 阈值 t 和 连接数 k 的比值 β = t / k \beta = t / k β=t/k
要解决的目标为:
- 如何选取合适的连接数 k 形成 k 正则图
参数说明
三个事件
恶意用户的限制
事件1:对于任意诚实参与方来说,相连接的节点中,恶意节点的个数要少于 t,则代表事件1发生
掉线后保持连通的说明
事件2:非掉线的诚实参与方之间是连通的
在完全图中这件事情很容易成立。
保证秘密可以还原的基础
事件3:对于所有用户均有,其相连接节点中未掉线的节点个数要大于t。
这保证了秘密可以被还原出来。
符合要求的图的特征
我们称一张图是 ( σ , η ) − g o o d (\sigma,\eta)-good (σ,η)−good的基础是满足上述两个条件。这两个条件分别代表了
- 对于一个确定的图 G ′ G' G′和秘密还原阈值 t ′ t' t′需要同时保证诚实节点的邻居节点中恶意节点数小于t且对于未掉线的诚实节点没有孤立的节点存在。 该事件的发生概率大于 1 − 2 − σ 1-2^{-\sigma} 1−2−σ
- 所有节点的邻居节点个数要大于t 该事件发生概率要大于 1 − 2 − η 1-2^{-\eta} 1−2−η
其中称 σ \sigma σ为安全参数, η \eta η 为正确性参数,下面两个假设是举例说明。
正确性假设
安全性假设
图的生成
简单来说,图的生成分为两步骤
- 合适的参数k和秘密还原阈值t
这代表要生成的图为k正则图 - 依据阈值k生成k正则图
其他:关于节点的映射选择了每次随机设定节点的序列号,这样能保证每次安全聚合时均使用不同的邻居节点,增强安全性。
一个方案
Harary图,简单来说,就是每个节点均和该节点序列距离保持在k/2范围内的节点连接。
可以把这种图想象成一个圆。如下:
原文为:
以下是我个人理解
注意:最好将k设定为偶数,因为n为偶数时候k均可以保证harary图的K正则。但是当n与k均为奇数的时候,k正则无法保证了。如:
阈值t的选择案例
在拥有图G之后,选择合适的阈值t需要被注意,我们从以下这个例子中进行理解。
选择
n=10000
k=200
γ \gamma