基于DDH假设的高效重加密程序Obf
阿克沙亚兰·斯里尼瓦桑1(B)和钱德拉塞卡兰·潘杜·兰根2
1美国加州大学伯克利分校 akshayaram@berkeley.edu, prangan55@gmail.com
2印度马德拉斯印度理工学院
摘要
重加密功能将使用公钥 pk1加密的密文转换为使用另一个公钥 pk2加密的相同消息的密文。霍亨贝格尔等人(TCC 2007)在一种称为 average-case secure obfuscation的新混淆概念下,提出了实现重加密功能电路族的基于配对的混淆器。Chandran等人(PKC 2014)提出了相同的基于格的构造。
霍恩伯格等人的构造仅能支持多项式大小的消息空间,且其安全性证明依赖于双线性群上的强假设。钱德兰等人的构造仅能满足宽松的正确性概念。
在这项工作中,我们提出了一种 simple 和 efficient 的重加密功能混淆器,该混淆器满足最强的正确性概念,支持来自指数大小域的消息加密,并基于 standard DDH假设。这是首个不依赖于配对或格的构造。我们所有的证明均在标准模型中完成。
关键词 :重加密功能 · Average-case安全混淆 · DDH假设 · Standard模型
1 引言
程序混淆的目标 [2,22]是在保留其功能性的同时,使程序变得“不可理解”。这一安全目标在巴拉克等人的开创性工作中得到了形式化。[2]最强大且最直观的概念是
A. 斯里尼瓦桑——部分工作在作者于马德拉斯印度理工学院就读期间完成。研究部分由2017年AFOSR YIP奖、DARPA/ARL SAFE‐WARE奖W911NF15C0210、 AFOSR奖FA9550‐15‐1‐0274、NSF CRII奖1464397,以及冈川基金会、维萨公司和加州大学伯克利分校长期网络安全中心(CLTC)桑贾姆·加尔格教授的研究资助支持。此处表达的观点仅为作者观点,不代表资助机构的官方政策或立场。C. Pandu Rangan——研究部分由印度政府信息技术部的信息安全教育与意识项目以及微软研究院,印度班加罗尔支持。
c©施普林格国际出版有限公司2017 D. Gollmann et al. (Eds.):ACNS 2017, LNCS 10355, pp. 273–292, 2017. DOI: 10.1007/978‐3‐319‐61204‐1 14
本文档由 funstory.ai 的开源 PDF 翻译库 BabelDOC v0.5.10 (http://yadt.io) 翻译,本仓库正在积极的建设当中,欢迎 star 和关注。
他们在工作中考虑的安全性被称为谓词黑盒(也称为虚拟黑盒)混淆。该定义要求,任何在能够访问混淆程序的情况下可高效计算的谓词,也必须在对同一程序具有黑盒访问权限时可高效计算。不幸的是,巴拉克等人指出,满足谓词黑盒性质的通用程序混淆器并不存在。尽管存在这一普遍不可能性结果,但针对简单函数族,已构造出满足这种强安全性概念的程序混淆器。通用程序混淆器满足谓词黑盒性质的情况并不存在。尽管存在这一普遍不可能性结果,但针对简单函数族,已构造出满足这种强安全性概念的程序混淆器。[10,12,29]。
平均情况安全混淆
霍恩伯格等人[24]指出,当被混淆的功能性(如重加密)是更大密码系统(如底层加密方案)的一部分时,谓词黑盒性质并不能提供有意义的安全性保证。他们讨论了一种场景,即即使混淆器满足谓词黑盒性质,访问被混淆的程序仍可能危及整个密码系统的安全性。
为了解决这一问题,霍恩伯格等人提出了一种新的混淆定义,称为平均情况安全混淆。该定义保证了:对于拥有混淆程序访问权限的任何攻击者,只要该密码方案具有可区分攻击性质,就可以将其转化为仅具有程序黑盒访问权限的攻击者。非正式地说,如果存在一个区分器能够“测试”给定算法是否可以破坏该方案的安全性,则称该密码方案具有可区分攻击性质。事实上,霍恩伯格等人指出,诸如语义安全加密和重加密等许多自然的密码功能都具有此性质。
1.1 先前工作
在平均情况安全概念下已被证明可混淆的密码学功能是重加密功能。重加密功能将使用公钥 pk1加密的密文转换为同一消息使用另一个公钥 pk2加密的密文。
霍恩伯格等人 [24]基于决策线性和三方判定性Diffie‐Hellman假设的一种变体,设计了针对重加密功能的平均情况安全的混淆器。然而,该构造仅能支持多项式大小的消息空间。他们工作中的解密算法通过在消息空间上执行穷举搜索,对每个消息计算配对操作,并将配对输出与特定值进行比对。因此,在最坏情况下,它必须计算多项式数量的配对操作。此外,他们的构造安全性依赖于一个较强的假设,即强三方DDH。
备注 1. 我们注意到,通过使用他们在布尔空间 {0, 1} 上的构造,可以将 [24] 的系统扩展到任意大小的消息空间。对于任意消息空间 M,可以逐位加密每个消息比特
因此在加密和解密上会产生 O(log(|M|))的开销。对于指数级(相对于安全参数 λ)大小的消息空间,加密和解密算法的开销将是poly(λ)。但理想情况是拥有一个在每个算法中都执行常数次操作(即具有常数开销)的系统。
钱德兰等人 [13]在假设某些格问题具有交互性的前提下,为重加密电路设计了平均情况安全的混淆器。他们的构造仅能满足某些放宽条件下的正确性。具体而言,他们考虑了正确性属性的三种放松形式。第一种放松形式保证原始电路和混淆电路的输出仅在实际输入的一个子集上统计接近。第二种放松形式保证混淆程序在部分输入上的输出相对于某些算法(如解密)是正确的。最后一种放松形式保证混淆电路与原始电路的输出是计算上不可区分的。从前述先前工作引出的一个自然问题是:
是否存在一种在更弱假设下适用于重加密程序的高效混淆器,能够满足最强形式的正确性,在每个算法中具有恒定开销,并支持指数大小的消息空间?
1.2 我们的贡献
我们强调了本工作的主要贡献。
主要结果
在这项工作中,我们提出了一种新的支持对来自指数级(相对于安全参数)空间消息进行加密的加密‐重加密系统,该系统在所有算法中仅涉及常数个群幂运算。我们还设计了一个针对重加密程序的平均情况安全的混淆器,该混淆器达到了最强的正确性概念(如[23,24]中所述)。我们在标准DDH假设下证明了所构造混淆器的平均情况安全性以及加密‐重加密系统的安全性。我们所有的证明均在标准模型中完成。非正式地说,本文的主要结果是:
非正式定理1。 在DDH假设下,存在一个针对实现重加密功能的电路族的平均情况安全的混淆器。
备注 2. 我们注意到,当持有 sk2的一方能够访问混淆电路时,我们所构造的重加密程序混淆器并不安全。这种情况也存在于之前所有针对重加密[13,24]以及加密签名[23]的平均情况安全的混淆器构造中。只要混淆电路由被委托人以外的某个(可能为恶意的)参与方运行,该构造就是安全的。研究其可能性将非常有趣
构造具有“内部安全性”的平均情况安全的混淆器。也就是说,即使被委托人能够访问混淆电路,它们仍然保持安全性。我们将此作为一个开放性问题留下。
加强黑盒安全模型
回顾在平均情况混淆范式中,我们必须首先设计一种加密‐重加密系统,使其能够抵御对重加密程序具有黑盒访问权限的对手。霍恩伯格等人[24]为此所考虑的安全模型如下:挑战者采样两组公钥‐私钥对(pk1, sk1)和 (pk2, sk2),然后将 pk1,pk2提供给攻击者。攻击者(具有对从 pk1到 pk2的重加密程序的预言机访问)选择两条消息 m0和 m1,并给出其希望被挑战的公钥以及密文层级的相关信息。更准确地说,攻击者可以选择在 1下的一个一级密文pk1 、在 pk2下的一个一级密文,或在 2下的一个二级密文pk2上接受挑战。如果攻击者无法区分相应加密的 m0和 m1,则该方案是安全的。
我们注意到,上述安全模型在捕捉加密‐重加密系统(参见备注4)的完整安全概念方面是不充分的。特别是,上述安全模型允许以下平凡但不安全的加密‐重加密系统被视为安全。考虑任意语义安全加密方案 Π=(KeyGen, Encrypt,Decrypt)。为了获得消息 m 在公钥 pk 下的一级密文,对 m 和 pk 运行 Encrypt 算法。从 pk1 到 pk2 的重加密程序在其描述中硬编码了 sk1、 pk1 和 pk2。当它与一级密文 c ← Encrypt(m,pk1) 一起运行时,使用 sk1 解密该密文,并输出 (Encrypt(m,pk1)||Encrypt(sk1,pk2)),其中 || 表示连接。为了对二级密文进行解密,可以首先使用 sk2 解密第二个分量以获得 sk1,然后解密第一个分量以获得 m。该系统存在明显缺陷,因为它会向拥有私钥sk2 的用户泄露 sk1。但可以证明,该系统在 [24] 中考虑的安全模型下是安全的。我们还观察到,当将 Π 实例化为支持密文重新随机化的语义安全加密系统(例如标准的 El‐Gamal 加密)时,有可能为上述重加密程序构造一个平均情况安全的混淆器。
为了解决这一问题,我们对加密‐再加密系统的安全模型进行了如下加强。我们考虑系统在两个不同的安全游戏下的安全性。
- 第一个游戏称为原始密文安全性,其过程与[24]完全相同,但攻击者面临的挑战是来自pk1下的一级密文或 pk2下的一级密文。
一级密文是指尚未经过重加密的密文。换句话说,一级密文是作为输入提供给重加密程序的密文。在 pk2下的二级密文是重加密程序将 pk1到 pk2作用于 pk1下的一级密文所得到的输出。
- 在第二个称为变换密文安全性的游戏里,除了(pk1,pk2)之外,攻击者还会获得 sk1。在挑战阶段,攻击者获得一个在 pk2下的二级密文作为挑战密文。在这两个游戏中,攻击者的目标是区分消息的加密与Junk值的加密。
此外,我们要求加密‐重加密系统满足一种称为统计独立性的特殊性质。统计独立性要求重加密程序的输出分布(即二级密文的分布)与 sk1是统计独立的。
请注意,上述简单的加密‐重加密系统并不具备转换密文安全,因为攻击者在能够访问 sk1的情况下,可以直接解密挑战密文的第一个分量以获取隐藏的消息。我们还强调,统计独立性属性保证了第二层密文无法“泄露”任何关于 sk1的信息(在信息论意义上)。特别是,这排除了其他一些可能向Bob泄露私钥 sk1但仍可能满足转换密文安全的构造示例。
备注 3. 尽管该安全模型未被明确考虑,但所有先前的工作 [13,14,24] 都满足这种安全性概念。
备注 4。 我们考虑一种更强的加密模型——重加密安全性,因为重加密程序(我们在本工作中对其进行了混淆)的输出与消息 m在pk2下的新鲜加密的概率分布并不相同(即,不同于另一种加密算法Encrypt2(m,pk2)在[24]中的输出)。如果该输出的分布与在 pk2下进行新鲜加密的分布完全相同,则霍恩伯格等人所提出的安 全模型已足以满足我们的需求。上述关于安全模型问题的讨论适用于一般情况,即重加密程序的输出分布与在pk2下新鲜加密的密文分布不相同的场景。
1.3 相关工作
代理重加密
密码学中一个与重加密密切相关的范式是代理重加密。在一个代理重加密系统中,一个半可信的代理将原本发给Alice(委托人)的密文转换为同一消息发给Bob(被委托人)的密文。具体来说,Alice提供
例如,我们可以将重加密功能的输出视为(Encrypt(C,pk2)||Encrypt(sk1, pk2)),其中 C是输入密文。这是变换后密文安全的。然而,重加密功能的输出依赖于 sk1。上述讨论的反例将不再适用,因为重加密程序的输出与在 pk2下新生成的密文的分布并不相同。
代理一个重密钥 RKA→B,它是她私钥的函数 sk1和Bob的公钥 pk2。代理运行一个特定算法(在文献中称为重加密算法),该算法接收使用Alice公钥加密的密文和重密钥,并输出一个使用Bob公钥加密的密文。不同安全性概念下的代理重加密方案(非穷尽)列表可在[1,5,11,15,25]中找到。其安全目标是:即使拥有重加密密钥,代理也无法从一级密文中获取任何关于底层消息的信息。这一点通过挑战者与代理之间的游戏形式进行形式化。这必须与重加密程序混淆所提供的基于模拟的安全保证相区别。特别是,重加密电路的混淆保证了重加密电路的任何非黑盒 信息都不会“泄露”给代理。另一方面,目前尚不明确代理重加密系统是否能提供此类保证,因为重密钥有可能泄露某些非黑盒信息。例如,重密钥可能揭示私钥的某个函数,而这仍然不会违背加密系统的语义安全。
FHE
全同态加密(FHE)[26]允许对密文执行任意计算。首个FHE构造由盖内特[20]在其突破性工作中提出。在此之后,已有若干工作基于多个格问题的最坏情况不可解性构建了FHE [7–9]。我们注意到,使用可重随机化(或电路隐私)的FHE,可以对重加密程序进行混淆。然而,所有已知的FHE构造均基于格上的特定假设,距离“真正”实用化仍有一定距离。相比之下,我们提出了基于标准DDH假设的重加密程序混淆方法,且我们的构造非常高效,仅涉及 (少量)常数级的群幂运算。
不可区分性混淆
由于最强的程序混淆概念(即谓词黑盒混淆)已被证明是不可能实现的,巴拉克等人 [2]提出了一种较弱的混淆概念,称为不可区分性混淆或iO。不可区分性混淆保证了对于任意两个大小相同且功能等价的电路,其混淆结果是不可区分的。首个iO候选构造是在加尔格等人[17]的近期突破性工作中提出的。此后,基于iO以及其他假设(如单向函数),人们构造出了多种密码学原语,例如函数加密[17],、可否认加密[27],、无需可信设置的非交互式密钥交换[6],、两轮多方计算协议[16],、复杂性类PPAD的困难实例[3,18]以及陷门置换[4,19](仅举几例)。我们注意到,iO所提供的不可区分性保证严格弱于本工作所需的安全性保证。此外,我们的目标是混淆一个特定的功能性,即重加密功能。
2 预备知识
一个函数 μ(·): N → R+被称为可忽略的,如果对于每个正多项式 p(·),存在一个 N,使得对所有 n ≥ N, μ(n) < 1/p(n)。给定全集 U上的概率分布 D,我们用 x ← D表示根据分布 D从 U中采样一个元素 x的过程。对于有限集X,我们使用符号 x←$ X表示从集合 X中均匀地采样 x的过程。如果定义在集合 X上的两个概率分布 D和 D′是相同的,我们记作 D ≈ D′。我们使用类似于 [23]的符号表示以下随机过程:给定 n个概率分布 D1,···, Dn,令
{x1 ← D1;···; xn ← Dn: f(x1, . . . , xn)}为一个(可能是随机的)函数 f的概率分布。PPT机器指的是概率多项式时间图灵机。所有PPT机器的运行时间在安全参数 λ的多项式时间内。我们采用非均匀计算模型来建模对手。这些机器额外接受一个长度在 λ的多项式范围内的辅助输入 z。如果 p是一个素数,则令 Z∗ p表示集合{1, 2,…, p −1}。
我们假设读者熟悉计算不可区分性和统计距离(又称变差距离)的概念,因此省略了标准定义。我们陈述以下关于统计距离的简单引理。该引理的证明可直接由定义得出。
引理1. 对于所有分布Xn和 Yn,对于所有输出单比特的PPT区分器 D以及对于所有 z ∈{0, 1}poly(n),我们有,
Δ(D(Xn, z), D(Yn, z))= ∣ ∣Pr[b ← D(Xn, z): b= 1] − P r[b ← D(Yn, z): b= 1] ∣∣
上述引理意味着,对于所有PPT区分器 D和所有辅助输入 z,
{Xn}n c ≈{Yn}n当且仅当 D(Xn, z)和D(Yn, z)统计接近。
我们现在回顾素数阶群上的判定性Diffie‐Hellman(DDH)假设。设 Gen为一个算法,它以 1λ作为输入,并随机生成参数(p, G, g),其中 p是一个 λ位的素数, G是一个阶为 p的乘法群, g是 G的一个生成元。
定义1 (DDH假设). DDH假设指出,以下分布集合是计算上不可区分的:
{(p, G, g) ← Gen(1 λ ); a, b ←$ Z ∗ p :(g, g a, g b, g ab )}λ c ≈ {(p, G, g) ← Gen(1 λ ); a, b, c ←$ Z ∗ p :(g, g a, g b, g c )}λ
我们假设读者熟悉公钥加密(PKE)系统的语法和安全性概念(多消息安全性)。我们也假设读者熟悉El‐Gamal加密系统。我们回顾关于El‐Gamal 加密系统及其变体的多消息安全性的定理。
定理1 (多消息安全性)。 假设在群 G中DDH假设成立,则El-Gamal加密系统具有多消息安全性。
我们假设读者熟悉伪随机生成器(PRG)的概念,并引导读者参阅[21]以获取正式定义。
2.1 平均情况安全混淆
令 C={Cλ}λ∈N为一个多项式大小的电路族。对于长度参数λ,令Cλ表示 C中输入长度为 pin(λ)、输出长度为pout(λ)的电路集合,其中 pin(·)和 pout(·)为多项式。该电路族 C具有一个关联的采样算法Samp,它以 1λ作为输入,并从Cλ中均匀地随机选择并输出一个电路C。我们还假设存在高效的( Encode,Decode)算法,可用于将给定电路C编码和解码为图灵机的输入/输出所用的二进制字符串。我们在使用这些编码和解码算法时将其隐式使用,不再显式提及。
我们采用与[23]中类似的符号(略有改动)来表示概率电路。一个概率电路C(x; r)接受两个输入。第一个输入称为常规输入,第二个输入称为随机输入。概率电路在常规输入上的输出(记为C(x; ·))可视为一个概率分布,其中分布的随机性来源于 r的随机选择。我们说一台机器 A对概率电路C具有预言机访问(记为 AO(C)),如果在进行预言机查询时, A只能指定电路的常规输入 x,而随机输入 r由预言机从相应的采样空间中均匀地随机选择 O。一台对概率电路C具有预言机访问的概率机器 A的输出(记为 AO(C)(x1,···, xn))是一个概率分布,该分布中的随机性来自 A所使用的随机硬币以及 O在回答 A的预言机查询时所使用的随机硬币。我们说 B在常规输入 x上评估一个概率电路C(换句话说, B是C的评估者),如果 B提供常规输入以及从相应采样空间中均匀地随机选择的随机输入 r,并输出C(x; r)。我们用 |C| 表示电路C 的大小。
我们回顾一下[24]中给出的平均情况安全混淆的概念。
定义 2[23,24]。 一个以(概率性)电路作为输入并输出一个新的(概率性)电路的PPT机器Obf,如果满足以下性质,则称为对于具有相关采样算法Samp的电路族 C={Cλ}λ∈N 的平均情况安全混淆器:
- 功能保持性:对于所有长度参数 λ ∈ N 以及所有 C ∈Cλ:
Pr[C′ ← Obf(C): ∃x ∈{0, 1} pin(λ),Δ(C′(x;·), C(x;·)) ≠ 0]= 0
- 多项式减慢:存在一个多项式 p(·),使得对于足够大的长度参数 λ,对于任意的 C ∈Cλ,我们有
Pr[C ′ ← Obf(C): | C′| ≤ p(| C|)]= 1
- 平均情况安全的虚拟黑盒:存在一个PPT机器(模拟器)Sim,使得对于每一个PPT区分器 D,都存在一个可忽略函数neg(·),使得对于每个长度参数 λ和每一个z ∈{0, 1}poly(λ):
|Pr[C ← Samp(1λ); C′ ← Obf(C); b ← DO(C)(C′, z): b= 1]− Pr[C ←采样(1λ);C′ ←模拟器SimO(C)(1λ, z); b ← DO(C)(C′, z): b= 1]| ≤neg(λ)
备注5. 在[24]中给出的定义考虑了一种宽松的正确性概念。具体而言,它允许混淆电路和原始电路的输出分布以可忽略的概率具有可忽略的统计距离。在这里,如[23],中所述,我们考虑一种更强的正确性概念,要求原始电路和混淆电路的输出分布完全相同。
3 用于重加密功能的混淆器
在本节中,我们描述了新的加密系统、需要被混淆的重加密功能性,以及该功能性的平均情况安全Obf混淆器的构造。
新加密方案
所考虑的新加密系统是El‐Gamal系统的一种变体。
新加密方案
– 设置(1λ):令(p, G, g) ← Gen(1λ)。令 H为一个伪随机生成器输入来自 G的元素并输出 Z ∗中的元素 p.a 将公开参数输出为 params=(p, g, G, H),并附带消息空间 M= G
– 密钥生成(1λ,params):选择 x ←$ Z ∗ p并设置公钥 pk为 (g, g x) 和私钥 sk= x。
– 加密1(m,pk):将 pk解析为(g, g x)。选择一个随机的 r ←$ Z ∗ p和 输出 (m· g r,(g x)r)。
– 解密1(sk,[C1, C2]):将私钥 sk 解析为 x。输出 m=(C1) · ((C2) 1/x)−1
a伪随机生成器的标准定义假设其域和范围均为比特串。我们注意到,只要存在从域到比特串以及从比特串到范围的有效编码和解码函数,该定义便可扩展到任意域和范围。 H的扩展因子取决于所使用的实际编码和解码方案。
重加密功能
设(pk1, sk1)和(pk2, sk2)是通过使用独立随机带运行密钥生成算法得到的两组密钥对。令 h ←$ G为从群 G中均匀且独立随机选取的一个元素。用于从pk1到 pk2进行重加密的概率多项式时间算法(记为Re −Enc1→2)如下所述。
Re− Enc1→2
输入: c1=[Y1, Y2]或由keysa常量:b sk1= x, pk1= (g, gx), pk2=(g, gy) 和 h
1. 如果 input= keys,输出 (pk1,pk2)。
2. 否则,
– Compute m= Decrypt1(sk1, c1).
– Choose r′, v, s←$ Z∗ p.
– Output[X1, X2, X3, X4, X5]=[m · gr′,(gH(h))r′ ·(gy)s, h · (gy)v, gv, gs].
akeys ∈ G× G。我们在证明的技术部分需要用到这一点。b程序中的常量表示那些硬编码在程序描述中的值。
重加密电路族
设 Csk1,pk1,pk2,h为实现程序 Re −Enc1→2 的概率性电路的电路描述。我们注意到上述程序中的常量已硬连接在电路描述中。当给定电路描述时,这些常量可以被提取出来。形式上,对于给定长度参数 λ 实现重加密功能的电路类为,
Cλ={Csk1,pk1,pk2,h:(pk1, sk1) ← KeyGen(1λ),(pk2, sk2) ← KeyGen(1λ), h ←$ G}
实现重加密功能的电路族由C={Cλ}λ∈N给出。相关的采样算法Samp通过选择 (p, G, g, H) ← Setup(1λ) 来进行。然后它采样 (pk1, sk1) ← KeyGen(1λ), (pk2, sk2) ←KeyGen(1λ) 和 h←$ G。最后输出Csk1,pk1,pk2,h的电路描述。
电路的评估者Csk1,pk1,pk2,h提供常规输入,该输入要么是密文 c1=[C1, C2], 要么是特殊符号keys,并且还从{0, 1}3λ中均匀随机选择随机输入rand,供电路用于从 Z ∗ p中均匀地采样 r′, v, s。
解密电路输出
Re −Enc1→2的输出可以使用以下算法Decrypt2进行解密:
Decrypt2
输入: sk2,[X1, X2, X3, X4, X5]:
1. 将sk2解析为 y。
2. 计算 h= X3 ·( X4 y)−1。
3. 计算 X′ 2= X2 ·((X5) y)−1。
4. 输出 m=(X1) ·((X′ 2) 1/(H(h)))−1。
正确性。 我们注意到,Decrypt1 算法的正确性直接来源于 El‐Gamal 加密方案的正确性,而 Decrypt2 的正确性可通过检验得出。
混淆器构造
我们现在给出针对第3节中定义的重加密电路族的平均情况安全的混淆器(记为Obf)的构造。
Obf
输入: Csk1,pk1,pk2,h
1. 从电路Csk1,pk1,pk2,h的描述中读取 sk1= x, pk1=(g, gx)、 pk2=(g, gy)和 h。
2. 选择 v←$ Z∗ p。
3. 计算(Z1, Z2, Z3) =(h·(gy)v, gv, H(g)/x)。
4. 输出实现以下程序Re −Enc′ 1→2的电路描述,其中 pk1,pk2, Z1, Z2, Z3作为该程序中的常量。
Re− Enc′ 1→2
输入: c1=[Y1, Y2]或由密钥表示的特殊符号。常量: pk1,pk2, Z1, Z2, Z3。
1. 如果 input= keys,输出(pk1,pk2)。
2. 否则,
– Choose two re-randomization values r′, v′←$ Z∗ p.
– Re-randomize the input as X1= Y1 · gr′, X2=(Y2 ·(gx)r ′ ) and the hardwired values as X3= Z1 ·(gy)v ′, X4= Z2 · gv ′.
– Compute X2=(X2) Z3.
– Choose s←$ Z ∗ p.
– Compute X2= X2 ·(gy)s and X5= gs
– Output[X1, X2, X3, X4, X5].
令C′表示实现Re − Enc′ 1→2的电路。该电路的评估者C′将 c1=[C1, C2]或特殊符号keys作为常规输入,将rand ←${0, 1}3λ作为随机输入,用于从 Z ∗ p中均匀地采样 r′, v′, s。
备注 6. 混淆电路C′由 sk1的所有者生成,但可被任何人评估。我们假设(如备注2中所述),C′的评估者与 sk2的所有者不会共谋。
基于DDH假设的高效重加密程序Obf
4 新加密方案的安全性
我们现在描述当攻击者可以黑盒访问重加密功能时,加密方案语义安全的安全模型。鉴于第1.2节中讨论的内容,我们对[24]中给出的安全模型进行如下修改。
4.1 安全模型
设 C ←Samp(1λ)5为从 pk1到 pk2的重加密电路。
原始密文安全性
设 A=(A1, A2)为针对原始密文安全性的攻击者。
定义3. 设 Π为一个加密方案,并设INDb,ori(Π, A=(A1, A2) λ, i)其中 b ∈{0, 1}和 i ∈{1, 2},表示以下实验:
INDb,ori(Π, A=(A1, A2), λ, i)
1. params ←设置(1λ)。(pk1, sk1) ←密钥生成(params) 和 (pk2, sk2) ←密钥生成(params)。选择 h←$ G。设置 C =Csk1,pk1,pk2,h a。
2. (m0, m1, state) ← AO(C) 1 (pk1,pk2,params)。
3. C∗ ←加密1(mb,pki,params)。
4. b′ ← AO(C) 2 (C∗, state)。输出 b′
a注意,以这种方式设置 C 相当于使用 Samp 算法对 C 进行采样。
方案 Π 被称为关于对 C 的预言机访问是原始密文安全的,如果对于所有 PPT 对手 A=(A1, A2)以及所有 i ∈{1, 2},存在一个可忽略函数 μ(·),使得对于所有 λ ∈ N,
Δ(IND0,ori(Π, A, λ, i), IND1,ori(Π, A, λ, i)) ≤ μ(λ)
变换密文安全性
设 A=(A1, A2)为针对变换密文安全性的攻击者。
定义4. 令 Π为一个加密方案,并令INDb,tran(Π, A=(A1, A2) λ)其中 b ∈{0, 1}表示以下实验:
INDb,tran(Π, A=(A1, A2), λ)
1. params ←设置(1λ)。(pk1, sk1) ←密钥生成(params) 和 (pk2, sk2) ←密钥生成(params)。选择 h ←$ G。设置 C =Csk1,pk1,pk2,h。
2. (m0, m1, state) ← AO(C) 1 (params,pk1,pk2, sk1)。
3. rand ←${0, 1}3λ。计算 C∗ ← C(加密1(mb,pk1,params); rand)。
4. b′ ← AO(C) 2 (C∗, state)。输出 b′
方案 Π 被称为关于对 C 的预言机访问是转换密文安全的,即对于所有 PPT 对手 A=(A1, A2),存在一个可忽略函数 μ(·),使得对于所有 λ ∈ N,
Δ(IND0,tran(Π, A, λ), IND1,tran(Π, A, λ)) ≤ μ(λ)
5为了便于阐述,我们省略下标 sk 1 , pk1 , pk2 , h。
统计独立性
让我们考虑以下实验。
Stat(Π, λ, m)
1. params ←设置(1λ)。(pk1, sk1) ←密钥生成(params) 和 (pk2, sk2) ←密钥生成(params)。选择 h←$ G。设置 C= Csk1,pk1,pk2,h。
2. 随机选择 ←${0, 1}3λ。计算 C∗ ← C(加密1(m,pk1,params);随机)。
3. 输出 C∗
我们要求 Stat(Π, λ, m) 的输出在统计上独立于 sk1。
4.2 安全性证明
我们现在证明新加密方案是原始密文安全(在定理 2)中,转换密文安全 (在定理3)中,并具有统计独立性属性(在引理2)中。
定理2. 新加密方案在DDH假设下相对于 oracle Csk1,pk1,h是原始密文安全的。
证明. 我们在论文的完整版本中给出该定理的证明[28]。
我们现在证明我们构造的转换密文安全性。
定理3. 新加密方案是 转换密文安全关于预言机 Csk1,pk1,pk2,h在 El-Gamal加密系统(定理1)的多消息安全性(2 条消息)下成立。
证明. 该定理的证明出现在论文的完整版本中 [28]。
我们注意到,重加密功能的统计独立性属性可直接从重加密电路的输出分布中得出。我们记录以下引理。
引理2. Csk1,pk1,pk2,h的输出分布,其中 (pk1, sk1) ←KeyGen(params),(pk2, sk2) ← KeyGen(params)且 h ←$ G 在统计上独立于 sk1。
5 平均情况下的虚拟黑盒属性
我们注意到混淆器构造保持了功能性(形式化证明出现在完整版本中)。我们注意到,我们的构造的多项式慢化特性可以很容易地验证。值得注意的是,混淆后的电路计算七次幂运算,而原始电路计算八次幂运算。
我们现在证明 Obf 满足平均情况虚拟黑盒特性。
引理3。 Obf满足平均情况安全的虚拟黑盒特性。
证明。 此处使用的证明技术与霍恩伯格等人在 [24]中的技术类似,细节如下。
设C ←Samp(1λ) 是使用 Samp 算法从集合Cλ中随机选取的电路。令 D为对C具有预言机访问权限的任意区分器。
我们首先描述我们的模拟器Sim,该模拟器具有对电路C的预言机访问权限,并以安全参数的一元形式和表示为 z的辅助信息字符串作为输入。
SimO(C)
输入: 1λ, z
1. 使用特殊符号 keys查询预言机 O(C),并获得pk1和pk2。
2. 将 pk2解析为(g, gy)。
3. 选择 h←$ G、 v←$ Z∗ p,并计算(Z′ 1, Z′ 2) =(h·(gy)v, gv)。从 Z∗ p中均匀地随机选择Z′ 3。
4. 构造一个电路C′,实现程序Re− Enc′ 1→2,并将值(pk1,pk2, Z′ 1, Z′ 2, Z′ 3)作为常量硬编码到程序中。输出C′的电路描述。
接下来需要证明,即使对于具有对C的预言机访问能力的区分器而言,模拟器 Sim的输出分布与Obf的输出分布在计算上也是不可区分的。
我们定义两个分布 Nice(DO(C), λ, z) 和 Junk(DO(C), λ, z) 如下:
Nice(DO(C), λ, z)
– (p, g, G, H) ←设置(1λ)。选择 x, y ←$ Z ∗ p。设置 pk1=(g, gx) 和 pk2=(g, gy)。
– 选择 h ←$ G 和 v ←$ Z ∗ p。
– 计算 Z1= h·(gy)v, Z2= gv 和 Z3= H(h)/x。
– 输出 DO(C)(pk1,pk2, Z1, Z2, Z3, z)。
Junk(DO(C), λ, z)
– (p, g, G, H) ←设置(1λ)。选择 x, y ←$ Z ∗ p。设置 pk1=(g, g x) 和 pk2=(g, gy)。
– 选择 h ←$ G 和 v ←$ Z ∗ p。
– 计算 Z′ 1= h·(gy) v, Z′ 2= g v 和 Z′ 3$← Z∗ p 。
– 输出 DO(C)(pk1,pk2, Z ′ 1, Z ′ 2, Z ′ 3, z)。
我们首先观察到,对于所有 z ∈{0, 1}poly(λ) 和所有区分器 D ,
{C → Samp(1 λ ); C ′ ← Obf(C): DO(C)(C ′, z)}≈ Nice(DO(C), λ, z)
{C → Samp(1 λ ); C ′ ← SimO(C)(1 λ , z): DO(C)(C ′, z)}≈ Junk(D O(C), λ, z)
为了证明 Obf满足平均情况虚拟黑盒性质,只需证明(根据引理1),对于所有概率多项式时间区分器 D,存在一个可忽略函数 μ(·),使得对于所有 z ∈{0, 1}poly(λ)成立。
Δ(Nice(DO(C), λ, z)}, Junk(DO(C), λ, z)) ≤ μ(λ)
我们证明,对于所有概率多项式时间区分器 D,存在一个可忽略函数μ(·),使得对于所有z ∈{0, 1}poly(λ),
Δ(Nice(DO(C), λ, z)}, Junk(DO(C), λ, z)) ≤ μ(λ)
我们从一个有用的引理开始。
引理4。
⎧ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩
(p, g, G, H) ← Setup(1λ);
x, y ←$ Z∗ p; pk1=(g, gx); pk2=(g, gy); h←$ G; Z′ 3, v←$ Z∗ p: (pk1,pk2, h·(gy)v, gv, Z′ 3)
⎫ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭ λ
c ≈
⎧ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩
(p, g, G, H) ← Setup(1λ);
x, y ←$ Z∗ p; pk1=(g, gx); pk2=(g, gy); h←$ G; v←$ Z∗ p: (pk1,pk2, h·(gy)v, gv, H(h)/x)
⎫ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭ λ
证明。 该引理的证明出现在论文的完整版本中[28]。
首先,我们考虑两个与Nice和Junk类似的分布,不同之处在于它们考虑了一个“虚拟”区分器 D∗,该区分器将其输入内容直接作为输出。
命题1. {Nice(D∗, λ, z)}λ c ≈{Junk(D∗, λ, z)}λ
证明。 该命题的证明直接来自于引理4的证明。我们注意到,引理陈述中的左分布与Junk(D∗, λ, z)具有相同的分布,而右分布与Nice(D∗, λ, z)具有相同的分布。因此,
Nice(D ∗, λ, z) c ≈ Junk(D ∗, λ, z)
我们现在考虑另外两种分布,它们的处理方式与Nice和Junk相同,只是它们考虑的是区分器 DO(R),其中 R是一个概率电路,对于任意输入[C1, C2],首先检查 C1, C2是否属于 G,如果是,则输出[A, B, C, D, E],其中 A, B, C, D, E从G中均匀地且独立地选取;否则,输出 ⊥。
注意,输入到 DO(R)的分布与 Nice(D ∗, λ, z)中的Nice(DO(R), λ, z) 相同,且其输入的分布与 Junk(D ∗ , λ, z)中的Junk(DO(R), λ, z) 相同。以下命题是命题 1 的直接推论。
命题2。 对于所有PPT区分器 D,存在一个可忽略函数μ(·),使得对于所有 z ∈{0, 1}poly(λ)和所有 λ ∈ N,我们有
Δ(Nice(DO(R), λ, z), Junk(DO(R), λ, z)) ≤ μ(λ)
证明. 假设为了矛盾起见,存在一个区分器DO(R),其能够以不可忽略的优势区分Nice(D∗, λ, z)和Junk(D∗, λ, z)。我们构造一个在没有对 R的预言机访问的情况下,能够以相同优势区分 D′的区分器,从而区分Nice(D∗, λ, z)和Junk(D∗, λ, z)。
D′在内部运行 D,将其自身的输入作为输入提供给 D。当 D请求对 R的预言机访问时, D′可以自行模拟响应(对于任何预言机查询,它将从群中选择五个独立的随机元素,并在检查输入是否属于 G× G后返回作为响应)。 D′最终输出 D所输出的结果。
很容易看出 D′具有与 D相同的区分优势,因此我们得出了与命题1的矛盾。
考虑任意一个区分器 D。让我们定义,
α(λ, z)=Δ(Nice(DO(C), λ, z), Junk(DO(C), λ, z))
β(λ, z)=Δ(Nice(DO(R), λ, z), Junk(DO(R), λ, z))
设qD为 D在执行过程中进行的预言机查询次数。由于 D在多项式时间内运行, qD在 λ上是多项式级别的。
命题3。 存在一种算法 B ,可对El-Gamal加密方案的多消息(2qD条消息) (λ, z)−β(λ, z)|/2安全性发起攻击。
证明。 我们通过构造一个攻击者 B来对抗El‐Gamal挑战者,以优势 |α(λ, z) − β (λ, z)|/2来证明该命题。
B从El‐Gamal挑战者处接收公钥 gy。它选择 x ←$ Z ∗ p,并设置 pk1=(g, g x)和 pk2=(g, gy)。它选择两个长度为 2qD的消息向量M 0和M 1,具体如下:设 M 0={1, 1,…, 1}(长度为 2qD)和M 1={m1, m2,…, m2qD},其中 m1, . . . , m2qD 从 G中均匀且独立地随机选取。然后,它接收挑战密文向量 C∗={(g r1, Q1), (g r2, Q2), . . . , (g r q D, Q2qD)}以及辅助信息 z。注意,对于所有 i ∈{1, 2,… 2qD}, ri是 Z ∗ p中的一个随机元素,或是一个均匀选择的元素,这取决于加密的是M 0还是M 0={1, 1,…, 1}(由于 m1, . . . , m2qD 的随机选择)。
B现在使用 D来确定挑战密文向量是M 0的加密还是M 1的加密。它首先生成分布完全与Nice(D∗, λ, z)和Junk(D∗, λ, z)相同的元组。它抛掷一个随机硬币 c,如果 c= 0成立,则以Nice(D ∗ , λ, z)作为输入运行D,如果 c= 1成立,则以Junk(D ∗ , λ, z)作为输入运行D。 B需要回答 D所提出的重加密预言机查询,它使用挑战密文来回答这些预言机查询。我们证明,如果挑战
如果密文是M 0,的加密,则 B给出的预言机响应与重加密电路C的输出具有相同的分布。如果挑战密文是M 1,的加密,我们说明预言机响应与 R的输出具有相同的分布。具体细节如下。
B选择 h ←$ G和 v ←$ Z∗ p,并计算 Z1= h ·(gy)v和 Z2=gv。然后选择 Z3= H(h)/x和 Z3′$← Z∗ p。它抛掷一枚随机硬币并选择 c←${0, 1}。如果 c= 0,则运行 DO(X)(pk1,pk2, Z1, Z2, Z3, z);否则运行DO(X)(pk1,pk2, Z1, Z2, Z3′, z),其中 X是下文所述的程序Re −Enc′′ 1→2的电路描述。注意,如果 c= 0, 则输入到 D与Nice(D∗, λ, z)相同;否则,与Junk(D∗, λ, z)相同。
当 D发出 ith预言机查询[C1, C2]时, B运行以下程序,并将程序的输出作为响应返回给 D。
Re− Enc′′ 1→2
常量: pk1,pk2, Z1, Z2, Z3
输入:[C1, C2], i
1. 选择 r′$← Z∗ p。
2. 计算 C′ 1= C1 · gr′, C′ 2= C2 ·(gx)r ′。
3. 计算 Z′ 1= Z1 ·(Qi), Z′ 2= Z2 ·(gri)。
4. 计算 C′′ 2= C′Z3 2 。
5. 计算 D2= C′′ 2 · Qi+qD
6. 输出[C′ 1, D2, Z′ 1, Z′ 2, gri+qD]。
D最终输出其猜测。令c′表示 D的输出。如果 c= c′,则 B输出1。否则,它输出0。
我们现在证明关于 B输出的以下两个声明。
声明。 如果M0被加密,则 B输出1的概率由 1/2+α(λ, z)/2给出。
证明。 我们声称,如果M0被加密,则 B完美地模拟DO(C)(pk1,pk2, h ·(gy) r, g r, H(h)/x, z)或 DO(C)(pk1,pk2, h ·(gy) r, g r, Z′ 3, z),具体取决于比特 c。我们已经注意到,输入到 D的分布与Nice(D∗, λ, z)或Junk(D∗, λ, z)完全相同。只需证明X完美地模拟电路C即可。由于对所有 i ∈[1, 2qD]都有 Qi=(gy) r i, 且Z1, Z2, Z3均按照Obf算法正确生成,因此 X的输出由下式给出,
(m· g r+r′,(g r+r′) H(h) ·(g y) r i + q D, h·(g y) v+r i, g v+r i, g r i + q D)
其分布与重加密电路的输出相同,因为r′、 ri、 ri+qD 是从 Z ∗ p中均匀地随机选取的。因此,B在此情况下输出1的概率与 DO(C)输出 c= c′的概率相同,而该概率等于 1/2+ α(λ, z)/2。
声明。 如果M 1被加密,则 B输出1的概率由 1/2+β(λ, z)/2给出。
证明. 我们已经注意到,输入到 D的值是根据 Nice(D∗, λ, z) 或 Junk(D∗, λ, z) 完美生成的。我们声称,B给出的响应与 R给出的响应相同。 B的输出由以下给出:
(m· gr+r′,(gr+r′)H(h) · Qi+qD, h·(gy)v · Qi, gv +ri, gri+qD)
由于 Qi和 Qi+qD是在 G中均匀选择的随机元素,如果 M 1被加密,并且 r′, ri, ri+qD是从 Z∗ p中随机均匀选取的,我们可以很容易地看出,对于 oracle 的每一次调用,上述分布中的所有元素都是随机且独立的。
因此,在这种情况下, B完美地模拟了 DO(R)(pk1,pk2, h ·(gy)r,gr, H(h) /x, z) 或 DO(R)(pk1,pk2, h·(gy)r, gr, Z′ 3, z),具体取决于比特 c。因此, B在此情况下输出 1 的概率等于 DR输出 c= c′的概率,该概率由 β(λ, z)/2+ 1/2 给出。
因此, B在El‐Gamal加密方案的多消息安全性游戏中的优势由 |α(λ, z) −β(λ, z)|/2给出。
由命题2可知, β(λ, z) 是可忽略的。因此,根据命题3可推知, α(λ, z) 也是可忽略的。
因此,Obf 满足平均情况安全的虚拟黑盒性质,引理的证明到此结束。
由于Obf满足定义2中给出的三个要求,我们得出结论:Obf是一个平均情况安全的混淆器。
50

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



