匿名IBE、抗泄露性与基于新假设的循环 安全性
兹维卡·布拉克斯基1(B),亚历克斯·隆巴迪2,吉尔·塞格夫3,和维诺德·瓦伊昆塔纳坦2
1魏茨曼科学研究所,以色列雷霍沃特 zvika.brakerski@weizmann.ac.il
2麻省理工学院, 美国剑桥
3耶路撒冷希伯来大学,以色列耶路撒冷
摘要
在 anonymous基于身份的加密(IBE)中,密文不仅隐藏了其对应的消息,还隐藏了其目标身份。我们基于一般群中的计算性 Diffie‐Hellman(CDH)假设(因此,作为特例,也基于分解Blum整数的困难性)构建了一个匿名IBE方案。
我们的方法扩展并改进了Cho等人(CRYPTO‘17)以及D¨ottling和 Garg(CRYPTO‘17)最近提出的基于树的方法。他们的方法所依赖的工具似乎无法提供任何形式的匿名性,而我们引入了两个新的构建模块以实现匿名性: blind garbled circuits(基于任意单向函数构造)和 blind batch encryption(基于CDH构造)。
然后,我们进一步展示了新开发工具的适用性:批加密可推出一种公钥加密方案,该方案既能够抵抗其私钥(1−o(1))比例的泄露,又关于其私钥的所有线性函数具有KDM安全(或循环安全)性(这反过来意味着对有界规模电路的KDM安全性)。这些成果基于CDH或因式分解假设,首次实现了高比率抗泄露加密方案和KDM安全加密方案。
最后,基于我们的技术,我们还构建了一个基于带噪声学习奇偶性(LPN)问题困难性的批加密方案,尽管其噪声率非常小,为 Ω(log2(n)/n)。虽然该批加密方案不具有盲性,但我们证明它仍然能够推出标准的 (即非匿名的)身份基加密、抗泄露性和KDM安全性。此前,从LPN (即使在极低噪声情况下)实现身份基加密和高比率抗泄露性尚属未知。
1引言
基于身份的加密(IBE)是一种公钥加密形式,其中用户的公钥就是其名称。具体而言,持有主私钥的权威机构msk可以根据用户的身份id为其生成个体私钥skid,而加密则使用主公钥(mpk)和接收者的身份进行。身份基加密(IBE)的概念由Shamir[Sha84]提出,但直到15年后才首次实现[BF03,Coc01]。除了在预期用途中体现出的明显实用性外,IBE还被证明是实现其他密码学任务(例如选择密文安全的加密[BCHK07])的有用构建模块,并且启发了具有访问控制功能的更灵活加密方案的设计。更一般地说,后者指的是可以生成多个私钥的方案,但每个私钥仅在满足某些预定义条件时才能恢复加密信息。最自然的推广是属性基加密 (ABE)[SW05,GPSW06],其中私钥skf 对应于策略 f,加密操作针对的是属性 x,只有当f(x)= 1时才能解密消息。IBE是一种特殊情况,其中 f 是一个点函数(即 fa(x)= 1 当且仅当 x= a)。
最近,D¨ottling和Garg[DG17a]提出了一种新的基于树的IBE构造方法, 并表明该方法可基于计算性Diffie‐Hellman假设(CDH)导出一个候选IBE方案,而这一点此前尚属未知。他们的主要构建模块是混淆电路和一种称为变色龙加密的特殊加密形式。在后续工作[DG17b]中,他们进一步表明,基于树的构造也可用于增强IBE方案的性质。
IBE的一个重要变体要求:发往接收者id的密文不会向未授权的解密器暴露id。该性质被称为匿名性。匿名IBE非常有用,例如可用于可搜索加密[BCOP04],;类似地,正如IBE与ABE之间的联系,匿名IBE是属性隐藏ABE的一种特例(例如[KSW08]中的情形)。后者由于与函数加密方案的关联,在密码学文献中引起了广泛关注。匿名IBE方案可通过配对构造[BCOP04,ABC+08, BW06,Gen06],、格[GPV08,ABB10,CHKP12]以及二次剩余[BGH07](最后一种在随机预言模型中)实现。
由于一个根本性原因,[DG17a,DG17b]的构造不具备匿名性。它们的构造基于一个隐式的指数大小的前缀树,用以表示完整身份空间。加密操作会考虑一条从根到叶的路径,该路径代表目标id,并构造一系列混淆电路,每个混淆电路分别对应路径上的一个节点。在解密时,这些混淆电路从根到叶进行求值,其中每个混淆电路的输出用于生成路径上下一个混淆电路的输入标签。因此,若尝试使用id对应的密钥来解密发往id′的密文,解密过程将在sk与sk′之间的分叉节点之前成功进行,而在该分叉节点处,skid ′对应的解密器将无法解码与下一个混淆电路相对应的标签。因此,该过程必然泄露了id与(已知的)id′的公共前缀。
1.1我们的结果
在这项工作中,我们提出了新的原语和技术,展示了如何更充分地利用基于树的方法。首先且最重要的是,我们在基于树的方法基础上,使用我们称为盲批加密和盲混淆电路的新工具,构建了匿名IBE方案。其次,我们表明,我们的构建模块可以基于此前未知能够蕴含IBE的假设来构造,特别是带极小噪声的带噪声学习奇偶性(LPN)假设。最后,我们表明,我们的构建模块还可用于实现与IBE看似无关的密码学功能,即抗泄露性和KDM安全性。我们将在下文详细阐述这些贡献。
批加密与IBE的新构造
D¨ottling和Garg[DG17b]的近期工作展示了身份基加密不同概念之间的放大效应。具体而言,他们展示了如何从任意选择性IBE 方案构造出完全安全的IBE方案。我们注意到,他们的构造可以被重新用于实现一种截然不同的目标。具体来说,我们展示如何从一个仅支持多项式数量的身份但具有较短主公钥的IBE方案出发,构造出一个完整的IBE方案。特别是,该方案应能支持多项式数量的身份,且主公钥大小为 T= T(λ),其中S= S(λ)= T 1−ε · poly(λ)对某个常数 ε> 0和固定多项式poly;我们将此称为弱紧致IBE方案。我们提醒读者,非紧致IBE方案,即那些支持 T个身份且其主公钥长度随 T线性增长的方案,实际上可直接由任意公钥加密方案简单构造得出(参见例如[DKXY02])。
弱紧致IBE证明可以更容易地使用[DG17a],的技术来构造,特别是它不需要其变色龙加密的全部能力。我们表明,从一个我们称为批加密的基本构件出发就足够了。具体而言,变色龙加密需要具有陷门,而批加密方案没有陷门。事实上,展望后文,我们指出这种无需陷门的特性使得我们能够基于极低噪声LPN假设构建IBE。批加密的定义借鉴了Cho,D¨ottling, Garg, Gupta, Miao and Polychroniadou[CDG+17](该定义早于变色龙加密)提出的简洁不经意传输原语。
批加密方案是一种公钥加密方案,其中密钥生成是一个投影过程(即密钥生成算法以私钥x作为输入,并输出一个较短的字符串作为公钥h)。对于长度为n的私钥x,批加密方案一次可加密 n × 2个消息组成的数组。在解密时,根据相应私钥比特的值,仅恢复每对消息中的一个。我们要求该方案能够在不增加公钥长度的情况下,适用于任意的 n。实际上,批加密与简洁不经意传输[CDG+17]非常相似,两者在本质上是存在等价的。其形式化定义的细微差别在于,简洁OT能够更高效地处理仅需访问n消息对被加密。另一个形式上的区别是,简洁OT的表述允许接收者消息是随机化的,但由于该原语并不要求接收者隐私,因此实际上并不需要这一点,所以在批加密中对应的组件是确定性的。批加密的表述对我们的应用更为有用,但我们的构造也可以视为直接构造了简洁OT。
我们证明了批加密蕴含弱紧致IBE(如上所定义),并且弱紧致IBE可以自举为完整的IBE方案。
基于CDH和极低噪声LPN的批加密
批加密可以通过[DG17a]的方法从CDH构造;也可以在不使用格陷门的情况下,直接基于带误差学习(LWE)假设进行构造。因此我们注意到,基于LWE的IBE甚至不需要格陷门,尽管此前的所有构造都使用了格陷门。我们指出,所得到的IBE方案效率非常低,很可能远不如基于陷门的构造,但这一概念上的差异可能具有重要意义。
我们进一步指出,即使学习带噪线性问题(LPN)假设也足以实例化批加密,尽管我们必须依赖具有极端参数的LPN。具有恒定噪声率的LPN假设可推出单向函数;当噪声率为 1/√n(其中 n是LPN密钥的维度)时,可推出公钥加密[Ale11];而当噪声率极低,为log2 n/n时,可推出抗碰撞性哈希函数[BLVW17,YZW+17]。后一种参数设置在面对准多项式时间攻击者时不安全,但鉴于当前LPN算法的研究现状,它可能对多项式时间攻击者是安全的。实际上,将密码学安全性建立在多项式时间攻击者与准多项式时间安全性之间的差距上是不明智的,我们认为这一结果主要是一个概念验证,表明批加密可以基于此前被认为无法实现身份基加密的结构。
盲化技术与匿名IBE
我们的主要贡献是基于CDH假设构建匿名IBE。为了构建匿名IBE,我们提出了一些技术,使得我们能够在解密时以盲性方式遍历身份空间树。也就是说,这种方式不会向解密器透露其是否处于正确路径上,直到过程的最后阶段才揭示。这使我们能够克服上述基本障碍。我们提出了多种盲化原语,有助于实现这一目标。
我们引入的第一个构建模块是盲混淆电路。回顾一下,一个标准的电路混淆方案以电路 C作为输入,并输出该电路的一个̂混淆版本 C,以及输入̂线对应的标签对labi,b。给定 C,labi,x i ,可以计算出值 C(x)。为了保证安全性,存在一个模拟器,它接受 y= C(x)并生成一个混淆电路和一组输入标签,这些输出与原始情况不可区分。我们在该定义中增加了一个不可见性属性,要求模拟生成的混淆电路且标签在从区分器未知的完全均匀的 y均匀分布开始时是完全的(实际上,后一个条件是必要的,因为尝试评估模拟的混淆电路应输出 y)。我们表明,盲混淆电路可以通过基于任意单向函数适当实例化“点选与置换”构造[BMR90,Rog91],来实现。有趣的是,据我们所知,“点选与置换”构造一直被用于实现更高效的混淆电路,但从未被用于实现更强的安全性属性。
然后我们引入blind batch encryption,它是前述批加密原语的盲化版本。在身份基加密构造中使用批加密的目的在于对混淆电路的标签进行加密,使得每条输入线仅有一个标签可被解密(即对应于批加密私钥的那个标签)。盲批加密是针对盲混淆电路的一种“保持不可见性”的对应方案,具体如下:我们要求,若使用盲批加密方案对一个随机消息进行加密,则所产生的密文也完全是随机的。1这与盲混淆方案结合得非常自然:如果我们使用随机输出对盲混淆电路的标签进行批加密,则根据模拟安全性,其与加密独立于混淆电路的随机标签是不可区分的。因此,我们可以保证批加密密文本身也是随机的。从非常高层次来看,这将使我们能够在树的叶根路径上传播随机性(不可见性)属性,并避免通过部分解密泄露任何信息。
我们表明,通过引入对基于CDH的变色龙加密构造的修改,可以基于 CDH构造盲批加密,该构造来自[DG17a]。不幸的是,我们基于极低噪声 LPN的构造不具备盲性。
我们将这些构建模块应用于上述来自批加密的身份基加密构造的匿名化。我们提出了一种IBE的盲性属性,类似于批加密中的盲性属性,要求即使对于被允许解密的用户而言,随机消息的加密也应与随机内容不可区分even to a user who is permittedto decrypt it。我们证明了这一概念蕴含了匿名IBE,并且从弱紧致方案构造完全功能IBE的方案,以及从批加密方案构造弱紧致方案的过程均保持盲性(如果我们使用盲混淆电路)。事实上,为了避免重复,我们在形式化过程中仅在盲设置下给出归约,非盲变体可作为特例直接推导。
我们发现一个有趣的现象:即使最终我们只需要匿名IBE,也必须经过(显然更强的)盲性IBE这一原语。粗略地说,区别在于,匿名IBE只要求在攻击者无法解密的场景下隐藏身份(即,攻击者仅获得与挑战身份id0和id1均不同的身份id对应的私钥),而盲性IBE则要求即使在攻击者能够解密的场景下,也要隐藏身份。从本质上讲,我们认为这是两者之间的差异
我们实际上允许对此条件进行轻微的放宽。
在谓词加密中,弱属性隐藏与强属性隐藏之间存在差异(尽管细节略有不同)。我们还注意到,弱紧致匿名IBE可以从任意弱紧致IBE方案中通用构造。因此,如果我们能够将弱紧致匿名IBE方案提升为完整的匿名IBE,则可以从任意IBE方案通用构造出匿名IBE方案。
批加密蕴含抗泄露性和KDM安全性
我们表明,批加密方案的用途超出了身份基加密的范畴,从而扩展了[CDG+17]的研究成果,他们展示了简洁OT的各种应用,主要集中在多方计算场景中。我们发现,批加密自然地导出一种具有理想性质的公钥加密方案,例如对高比率(1 − o(1)密钥泄露[AGV09,NS12]的抗性以及对密钥相关消息的安全性[BRS02] (KDM,也称为循环安全性)。
这使得我们能够基于此前未知的假设(如CDH、因式分解和极低噪声LPN)提出新的构造方法[AGV09,NS12,BHHO08,ACPS09,BG10,HLWW16]。需要注意的是,根据[CDG+17]的研究,甚至尚不清楚(近似)等价的简洁OT概念是否能推出标准的公钥加密(在不假设“接收者隐私”的情况下;而在具备接收者隐私的前提下,已知任何两轮OT均可推出PKE)。这进一步加强了我们的观点:批加密是一个值得深入探索的概念。
基本思想非常直接。回顾一下,批加密方案用于加密一个包含 n × 2位的数组,而解密仅能恢复每对中的一个。因此,如果私钥为x ∈{0, 1}n ,加密消息为M ∈{0, 1}n×2,则解密消息等于 m= ∑i( Mi,0(1 ⊕xi)⊕ Mi,1xi) = ∑i Mi,0 ⊕∑i(Mi,1 ⊕ Mi,0)xi。记作α0= ∑i Mi,0, αi=Mi,1 ⊕ Mi,0。注意,只要每对Mi,0,Mi,1中有一个是随机的,就足以使所有{αi}i>0完全随机,这一性质对我们非常有用。为了加密,我们将对消息 m= ∑i μi进行 n‐选‐n的秘密共享,并设置Mi,0= Mi,1= μi。解密过程则是通过解密批密文并重构 m来完成。关于安全性,我们注意到批安全性意味着我们可以将每对Mi,0,Mi, 1中的一个转换为随机值(即使拥有密钥 x的区分器也无法察觉)。此时,我们回想一下,对于仅看到投影公钥的攻击者而言(回忆投影密钥生成函数是压缩的), x实际上是信息论上未知的。因此, ∑i αixi从 x的剩余熵中提取出的值在统计上接近均匀分布(实际上必须证明密文中除输出消息 m外没有其他可用信息)。该论证可自然扩展到抗泄露性,因为我们允许对 x进行额外的泄露,只要保留足够的信息以实现提取即可。看起来,针对计算上(次指数级)难以逆向的无界长度泄露(“辅助输入抗性”[DGK+10])的安全性也应以类似方式成立,但我们并未提供证明。
对于KDM安全性,我们注意到,对于任何形式为α0 ⊕∑i αixi的 x的线性函数,上述方法展示了如何模拟一个解密结果为此消息(实际上是,如何采样一个随机的此类密文)。事实上,该密文并非诚实生成的,但我们可以证明它与诚实生成的密文是不可区分的。这正是KDM安全性的基础。我们回顾一下,如[BHHI10中所示,App11],针对线性函数的 KDM安全性可以被放大为针对有界多项式函数的KDM安全性。有趣的是,这种放大方法也涉及对混淆电路的标签进行批量加密。由于篇幅限制,有关抗泄露和KDM安全性构造的详细信息,请参见我们的完整版本[BLSV17]。
1.2并行工作
在并发且独立的研究工作中,D¨ottling、Garg、Hajiabadi和Masny[DGHM18]基于常数噪声LPN上的次指数假设(在思想上与我们的假设类似)构造了(非匿名)身份基加密。在另一项并发且独立的研究工作中,Kitagawa和Tanaka[KT18]基于任意身份基加密和任意KDM‐安全的密钥加密方案构造了KDM-安全的身份基加密。
由于我们从批加密出发构造了身份基加密和KDM‐安全的公钥加密(PKE),将[KT18]的工作与我们的工作结合,可得到基于批加密的KDM‐安全身份基加密方案 (从而也可基于CDH/因式分解以及log2(n)/n‐噪声LPN进行构造)。
1.3我们的技术
本文其余部分组织如下。在第3节中,我们定义了(盲)批加密的概念,并基于 CDH假设构造了该方案。我们还提供了基于极低噪声LPN假设的(非盲)批加密构造。接着,在第4节中,我们引入了盲混淆电路的概念并给出了其构造方法。然后,在第5节中,我们展示了如何利用(盲)批加密构造弱紧致(盲)IBE方案。在第6节中,我们将弱紧致(盲)IBE方案提升为完全的(盲)IBE方案。
关于抗泄露性和KDM安全性的应用,以及后续章节中的许多细节,将留待我们论文的完整版本[BLSV17]中讨论。
我们首先概述匿名IBE方案构造的最后一步,即我们针对盲性IBE的自举定理,然后介绍从批加密构造弱紧致IBE的方法。
盲性IBE的自举
我们首先对一个常规IBE方案进行自举,然后描述处理不可见性所需的额外技术。
假设我们有一个支持 T= T(λ)个身份的盲IBE方案 WIBE,且其主公钥的大小为 S= S(λ)= T 1−ε · p(λ),其中 ε> 0为某个绝对常数, p为一个固定多项式。为了使表述更简洁,假设该方案中的密文确实是伪随机的。我们指出,若不对主公钥长度作限制,则可以通过任意公钥加密方案以通用方式构造此类方案,但会导致主公钥长度为 O(T · λ);例如参见[DKXY02]。
我们在 WIBE中的关键优势在于,主公钥随着方案支持的身份数量的增加而sublin-early增长。
我们将展示如何构造另一个(盲性)IBE方案 WIBE′ ,该方案支持 2T个身份,且完全不增加主公钥的长度。仅凭这一点还无法通过归纳法直接证明完整的自举定理,因为在变换过程中密文和私钥大小显著增长。然而,这个简化示例中已经包含了实现完整自举定理所需的全部思想。
我们首先选择足够大的 T,使得主公钥 T 1−ε·p(λ)的大小至多为 T/4。WIBE′的主公钥是 WIBE的一个单一主公钥;我们将它记为mpk(ε),并将其与一个深度为2的树的根节点相关联,该树第一层的分支因子为2,第二层为 T。我们还将选择另外两个主公钥mpk(0)和mpk(1),但不会将其发布作为 WIBE′主公钥的一部分。然而, WIBE′中的主私钥将包含msk(ε)以及mpk(i),msk(i)。
我们接下来要解决的两个问题是:(a)如何使用身份id||id′(其中id∈{0, 1}且id′ ∈{0,…, T −1})对消息 m 进行加密;(b)如何生成身份私钥。
让我们先讨论私钥的问题。对于身份id||id′,其中id ∈{0, 1}和id′ ∈{0,…, T −1},其私钥将包含sk(id) id′,,即相对于主公钥mpk(id)生成的身份id′的私钥。因此,通过使用主公钥mpk(id)下身份id′对消息 m进行加密,从而在身份id||id′下加密该消息是有意义的。如果加密器能够这样做,则解密确实可以成功,问题就解决了!然而,这里的关键问题是加密器并不知道mpk(0)或 mpk(1)。那么,加密器如何在不知道主公钥的情况下生成密文呢?
正是在这里,我们使用了延迟加密的技术,类似于[GKW16]以及前述的[DG17a]。也就是说,加密器无需在未知的主公钥下生成 m的加密,而是简单地构造一个电路 C[m,id′],该电路将消息 m和身份id′硬编码其中。该电路 C[m,id′]在输入一个mpk后,输出以mpk为公钥、身份为id时对′的加密。(该电路也已将加密随机性r硬编码。) 加密器现在执行两个操作。首先,它对电路进行混淆,生成̂C(即混淆电路) 以及 2S个标签labi,b,分别对应 i ∈[S]和 b ∈{0, 1}。然后,它使用身份(id i, b)在主公钥mpk(ε)下对每个标签labi,b进行加密。这一步骤中,我们关键地利用了 WIBE的紧凑性:由于 WIBE能够支持 T> 4S个身份,因此确实可用于加密这些标签。
身份id||id′ 的身份私钥现在包含两部分内容。与之前一样,它包含在主公钥mpk(id)下身份id′ 的私钥。此外,它还包含在主公钥mpk(ε)下 S个身份 (id i,mpk(id)[i])的私钥。
解密过程首先使用 S个身份的私钥来解锁混淆电路 C的一半标签,即对应输入mpk(id)的标签。然后解码该混淆电路,生成在主公钥mpk(id)下以身份id′对 m的加密结果。此时,私钥的第一部分恰好可用于解密并获得消息 m。
我们首先论证语义安全性(IND‐ID‐CPA安全性),然后展示实现不可见性/匿名性所面临的障碍,以及我们的新技术如何克服这些障碍。设挑战身份为 id||id′。在身份id||id′̂下对消息 m 的密文包含混淆电路 C,以及针对主公钥mpk(ε)在身份(id i, b)下对标签Li,b 的加密。首先需要注意的是,以比特(1 − id)开头的身份对应的私钥完全无法解密混淆电路中的任何标签。只有以比特id开头的身份对应的私钥才有用,但它们也仅能解锁混淆电路中一半的标签。这一点至关重要,否则我们将完全无法调用混淆电路的安全性!
以(匹配的)比特id开头的身份的私钥会解锁对应于输入mpk(id)的混淆标签。现在调用混淆电路的安全性,该安全性指出,这些标签连同混淆电路所揭示的唯一信息是使用通过主公钥mpk(id)生成的身份id′对 m进行的加密。由于攻击者从未获得挑战身份的私钥,因此她也从未获得在mpk(id)下身份id′的私钥。因此, WIBE的语义安全性告诉我们消息 m仍然保持隐藏。
正如引言中所述,该构造无法得到一个匿名性IBE方案。实际上,给定一个关于身份id1||id′ 1的密文和一个对应于id2||id′ 2 = id1||id′ 1的私钥,人们可以很容易地判断id1= id2是否成立,只需查看第一阶段解密步骤是否成功即可。更糟的是,目前尚不清楚底层 WIBE方案的匿名性在此是否有任何帮助。如果id 1= id2,,则私钥被授权解密一半的加密标签(“第一级密文”);而如果id 1 = id2,,则私钥无法解密其中任何一个。因此,乍看之下我们似乎陷入困境:在任何基于树的方案中,似乎总能恢复出身份的第一位。
我们的关键观察是,即使在“部分授权情况”下,密文也是对全新随机标签的加密。(实际上,这些标签会再次出现在混淆电路中;在证明中,这是通过与当前表述相反的混合顺序来处理的,其中叶节点处的伪随机性来源于攻击者没有对应目标身份的最终私钥。)因此,如果 WIBE方案具有盲性,则攻击者仍然无法区分她所持有的密钥是否为授权密钥。在这两种情况下,解密的输出都是一组均匀随机字符串!不幸的是,我们的困难并未就此停止。下一道防线——混淆电路——也可能帮助攻击者区分她在第一步获得的是正确的标签还是仅仅是随机字符串。此时,盲性再次发挥作用:这一次,我们结合使用盲混淆电路以及我们所混淆的电路输出实际上是伪随机的事实。
这完成了我们简化版构造及其安全性证明的概述。
当然,事先并没有理由只使用一层混淆电路。我们可以对“内部 WIBE”加密进行混淆,并对树中每一层都执行这样的操作。每个这样的混淆电路的输入是一个单独的主公钥,因此这一新混淆电路的输入标签不会比前一层的输入标签更大。因此,我们可以构建一个对应任意poly(λ)深度树的IBE方案,从而支持指数多个身份:一个完整IBE方案。当然,我们无法显式生成指数多个 WIBE主公钥(每个树节点对应一个),但我们可以利用伪随机函数PRF隐式地生成它们。
有关我们的自举定理的完整细节,请参见第6节。
从批加密到弱紧致IBE
我们现在概述如何从批加密构造弱紧致IBE。形式上,我们构造一个支持任意多项式数量 T个身份且公钥大小为 λ的方案。我们关注普通(非盲)变体,因为盲化版本可通过类似构造得到。我们注意到,批加密方案与混淆电路密切相关(这种联系在[CDG+17、DG17a]中被广泛使用)。考虑一个私钥 x长度为 n λ且公钥长度为 λ的批加密方案。我们可以加密包含 n× 2个元素的数组,特别是可以加密一个 n输入混淆电路的标签。持有私钥的一方将能够在其私钥对应的标签上求值该混淆电路。换句话说,批加密允许我们指定一个电路 C:{0, 1}n →{0, 1}m并生成一个密文,该密文即使对持有私钥的攻击者也仅揭示 C(x)。
回想一下,我们对所得IBE的唯一要求是主公开钥要短。所有其他参数都可以在多项式时间内依赖于身份空间的大小。因此,我们将为一个标准公钥加密方案生成一系列 T密钥对(pke.pk1, pke.sk1)…,(pke.pkT, pke.skT)。为简便起见,假设 |pke.pki| = λ。然后我们用n= T·λ实例化批加密方案,并生成一个批公钥,即 x= pke.pk1‖···‖pke.pkT的投影。该批公钥将作为弱紧致 IBE方案的mpk,且其长度确实为 λ,独立于 T。
为了向目标身份id ∈[T]加密密文,我们生成一个混淆电路,该电路期望输入一个包含 T 个公钥的序列,并取其中第id个公钥用于加密消息。对应于身份id的IBE私钥将包含整个序列 x= pke.pk1‖···‖pke.pkT,实际上在此情况下,批加密私钥完全不是秘密!此外,对应于身份id的IBE私钥还将包含pke.skid。给定一个密文后,解密器首先使用 x 来求值该混淆电路并恢复 C(x),在本例中这只是一个关于pke.pkid的公钥加密密文。下一步只需使用 pke.skid 解密该密文并恢复消息。
安全性来源于批加密的安全性(当批处理私钥 x 已知时也适用)以及公钥加密方案的安全性。
2预备知识和定义
2.1(匿名)基于身份的加密
定义 1(身份基加密) 。一个基于身份的加密(IBE)方案由五个概率多项式时间算法(参数生成算法、设置、密钥生成算法、加密算法、解密算法)组成,具有以下语法。
- 参数生成算法Params(1λ, 1t)输入安全参数 1λ 和身份长度 1t,返回公共参数pp(可用于生成多个主公钥/主私钥对)。
- Setup(pp)输入公共参数pp, 返回主公钥mpk和主密钥生成器(msk)。
- 密钥生成算法 Keygen(pp,msk,id)输入公共参数pp和主密钥生成器(msk),输出与身份 id相关联的私钥skid。
- 加密算法Enc(pp,mpk,id m)将消息 m加密给指定身份id,输出密文ct。
- 解密算法Dec(pp,sk,ct)使用私钥sk对密文ct进行解密,输出明文消息 m′。
我们要求身份基加密方案满足以下两个性质。
– 正确性:在(Params,Setup,Keygen,Enc,Dec)的随机性下,以概率1成立 Dec(pp,skid,Enc(pp,mpk,id m))= m,其中(mpk,msk) ← Setup(pp)且 skid ← Keygen(msk,id)。
– IND-ID-CPA安全性:一个概率多项式时间对手A在以下安全游戏中获胜的概率不超过 1 2+ negl(λ):
- pp ← Params(1λ, 1t)
- (mpk,msk) ←Setup(pp)
- (id∗, m0, m1,st) ← AKeygen(pp,msk,·)(mpk)
- b←${0, 1}
- ct ←Enc(pp,mpk,id∗, mb)
- b←${0, 1}(st,ct)
- A获胜当且仅当b′= b且id∗从未被 A查询过其密钥生成算法预言机。
定义 2 (匿名IBE) 。一个匿名IBE方案也具有IBE方案的语法(Params,Setup,Keygen, Enc,Dec)。它满足与IBE相同的正确性性质,并具有以下更强的安全性概念:
– IND-ANON-ID-CPA安全性:一个概率多项式时间对手 A在以下安全游戏中获胜的概率不能大于12 + negl(λ):
- pp ← Params(1λ, 1t)
- (mpk,msk) ←Setup(pp)
- (id0,id1, m0, m1,st) ← AKeygen(pp,msk,·)(mpk)
- b ←${0, 1}
- ct ←Enc(pp,mpk,idb, mb)
- b′ ← AKeygen(pp,msk,·)(st,ct)
- A获胜当且仅当 b′= b 且id0,id1 从未被 A查询过其密钥生成算法预言机。
2.2计算性Diffie‐Hellman(CDH)
设 g是某个群 G中的一个元素。我们称 q是 g的一个 ε‐随机化子,如果 a ← Zq下的 ga与 h ← 〈g〉之间的统计距离至多为 ε。我们注意到,任何满足ord(g)·1/ε的 q ≥都是一个 ε‐随机化子,因此只需对 g的阶有一个上界,即可计算出任意 ε的随机化子。
一个(可能是随机化的)群采样器是一个概率多项式时间算法 G,它在输入安全参数时输出一个元组(G, g, q) ← G(1λ),该元组通过为群元素提供poly(λ)‐比特的表示形式,以及用于计算群运算、逆元(从而也包括指数运算)的多项式时间算法,并连同一个元素 g ∈ G和一个negl(λ)‐随机化器 q共同定义了一个 〈g〉。
相对于 G的计算性Diffie‐Hellman(CDH)假设,记作CDHG,是指对于任意概率多项式时间算法 A,都有 AdvCDHG A = Pr(G,g,q)←G(1λ)a1,a2←Zq[A(1λ,(G, g, q), ga1, ga2)= ga1a2]= negl(λ).
当上下文明确时,我们有时会省略对 G 的说明。
我们注意到存在一个随机化群采样器,使得分解Blum整数的困难性可归约到CDH问题的困难性[Shm85,McC88,BBR99]。
2.3带噪声的奇偶学习(LPN)
对于所有 n ∈ N,行向量s ∈{0, 1}n和实数 ε ∈[0, 1/2],定义一个随机预言机As,ε,使得对于每次对As,ε,的调用,该预言机采样a ←{0, 1}n, e ←Berε(其中 Ber为伯努利分布),并输出(a,s · a+ e),其中运算在二元域上进行。注意 As,1/2每次调用时输出完全均匀分布的元素。
带噪声的奇偶学习假设LPNn,ε,针对多项式函数n:
匿名IBE、抗泄露性与基于新假设的泄露与循环安全性
2预备知识和定义
2.3带噪声的奇偶学习(LPN)
对于所有 n ∈ N,行向量s ∈{0, 1}n和实数 ε ∈[0, 1/2],定义一个随机预言机As,ε,使得对于每次对As,ε,的调用,该预言机采样a ←{0, 1}n, e ←Berε(其中 Ber为伯努利分布),并输出(a,s · a+ e),其中运算在二元域上进行。注意 As,1/2每次调用时输出完全均匀分布的元素。
带噪声的奇偶学习假设LPNn,ε,针对多项式函数n: N → N和函数 ε: N →[0, 1/2],是指对于每个概率多项式时间(ppt)预言机算法 A,以下成立
AdvLPN n,ε A = ∣ ∣ ∣ ∣
Pr
s←{0,1} n [AA s ,ε(1λ)] − Pr[AA 0 ,1/2(1λ)]
∣ ∣ ∣ ∣ = negl(λ),
其中 n= n(λ), ε= ε(λ)。
我们注意到,如果 ε= log n/n,则LPN可在多项式时间内求解,但对于 ε=Ω
(log 2 n/n)目前尚无已知的多项式时间算法。
基于[BLVW17]的抗碰撞性哈希族
在[BLVW17]中展示了如何基于LPNn的ε困难性来构造抗碰撞性哈希函数,适用于任意多项式 n, ε= Ω(log 2 n/n)。由于该构造是我们基于LPN的批加密构造的基础,因此我们在此稍作详细说明。
哈希函数的密钥是一个随机矩阵A ∈{0, 1} n×( 2n 2 / lo g n )。为了在输入 x ∈{0, 1} 2n上应用该哈希函数,他们首先对其进行预处理,步骤如下:将 x解释为 2n/log n个块的集合,每个块包含log n位。然后使用通常映射将每个块解释为{1,…, n} 中的一个数字。因此 x ∈[n]2n/ logn。然后定义一个向量ˆx ∈{0, 1}2n2/logn,由2n/ log n个 n‐比特的块拼接而成,其中每个块是 x中对应项的一个{0, 1}n指示向量(即在对应项值的位置上有一个比特为1,其余为0)。最后输出Aˆx。这从 2n压缩到 n比特,且由于碰撞意味着存在一个低范数向量v使得Av= 0,因此具有抗碰撞性哈希性质。
我们对批加密方案的安全性论证类似于他们对抗碰撞性哈希的证明,但我们并未将其作为黑盒使用。
2.4使用戈德赖希‐莱文硬核比特的一次性加密
我们展示了以下基于戈德赖希‐莱文硬核比特的一次性加密方案[GL89]。
定义 3 。定义gl-enc(x, μ) 为一个随机化函数,该函数在输入 x ∈{0, 1}, μ ∈{0, 1}时采样 α ∈{0, 1},并输出(α,〈α, x〉⊕μ),其中内积运算在二元域上进行。定义gl-dec(x, (α, σ))为接收x ∈{0, 1} 和(α, σ) ∈{0, 1}+1 并输出 σ ⊕〈α, x〉的函数。
根据定义,对于所有 x, μ,都有gl‐dec(x,gl‐enc(x, μ))= μ以概率1成立。此外,戈德赖希‐莱文定理断言,给定一个联合分布族{(Xλ, Zλ)}λ,使得对于任意多项式时间算法 A,Pr(x,z)←(X,Z),A[A(1λ, z)= x]= negl(λ),则对于任意 μ(可能依赖于 z),(z,gl‐enc(x, μ))与(z, U+1)是计算不可区分的。我们进一步注意到,如果 μ是随机且对区分器未知的,则无论 x如何,gl‐enc(x, μ)都是均匀随机的。
3盲批加密与实例化
3.1定义批加密(BatchEncryption)
批加密方案是一种加密方案,其密钥生成是将一个字符串 x作为私钥输入,并输出一个用作公钥的哈希值 h的投影函数(或哈希函数)。该批加密方案由块大小 B进行参数化。上述字符串 x应被解析为 x ∈[B]n。批加密使用公钥 h对一个 n × B矩阵M进行加密,使得拥有私钥 x的解密器能够恰好获得每个i ∈[n]对应的Mi,x i;即从矩阵M的每一行中恰好获取一个矩阵元素。注意,当B= 2时,我们可以将 x视为一个比特向量 x ∈{0, 1}n,并在{0, 1}与{1, 2}之间进行自然转换。
更详细地说,批加密方案的语法如下,其中我们将函数 B= B(λ, n)视为该构造的一个全局参数。
- 设置(1λ, 1n)。输入安全参数 λ 和密钥长度 n,输出公共参考字符串crs。
- 生成(crs x)。利用公共参考字符串,将私钥 x ∈[B] n映射为公钥 h。
- 加密算法(crs h,M)。输入为公共参考字符串crs、公钥h以及矩阵M ∈{0, 1}n×B,输出一个密文ct。为了定义下方的盲性性质,密文ct可表示为两部分的拼接形式ct=(subct1,subct2)。
- 解密算法(crs x,ct)。给定一个密文ct,输出一个消息向量m。
此外,一个批加密方案支持两个可选的功能。
- SingleEnc(crs h, i,m)。输入为公共参考字符串crs、公钥 h、索引 i ∈[n]和消息m∈{0, 1}B,输出为密文ct。如上所述,出于下文将定义的不可见性目的,密文ct可表示为两部分的拼接形式ct=(subct1,subct2)。6. 解密算法(crs x, i,cti)。输入为公共参考字符串crs、私钥 x、索引 i ∈[n]和密文cti,输出为消息 m ∈{0, 1}。
每当定义了单次加密和解密算法时,我们要求Enc(crs h,,M)=(cti)i∈[n],其中cti ←= SingleEnc(crs h,, i,,mi),且mi表示M的第 i行消息mi。类似地,对于ct=(cti)i∈[n],解密算法计算mi ← SingleDec(crs x,, i,,cti)对所有 i ∈[n]成立,并输出它们的拼接结果。
批加密的正确性
我们定义了批加密方案正确性的两种概念,第一种比第二种更强。
定义 4(批处理正确性) 。令crs= Setup(1λ, 1n),则对于所有x,M,有 h= Gen(crs x),ct=Enc(crs h,M),m′=Dec(crs,x,ct),满足m′ i= Mi,xi对所有 i 成立的概率至少为 1 − 2λ,其中概率来源于Enc的随机性。
定义 5(单次加密的δ-逐点正确性) 。令crs=Setup(1λ, 1n),则对于所有 x, i, m,取 h= Gen(crs x),cti=SingleEnc(crs h, i,m), m′=SingleDec(crs x, i,cti),均有 m′= mxi 在SingleEnc的随机性下以至少 1/2+ δ 的概率成立。
1/poly(λ)‐逐点正确性通过重复可推出批处理正确性。
批加密的简洁性
定义6 .如果对于crs= Setup(1 λ, 1n)和 h= Gen(crs x)(对某个 x ∈[B]n),满足|h| ≤ αnlog B,则称一个批加密方案是 α-简洁的。
定义7 .如果对于crs=Setup(1 λ, 1n)以及某个 x ∈[B] n的 h= Gen(crs x),有|h| ≤ p(λ)成立,其中 p(λ)为某个固定的多项式,则称该批加密方案是完全简洁的。
批加密的语义安全性
定义8(批加密安全性) 。批加密方案的安全性通过挑战者与攻击者之间的以下游戏来定义。
- 攻击者以 1λ作为输入,并向挑战者发送 1n、 x ∈[B]n。
- 挑战者生成公共参考串crs= Setup(1λ, 1n),并将crs发送给攻击者。
- 攻击者生成M(0)、M(1) ∈{0, 1}n×B,使得对所有 i ∈[n]均有M(0) i,xi= M (1) i,xi,然后将其发送给挑战者。
- 挑战者计算 h= Gen(crs x),并对随机比特 β ∈{0, 1}加密得到密文 ct=Enc(crs h, M(β)),并将ct发送给攻击者。
- 攻击者输出一个比特 β′,若 β′= β则获胜。
如果没有任何多项式时间攻击者能够以概率 ≥1/2+ 1/poly(λ)赢得上述游戏,则该批加密方案是安全的。
通过标准的混合论证,上述定义可由单次加密的以下安全性属性推出。
定义9(单次加密安全性) 。我们称一个批加密方案满足单次加密-安全性,如果没有任何多项式时间攻击者能够以概率 ≥1/2+ 1/poly(λ)赢得以下游戏:
- 攻击者以1λ为输入,并向挑战者发送1n、 x ∈[B]n、 i ∈[n]。
- 挑战者生成 crs= Setup(1λ, 1n)并将crs发送给攻击者。
- 攻击者生成m(0),m(1) ∈{0, 1}B,使得m(0) xi= m (1) xi,并将它们发送给挑战者。
- 挑战者计算 h= Gen(crs x)并使用随机比特 β ∈{0, 1}对密文进行加密:ct = SingleEnc(crs h, i,m(β))。然后将ct发送给攻击者。
- 攻击者输出一个比特 β′,若 β′= β成立,则攻击者获胜。
与变色龙加密和简洁不经意传输的关系
对于熟悉变色龙加密[DG17a]和简洁不经意传输[CDG+17]概念的读者,我们将批加密概念与这些对象进行比较。
首先,我们注意到批加密的概念相较于变色龙加密方案在[DG17a]中定义的方案,在以下两个方面有显著弱化。最重要的是,我们不要求存在支持寻找碰撞的陷门(即“变色龙”加密中的“变色龙”部分);这一点至关重要,因为我们的基于LPN的构造似乎没有相关的陷门。尽管如此,我们证明了批加密足以用于构造身份基加密。此外,我们对输入的安全性定义是选择性的 x而非自适应的(即攻击者在看到公共参考串之前就选定输入 x),这意味着批加密并不显然蕴含抗碰撞性哈希函数(CRHF),而仅蕴含目标抗碰撞性。相比之下,变色龙加密中隐含的哈希函数是抗碰撞性哈希函数。
另一方面,只要限制[CDG+17]中定义的第一条消息,批加密本质上等同于简洁型不经意传输将OT协议设计为公共参考串crs和数据库 D的确定性函数(然而,由于简洁 OT不需要接收者隐私,任何简洁OT方案都可以修改以具备此属性)。我们的变换表明,批量加密(或简洁OT)是从中启动并获得身份基加密IBE的正确原语。此外,我们的新盲性属性也可以用简洁OT的语言来解释。
3.2定义盲批加密
接下来,我们定义批加密方案的附加盲性属性,该属性表明在加密一个区分器未知的随机消息时,密文“本质上”与均匀分布不可区分。更具体地说,我们允许密文的一部分不与均匀分布不可区分,只要它不泄露关于 h或加密消息的任何信息。
定义10(不可见性) 。设 BBENC=(设置,生成,加密算法,解密算法)是一个批加密方案。此外,假设Enc(crs, h, M; r)= E1(crs, h, M; r)||E2(crs, h, M; r) 是对加密算法(·)进行的某种分解,将其分为两部分。我们称 BBENC具有盲性,如果
- 函数 E1(公共参考串 h,M; r)= E1(公共参考串; r)不依赖于公钥h或消息M,且
-
任何多项式时间攻击者在以下游戏中的获胜概率均不能超过 ≥ 1 2+ 1/poly(λ)。
-
攻击者以 1λ作为输入,并将 1n、 x ∈[B]n发送给挑战者。
- 挑战者生成公共参考串crs=Setup(1λ, 1n),并计算 h= Gen(crs x)。它采样一个随机的β ←{0, 1},一个随机消息矩阵M ←{0, 1}n×B,并加密(subct1, subct2) ←Enc(crs h,M)。然后按如下方式生成ct。
- 如果 β= 0,则ct=(subct1,subct2)。
- 如果 β= 1,则采样一个与subct2等长的随机比特串subct′2。令ct=(subct1,subct′2)。挑战者将crs和ct发送给攻击者(注意,M不会发送给攻击者)。
- 攻击者输出一个比特 β′,若 β′= β则获胜。
同样,通过标准的混合论证,上述盲性定义可由单次加密的类似盲性属性推出。如果 BBENC是一个盲批加密方案,我们称Enc= E1||E2为加密算法的盲分解,并采用如下记法: E1的输出记为subct1, E2的输出记为subct2。
从块大小 B到块大小2
尽管我们基于LPN的批加密构造本身构建了一个具有大块大小的方案,但下面的引理表明,我们可以不失一般性地使用块大小2。该引理的证明见完整版本[BLSV17]。
引理1 。假设存在一个 α-简洁的(盲)批加密方案,其块大小为 B。那么,存在一个 α-简洁的(盲)批加密方案,其块大小为2。
从 α-简洁到完全简洁(盲)批加密
我们展示了如何从 1/2‐简洁(盲)批加密构造出完全简洁(盲)批加密。该构造和证明类似于Cho等人[CDG+17]的简洁OT自举定理。然而,为了保持不可见性,我们使用了盲混淆电路(定义见 第4节),其用法类似于第5和6节中的使用方式。我们在下方陈述引理,并在完整版本[BLSV17]中提供证明。
引理2 。假设存在一个 1/2-简洁的(盲)批加密方案,其块大小为 B= 2,以及一个(盲)混淆方案。那么,存在一个块大小为 B= 2的完全简洁(盲)批加密方案。
3.3基于CDH的盲批加密
在本节中,我们基于CDH假设构造盲批加密方案。该方案具有完美的正确性,是完全简洁的,且块大小为 B= 2。该构造受[DG17a]中变色龙加密构造的启发,但不需要陷门。令 G为第2.2节所述的群采样器。回顾第2.4节中的 Goldreich‐Levin编码/解码过程。盲批加密方案如下。
- CDH‐BE.设置(1λ, 1n)。采样(G, g, q) ← G(1λ)。为 i ∈[n],b ∈{0, 1}采样αi, b ← Zq。定义gi,b= gαi,b。输出公共参考串crs=((G, g, q){gi,b}i,b)。
- CDH‐BE.生成(crs x)。输出h=∏i gi,xi。
- CDH‐BE.单次加密(crs h, i,m)。采样r ← Zq。对于所有 j ≠ i以及所有b ∈{0, 1},计算:ˆgj,b= gr j,b。计算ˆgi,b= hrg −r i b,,并令μi,b= gl‐enc(ˆgi,b,mb)。输出ct=(subct1={gˆj,b}j≠i,b∈{0,1}, subct2={μi,b}b∈{0,1})。
- CDH‐BE.SingleDec(crs x, i,ct)。给定ct=({ˆgj,b}j≠i,b∈{0,1},{μi,b}b∈{0,1}),计算ˆgi,xi =∏j≠i=ˆgi,xi。输出 m= gl‐dec(ˆgi,xi, μi,xi)。
正确性由定义直接得出。此外,我们注意到该方案是完全简洁的(见定义 7;注意 h ∈ G具有固定的poly(λ)大小表示形式,这是基于假设)。
引理3 。该方案CDH-BE在CDHG假设下是安全的。
证明 。考虑挑战者与攻击者之间的以下游戏。
- 攻击者以 1λ作为输入,并向挑战者发送 1n、 x ∈{0, 1}n、 i ∈[n]。
- 挑战者生成公共参考串crs= CDH‐BE.设置(1λ, 1n),即群(G, g, q)以及集合gj、b。它计算 h= CDH‐BE.生成(x)。然后采样 r ← Z q 并为所有 j ≠ i、 b ∈{0, 1}计算ˆgj、b= g r j 、b,以及ˆgi、x i = hr g−r i 、x i 。它将公共参考串crs和计算得到的ˆg值发送给攻击者。
- 攻击者返回g ′。
- 如果g ′= hr g−r i 、1−x i 成立,则挑战者判定攻击者获胜。
我们将证明所有多项式时间攻击者在上述游戏中具有可忽略的优势。根据戈德赖希‐莱文定理(见第2.4节),这意味着该方案的安全性符合定义9。
要理解上述成立的原因,考虑一个针对上述游戏的攻击者,并假设CDHG问题的输入为(G, g, q) ga1, ga2。我们将说明如何构造一个上述游戏的挑战者,使得当攻击者成功时,可以计算出值 ga1a2。挑战者在收到 1n, x, i后,将执行以下操作:为所有{i},{id}生成αj,b ← Zq,以及生成αi,1−xi。从概念上讲,我们将a1与挑战者将要生成的值 r相关联,而a2则与差值(αi,xi − αi,1−xi) 2相关联。根据这一思路,挑战者将为所有 j ≠ i、b ∈{0, 1}以及(j, b)=(i, 1 − xi)生成gi、b= gαj、b。然后生成gi、xi= gi、1−xi · ga2。为所有 j ≠ i、 b ∈{0, 1}生成ˆgj、b=(ga1)αj、b。剩下的ˆgi、xi= hrg−r i 、xi= ∏j≠i g r j、xj = ∏j≠i ˆgj、 xj可由先前计算的值推导得出。注意,这些计算值与真实实验中其分布的统计距离可忽略不计。如果攻击者成功计算出g′= hrg−r i 、1−xi =(∏j≠iˆgj、xj) ·(gi,xi/gi,1−xi) r=(∏j≠iˆgj、xj) · ga1a2,则乘积∏j≠iˆgj、xj可被消去,从而求解CDHG。
引理4 .该方案CDH-BE在CDHG假设下具有盲性。
证明 .考虑定义10中的游戏。我们首先注意到,在我们的方案中,subct1与 h,m无关,因此无论 β的取值如何,subct1的边缘分布都是相同的。根据 gl‐enc的性质(见第2.4节),如果m是均匀分布的,则μi,b的值也是均匀分布的。因此,任何攻击者在盲性游戏中获胜的概率恰好为 1/2。
3.4批量加密
本节中,我们提出一种基于LPN且噪声率为Ω(log2(n)/n)的候选构造。具体而言,我们将展示一种基于LPN的构造,其对 δ具有逐点正确性,适用于 δ= 1/poly(n),是 1 2-简洁的,且块大小为 B= n。我们的构造基于[BLVW17]提出的抗碰撞性哈希函数构造。有关该假设及CRH候选方案的细节,请参见第2.3节。遗憾的是,我们无法证明该候选方案的盲性。如上所述, δ逐点正确性可以被放大,但这种放大并不保持盲性属性。因此,即使我们的 δ‐逐点正确的候选方案具有盲性,我们也无法在不牺牲盲性的情况下将其放大以获得批处理正确性。
我们引入以下符号。对于任意数字 j ∈[B],我们定义ind(j) ∈{0, 1} B为在第 j个坐标处为1,其余所有坐标处为0的向量。注意,对于矩阵A ∈{0, 1} k×B(对于任意 k),A · ind(j)恰好是A的第 j列。
- LPN-BE.设置(1λ, 1n).回想一下 B= n,并且不妨假设 λ ≤ n(否则重新定义 n= λ并使用新值继续,这只会加强所构造的对象)。我们定义 n˜= n log B 2 = n logn 2以及一个参数 ε=log n/n= Ω(log2(n˜)/ n˜),将在下文使用。采样A1,…,An ←{0, 1}n˜×B(我们也将记作A=[A1‖···‖An])。输出公共参考串={Ai}i∈[n]。
- LPN‐BE.生成(crs x)。输出h=∑i∈[n] Ai · ind(xi)。
- LPN‐BE.单次加密(crs, h i,m)。定义A−i=[A1‖···‖Ai−1‖Ai+1‖···‖An]。对于所有 j ∈[B],采样s(j) ←{0, 1}n˜和e(j) ← Ber(n−1)B+1 ε 。计算v(j)= s(j)[A−i‖Ai · ind(j)− h]+ e(j)+[0,…, 0, mj]。输出密文= subct2={v(j)}j∈[B]。
- LPN‐BE.SingleDec(crs x, i,ct)。给定ct={v(j)}j∈[B],定义xˆ−i=[ind(x1)‖···‖ind(xi−1)‖ind(xi+1)‖···‖ind(xn)‖1]†,其中 † 表示向量转置。输出 m= v(xi)· ˆx−i。
引理5 .方案LPN-BE是 1/poly(n)-逐点正确的。
证明 .设crs, x, i,m为任意值,并考虑计算 h= Gen(crs x),ct=SingleEnc(crs h, i, m)和 m′= SingleDec(crs x, i,ct)。然后,根据定义m′=(s(j)[A−i‖Ai · ind(xi)− h]+ e(xi)+[0,…, 0, mj]) xˆ−i= mj+ e(xi) · xˆ−i,但由于e(xi )是参数为 ε的伯努利分布,且ˆx−i 的汉明重量根据定义恰好为 n,因此e(xi )·ˆx−i是参数为 ε′ ≤ 1/2−e−2εn的伯努利分布。由于我们设定 ε= log n/n,逐点正确性得证。
引理6 .方案LPN-BE在LPNn˜,ε假设下是安全的(我们回顾一下 ε=Ω(log2(n˜)/ n˜))。
证明 。我们考虑单次加密安全游戏,见定义9(注意这已足以保证完整的批处理安全性)。我们将证明攻击者的视图与如下场景中的视图是计算不可区分的:所有v(j)对于所有 j ≠ xi均为均匀随机。由此可得安全性。
考虑一个挑战者,其收到的LPN挑战形式为A′ 1 ,…,A′ n ∈{0, 1} n˜×B,{bj,k}j∈[B]{xi} , k ∈[n],其中bj,k要么全部为均匀分布,要么具有如下形式:bj,k = s(j)A′ k +ej,k。(注意,该挑战实际上不依赖于 xi,我们可以直接取 j ∈[B −1]并在事后将值映射到[B]{xi}。)当攻击者发送 x, i后,挑战者计算h=∑i ∈[n]A′ i· ind(xi)。然后,对于所有k ≠ i,设置Ak= A′ k ,再如下设置Ai。令Ai·ind(xi)=A′ i· ind(xi)(注意到乘以ind(j)等价于选择第 j列),并对所有 j ≠ xi,设置Ai ·ind(j)= A′ i ·ind(j)+ h。注意由于Ai · ind(xi)= A′ i · ind(xi),因此h= ∑i ∈[n] Ai · ind(xi)成立,且实际上公共参考串crs={A1,...,An},h x, i的分布与原始游戏中的分布完全相同。
挑战者将公共参考串,h发送给攻击者并接收消息向量。然后它自行采样s(xi), e(xi)并正确生成v(xi)。对于所有 j ≠ xi生成v(j)=[bj,[n]{i}‖bj,i · ind(j)]+[0,…, 0, mj],其中bj,[n]{i}是按顺序排列的所有bj,k的拼接。我们注意到,如果向量{bj,k}是从LPN分布生成的,则v(j)具有正确的分布。这是因为我们定义了Ai·ind(j)−h= A′i·ind(j)。另一方面,如果{bj,k}是均匀分布的,则所有v(j), j ≠ xi都是均匀分布的。因此安全性得证。
4盲化混淆电路
在本节中,我们定义盲混淆电路的概念,并展示一种仅假设单向函数存在的构造方法。事实上,我们注意到广泛使用的“点选与置换”混淆电路构造[BMR90,Rog91]实际上是盲性的。我们首先介绍标准混淆电路的定义,然后继续定义并构造盲混淆电路。
定义 11(混淆电路) 。一个混淆方案由三个算法(Garble,Eval,Sim)组成,其中:
- Garble(1λ, 1n, 1m, C)是一个概率多项式时间算法(pptalgorithm),它以安全参数̂和电路 C:{0, 1}n →{0, 1}m作为输入,输出一个混淆电路 C以及输入标签(labi,b)i∈[n],b∈{0,1},其中每个标签为labi,b ∈{0, 1}λ。
- Eval(1λ, Ĉ, L̂)是一个确定性算法,它以混淆电路̂ ̂C 和一组 n 标签 L=(labi) i∈[n]作为输入,输出一个字符串 y ∈{0, 1}m。
- Sim(1λ, 1|C|, 1n, y)是一个概率多项式时间算法(pptalgorithm),它以安全参数、 C的描述长度、输入长度 n 和字符串 y ∈{0, 1}m作为输入,并输出一个模拟的混淆电路 C 和标签 L。
当上下文明确时,我们通常省略这些算法的第一个输入(即 1λ)。我们要求混淆方案满足两个性质:
- ̂1.正确性:对于所有电路 C、输入 x,以及所有(C,(labi,b)i,b) ← Garble(C, x) ̂ ̂ ̂和 L=(labi,xi) i∈[n],我们有Eval(C, L)= C(x)。
- 2.模拟安全性:对于所有电路 C:{0, 1} n →{0, 1} m以及所有输入 x ∈{0, 1} n,以下两个分布是计算不可区分的:{(Ĉ, L̂):(Ĉ, labi,b)i,b ← Garble(C, x), L̂=(labi,x i) i∈[n]} ≈c{(C˜, L˜):(C˜, L˜) ← Sim(1 λ , 1|C|, 1n, C(x))}。
传统上,混淆电路的安全性要求:电路 C的混淆̂ ̂ C以及对应于输入 x的混淆标签 L合在一起仅揭示C(x),而不多泄露任何信息(除了电路 C 的大小和输入 x的大小)。形式上,这一点由一个模拟定义所刻画,该定义要求一个模拟器在仅知道h和f的情况下,能够模拟出与真实分布不可区分的输出。
̂ ̂仅给定 C(x)的情况下,能够忠实地模拟 C和 L的联合分布。不可见性要求模拟器的输出是均匀随机的。当然,如果区分器获得了电路 C和输入 x,或者 C(x)的分布不是均匀随机的,则这一目标显然无法实现。然而,不可见性仅针对 C(x)的分布为均匀随机的情况。
定义12(盲混淆电路) 。一个混淆方案(Garble,Eval,Sim)被称为盲性的,如果分布Sim(1λ, 1c, 1n, Um)(表示模拟器在完全均匀输出上的输出)与完全均匀分布的比特串不可区分。(注意:区分器不得知晓用于模拟的随机输出值。)
使用与[BMR90的点选与置换混淆电路本质上相同的构造Rog91],,我们证明了以下结果。
引理7 .假设存在单向函数,则存在一种盲性混淆方案。
我们建议读者参考完整版本[BLSV17]以获取详细信息。
5弱紧致盲性身份基加密
5.1定义弱紧致盲IBE
我们现在开始从盲批加密和盲混淆电路来构造匿名IBE;在此过程中,我们还将从批加密构造IBE。如前所述,我们将匿名IBE作为构建一个更强对象的结果来实现,我们称其为盲IBE。类似于批加密的盲性属性(定义10),我们称一个 IBE方案是盲的,如果在某个身份id∗下加密一个区分器未知的随机消息时,即使给定任意多项式数量的私钥{skid}(可能包括skid∗),该密文也“本质上”与均匀分布不可区分。
定义 13(盲IBE) 。一个IBE方案满足IND-BLIND-ID-CPA安全性,如果(1)它满足IND-ID-CPA安全性,并且(2)加密算法Enc(pp,mpk,id m; r)可以表示为一个拼接形式 E1(pp; r)||E2(pp,mpk,id m; r),使得没有任何概率多项式时间对手 A能在以下游戏中以大于 1 2 +negl(λ)的概率获胜:
- pp ←参数生成算法(1λ||1t)
- (mpk,msk) ← Setup(pp)
- (id ∗ ,st)← AKeygen(pp,msk,·)(mpk)
- m ←$ M
- (subct1,subct2) ←加密算法 (pp,mpk,id ∗ , m)=(E1(pp; r) E2(pp, mpk, id∗ , m; r))
- ←{0, 1}|subct2|
- β ←${0, 1} β= 1 2 β′ ← AKeygen(pp,msk,·) , 1, 2 ..如果,subct$. (st(subctsubct))
- A获胜当且仅当β′= β.
我们称Enc= E1||E2为盲分解的Enc。
引理 8 .任何盲IBE方案也是一个匿名IBE方案。
证明 。考虑一个攻击者 A参与IND‐ANON‐ID‐CPA安全性游戏;A最终获得一个挑战密文ct ← Enc(pp,mpk, idb, mb),其中(id0, m0)和(id1, m1)是 A选择的挑战身份‐消息对。对于每个 b ∈{0, 1},显然 A无法区分它
匿名IBE与抗泄露性研究
13

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



