【SCC】正确计算的签名

摘要我们引入了正确计算签名(SCC),这是一种在云环境中验证动态计算的新模型。在SCC模型中,一个受信任的源将函数f外包给一个不受信任的服务器,以及该函数的公钥(在验证期间使用)。服务器可以产生一个简洁的签名σ担保的正确性f的计算,例如,一些结果v确实是正确的结果函数f e v t l u e d o n s o m e点。有两个关键性能属性,我们要保证在SCC建设:(1)验证签名所花费的时间渐近小于函数f的计算时间;(2)当功能发生变化时,应有效地更新公钥。

我们构造了SCC方案(满足上述两个性质),支持对多元多项式的表达操作,例如多项式的求值和微分。我们的构造在随机oracle模型中是自适应安全的,并实现了最优更新,即,函数的公钥可以按更新系数的数量比例及时更新,而无需执行线性时间计算(以多项式的大小)。

我们还展示了正确计算的签名隐含了公开可验证计算(PVC),一个最近在几个并行和独立的著作中引入的模型。大致说来,在鳞状细胞癌模型中,任何客户机可以验证签名σ,确信一些计算结果,而在PVC模型只有客户端发出查询(或任何人如果相信这个客户)可以验证服务器返回一个有效的签名(证据)查询的答案

我们的技术可以很容易地适用于构建具有自适应安全、高效更新和没有随机oracle模型的PVC方案。

1 Introduction

鉴于云计算范式在商业和消费者应用程序中的出现,在第三方数据管理设置中提供完整性保证变得越来越重要。例如,考虑以下场景:一家公司开发了一些新算法,例如,用于个性化医疗或股票趋势预测。为了避免在内部投资昂贵的 IT 基础设施,该公司选择将该算法的执行外包给外部的、不受信任的云提供商(例如亚马逊、谷歌)。假设用户只信任开发了算法,但不是云提供商?上述问题提出了两个关键要求:(1)效率,即客户端执行验证算法的运行时间应渐近小于在云端执行算法所需的时间; (2) 公开可验证性,这意味着我们的验证机制不应与特定验证者的密钥绑定,以便任何用户都可以验证计算。此外,另一个理想的特性是有效地处理对外包算法的更新,而无需从头开始计算公共参数。

在本文中,我们提出了一种用于验证云中动态计算的新范式,称为正确计算签名 (SCC)。 SCC 允许不受信任的工作人员生成签名,以保证对某些输入的某些计算的正确性;任何用户都可以使用由在云中外包该功能的受信任来源发布的公钥(由一次性预处理产生)来验证签名。

正确计算的签名与 Parno 等人提出的可公开验证计算 (PVC) 密切相关。 [31],卡内蒂等人。 [9] 以及 Fiore 和 Gennaro [12,13],在我们的同时和独立的作品中。具体来说,正确计算的签名比可公开验证的计算更强:给定一个 SCC 方案,可以直接构造一个 PVC 方案;而反过来似乎并不正确。更具体地说,在 PVC 中,“正确计算证明”与特定挑战相关联(由 [31] 中的算法 ProbGen 生成),并且只能由生成该挑战的客户端(或任何信任此挑战的人)验证客户)

相比之下,正确计算的签名与任何挑战无关,并且可以由世界上的任何人验证,其方式与消息上的传统签名大致相同。我们在第 1.2 节中提供了 PVC 和 SCC 的详细比较。

1.1 结果和贡献

我们为多元多项式操作设计 SCC 方案,包括多项式评估和微分。我们的技术亮点之一是此设置中的一种新方法,它允许我们稍微修改我们的选择性安全方案以实现自适应安全性。我们的 SCC 方案在随机预言模型下实现了自适应安全性。我们还表明,在较弱的 PVC 模型下,我们的技术可以在没有随机预言机的标准模型下实现自适应安全性。

我们的主要成果和贡献总结如下:

新范式的定义。我们是第一个正式定义正确计算签名 (SCC) 及其安全性并研究其与 PVC 关系的人。

