函数和同态秘密共享的最新进展(特邀报告)
1 引言
秘密共享方案 [38]允许持有秘密 s的分发者将其随机拆分为 s个 m份额, 使得某些份额子集可用于重构该秘密,而其他子集则无法泄露关于该秘密的任 何信息。最简单的秘密共享类型是加法秘密共享,其中秘密是阿贝尔群 G中的 一个元素,通过将所有 m份额相加即可重构秘密,并且任意 m−1个份额的 子集都无法泄露关于该秘密的任何信息。这种秘密共享方案的一个有用特性是 其具有(线性)同态性,即如果m参与方持有多个秘密的份额,则他们可以本 地计算出所有秘密之和的份额。加法秘密共享(更一般地,线性秘密共享)的 这一特性在许多密码学应用中非常有用。
近期的一系列工作[6–11,28]研究了支持更丰富同态类别的秘密共享方案。 在本调查中,我们介绍了加法秘密共享的以下(密切相关)自然扩展中的最新 进展:
– 函数秘密共享(FSS) [6]。假设我们有一个可高效计算且简洁描述的函数类 F: f:{0, 1}n → G。是否可以将任意一个函数 f ∈ F拆分为 m个函数 f1,…, fm,使得:(1) 每个 fi由一个短密钥 ki描述,该密钥支持其高效评估;(2) 任意密钥的严格子集完全隐藏 f;以及 (3) f(x) =∑m i=1 fi(x)(对每个输入 x成立)?我们将此问题的解称为针对 F的函数秘密共享(FSS)方案。
– 同态秘密共享(HSS) [8]。 一个(m方)HSS 方案针对程序类1 P将输入 {x}随机拆分为份额2(x1,…, xm),满足以下条件:(1)每个 xi比 x多项式更大;(2)份额xi的子集隐藏{s};(3)存在一个多项式时间的局部评估算法 Eval,使得对于任意“程序” P ∈ P(例如,布尔电路、公式或分支程序),输出 P(x) 可通过 Eval(x1, P)…, Eval(xm, P) 高效重构。
函数秘密共享(FSS)可以被视为同态秘密共享(HSS)的对偶概念,其中函 数和输入的角色互换:FSS关注的是将以程序表示的函数 f进行秘密共享,从 而能够通过对 f的份额进行局部计算,在任意给定输入 x上实现紧凑计算;而 HSS关注的是对输入 x进行秘密共享,从而能够通过对 x的份额进行局部计算, 对任意给定函数 f实现紧凑计算。
尽管任何函数秘密共享方案都可以被视为适用于某一特定程序类的同态秘密共享方 案,反之亦然,但对于给定的程序类 P,“ P的函数秘密共享”和“ P的同态秘密共 享”这两个概念在本质上是不相同的:函数秘密共享允许Share大小随程序 P ∈ P的大 小增长,而同态秘密共享则限制Share大小仅随输入到 P的数据大小增长。 此外,HSS 具有一种自然的多输入变体(来自不同参与方的秘密可以一起 进行同态计算),而在 FSS 中,秘密函数始终源自单一来源。 在不同的应用和示例中,函数秘密共享或同态秘密共享的视角更为自然。
计算安全性
与具有基本线性同态的秘密共享不同,可以证明大多数非平凡的函数秘密 共享(FSS)和同态秘密共享(HSS)无法提供信息论意义上的隐藏 [6,11,28]。例如, 即使对于简单的类 F(such 1函数与程序:注意,在FSS中,我们考虑的是简单类别的函数,其中每个函数都有唯 一的描述;而在HSS中,我们考虑的是可以通过多个程序计算的函数。因此,对于FSS 我们使用“函数”,而对于HSS则使用“程序”。2 fi与 x i:我们沿用现有研究(主要 是[6,11])中的下标/上标约定。注意,上标符号表示用于HSS中,因为在HSS中可以考 虑多个输入的份额, x j →(x 1 j ,…, x m j )。
作为点函数类),最佳的解决方案是将 f的真值表表示以加法方式共享,其份 额由 2n个群元素组成。但如果考虑计算安全性的隐藏概念,则对于多项式时 间可计算的 f似乎没有明显的限制。这正是我们谈论FSS/HSS时所指的内容。
同态秘密共享与全同态加密
同态秘密共享(HSS)可被视为全同态加密( FHE)的一种宽松形式[26,37],,其中并非由单个参与方在密文数据上进行同 态计算,而是允许将同态求值分布于两个互不交互的参与方之间。与FHE类似, 我们要求Eval的输出是紧凑的,即其长度仅依赖于输出长度 |P(x)| ,而不依赖 于 P的大小。但实际上,HSS区别于传统FHE的一个独特特性在于,其输出表 示可以是加法性的。例如,我们可以实现Eval(x0, P) + Eval(x1, P) = P(x) mod β,其中正整数 β ≥ 2可以任意选择。这使得HSS能够达到标准FHE无 法实现的极致紧凑性和重构效率。例如,若 P输出一个比特且 β= 2,则输出 P(x)可通过两个比特的异或运算来重构。
其他相关概念
我们注意到,文献中还研究了函数的秘密共享和同态秘密共享 的其他形式。关于秘密共享同态的初步研究由贝纳洛[4],提出,他展示了加法 同态秘密共享方案的构造及其应用。在[1]中进一步探讨了对秘密共享数据的计 算。函数的秘密共享也出现在阈值密码学的背景下(参见[19,20])。然而,这 些其他概念要么仅适用于具有与秘密共享兼容的同态性质的特定函数类,要么 不要求输出具有简单的(例如加法性)表示,而后者对于我们所考虑的应用至 关重要。
1.1 本次调查
本文档旨在为函数秘密共享(FSS)和同态秘密共享(HSS)提供一个集中的资源,以提供足 够的背景知识来理解现有论文,并给出适当的参考文献以供进一步查阅详细信息。接下来, 我们将介绍:
– 形式化定义。包括对不同重构方法选择的讨论(以及我们为何关注线性重构)、 面向应用的函数秘密共享定义,以及更广泛的、面向理论的同态秘密共享定义。
– 构造。文献中现有构造的指南,以及两个具体构造的概述:基于单向函数的 点函数的函数秘密共享 [9],,以及基于决策性Diffie‐Hellman假设的分支程 序的同态秘密共享(具有1/多项式误差)[8]。
– 应用。关于函数秘密共享与 同态秘密共享的影响和应用的讨论,以及适当的参考指引。
低端与高端
在整个调查中,一个反复出现的主题是,构造和应用主要分为两类:
– 针对简单函数类的“低端”轻量级构造。
– 针对广泛函数类的“高端”强大构造。
前者指基于对称密钥原语(特别是单向函数)的构造,更接近当前的实际应用, 并且最常与FSS构造相关联。后者包括基于公钥原语的构造,能够产生强大的 可行性结果,并且最常与HSS构造相关联。我们将从这一角度介绍相关结果。
2 定义
从根本上讲,FSS/HSS 是秘密共享方案,因此需要两个核心属性:(1)正确 性,规定适当的同态评估保证;(2)隐私性,要求份额的子集不会泄露原始秘 密。
在定义FSS/HSS时,有若干不同的选择,这些选择会导致概念的广义性略 有差异。我们选择呈现其中两种定义:
-
针对性的函数秘密共享定义,最直接符合实际应用。
-
同态秘密共享通用定义,可实例化以涵盖文献中的不同概念,包括理论性工作中的概念[8,10,11]以及上述的函数秘密共享定义。
在深入这些定义之前,我们首先介绍一些基本的符号表示以及关于不同输出解 码结构选择的讨论。
2.1 基本符号表示
我们用 λ 表示安全参数。
函数族的建模
一个函数族由一对 F=(PF, EF)定义,其中 PF ⊆{0, 1}∗是一个无限的函数描述集合ˆf,而 EF: PF ×{0, 1}∗ →{0, 1}∗是一个多项式时间 算法,用于定义由 f所描述的函数。具体而言,每个 f ∈ PF都对应描述了一个 函数 f: Df → R f,该函数由 f(x) = EF(f, x)定义。默认情况下,我们假设 D f ={0, 1} n为某个正整数 n(尽管有时也会考虑非二进制字母表上的输入), 并始终要求 R f 为一个有限阿贝尔群,记作 G。在不会引起混淆的情况下,我们 有时会将 f ˆ ˆ ˆ写作 f,将 f ∈F写作 f ∈ PF。我们假设 f明确包含了Df 和 R f 的描述,以及一个大小参数 S ˆ f 。
2.2 关于输出解码结构的讨论
可以针对多种输出解码结构来考虑函数秘密共享/同态秘密共享:即用于将同态 计算的份额组合成所需输出的过程。根据所选解码过程的结构,相应的方案将 具有非常不同的性质:更复杂的解码过程使得实现更广泛函数类别的函数秘密 共享/同态秘密共享成为可能,但也会限制所得方案的适用性。正如我们现在讨 论的(见[6]),输出解码函数结构的许多选择会导致无趣的概念。为方便起见, 我们采用函数秘密共享的语言。
任意重构
例如,考虑在参与方的输出份额重构过程中无限制的函数秘密共享 (FSS)。这种过大的自由度会使该概念变得无意义且平凡。实际上,对于任 意高效的函数族 F,可以通过使用标准的秘密共享方案将 f ∈ F的描述作为 字符串进行共享,从而简单地生成该秘密函数的FSS密钥。对于任意输入 x, 评估过程将直接输出 x以及该参与方所持有的 f的份额,而解码过程则首先重 构出 f的描述,然后计算并输出值 f(x)。
该构造满足上述非正式描述的正确性和安全性(实际上,每一方的密钥单 独不会泄露 f的任何信息)。但是,该方案在实用性方面显然存在明显不足: 仅通过一次评估,接收并重构这些输出份额的任一方就会获知整个函数 f 。此 时,函数秘密共享的整个概念便失去了意义。
“函数隐私”输出份额
相反,从一个函数秘密共享方案中,我们希望参 与方针对输入 x的输出份额 fi(x)不会泄露关于秘密函数 f的更多信息,而仅 泄露确定 f(x)所必需的信息。也就是说,我们可以对重构方案施加一个“函数 隐私”要求,即要求每对参与方针对每个输入 x的输出份额能够仅根据相应的 输出 f(x)进行模拟。
这一要求既自然又有益,但仅此本身仍允许存在不理想的构造。例如,给 定一个秘密函数 f,将一个 FSS 密钥设为 f 的 混淆电路,第二个密钥设为能 够将输入 x 转换为混淆输入标签的信息。这为单个输出评估提供了一种直接 的函数隐私解决方案,并可通过向参与方的密钥中添加共享的秘密随机性轻松 扩展到多输出情况。3然而,这种构造(从而该定义)并不令人满意:尽管评 估输出份额 fi(x) 现在隐藏了 f,但其大小非常庞大——对于每个输出,其大 小都相当于 f 本身的副本。(此外,这一概念并未提供超出混淆电路的任何 密码学能力。)
具体来说,对于每个新的 x,参与方将首先利用其共享的随机性分别对 f 的混淆电路 和输入标签进行协同重新随机化。
简洁的、函数隐私保护的输出共享
因此,我们进一步限制该方案,额外要求 输出份额是简洁的:即其大小与函数输出相当。
该定义已经涵盖了一种强大且有趣的原语。例如,如第4节所述,实现适用 于一般函数的此类FSS方案意味着一种通信高效的多方安全计算形式。关于此 概念的额外下界在[11]中给出。然而,还有一个最终性质能够支持一类重要应 用,但目前尚未得到保证:即共享可压缩性的概念。
更具体地说:FSS [6,9,28]的一个核心应用领域是实现通信高效的 (m‐服务器) 安全私有信息检索(PIR)。直观上,为了从两个服务器持有的数据库中私密 地恢复一个数据项 xi ,可以生成并分发一对FSS密钥,用于编码一个点函数 fi, 该函数仅在秘密位置 i处产生非零输出。每个服务器随后通过计算每个数据项 xj与其对应输出份额在评估 fi(xj)上的加权和,返回一个单个元素作为响应。
DPF方案的正确性保证了两个服务器响应的异或结果恰好是所需的数据项 xi, 而安全性则保证了服务器无法获知索引 i的任何信息。但最重要的是,DPF重 构的线性结构使得与数据库所有不同元素相关的输出份额能够被压缩成单个短 响应。
另一方面,考虑例如PIR场景,但服务器持有函数 fi的份额,且输出份额 的重构方式采用按位与而非异或/加法。此时,恢复所请求的数据项 xi意味着 需要计算集合交集——因此所需的通信复杂度等于数据库[34]的大小!因此,我 们保持了一个关键性质:输出份额可以以一种有意义的方式进行组合和压缩。
为了实现这一点,我们继续遵循Lin性输出份额解码的原则。
主要关注:线性份额解码
我们主要关注输出解码器为参与方份额的线性函数 的函数秘密共享(FSS)场景。也就是说,我们假设输出份额 fi(x)位于一个阿 贝尔群 G内,并考虑一个在 G上是线性的解码函数Dec: G m → G。这种简 洁直观的结构实际上提供了上述所讨论的理想性质:重构的线性性提供了方便 的份额可压缩性;输出份额本身必须是函数输出空间中的元素,从而直接保证 了份额的简洁性;并且如[6],所示,线性重构结合基本的密钥安全性直接蕴含 了函数隐私。除非另有说明,我们将默认“FSS方案”(或HSS)是指具有线性 重构过程的方案。
2.3 函数秘密共享:面向应用
接下来,我们提出一个有针对性的FSS定义,该定义最符合当前实际应用中对FSS 的使用。该定义遵循[9],扩展 通过允许对可接受的[6]泄露进行一般性说明:即可以揭示的关于函数的部分信息。
回想在函数秘密共享(FSS)的术语中,我们考虑一个持有秘密函数f ∈F的客户端,该 客户端将 f拆分为份额 fi,以支持在 f定义域内的输入x上进行同态求值。我们使用由密钥 ki描述的份额 fi的符号表示。
建模泄露
我们通过一个函数Leak:{0, 1}∗ →{0, 1}∗来描述允许的泄露,其 中Leak(f)被解释为可以关于f泄露的部分信息。当Leak被省略时,默认输出输 入域 Df和输出域 Rf。这对于大多数考虑的类已足够;对于某些类,还需要泄 露大小 Sf。但也可以考虑更一般的Leak选择,从而在效率/可行性与泄露信息 之间进行权衡。(例如,[9]中用于决策树的FSS构造会泄露树的拓扑结构但隐 藏标签;见第3节。)
定义 1(FSS:语法)
一个 m-方函数秘密共享(FSS)方案是由以下语法的一 对算法 (生成,Eval)构成:
– Gen(1λ, ˆf)是一个概率多项式时间密钥生成算法,该算法以 1λ(安全性参 数)和 f ∈{0, 1}∗(函数 f的描述)为输入,输出一个 m-元组 ˆ的密钥(k1, …, km)。我们假设 f明确包含输入长度 1n、群描述 G和大小参数。
– Eval(i, ki, x)是一个多项式时间评估算法,该算法以 i ∈[m](参与方索引)、 ki(定义 fi的密钥:{0, 1}n → G)和 x ∈{0, 1}n(用于 fi的输入)为输 入,输出一个群元素 yi ∈ G(即 fi(x)的值,f(x)的第 i个 Share)。
当 m被省略时,默认其值为2。
定义 2 (FSS:要求)
设 F=(PF, EF)为一个函数族,且 Leak: {0, 1}∗ →{0, 1}∗为指定允许泄露的函数。令m(参与方数量)和 t(安全性 阈值)为正整数。一个 m参与方t-安全的、针对 F且泄露为 Leak的函数秘密 共享(FSS)是一个满足如下要求的二元组(Gen,Eval),其定义如 定义 1所述。 ˆ –正确性:对于所有描述 f的 f ∈ PF:{0, 1}n → G,以及每一个 x ∈ {0, 1}n,如果(k1,…, km) ←Gen(1λ, ˆf),那么 Pr[∑ m i=1Eval(i, ki, x)= f(x)]= 1。
– 保密性:对于每个大小为 t的被攻破参与方集合 S ⊂[m],存在一个概率多项式 时间算法 Sim(模拟器),使得对于来自 PF的每一项多项式大小的函数描述序列 f1, f2,…,以下实验现实( Real)和理想( Ideal)的输出在计算上不可区分:
•现实(1 λ ):(k1,…, km) ←生成(1 λ, ˆfλ);输出(ki)i∈ S。
•理想(1 λ ):输出模拟(1 λ,泄露(ˆfλ))。
ˆ当省略Leak时,它被理解为函数Leak(f)=(1 n, S ˆ f , G),其中 1n、 S ˆ f 和 G分 别是包含在ˆ f中的输入长度、大小和群描述。当 t被省略时,它被理解为 m−1。
Gilboa 和 Ishai 引入的 FSS 的一个有用实例[28],是 分布式点函数 (DPF)。DPF 可 被视为针对所有点函数构成的函数类的两方 FSS,即所有在除至多一个输入外的所有输入上 取值为 0 的函数 F,即所有函数 f:{0, 1}n → G在除至多一个输入外的所有输入上取值为 0。
定义 3 (分布式点函数)
一个点函数fα,β,对于α ∈{0, 1}n和 β ∈ G,被定 义为函数 f:{0, 1}n → G,使得f(α)= β且 f(x)= 0对所有 x = α成立。 我们有时将 |β| = 1(或 |β| > 1)对应的点函数称为单比特(或多比特)点函 数。一个分布式点函数(DPF)是针对所有点函数族的函数秘密共享,ˆ其泄露 为泄露(f)=(1n, G)。
一种具体安全变体。为了描述和分析某些FSS构造,有时(例如在[9]中)考虑 一个有限的函数族 F会更加方便,这些函数 f: Df → Rf具有相同的(固定的) 输入域和输出域,以及固定的安全参数值 λ。我们称这样一个有限的FSS方案 是(T, ε)‐安全的,如果定义 2 中的计算不可区分性要求被替换为(T, ε)‐不可区分 性,即任何大小为T的电路在区分现实与理想情况时的优势最多为 ε。当考虑 由输入长度 n和安全参数 λ参数化的一组无限多个此类有限 F时,我们要求 Eval和Sim各自都能由一个(均匀的)概率多项式时间算法实现,该算法以 1n 和1λ作为输入。
2.4 同态秘密共享:一个通用定义
回想一下,同态秘密共享(HSS)是函数秘密共享(FSS)的对偶形式。我们 现在考虑更一般的多输入 HSS 方案,该方案支持对来自不同客户端的输入份额 x1,…, xn进行函数 F的紧凑计算。更具体地说,每个客户端 i使用 Share 算法将其输入 xi随机拆分到 m个服务器之间,使得 xi对任意 t个共谋服务 器均保持隐藏(默认情况下我们假设 t= m − 1 )。每个服务器 j对其所持 有的 n个输入份额应用本地评估算法 Eval,并得到一个输出份额 yj。通过将 解码算法 Dec 应用于输出份额 (y 1,…, y m) 来重构输出 F(x1,…, xn)。为了避免 平凡性,我们对 Dec 施加各种限制,迫使其比直接计算 F“更简单”。
对于某些应用而言,让 F和Eval接收一个由所有服务器已知的额外输入 x0是 有用的。这对于定义有意义的单输入HSS(使用 n= 1)[8],以及函数秘密共享[6,9] 是必要的。通常情况下,该额外输入 x0将是一个应用于单个客户端输入的函数 f 的描述,例如电路、分支程序或低度多项式的描述。在FSS的情况下,(单个)客 户端的输入是一个程序的描述,而额外输入 x0对应于一个域元素。
我们现在给出通用HSS的正式定义。我们将在标准模型中给出定义;该定义可 以自然地扩展到其他场景 具有各种形式的设置(例如,常见的公共随机性或公钥基础设施,如[10]中所述)。我 们遵循[11]的阐述。其中下标表示输入(客户端)标识符,上标表示Share(服务器) 标识符。
定义4 (同态秘密共享)
一个 n-客户端、 m-服务器、 t-安全的针对函数 F:({0, 1}∗) n+1 →{0, 1}∗的同态秘密共享方案,或简称为(n, m, t)-HSS,是由三个概率多项式时间 算法(Share, Eval,Dec)构成的三元组,具有以下语法:
– Share(1λ, i, x):在输入 1λ(安全参数)、 i ∈[n](客户端索引)和 x ∈{0, 1}∗(客户端输入)时,共享算法Share输出 m个输入份额(x1,…, xm)。
– Eval(j, x0,(xj 1,…, xjn)):在输入 j ∈[m](服务器索引)、 x0 ∈{0, 1}∗ (公共服务器输入)以及xj 1,…, xjn(每个客户端输入的第j个份额)时,评估 算法Eval输出 yj ∈{0, 1}∗,对应于服务器 j关于 F(x0; x1,…, xn)的输出份额。
– Dec(y1,…, ym):在输入(y1,…, ym)(输出份额列表)时,解码算法 Dec计 算出最终输出 y ∈{0, 1}∗。
算法(Share,Eval,Dec)应满足以下正确性和安全性要求:
–正确性: 对于任意 n+ 1输入 x0,…, xn ∈{0, 1}∗, Pr[∀i ∈ n ← Share(1λ, i, xi) ∀j ∈[m] yj ← Eval(j, x0,(xj 1,…, xj n)) : Dec(y 1,…, y m)= F(x0; x1,…, xn)]= 1. 或者,在一个统计正确的HSS中,上述概率至少为1−μ(λ),其中 μ是可忽 略的;而在一个 δ-正确的HSS(简称为 δ-HSS)中,该概率至少为 1−δ −μ (λ),其中误差参数 δ作为额外输入提供给Eval,且Eval的运行时间允许随 1/δ多项式增长。
–安全性:考虑针对被攻破的服务器集合 T ⊂[m]的以下语义安全挑战实验: 攻击者给出挑战索引和输入(i, x, x′) ← A(1λ),其中|x| = |x′|.2:挑战者采样 b ←{0, 1}并且(x1,…, xm) ← Share(1λ, i, x˜),其中 x˜={x如果 b= 0 x′ 否则.3:攻击者输出一个猜测 b′ ← A((xj)j∈T),给定被攻破的 T的份额。 用Adv(1 λ, A, T):= Pr[b= b′] − 1/2表示 A在上述实验中猜测b的优势,其中 概率取自挑战者和 A的随机性。 对于电路大小界限 S= S(λ)和优势界限 α= α(λ),若对于所有大小为 |T| ≤ t的 T ⊂[m]以及所有大小为 S(λ)的非均匀攻击者 A,均有Adv(1 λ, A, T) ≤ α(λ)成立, 则称一个(n, m, t)-HSS方案 Π=(Share, Eval, Dec)是(S, α)-安全的。我们称 Π为:
•计算安全,如果对于所有多项式 S,它是(S, 1/S)-安全的;
•统计 α-安全,如果对于所有 S,它是(S, α)-安全的;
•统计安全,如果它在某个可忽略的 α(λ)下具有统计 α安全性;
•完美安全 如果它是统计上0-安全的。
备注1(无界HSS)
定义4将输入数量 n视为固定的。我们可以自然地考虑一种 无界的多输入HSS变体,其中 F定义在任意的输入序列 xi上,并且正确性要 求也相应地扩展。我们将这种多输入HSS表示为(∗, m, t)‐HSS。更一般地,可以 允许所有三个参数 n, m, t都具有灵活性,将它们作为三个算法 Share,Eval, Dec的输入。
备注2(与FSS定义比较)
根据定义2的函数秘密共享(FSS)可表示为上述 定义中的(1, m)‐HSS,用于通用函数 F(x; P)= P(x),其中 P ∈P是客户端输 入的程序,而 x是公共服务器输入。 注意,定义4中HSS的安全要求表示为不可区分性保证,而前一节中的 FSS定义(定义2)则是基于对秘密数据泄露信息的高效模拟。然而,对于所有 满足泄露函数 F和Leak可被高效Leak的函数族,这两种形式是等价的;即给定 ˆ ˆ ˆ ˆLeak(f),可以高效地找到 f′,使得Leak(f′)= Leak(f)。对于现有研究中考 虑的所有 F和Leak实例,均存在这样的可逆算法。
如前所述,定义4可以通过计算恒等函数的 Eval来平凡实现。为了使同态 秘密共享(HSS)具有实用性,我们对解码算法施加两类要求。
定义5(加法性和紧凑型HSS)
我们称一个(n, m, t)-HSS方案 Π= (Share,Eval,Dec) 为:
–加法性如果 Dec输出 m个输出份额的异或。或者,如果 Dec将其 m个 参数解释为阿贝尔群 G中的元素(而非比特串),并在 G中输出它们的和。 4 –紧凑的当输入长度足够大于安全参数时,输出份额的长度在输入长度上是 次线性的。具体而言: 我们称 Π是 g(λ, )‐紧凑的,如果对于每个 λ, ,和输入x0, x1,…, xn ∈{0, 1} ,在 以安全参数 λ执行Share然后执行Eval后得到的每个输出份额的长度至多为 g(λ, )。 我们说 Π是紧凑的,如果它是 g(λ, )-紧凑的,其中 g满足以下要求: 存在一个多项式 p(·)和一个次线性函数 g ′()= o(),使得对于任意的 λ和 ≥ p(λ),都有 g(λ, ) ≤g ′()。在具有常数 α的完美安全性或统计 α-安全性 的情况下,我们省略参数 λ,并将 Π称为 g()-紧凑的。 在这种情况下,我们将函数 F以及所有HSS算法Share,Eval,Dec视为隐式地接收群描 述 G作为附加输入。
备注3(紧凑性的其他概念)
人们可以考虑一种更强的紧凑性概念,要求每个 输出份额的长度与输出长度同阶(而定义5仅要求其在输入大小上为次线性)。 每个加法同态秘密共享方案都满足这一概念。满足此概念但非加法性的HSS方 案已被用于私有信息检索和局部可解码码的场景中,见[2]。加强紧凑性要求的 另一种方式是限制计算复杂度的Dec,例如要求其在输出长度上为拟线性。有关 激励性应用,请参见第4.1节(最坏情况到平均情况的归约)。
备注4(同态秘密共享的特殊情况)
– 我们有时会对有限函数的加法性HSS感兴趣,例如两个比特的与运算;这可 以通过仅考虑一个扩展ˆF来纳入定义4,该扩展在所有无效输入上输出0。 (注意,紧凑性概念对于有限的 F而言没有意义。) – 如上所述,公共服务器输入 x0通常被解释为来自某一类程序 P(例如,电 路或分支程序)的“程序” P,而 F是由 F(P; x1,…, xn) = P(x1,…, xn)定 义的通用函数。我们将此类HSS称为用于 P类的HSS。
3 函数秘密共享与同态秘密共享的构造
截至本调查撰写时(2017年10月),函数秘密共享/同态秘密共享的构造如下。给 定的复杂度度量是针对 n比特输入的。
“低端”:基于单向函数的函数秘密共享
这里 λ对应于伪随机生成器种子长度,在基于AES的实现中取为128比特。除 非另有说明,针对 m= 2服务器。
– 点函数 (“分布式点函数”)
点函数类由那些在输入 α上取值为 β,其他情况下取值为0的函数fα,β组成。
•在[15]中隐式构造,密钥大小为 O(2εn)比特,其中 ε> 0为常数。在[28]中形式化定义 并递归构造,密钥大小为 O(nlo g2(3)λ)比特。通过在[6]中采用基于树的解决方案,改进 至 O(nλ)比特。
•当前最优:密钥大小 λ+ n(λ+ 2) −log λ/|β| 比特,在 [9]. 5 对于 m> 2 个服务器:非平凡(但较差)的密钥大小 O(2 m2n/2λ) 比特,在 [6] 中. 5具体而言: λ+ n(λ+ 2)用于 λ‐比特输出,以及 λ+ n(λ+ 2) −log λ用于1比特 输出。
– 比较与区间[6,9]。
比较函数类由那些在输入 x满足 a< x时输出1的函数 fa组成。区间函数 f(a,b)当且仅当输入x位于区间 a< x< b内时输出1,否则输出0。 构造遵循与分布式点函数(DPF)类似的结构。比较函数的最佳密钥大小为 n(λ+ 3) 比特,区间函数为 2n(λ+ 3) 比特 [9]。
– NC0谓词 (即具有恒定局部性的函数)[6]。
对于局部性 d,密钥大小以 O(λ · nd) 增长。例如,这包括检查常数个比特的位匹配谓词 d。
– 决策树[9]。
决策树由以下部分定义:(1)树拓扑结构,(2)每个节点上的变量标签 v (其中每个变量的可能取值集合是已知的),(3)每条边上的值标签(源 变量的可能取值),以及(4)每个叶节点上的输出标签。 在[9],的构造中,密钥大小约为 λ · |V | 比特,其中 V是节点集合,对给定输 入的评估需要执行 |V | 次伪随机生成器以及相应数量的加法运算。该函数秘 密共享可保证隐藏秘密边值标签和叶输出标签,但(为了实现此效率)会泄 露基础树拓扑以及每个节点关联的变量身份。
常维区间
函数秘密共享(FSS)在决策树中的一个示例应用是常数 d维区 间查询:即函数f(x1,…, xd),当且仅当ai ≤ xi ≤ bi属于某个秘密区间范 围(ai, bi)i∈[d]时,该函数取特定的非零值。对于 n位输入xi, d维区间的FSS 可通过密钥大小和计算时间均为 O(λ· nd)的方法实现。对于较小的 d值,例 如支持区间合取的{v11},该方法具有较为理想的具体效率。
我们观察到,上述函数类的函数秘密共享构造可以与服务器端数据库操作相结合, 以模拟更丰富函数类的私有数据库操作,例如最大/最小和前k[40]。(见第4.2节。)
“高端”:来自公钥密码学的同态秘密共享
–分支程序(涵盖对数空间,NC1),针对双服务器,具有逆多项式 δ‐正确性, 基于判定性Diffie‐Hellman(DDH)[8]。求值运行时间随 1/δ增长。该构造 的高度优化版本见于[7,10]。
– 通用电路,基于带误差学习(LWE)[6,23]。 更具体地说,在定义4的术语中:从带误差学习(LWE)假设出发,通过幽灵 加密的FSS构造的简单变体(更具体地说,他们用于实现两轮MPC的技术), 可获得针对任意 n、 m和多项式规模电路的加法性(n, m)‐HSS。详见[23] (更具体地说,他们用于实现两轮MPC的技术)。细节参见[11]。
(先前还展示了如何通过亚指数安全的不可区分性混淆从[6]实现通用电路的函 数秘密共享。)
构造的直观理解
在接下来的两个小节中,我们将介绍两种特定构造背后的高层次直观 思想:(1)[9],提出的基于优化单向函数的分布式点函数;(
函数和同态秘密共享的最新进展(特邀报告)
3 函数秘密共享与同态秘密共享的构造(续)
3.1 概述:基于单向函数的分布式点函数
我们直观地描述了基于[9](遵循其中的文本)的(两方)分布式点函数 (DPF)(Gen•,Eval•)构造。回顾一下,分布式点函数 (DPF) 是一类点函数fα,β:{0, 1}n → G其唯一非零评估值为fα,β(α) = β 的 FSS 方案。为简便起见,考虑具有单比特输出 G={0, 1} 和 β= 1 的 DPF 情况。
基本密钥结构
从高层来看,两个DPF密钥k0, k1各自定义了一棵GGM风格二叉树[29],该树具有 2n个叶节点,其中叶节点由输入 x ∈{0, 1}n进行标记。我们将从根节点到标记为 x的叶节点的路径称为 x的评估路径,并将特殊输入 α的评估路径称为特殊评估路径。树中的每个节点 v都将被一个长度为 λ+ 1的字符串标记,该字符串包含一个控制位 t和一个 λ比特长的种子 s,其中每个节点的标签完全由其父节点的标签决定。函数Eval•将使用根标签作为密钥,计算通往输入 x的评估路径上所有节点的标签,并输出叶节点的控制位。
密钥生成
我们希望保持以下不变性:对于特殊路径之外的每个节点,两个树上的标签是相同的;而对于特殊路径上的每个节点,两个控制位不同,且两个种子不可区分于随机且独立的情况。注意,由于节点的标签由其父节点决定,如果特殊路径外某个节点满足该不变性,则其子节点将自动维持该不变性。此外,我们可以通过在密钥中显式包含标签,轻松满足根节点(始终位于特殊路径上)的不变性。挑战在于确保在离开特殊路径时仍能维持该不变性。
在描述该构造时,将节点的两个标签视为其标签的模2加法秘密共享是方便的,其中包含控制位 t的份额[t]= t0, t1以及 λ位种子 s的份额[s]= s0, s1。即, t= t0 ⊕ t1和 s= s0 ⊕ s1。该构造采用了两个简单的思想。
- 在两方情况下,加法秘密共享满足以下弱同态性质:如果 G 是一个伪随机生成器,则 G([s]) =(G(s0) G(s1)) 将零字符串的份额 s= 0 扩展为更长零字符串的份额 S= 0,并将随机种子的份额 s 扩展为更长的(伪)随机字符串的份额 S,其中 S 即使在已知 s 的一个份额的情况下仍是伪随机的。
- 加法秘密共享具有加法同态性:给定字符串 s 和比特 t 的份额 [s],[t],以及一个公开的校正字 CW,可以本地计算 [s⊕(t· CW)] 的份额。我们将此视为基于 t= 1 对秘密 s 进行 条件校正 ,校正值为 CW。
为了在评估路径上维持上述不变性,我们使用以下两种类型的同态。假设评估路径上第 i个节点 vi的标签为[s],[t]。为了计算第(i+ 1)个节点的标签,参与方首先在本地计算伪随机生成器 G的[S]= G([s]):{0, 1}λ →{0, 1}2λ+2,并将[S]解析为[sL, tL, sR, tR]。前两个值对应左子节点的标签,后两个值对应右子节点的标签。
为了保持不变性,密钥将为每一层 i 包含一个校正字 CW。如上所述,我们只需考虑 vi 位于特殊路径上的情况。根据不变性,我们有 t= 1,此时将应用校正。不妨假设 αi= 1,这意味着 vi 的左子节点不在特殊路径上,而右子节点在特殊路径上。为了确保不变性得以维持,我们可以在两个密钥中都包含校正 CW(i)=(sL, tL, sR ⊕ s′, tR ⊕ 1),其中使用一个随机种子 s′。这确实能保证在校正应用后,左右子节点的标签分别为 [0],[0] 和 [s′],[1] ,符合要求。但由于我们无需控制 s′ 的具体值,仅需使其为伪随机,因此可以改用校正 CW(i)=(sL, tL, sL, tR ⊕ 1),该校正可用 λ+ 2 比特表示。这对应于 s′= sL ⊕ sR。这些 n 个校正值 CW(i) 通过 Gen• 从根标签出发,沿特殊路径进行上述迭代计算得到,并被包含在两个密钥中。
最后,假设 β= 1,Eval•的输出仅仅是对应于 x的叶节点的份额[t]。来自任意阿贝尔群的不同值 β可以通过额外的修正 CW(n+1)来处理。
3.2 概述:基于DDH的分支程序 δ‐HSS
接下来,我们简要概述来自[8],的HSS构造,该概述源自[7]。将其纳入定义4的框架中,可得到一个基于DDH假设的、针对分支程序类的加法性公钥(∗,2)-δ‐ HSS。
为了符号表示的简洁性(以及更高的效率),我们假设ElGamal加密具有循环安全性。通过将ElGamal加密替换为博内、哈莱维、汉堡和奥斯卓夫斯基提出的具有循环安全性的公钥加密方案,该假设可被标准DDH所替代,如[8]中所示。
RMS程序
[8]的构造支持对输入 wi ∈ Z进行如下形式的直线程序的同态求值,前提是 Z中的所有中间计算值保持“较小”,由参数 M限定(所需的运行时间随此大小界限增长)。
定义6 (RMS程序) 。受限乘法直线型(Restricted MultiplicationStraight-line(RMS)) 程序类包含一个幅值界限 1M以及以下四种指令的任意序列,每条指令具有唯一的标识符id:
–将输入加载到内存中:(标识符,ˆyj ← ˆwi)。
–将内存中的值相加:(标识符,ˆyk ← ˆyi+ ˆyj)。
–将内存中的值与一个输入值进行乘法运算: (标识符,ˆyk ← ˆwi · ˆyj)。
–从内存中输出值,作为 Zβ的元素:(标识符 β, ˆOj ← ˆyi)。
如果在执行的任何步骤中,内存值的大小超过界限 M,则该程序在相应输入上的输出定义为 ⊥。我们定义RMS程序 P的 大小为其指令的数量。
具体而言,RMS程序仅允许将内存值与输入相乘(而非两个内存值相乘)。具有 M= 2的RMS程序功能强大,足以高效模拟布尔公式、对数深度布尔电路以及确定性分支程序(涵盖对数空间计算)。出于具体效率的考虑,它们在较大输入上执行算术计算的能力也十分有用。
编码 Zq元素
设 H为一个素数阶群,其子群 G具有素数阶 q(即DDH群)。令 g表示 G的一个生成元。对于任意 x ∈ Zq,考虑以下三种两方编码:
Level 1: “加密” 。对于x ∈ Zq,我们令[x]表示 gx, xc表示([r], [r · c+ x]),其中 r ∈ Zq为均匀随机选取的值,这对应于使用私钥 c ∈ Zq对 x进行的ElGamal加密。(在短指数ElGamal中, c是一个160位的整数。)我们假设 c以 B为基(默认为B= 2)表示为一个由 s位数字(ci)组成的序列。我们令[[[x]]]c表示(xc,(x · cic) 1≤i≤s)。所有第1层编码均为双方参与方所知。
Level 2:”加法共享。” 设 〈x〉 表示一对份额 x0, x1 ∈ Zq,使得 x0= x1+ x,其中每个份额由不同的参与方持有。我们用 〈〈x〉〉c 表示 (〈x〉,〈x · c〉) ∈(Z 2 q) 2,,即每个参与方持有一个 〈x〉 的份额和一个 〈x · c〉 的份额。注意,这两种编码都是在 Zq 上加法同态的,也就是说,在给定 x 和 x′ 的编码后,参与方可以本地计算出 x+ x′ 的有效编码。
Level 3:”乘法共享。” 设 {x} 表示一对份额 x0, x1 ∈ G,使得它们的离散对数之差为 x。即, x0= x1 · g x。
编码操作
我们通过以下两种操作来处理上述编码,这些操作由两个参与方本地执行:
- Pair(xc ,〈〈y〉〉c) →{xy} 。该配对操作利用了[a]和〈b〉可通过幂运算在本地转换为{ab}的性质。
- Convert({z}, δ) → 〈z〉, ,失败界限为 δ。Convert的实现还接收一个关于“有效载荷” z的上界 M(默认为M= 1 ),其期望运行时间与 M/δ呈线性增长。我们从以下符号表示中省略 M。
该转换算法的工作方式如下:每一方在输入 h ∈ G后,输出最小的整数 i ≥ 0,使得 h · gi是“可区分的”,其中大约有 δ比例的群元素是可区分的。可区分元素在[8]中通过将伪随机函数应用于群元素的描述来选取。来自[10]的一种优化转换过程(使用特殊的“易于转换”的 G ⊂ Z∗ p和 g= 2选择)采用如下启发式方法:若群元素的比特表示以d ≈log2(M/δ)个前导零开头,则定义该群元素为可区分;此方法进一步通过考虑d+ 1‐比特字符串 1||0d在[7]中的情况而得到优化。注意,该启发式仅影响运行时间而不影响安全性,因此可通过经验验证。当两个份额{z} ∈ G2之间的任何群元素均不可区分时,转换的正确性成立。
最后,如果“危险区域”中存在一个可区分的点,Convert 可以发出潜在失败信号。即,参与方 b= 0 (或 b= 1)在 h· g−i(或 h· gi−1)对某个 i= 1,…, M是可区分的情况下,提出潜在错误标志 ⊥。
请注意,我们使用符号 M既表示转换中的有效载荷上限,也表示RMS程序定义(定义6)中内存值的界限。在默认情况下,使用基2对第1层编码中的私钥 c进行RMS程序评估时,这两个值确实是相同的。(然而,在使用更大基时,它们在计算的部分过程中可能不同,更细致的分析可以改进误差界保证。)
令 PairConv 为依次执行上述 Pair 和 Convert 两个操作的算法: PairConv(xc,〈〈y〉〉c, δ) → 〈xy〉,,其误差为 δ。我们将 Mult 表示为以下算法:
–功能: Mult([[[x]]]c,〈〈y〉〉c, δ) → 〈〈xy〉〉c
将• Parse [[[x]]]c解析为(xc,(x · cic) 1≤i≤s)。
令 〈xy〉 ← PairConv(x,〈〈y〉〉c, δ ′) 对于 δ′= δ/(s+ 1)。
对于 i= 1 到 s,令 〈xy · ci〉 ← PairConv(xcic,〈〈y〉〉c, δ ′)。
•令 〈xy · c〉=∑ s i=1 B i−1 〈xy · ci〉。
•返回 (〈xy〉,〈xy · c〉)。
RMS程序的同态秘密共享
根据上述操作,可得到用于RMS程序的加法性 δ‐同态秘密共享。这可以按照定义4中的密钥生成设置来构建同态秘密共享。
– Key generation : Gen(1λ) 选取一个阶为 q 、具有 λ 比特安全性的群 G ,生成元为 g,以及秘密的 ElGamal 密钥 c ∈ Z q。它输出公钥 pk = (G, g, h, cic) 1≤i≤s,其中 h= g c,且 (ek0, ek1) ← 〈c〉, 是 c 的一个随机加法性分享。
– Share : Share(pk x) 利用 ElGamal 的同态性质计算并输出 [[[x]]]c 。
– RMS program evaluation :对于一个乘法大小为 S 的 RMS程序 P,算法 Eval(b, ekb,(ct1,…,ctn) P, δ, β) 处理指令 P的份额,按id排序,如下所示。我们共同描述双方参与方 b的算法,保持不变性:每当内存变量ˆy被赋值为 y时,参与方持有级别2的Share Y= 〈〈y〉〉c。
•ˆyj ←ˆxi:令 Yj ←Mult([[[xi]]]c,〈〈1〉〉c, δ/S),其中 〈〈1〉〉c 通过 〈1〉=(1,0) 从 (ek0,ek1) 本地计算得到。
• ˆyk ← ˆyi+ ˆyj:令 Yk ← Yi+ Yj。
• ˆyk ← ˆxi · ˆyj:令 Yk ← Mult([[[xi]]]c, Yj, δ/S)。ˆ
•(β,Oj ←ˆyi):将 Yi 解析为 (〈yi〉,〈yi · c〉),并输出一个新鲜的(伪)随机 r ∈ Zq 对应的 Oj= 〈yi〉+(r, r) mod β。
如果任何Convert调用引发了潜在错误标志,则置信标志为 ⊥,否则为 。
生成输出以及进行转换所需的伪随机性是通过使用一个公共的伪随机函数密钥实现的,该密钥作为每个ekb的一部分(隐式地)给出,并使用唯一的随机数作为输入,以确保不同调用的Eval在不可区分性上等同于独立操作。
单输入(“秘密密钥”)HSS 变体在两个方面更为简单。首先,Share 可直接运行 Gen 并从私钥 c 生成 [[[x]]]c。其次,输入加载指令 ˆyj ← ˆxi 可被直接处理,无需调用 Mult,只需让 Share 计算 Yj ← 〈〈xi〉〉c 并将 Yj 作为份额分发给两个参与方即可。
性能
每次RMS乘法或输入加载的成本主要由 s+ 1次PairConv调用决定,每次调用包含一次Pair和一次Convert。 Pair的成本主要由一次群指数运算主导 (在[7]中约为200位指数)。该指数的基仅取决于密钥和输入,因此当同一输入参与多次RMS乘法时,可采用优化的固定基指数运算。当RMS乘法应用于 0/1值时(如在评估分支程序的情况下),Convert的成本与 BS/δ呈线性关系,其中 B因子来源于 Convert 的有效载荷被基的大小所限制。当 δ足够小时,整体成本主要由 O(BS2s/δ)个“转换”步骤决定,每个步骤包括乘以 g并测试结果是否为特定群元素。
4 应用与影响
在本节中,我们将讨论函数秘密共享和同态秘密共享构造的影响。我们首先描述关于函数秘密共享/同态秘密共享与其他原语之间关系的已知结果,然后探讨 “低端”和“高端”构造方案的应用。
4.1 与其他原语的关系
以下是函数秘密共享/同态秘密共享原语主要的已知理论影响。
单向函数 。对于任何“足够丰富”的函数类 F(例如,点函数)的函数秘密共享需要单向函数[28]的存在。此外,在这样的函数秘密共享中,每个输出份额 fi被视为独立函数时,必须定义一个伪随机函数 [6]。注意,这一点从安全性定义来看并非先验明确,因为安全性定义仅要求份额隐藏 f。
(可摊销的)低通信安全计算 。研究表明,若函数类 F的FSS严格包含安全对称密钥加密方案的解密电路,则可推出基于相关随机性可复用来源(可通过一次性离线预处理实现)的安全两方计算中相关函数类的可摊销的低通信协议。若给定 F的HSS,则在无需对预处理进行摊销的情况下同样成立。6 在取得该结果时,所有已知的此类协议构建方法都依赖于全同态加密或相关原语,因此这被视为实现不依赖全同态加密的函数秘密共享(FSS)的一个 “障碍”。然而有趣的是,[8], 的工作逆转了这一局面,成功地基于DDH构造了一种适用于NC1的同态秘密共享(HSS)形式(从而实现了简洁安全计算)。
然而,“障碍”似乎仍然是有效的证据,表明无法基于弱密码学假设(例如 单向函数或不经意传输的存在)来构建通用的函数秘密共享/同态秘密共享(甚至是诸如NC1或可能的AC0这样的类别)。
非交互式密钥交换(NIKE)& 2轮不经意传输(OT) 。加法性多输入HSS (不同参与方的输入可被同态地共同计算;参见定义4)的能力似乎远大于其单输入版本。尽管针对某些函数类的单输入HSS构造可基于单向函数(OWF)实现,但迄今为止,所有多输入HSS的构造均依赖于一组结构化程度较高的假设: DDH、LWE和混淆[8,23]。
似乎这在某种意义上是固有的:如[11],所示,即使是对两个输入比特的 与门实现最简化的两方两服务器加法同态秘密共享,也意味着非交互式密钥交换(NIKE)的存在性[21],,而NIKE是一种已被深入研究的密码学概念,其已知的构造同样仅限于某些特定的结构化假设。NIKE在黑盒意义上与单向函数相互分离,并且极不可能由通用公钥加密或不经意传输所推出。
另一方面,这种用于与门的(2,2)‐加法性‐同态秘密共享不太可能由 NIKE所蕴含,因为该原语还意味着存在两轮消息的不经意传输(OT)[8],, 而这一点尚不清楚是否可单独从NIKE推导出来。在[10,11]中已展示了HSS与 两轮安全计算之间的进一步关联。
最坏情况到平均情况的归约 。 同态秘密共享(HSS)的另一种应用是实现在 P中的 最坏情况到平均情况的归约。粗略地说,用于同态评估函数的HSS评估函数Eval F定义了一个新函数 F′,使得在任意给定输入 F上计算 x可归约为在两个或更多个独立伪随机的输入上计算 F′(对应于 x的HSS秘密份额)。文献[17]中指出了一个类似的应用,该应用基于全同态加密(FHE)(而文献[28]中使用DPF则给出了一个弱得多的版本)。与基于FHE的归约相比,使用HSS的优势在于:仅需对布尔函数 F′进行常数次查询(最少可至2次),并最小化从查询结果中恢复输出的复杂度。后者在各类应用中可能带来效率优势(包括细粒度平均情况硬度和可验证计算等场景;参见[11])。此外,它还能在那些不被认为能推出FHE的假设下实现最坏情况到平均情况的归约,例如DDH假设。
4.2 单向函数机制中的应用
在“低端”场景下的FSS对高效私有地操作远程数据库具有有趣的应用,它将 私有信息检索(PIR)[16]和私有信息存储(PIS)[35]的概念扩展到了更具 表达能力的指令集。最近的研究还表明,FSS能够在涉及数据相关的内存访问 的程序的安全两方计算协议中带来具体效率的提升。我们将在下文更详细地描述这些应用。
多服务器PIR和安全关键词搜索 。假设每个 m个服务器持有一个包含关键词 wj ∈{0, 1}n的数据库 D。一个客户端希望在不向任何服务器的严格子集透露 w的情况下,统计给定关键词 w出现的次数。设 G= Zm+1且f= fw,1(在 目标值 w上取值为1的点函数),客户端可将 f拆分为 m个加法共享,并向服务器 i发送描述 fi的密钥 ki。服务器 i计算并回传给客户端 ∑w j ∈D fi(wj)。然后,客户端通过累加从各服务器收到的 m个群元素,即可得到匹配的数量。标准PIR对应于使用点函数fi,1(针对目标数据索引 i)的相同框架。在此应用中,可通过使用其他函数类 F的函数秘密共享,支持更丰富的搜索查询类型,例如 统计落在某一区间内的关键词数量、满足模糊匹配准则的关键词数量等。我们注意到,通过使用标准的随机草图技术,还可以获得类似方案,不仅能统计匹配数量,还能返回与有限数量的匹配相关联的有效载荷(参见例如[36])。
Splinter[40] 。以这种方式,点函数和区间的函数秘密共享(FSS)构成了Wang等提出的系统Splinter [40]的核心,用于在Yelp克隆的餐厅评论、机票搜索以及地图路径规划上执行私有搜索查询。在FSS直接提供的功能基础上,该系统通过在服务器端修改数据库,使得对修改后的数据库进行点函数/区间搜索即可回答更复杂的查询,例如最大/最小值(MAX/MIN)和TOP‐k。 (此处查询类型是公开的,但搜索参数被隐藏。)Splinter报告的端到端延迟低于1.6秒 现实的工作负载,包括在类似于40个城市的Yelp数据库中进行搜索,以及在纽约市的真实交通地图数据中进行路由。
增量秘密共享 。假设我们希望收集移动设备网络使用情况的统计数据,同时不损害个人用户的隐私性,并允许快速收集实时汇总使用数据。一个自然的解决方案是在 m个服务器之间维护一个由群元素组成的大规模秘密共享数组,其中 数组中的每个条目初始化为0,每当访问相应的网站时即进行递增。当客户端访问URLu时,可对点函数f= fu,1进行秘密共享,每个服务器 i通过将本地存储的对应URL uj的共享条目加上 fi(uj) 来更新该共享条目。最终结果是共享数组中只有位置 uj被递增,而任何涉及服务器严格子集的共谋都无法得知哪个条目被递增。同样,应用通用的函数秘密共享(FSS)可以实现更通用的“基于属性的”写入模式,例如秘密地递增所有其公开属性满足某个秘密谓词的条目。
上述增量秘密共享原语可用于实现私有信息存储问题的低通信量解决方案[35], 即PIR的“写入”类比。
Riposte[18] 。在Corrigan‐Gibbs等[18]提出的匿名广播系统Riposte中,以这种方式使用了作用于包含 220个条目的数据库上的点函数的FSS。大致而言,在该系统中,每个用户将其消息msg拆分为一个点函数fr,msg ,其中索引位置 r ∈[220]为 随机选择。各个用户的这些函数的共享通过每台服务器以加法方式组合,最终揭示出聚合结果。FSS安全保证确保了从每个单独用户到其贡献消息之间的关联仍然被隐藏。
防范恶意客户端 。在某些应用中,恶意客户端可能有动机向服务器提交伪造的 FSS共享,从而对应于对数据库的非法操纵。这在写入应用中可能产生特别不利的影响,例如在私密投票中投出“权重过高”的选票,或破坏当前的一组匿名广播消息。因此,理想的情况是设计高效的定向协议,使客户端能够在请求执行前通过与服务器的最小交互来证明其请求的有效性。此类协议已在[9,18]中的某些形式的分布式点函数(DPF)及相关设置中被设计实现。
安全两方计算(2PC)中的RAM程序 。在设计安全计算协议时,一个标准挑战是高效支持数据相关的内存访问,同时不泄露关于访问了哪些项目的信息(进而 不泄露关于秘密输入值的信息)。自[35],以来,这通常通过使用Oblivious RAM(ORAM)技术来解决,[31]将对大小为 N的数据中秘密索引 i的内存访问转换为一系列polylog(N)次内存访问,这些访问的索引看起来与 i无关。事实上,近年来一系列研究工作已在安全计算中实现并优化了ORAM系统。
弗洛拉姆[39] 。在最近的一项令人惊讶的进展中,多纳和谢拉特 [39] 展示了一种基于函数秘密共享的两方计算系统,该系统尽管存在固有的较差性能 O(N) 每次对每个秘密索引 i 的私有访问的渐近计算量(而非 polylog(N))——实际性能优于 当前基于 ORAM 的解决方案。
在他们的构造中,类似于ORAM在两方计算中的应用,安全计算中的两方 充当函数秘密共享方案中的两个服务器,而参与方之间底层的(基于电路的) 安全计算则模拟客户端的角色。他们方法的核心优势在于,尽管整体计算量较高,但与之前的ORAM设计相比,函数秘密共享中“客户端”操作的模拟所需的安全计算量非常小(对于他们所研究的内存大小,最多可减少一百倍)。他们实现的两方计算系统弗洛拉姆 [39](“FSS线性 ORAM”)在数据集大小为 32 KiB或更大时,性能优于此前已知最快的ORAM实现,即电路ORAM [41] 和平方根ORAM [43],,并且在安全稳定匹配 [24]或二分查找 [32]等应用上,性能优于先前的工作两到十倍。
4.3 公钥体制中的应用
在“高端”场景下,同态秘密共享(HSS)可在某些应用场景中作为全同态加密(FHE)的有力替代方案。全同态加密(FHE)[26,37]通常被视为密码学中的“理想工具”,能够对加密输入执行任意计算。例如,在安全多方计算 (MPC)[3,13,30,42],的背景下,FHE可用于最小化通信复杂度和轮复杂度,并将大部分计算任务转移给参与者中的任意子集。然而,尽管近年来取得了令人振奋的进展,即使是最新的FHE实现[14,25,33]仍然速度较慢,且需要较大的密文和密钥。这部分原因在于FHE构造所依赖的安全假设范围有限 [12,22,27],,这些假设均与格相关,因此容易受到格约化攻击。因此,可以说 在当前FHE实现中,几乎难以找到在综合考虑通信和计算成本的情况下,其性能优于经典安全计算技术(如混淆电路)优化版本的真实应用场景。
一个主要的动机性观察是,与标准的FHE不同,HSS即使在涉及短输入的小规模计算中也可能有用,甚至在基于传统安全计算技术的竞争性方法完全不适用的应用场景中也是如此。
HSS的优势 。与FHE一样,HSS能够实现安全计算协议,同时提供最少的交互和抗共谋能力。然而,HSS的最优输出紧凑性使其成为从短秘密输入(可能连同公开输入)计算长输出(或多个短输出)的应用中唯一可用的选择。更一般地说,这一特性使得HSS适用于需要最小化输出重构的通信和计算成本的应用场景,例如降低功耗。例如,移动客户端可能希望快速收到满足某些秘密搜索条件的实时新闻项的通知,并接收仅揭示匹配项指针的快速实时推送。
基于组的HSS相较于现有FHE实现的进一步优势包括更小的密钥和密文,以及更低的启动成本。
HSS应用
同态秘密共享的应用包括小规模的一般安全多方计算,以及私有信息检索、函数加密和广播加密的分布式变体。探索具体的此类应用(并优化基于DDH的 δ‐ 同态秘密共享构造)是[7]的主要研究重点。
具有最小交互的安全MPC 。通过使用多输入HSS,一组客户端可以将安全计算外包给两个非共谋服务器,并采用以下最小交互模式:每个客户端基于其自身输入和公钥独立向服务器发送一条消息,然后每个服务器向每个客户端发送一条消息。或者,如果输出需要公开,则服务器可以直接发布输出的份额。所得到的协议能够抵御任意一个服务器与部分客户端之间的(半诚实)共谋,且最小化了客户端所需完成的工作量。当对相同的输入执行多次“简单”计算时,该方案尤其具有吸引力。在此情况下,每一次额外的安全计算实例仅需服务器进行本地计算,随后客户端只需进行最少的通信和计算工作。
安全数据访问 。 同态秘密共享在安全访问分布式数据方面产生了多种不同的应用。例如,同态秘密共享可用于构建一种双服务器的基于属性的加密方案,其中每个客户端仅在其(公开或加密的)属性满足数据所有者设定的加密策略时,才能访问加密文件。其他示例应用包括双服务器私有RSS订阅服务,客户端可以收到关于新数据的简洁通知,这些新数据需满足其加密的匹配条件,以及支持一般布尔查询的双服务器PIR方案。这些应用得益于上述同态秘密共享所具备的最优输出紧凑性特点,从而最小化了从服务器到客户端的通信开销以及重构输出所需的计算量。
与基于经典安全计算技术的竞争性解决方案不同,基于同态秘密共享( HSS)的解决方案仅涉及客户端与服务器之间的最小交互,且服务器之间无需直接交互。事实上,在RSS订阅源和私有信息检索(PIR)应用中,客户端可自由选择任意一对能够访问被私有搜索数据的服务器。这些服务器无需知晓彼此的身份,甚至无需知道自己正在参与一个基于同态秘密共享的密码学协议:每个服务器只需在数据(的相关部分)上运行客户端提供的代码,并将输出直接返回给客户端即可。
相关随机性生成 。一个有趣的应用场景是目标输出本身是一种加法秘密共享。 HSS 提供了一种非交互式生成相关随机性源的方法,可用于加速安全两方计算的经典协议。
具体而言,在设置阶段,参与方交换随机输入的同态秘密共享份额后,可以本地扩展这些份额(无需任何通信)为有用形式的相关随机性。相关随机性生成的非交互式特性有助于隐藏意图执行安全计算的参与方身份(例如,抵御网络流量分析),以及所执行计算的时间和大小。
所考虑的有用相关性[7]包括双线性相关性(包含“比弗三元组”作为特例) 和真值表相关性。 [7]的研究还提出了在设置阶段通过使用局部伪随机生成器的同态求值来进一步压缩通信,并提出了不同的方法以改善其渐近计算复杂度。然而,这种基于伪随机生成器的压缩仍处于理论阶段(由于当前基于组的 HSS实现效率较低,实际运行时间过长而难以实现)。
5 未来方向
对函数秘密共享/同态秘密共享的研究是一个快速扩展的新研究领域,不断带来惊喜并揭示更深层次的奥秘。本调查绝非涵盖所有已知内容的全面综述,而是旨在通过提供一个半集中化的资源和有用的指针,促进未来的研究。
最后,我们列出了一些开放问题,并表达了作者对未来可能取得成果的期待。
5.1 开放问题
– 基于单向函数的改进型函数秘密共享
- DPF效率提升和/或下界?
- 基于OWF的CNF/DNF公式FSS?更好的决策树FSS?
- 3‐服务器DPF实现优于 2n/2的密钥大小?
- 新函数类中单向函数与函数秘密共享的分离性?
– 基于DDH的改进型同态秘密共享
- 更优的误差与计算权衡(在Eval的份额转换步骤中)?
- 用于分支程序的基于DDH的无误差HSS?
- 基于DDH的 δ‐HSS用于电路(或超出分支程序的其他结构)?
- 用于>2服务器的基于DDH的HSS?
– 新型构造
- 基于新假设的函数秘密共享/同态秘密共享?
- 能否基于LWE直接构造HSS而不通过FHE?
– 应用与实现
- 能否实现更好的实现优化?
- 基于“高端”HSS的应用的实现?
- FSS与HSS的新应用场景?
3185

被折叠的 条评论
为什么被折叠?



