Encoder(编码)
编码器在用户的客户端上运行,对数据进行转换和监控以此来保护敏感数据,通过引入随机噪音或者将数据分成小部分,加密之后将结果传输给shufflers。编码器可以应用随机响应或添加噪音来保护本地差分隐私,虽然有效果,但是实用性不强。所以提出了一种基于秘密分享的PROCHLO编码器。
Shuffler(洗牌机)
Shuffler在编码器和分析器之间引入隐私,是由受信任的第三方组织运行。
- anonymization(匿名化)
客户端编码后,洗牌器可以访问有关用户报告的特定元数据:时间戳、源IP地址、路由路径等。因此洗牌器的主要目的是删除此类元数据,将用户报告匿名化。
- shuffling(洗牌化)
然而,删除元数据并不能完全解除用户和报告的关联。在攻击模型中,分析器可能会监视网络流量并使用时间或者订购信息去将到达洗牌器个人报告与转发到分析器的数据关联起来。
- thresholding(阈值化)
由于唯一性,即使是剥离和洗牌后的数据也可能表示数据项。例如,一个足够长的API位向量可能是唯一的,并且它所涉及的应用程序可能是真正唯一的,具有足够辅助信息的攻击者可能会将此数据绑定到用户,从而破坏隐私。因此,洗牌器进行阈值化处理并从示例太少的类别中丢弃数据项。
- batching(批处理)
对于小的数据集,洗牌和阈值化后的值是有限的。在处理之前,洗牌器将数据项批处理一段时间或直到足够大为止。
Analyzer(分析器)
分析器对从洗牌器接收到的数据进行解密、存储、聚合、最终淘汰数据。尽管洗牌器转发给分析器的数据记录的敏感性已经受到了很大限制,但分析器是唯一具有访问这些记录的主体。在很多情况下,洗牌匿名化和编码碎片足以保护隐私。
1.Higher Assurance by using Trustworthy Hardware
——研究可靠的硬件来加强ESA保证,即PROCHLO如何使用Intel的SGX实现ESA shuffler。
为了避免客户端盲目地信任网络上的ESA shuffler,PROCHLO使用SGX来证明shuffler的合法性和相关公钥的合法性。该密钥的加密语句可以为客户端提供更大的保证,使其编码的消息由正确、合适的洗牌程序接收,而不必完全信任托管洗牌服务的组织或其员工。
具体来说,在每次启动时,shuffler生成一个公钥/私钥对并将公钥放在Quote操作中,有效证明了“SGX使用公钥来运行编码X”。客户机可以为发送到特定洗牌器的每个数据项派生一个短暂的密钥。
洗牌器每次重新启动时都必须创建一个新的密钥对,以避免状态重放攻击。因此,与在可信的第三方运行的洗牌器不同,基于SGX的洗牌器将具有更短的有效期公钥,如按小时顺序排列。证书透明机制也可用于防止恶意操作员重放证书。
1.2 Oblivious Shuffling within SGX Enclaves
基本的洗牌操作包括:
- (1)将一小部分用用Key1加密的记录读入私有存储器
- (2)随机扰乱这些记录
- (3)用用Key2从新加密,并写回
为了提高效率,洗牌器必须尽可能少的执行基本洗牌操作,因为每一步都会增加内存开销(将一个自己放入私有内存,再将其写回)、密钥开销(用Key1解密,用Key2加密)和网络开销。
1.3 State of the Art in Oblivious Shuffling
1.4 The Stash Shuffle Algorithm
1.5 Crowd Cardinality Thresholding inside SGX
2.Encoding Using Secret-Sharing Cryptography
——研究了一种新的秘密共享加密技术在ESA编码器中的应用来加强隐私保证
3.Blinded Crowd IDs for Shuffler Thresholding
——探索了一种加密盲技术允许shuffler分布在不同的参与方之间
encoder:计算,其中(g,h)是Shuffler 2的公钥,r为随机值,
Shuffler 1:用一个秘密 α ∈ Zp来计算盲化数组,然后批处理、洗牌,并将盲项转发给Shuffler 2
Shuffler 2:使用私钥x,即在输入值(u,v)上计算恢复出