多项式操作的新结构。我们专注于为特定功能导出有效和优化的构造,而不是像 Parno 等人采用的方法那样通用构造。 [31] 和卡内蒂等人。 [9]。我们为表达性多项式操作提供有效的 SCC 构造,包括多元多项式评估和微分。多项式运算代表了广泛应用中的常见构建块,例如统计分析、科学计算和机器学习。 Fiore 和 Gennaro [13] 指出了多项式上可公开验证计算的许多有趣应用,包括其在可检索性证明、可验证关键字搜索、离散傅里叶变换和线性变换中的应用。我们的构造基于双线性群。我们在随机预言模型下证明了我们的结构的自适应安全性。

高效的增量更新。我们的结构允许受信任的源在时间上与更新的多项式系数的数量成比例地进行增量更新,并且无需从头开始执行计算,这将花费多项式大小的线性时间。

自适应安全性的新颖证明技术。我们的构造和证明介绍了几种新技术。首先,我们观察到关键多项式分解属性(引理 1 和 3),它们成为我们构建的核心思想

其次,虽然对于单变量多项式评估 [23] 实现自适应安全性似乎相对容易,但在多变量情况下实现自适应安全性似乎从根本上更加困难。为此,我们提出了涉及在多项式分解属性(引理 2 和 4)中嵌入随机性的新技术,以便我们的模拟器稍后可以在证明中操纵这些随机数。我们在 1.3 节给出了一个高层次的技术概述。

对可公开验证计算的贡献。我们的结果还带来了可公开验证计算领域的进步。具体来说,我们的技术可以很容易地应用于产生具有自适应安全性(没有随机预言模型)和高效更新的可公开验证的计算方案(对于相同的操作)。相比之下,现有的 PVC 工作 [9,13,31] 实现了自适应安全性,但不支持高效更新。我们在 1.2 节中给出了更详细的比较。

1.2 相关工作

经过身份验证的数据结构。 SCC 模型与认证数据结构 (ADS) 模型直接相关 [33,35]。从某种意义上说,SCC 和 ADS 互为双重问题,具有完全相同的安全属性。在 SCC 中,受信任的来源将功能外包,并且客户希望在给定点验证功能的结果。在 ADS 中,可信来源将数据或数据结构外包,客户端希望验证数据结构查询结果的正确性,例如字典 [18,26]、图 [20,25] 和哈希表 [ 29,34]。大多数经过身份验证的数据结构方案都会产生对数或线性的验证成本开销,但一些例外是经过身份验证的范围查询 [2,19] 和设置操作 [30],其中验证所需的时间与答案的大小成正比。

密钥设置 (SVC) 中的可验证计算。最近关于可验证计算的工作 [1,10,14] 实现了通用布尔电路的有效验证,但在密钥模型中。因此,它们本质上不适合设置需要公开验证的签名。

多项式的可验证计算。贝纳巴斯等人。 [3] 开发了通过使用代数单向函数来有效验证多元多项式评估的方法 - 但是,在 SVC 模型中。这项工作没有实现多项式系数的有效更新(具体而言,为了更新系数,必须重新随机化所有现有系数)。1 Kate 等人。 [23] 给出了一个可公开验证的单变量多项式承诺方案,它本质上是一个 SCC 方案表 1. 客户端的渐近成本。在下表中,n 是多项式中的变量数,d 是最大次数。对于 SVC,我们表示“可秘密授权和可验证的方案”,对于 PVC,我们表示“可公开授权和可验证的方案”,对于 PVC*,我们表示“可公开验证但不可公开授权的方案”(参见第 1.2 节第 5 段)和对于 SCC,我们表示“正确计算方案的签名”。请注意,d 次的 n 变量多项式最多可以有 项,最多需要 评估的时间。因此,这里的验证成本小于评估多项式的​​成本。对于 PVC 方案,客户成本包括委托和验证成本。

 

单变量多项式评估。然而,他们的方案并没有直接扩展到多元多项式。另请注意,我们的构造是第一个支持区分查询的有效验证的——即使在 SVC 设置中也是如此。

与 CS 证明和 SNARG 的关系。我们的 SCC 模型与 Micali 在 1994 年 [27] 引入的计算健全证明模型密切相关,并且与 Groth [22]、Bitansky 等人随后关于简洁非交互式参数 (SNARGs) 的工作密切相关。 [4,5] 和 Gennaro 等人。 [15]。主要联系是 SCC 和 SNARGs 模型都是非交互的且可公开验证的(CS 证明在随机预言机模型中也可以是非交互的),即,可公开验证的证明可以独立计算(并且无需与) 验证者。我们在此注意到,文献中提出的所有 CS 证明和 SNARGs 构造都是通用的,因为它们可以通过使用强大的工具(例如 PCP 定理)来处理所有 NP(使用不同表征的 [15] 除外) NP)。此外,所有这些(除了 Micali [27] 的工作在随机预言模型中是安全的)都基于不可证伪的假设 [17] 被证明是安全的,例如 Groth [22] 和 Gennaro 等人的工作. [15] 使用 Damgard [11] 引入的基于知识的假设的变体。不可证伪的假设被认为比密码学中使用的所有常见假设(单向函数、陷门排列、DDH、RSA、LWE 等)要强得多。我们注意到,我们在构造中使用的假设不属于这一类——然而,为了验证多元多项式(不是单变量多项式),我们确实使用了随机预言,就像 Micali [27] 的构造一样。然而,主要区别(与[27])是我们不使用 PCP 定理,因此实现了更实用的方案。

并行和独立的作品。 Parno 等人提出的两个密切相关的方案。 [31] 和 Cannetti 等人。 [9],它们是与我们的工作同时开发和独立开发的。

在 Parno 等人提出的 PVC 配方中。 [31],任何客户端都可以验证不受信任的服务器在特定输入 a 上正确计算函数 f。然而,它们的定义需要一个输入准备随机算法 (ProbGen),将用户输入 a 映射到服务器输入 σa 并准备一个用于验证的对象 VKa,特定于 σa。因此,与 SCC 设置相反,只有对 a 发出查询的客户端(或信任此客户端的任何人)才能验证服务器是否返回了 f(a) 的有效签名(证明)。否则,运行 ProbGen 算法的客户端可能会与服务器串通以伪造证明,从而说服另一方接受该证明。除了定义 PVC,Parno 等人。 [31]从基于属性的加密(ABE)中给出了广义布尔函数(在补码下闭合)的构造。它们的构造是渐近有效的——证明的大小与答案的大小成正比。此外,由于 Lewko 和 Waters [24] 在 ABE 方案中的最新进展,Parno 等人的 PVC 结构。 [31] 可以被证明是自适应安全的,因为它们直接继承了底层 ABE 方案的安全性。

与 Parno 等人的方案具有相似特性的 PVC 方案。 [ 3 1 ] 由 Canetti 等人提出。 [9],其中客户端验证在评估电路的大小上是多对数的。卡内蒂等人。在稍弱的模型下实现自适应安全性(正如 Parno 等人指出的 [31]),其中客户端需要保持某些秘密状态。他们的方案与 Parno 等人的方案具有相同的限制。 [ 3 1 ] 除非有额外的假设,否则客户只能验证他的查询。

最密切相关的工作是 Fiore 和 Gennaro [13] 最近的工作,他们提出了一种为基于代数单向函数的多元多项式量身定制的 PVC 方案。改进的版本 [12] 使用不太复杂的假设(例如 RSA)来实现相同的目标。 Fiore 和 Gennaro 的作品在以下意义上与我们的作品不同。首先,他们考虑了一个比 Parno 等人提出的 PVC 模型更具限制性的模型(在表 1 中用 PVC* 表示)。 [31]——因此比 SCC 模型更具限制性。具体来说,有一个明确的委托阶段,其中基于输入生成问题实例(如 Parno 等人 [31] 的 PVC 定义)。然而,在他们的构造中(与原始 PVC 定义不同),只有为特定功能运行设置算法的一方才能运行问题生成算法。因此,他们的计划是可公开验证的,但不可公开委托。因此,他们的方案不适用于制药公司外包基因组算法,每个用户提交自己的基因组数据进行计算的应用场景。此外,他们没有考虑多项式系数的有效更新。相比之下,他们的方案具有更有效的验证和 O(n log d) 成本的委托步骤。在验证成本和安全模型方面,我们的方案与几个相关工作的详细比较如表 1 所示。

1.3 技术亮点

多元多项式评估。 Kate 等人的多项式承诺方案。 [23] 可用于构建单变量多项式评估的 SCC 方案。具体来说,凯特等人。 [23] 观察到,为了保证 Zp 中多项式 f(x) 在点 a ∈ Zp 处评估的结果,可以依赖多项式 f(x) - f(a) 完全可被1 次多项式x − a, w h e r e a ∈ Zp。换句话说,可以找到一个多项式 w(x),使得 f(x) - f(a) = (x - a)w(x)。使用这个属性,他们从项 w(x) 构造一个见证,并使用双线性组中的配对操作,他们将上述测试 f(x) - f(a) = (x - a)w(x) 编码为群元素的指数。

不幸的是,上述测试不适用于多变量情况。因此,我们基于以下观察提出了一种新技术。令 f(x) 为 Zp 中的多元多项式,其中 x = [x1, x2, 。 . . , xn]。然后,对于 a = [a1, a2, . . . , an] ∈ Znp , 多项式 f(x) - f(a) 可以表示为 f(x) - f(a) = ?n i=1(xi - ai)wi(x)

多项式 wi(x) 将用于在我们的方案中构建见证。具体来说,我们将它们的项编码为双线性群元素的指数。验证是在指数中编码上述测试的配对积方程。

从选择性安全到自适应安全。适用于多项式评估的测试包含项的总和,而不是单变量情况下的单个项 [23]。这导致了证明中的某些技术细节,使我们只能证明选择性安全性的较弱概念(参见附录中的定义 6)。

从选择性安全到自适应安全并非易事。为了实现这一点,我们设计了一种新技术,将随机性构建到多项式分解(引理 2 和 4)中,这是我们构造的核心。作为我们使用随机预言机构建自适应安全 SCC 的直接推论,我们在普通模型中构建了一个自适应安全 PVC 方案。

衍生评估。支持可验证导数评估的一种简单方法是源在设置期间提交 nk 个多项式,对应于第一个、第二个、... . . , 每个可能变量的第 k 个导数。但是,如第 5 节所述,此方案会导致设置和更新开销增加。

我们验证任意导数评估的技术受到以下观察的启发,该观察适用于单变量多项式的一阶导数:给定单变量多项式 f(x),除以多项式 f(x) - f ?(a) 的余数具有多项式 (x − a)2 的 x 始终是常数多项式,而不是通常发生的一阶多项式。换句话说,f(x) − f ?(a)x = (x − a)2q(x) + b 对于一些 q(x) ∈ Zp[x], a n d b ∈ Zp。可以对高阶导数和多元多项式进行类似的、稍微复杂一点的观察。更多细节在第 5 节中提供。

2 前言、定义和假设

在本节中,我们给出了将在本文其余部分中使用的必要定义。安全参数表示为 λ,PPT 代表概率多项式时间,neg(λ) 表示可忽略函数的集合,即对于所有多项式 p(λ),所有函数都小于 1/p(λ)。我们还使用粗体字母表示向量变量,即 x = [x1, x2, . . . , xn] 表示 n 个条目 x1, x2, 的向量。 . . , xn。

2.1 问题定义

我们现在正式定义正确计算的签名(SCC)。

定义 1(SCC 方案)。函数族 F 的 SCC 方案(正确计算的签名)是具有以下规范的五种 PPT 算法的元组(KeyGen、Setup、Compute、Verify、Update):

  1. (PK, SK) ← KeyGen(λ, F):算法 KeyGen 将安全参数 λ 和函数族 F 作为输入。它输出一个公钥/私钥对 (PK, SK)

    KeyGen 仅在系统初始化时由受信任的来源运行一次;

  2. FK(f) ← Setup(SK, PK, f):算法设置(由可信来源运行)将密钥 SK、公钥 PK 和函数 f ∈ F 作为输入。它输出函数公钥 FK (f) 对于函数 f;

  3. (v, w) ← Compute(PK, f , a):算法计算(由不受信任的服务器运行)将公钥 PK、函数 f ∈ F 和值 a ∈ domain(f) 作为输入。它输出一对(v, w),w h e r e v = f(a),w是一个签名;

  4. {0, 1} ← Verify(PK, FK(f), a, v , w):算法验证(由任何验证者运行)将公钥 PK 作为输入,函数公钥 FK(f),值 a ∈ domain(f)、声明的结果 v 和签名 w。它输出 0 或 1;

  5. FK(f ?) ← Update(SK, PK, FK(f), f ?):算法更新(由可信来源运行)将密钥 SK、公钥 PK、函数公钥 FK(f ) 用于旧函数 f 和更新后的函数描述 f ?。它输出更新后的函数公钥 FK(f ?)。

 

更新算法允许源将函数 f 更新为新函数 f ?

实现 Update 的一种简单方法是简单地为新的 f? 再次运行 Setup 算法。然而,在实践中,人们可能希望允许更有效的增量更新(这就是我们的构造所实现的)。

2.2 正确性和安全性定义

我们现在描述 SCC 的正确性和自适应安全性定义。直观地说,一个 SCC 方案是正确的,只要它的算法被诚实地执行,它从不拒绝一个正确的签名。此外,如果在执行设置/更新算法之后,对手无法说服验证者接受他选择的输入的错误结果,除非概率可以忽略不计,这也是安全的。

定义 2(SCC 方案的正确性)。令 λ 为安全参数,令 P 为函数族 F 的 SCC 方案(KeyGen、Setup、Compute、Verify、Update)。L e t (PK, SK) ← KeyGen(λ, F)。 F 或所有 i = 1, . . . , poly(λ), 对于任意函数 fi ∈ F, 假设 FK(fi) 是 Update(SK, PK, FK(fi−1), fi) 的输出,其中 FK(f0) 是算法 Setup(SK , PK, f0) 对于一些 f0 ∈ F。我们说 P 是正确的,如果对于任何 i = 0, . . . , poly(λ), 对于任何 a ∈ domain(fi), i t i s 1 ← Verify(PK, FK(fi), a, v , w), 其中 (v, w) ← Compute(PK, fi, a)。

 定义 3(SCC 方案的自适应安全性)。令 λ 为安全参数,令 P 为函数族 F 的 SCC 方案(KeyGen、Setup、Compute、Verify、Update)。我们说,如果没有 PPT 对手 A 具有超过可忽略的概率 neg( λ) 在以下安全博弈中获胜,在敌手 A 和挑战者之间进行:

 

  1. 初始化。挑战者运行算法 KeyGen 输出 (PK, SK),然后将 PK 提供给对手,但保持 SK 秘密;
  2. 设置和更新。攻击者对 Setup(SK, PK, f0) 算法进行预言机查询,指定初始函数 f0 ∈ F,输出 FK(f0)。那么,对于 i = 1, . . . , k, w h e r e k = poly(λ),他对 Update(SK, PK, FK(fi−1), fi) 算法进行多项式预言机查询,每次指定 fi ∈ F。挑战者回答查询通过返回结果 FK(fi);
  3. 伪造。对手 A 输出一个点 b ∈ domain(fi) 对于一些 0 ≤ i ≤ k 和伪造 (b, v , w)。

如果 1 ← Verify(PK, FK(fi), b, v , w) 且 fi(b) ?= v,则敌手 A 获胜。

 

2.3 SCC 隐含 PVC

正如我们在介绍中强调的那样,正确计算的签名 (SCC) 比在并发但独立的论文中研究的公开可验证计算 (PVC) 概念更强 [9,12,13,31]。具体来说,正确且安全的 SCC 方案意味着正确且安全的 PVC 方案,但并非相反。为了看到这一点,可以实现 PVC 方案(例如,[31])的算法 σa ← ProbGen(PK, a) 以简单地输出 a 并且所有其他算法保持不变。

为了完整起见,在附录的定义 6 中,我们还提供了可公开验证计算 (PVC) 的定义。我们的 PVC 定义基本上等同于 Parno 等人提出的定义。 [31] 和卡内蒂等人。 [9],除了我们使用更新算法对其进行扩充,受信任的来源可以使用该算法来增量更新外包功能(此外,我们的 ProbGen 算法称为挑战)。

2.4 多元多项式表示法

我们现在给出多元多项式的一些符号。我们在某个全域 U 上使用多重集的概念,这是一个由全域 U 中的元素组成的广义集合,其中每个元素可以出现多次;例如,{1, 1, 2, 3, 3, 3} 是一个多重集。在本文中,我们使用以下符号来表示多重集。形式上,多重集 S : U → Z≥0 是将全域 U 中的每个元素映射到其多重性的函数

对于任意 x /∈ S,S(x) = 0。例如,对于多重集 {a, a, b, c, c, c},w e h a v e S(a) = 2, S(b) = 1, S( c) = 3; h o w e v e r , S(e) = 0 因为 e 不包含在上述多重集中

现在让 S, T 表示宇宙 U 上的两个多重集。 I t i s S ⊆ T , i f ∀a ∈ U, S(a) ≤ T (a)。 S 在宇宙 U 上的大小,表示为 |S|,定义为 S 中所有元素的多重性之和,即 |S| = ? a∈U S(a)。最后,Sd,n 表示在全域 {1, 2, . . . , n}。 L e t n o w f ∈ Zp[x1, x2, . . . , xn] = Zp[x] 是 Zp 上最大度数为 d 的 n 变量多项式。我们可以使用以下通用符号来表示 f, i 。 e.

 

例如,多重集 {1, 1, 2, 2, 2, 5} 对应于多项式扩展形式中的 x21x32x5 项。空多重集∅对应于常数多项式中的项。最后,多元多项式的次数是多项式中包含的任何单项式的最大总次数。例如,多项式 3x1x2 + x33x4x5 的次数为 5。

 

 

2.5 双线性群和计算假设

我们现在回顾一些关于素数双线性群的背景。令 G 为由 g 生成的素数阶 p 的循环乘法群。还设 GT 是具有相同阶 p 和 e 的循环乘法群: G × G → GT 是具有以下性质的双线性对: (1) 双线性: e(P a, Qb) = e(P, Q)ab对于所有 P,Q ∈ G 和 a,b ∈ Zp; (2) 非退化:e(g, g) ?= 1; (3) 可计算性:有一种有效的算法可以计算所有 P, Q ∈ G 的 e(P, Q)。我们用 (p, G, GT , e, g) 表示双线性对参数,由 PPT 算法输出在输入 1λ 上。我们使用以下计算假设 [6]:

定义 4(双线性 ?-强 Diffie-Hellman 假设)。假设 λ 是安全参数,让 (p, G, GT , e, g) 是均匀随机生成的双线性对参数元组。给定元素 g, gt, . . . , gt? ∈ G 对于从 Z∗p 中随机选择的一些 t,f o r ? = poly(λ),没有可以输出对 (c, e(g, g)1/(t+c)) ∈ Z∗p\{−t} × GT 的 PPT 算法,除了可忽略的概率 neg( λ)。

 

3 选择性安全的多元多项式求值

作为一个热身练习,在本节中,我们首先提出一个 SCC 方案,用于多元多项式评估,该方案在宽松的安全模型下是安全的,即选择性安全模型。然后,在第 4 节中,我们解释了如何增强这种选择性安全方案并在随机预言机模型中实现自适应安全性。

选择性安全性弱于自适应安全性,需要对手提前提交挑战点 a,这类似于基于身份的加密 (IBE) [7]、基于属性的加密 (ABE) 中经常采用的选择性安全概念) [21]、功能加密 (FE) [32] 和谓词加密 (PE) [8]。详细的选择性安全定义在附录的定义 6 中描述。 

来源:Signatures of Correct Computation

猜你喜欢

转载自blog.csdn.net/weixin_40889839/article/details/124868822