基于投影哈希函数的可否认环认证
摘要
可否认认证允许参与者否认认证过程,因为没有证据表明该过程曾经发生过。这对于隐私保护场景非常适用。结合环签名特性,可否认认证能够实现源隐藏。换句话说,接收者仅能确信某个群体中的成员正在对消息进行认证,但无法知道具体是哪一个成员。同时,这种认证也是可否认的,即接收者无法向第三方证明该消息确实经过了认证。我们提出了一种基于投影哈希函数的可否认环认证。利用这一构建模块,底层(加密)方案无需满足CCA安全,从而得到一个更高效的 realistic可否认认证协议。
关键词 :可否认环认证 · Privacy-preserving通信 · Projective哈希函数 · NIWI证明
1 引言
认证是通信中最重要的一种安全原语。在基于互联网的服务中与他人通信时,我们需要通过认证协议来确认对方的合法性。对通信双方进行认证的简单方法是共享一个共同密钥。如果发送方A向发送方B出示正确的私钥,则B便确信A就是其要通信的正确对象,因为该私钥仅他们双方知晓。显然,此场景下的主要任务是共享该私钥。因此,认证的前置步骤是运行一个密钥协商协议[8]。另一种消息认证的方法是使用数字签名。对消息 m的发送方认证即为该发送方的签名。该签名算法的不可伪造性确保了认证的可靠性。在这种公钥场景下,无需任何一方共享私钥。相应的公钥可用于签名验证。在数字签名方案中,具备不可否认性属性。
换句话说,输出的签名基于签名方案的不可伪造性而与某个参与方绑定。尽管该特性在合同签署或不可否认的交易中很有用,但它并不适用于隐私保护。
如果参与者希望在认证过程中保护其隐私,则需要进行隐私保护认证。假设爱丽丝希望从服务器S获取某种服务,服务器S必须确认爱丽丝是合法用户,因此需要与S进行认证。另一方面,爱丽丝不希望泄露此次认证记录,因为它可能暴露她的隐私信息,例如她的身份、位置或所使用的服务。在这种情况下,爱丽丝可能希望与S私下通信。因此,数字签名方案的公开验证不适用于需要保护用户隐私的认证场景。
如何保持认证记录的私密性?由于服务器S拥有该记录,S可能会将其展示给其他人。直观的方法是使认证记录具有可模拟性。换句话说,如果通信记录可以在没有私钥的情况下由任何人生成,则该记录不与任何一方绑定。显然,具有不可否认性的数字签名在没有私钥的情况下是无法被模拟的;否则将违背不可伪造性。让我们回到第一种场景:由于参与方A和B共享一个共享密钥,发送方A的通信记录也可以由接收方B生成。因此,该通信记录并不能唯一绑定到A,A可以否认该记录。
遵循模拟范式,可否认认证的概念由杜尔克、纳奥尔和萨海提出[11]。认证流程在发送方A和接收方B之间进行。在共同输入消息 m的基础上,A和B交互执行认证协议。最终,接收方B确信发送方A对消息 m进行了认证;然而,B无法使其他任何人相信该认证过程曾经发生过。这被称为可否认认证。
1.1 相关工作
可否认认证由多列夫等[9]提出,随后由杜尔克等[11]进行了形式化。在他们的研究中,可否认认证的解决方案基于CCA安全加密。接收方B使用发送方A的公钥对消息 m和随机值 t进行加密。m也对A已知。如果A能够从密文中正确提取出 t,则B确信A确实正在对 m进行认证,因为只有A才能正确解密该密文。其可否认性可通过黑盒模拟来证明。为了确保模拟过程顺利进行,需要引入挑战‐响应机制。他们的方法是:A不直接返回 t ,而是仅提供 t的承诺/加密值。当B收到 C(t)后,B揭示 t。这是模拟过程中的关键步骤。通过这种方式,模拟器可以在没有A的私钥的情况下提取正确的 t,从而实现可否认性。这可以被视为完全可否认性,即任何人都可以运行此模拟器生成“虚假”会话记录,并且该记录与真实记录不可区分。[11]中的模拟需要一个回溯步骤,这在当前环境下阻碍了完美模拟的实现。杜尔克等处理了这一问题。
问题,通过使用时间假设[11]。它限制了攻击者可能执行的次数。
Dwork等提出的可否认认证的不可伪造性依赖于底层加密方案的CCA2。
大多数已提出的可否认认证均遵循这种基于CCA的范式。例如,Naor[16]采用CCA范式,通过回溯步骤在环认证中实现黑盒模拟可否认性。Dowsley[10]利用广播加密减少了Naor方案的通信轮次。Di Raimondo等.[19]指出,如果底层加密方案具有明文感知性,则无需回溯步骤即可实现认证的可否认性。
Zeng等.[22]基于Raimondo的思想,提出了基于PA安全的多接收者加密的可否认环认证。
对于完全(甚至是并发)可否认性,还有一些基于更强假设的其他方法。
Jiang等[15]借助公共随机预言机[17]提出了一个可否认密钥交换方案。该模拟依赖于pRO的证人提取,因此不需要回溯步骤。Yao等[20,21]基于指数知识假设[7]提出了可否认互联网密钥交换。在KEA假设下,可以提取证人,从而完美模拟会话记录。另一种模拟会话记录的方法是使用定时承诺/加密[4]。其思想是接收者使用适度的承诺/加密来承诺挑战值 r。如果发送方能在时间 T内返回正确的 r,接收者就接受该认证。模拟器可以在时间 T之后获得值 r,因为这种定时承诺/加密在超过时间 T后可以被强制解除承诺/解密。Jiang[14]提出了 一种定时加密方案,并将其应用于构建并发可否认密钥交换。
这些方法要么基于CCA范式(甚至是PA)加密,要么依赖于更强的假设。
Di Raimondoet al.[18]指出,可否认认证可以通过不同的原语构造。为了降低底层构建模块的安全要求,Di Raimondoet al.提出了两种不使用CCA加密的构造方法。一种基于多陷门承诺[12],,另一种则建立在投影哈希函数[6]之上。
1.2 贡献
我们专注于具有源隐藏的完全可否认认证。即在可否认认证过程中,发送方对接收者也是匿名的。该机制适用于增强隐私的环境。通过挑战‐响应子协议,我们的协议满足黑盒模拟。模拟器无需任何私钥即可生成不可区分的会话记录,从而使我们的协议满足完全可否认性。我们的动机是构建一种对底层方案安全要求更宽松的安全通信协议,这更具现实性。我们并未采用将MAC密钥加密的方式来构造认证,因为那样可靠性要求底层方案必须是CCA安全的,例如 [10,16,22]。
我们观察到投影哈希函数的特定性质[6]可用于构建认证。因此,我们的构造基于投影和平滑性来实现认证,而非使用CCA加密将MAC密钥加密。实际上,底层投影哈希函数的构造不必是CCA安全的。与基于加密范式的可否认环认证不同,我们的构造具有更短的会话记录。事实上,在基于加密范式的可否认环认证中[16,22],接收者需要为 N次对MAC密钥进行加密,并在每轮发送 N密文以实现发送者匿名性。然而,我们的协议仅需在前三轮发送固定大小的会话记录。
1.3 结构安排
本文的组织结构如下。在第2节中,我们介绍协议的构建模块。在第3节中,我们形式化了可否认环认证的安全模型。在第4节中,我们提出了基于投影哈希函数和NIWI证明的可否认环认证协议的通用构造。然后在第5和6节中分别分析了我们协议的安全性和性能。我们在第7节中总结本文。最后,在附录A中给出了我们构造的一个实例化。
2 工具
在本节中,我们介绍用于构建可否认环认证的底层工具。传统的可否认认证协议基于对MAC密钥的加密。杜尔克等证明了此类认证的可靠性依赖于CCA2安全的加密。拉蒙多等表明,可否认认证可以通过除加密之外的其他原语来构造,例如非延展性承诺方案和投影哈希函数。这类构造可以提高效率,并且不再需要CCA性质。遵循拉蒙多的思想,我们在使用承诺方案和非交互式证据不可区分证明(NIWI)实现源隐藏的基础上,利用投影哈希函数的特性来设计我们的可否认环认证。因此,我们在本节中介绍这些构建模块。
2.1 Projective Hash 函数
投影哈希函数由Cramer和Shoup[6]提出,后由Benhamouda et al.[3]进行形式化。投影哈希函数的性质可用于设计认证密钥交换协议[2,3],、带关键词搜索的公钥加密[5],以及非交互式承诺[1]。我们首先回顾投影哈希函数的原始定义。
定义
。定义一个域 X 和一个 NP语言 L,其中 L ⊂ X。该投影哈希函数作用于 L 上。对于一个词 c ∈ L,此函数的值可以通过秘密哈希密钥hk或者通过公开投影密钥hp以及一个证人 ω(证明 c ∈ L 成立)来计算。具体而言,定义在 L ⊂ X 上的投影哈希函数如下所示。
– HashKG(L):为NP语言 L生成一个秘密哈希密钥hk;
– ProjKG(hk L):从哈希密钥hk生成投影密钥hp;
– Hash(hk L, c):使用哈希密钥hk,对词语 c 输出该哈希函数的值;
– ProjHash(hp L, c, ω):使用投影密钥hp和证人 ω,对词语 c ∈ L输出该哈希函数的值。
投影 。我们称该哈希函数族是投影的,如果 Hash(hk,L, c) = ProjHash(hp L, c, ω)。这意味着即使不知道秘密哈希密钥 hk,也可以计算出哈希函数的值。
平滑性 。如果 c∉ L,则该投影哈希函数是平滑的,此时 Hash(hk L, c) 统计上不可区分于一个随机值。这意味着它不会泄露关于 L之外任意点哈希值的任何信息。
为了将投影哈希函数应用于安全认证,我们必须在存在可伪造性的情况下将消息嵌入到投影哈希函数中。因此,我们对其进行了轻微修改。我们令 Y为任意集合,投影哈希函数将 X × Y映射到另一个集合。在我们的场景中,集合 Y可以被视为消息空间 M。
2.2 承诺方案
在本文中,我们使用承诺方案来隐藏敏感值,使得发送方在认证过程中对接收者保持匿名。我们要求该承诺方案具备两个性质:完美隐藏和绑定。完美隐藏意味着即使无界对手也无法从承诺中获取承诺值。换句话说,可以通过使用陷门将承诺值切换为其他值。相比之下,绑定性意味着承诺值是固定的,在没有陷门的情况下无法修改。为了对承诺提供NIWI证明,隐藏密钥和承诺密钥必须是不可区分的。
2.3 非交互式证人不可区分证明
非正式地说,NIWI证明系统表明,对于某个陈述的两个不同证人,所生成的证明不会泄露关于使用了哪个证人来构造该证明的任何信息。这种非交互式证明系统使证明者P能够向验证者 V证明某个陈述的真实性。设R为一个可计算关系,若(x, w) ∈ R,其中 x是陈述, w是证人。我们令 L为由 R中的陈述组成的NP语言。
一个针对 L的NIWI证明系统(P, V)应具备完备性、可靠性和证人不可区分性。
–
完备性
。如果知道某个陈述的证人,则必然可以构造出证明。对于任意公共参考字符串crs,Vcrs(x, Pcrs(x, w)) = 1恒成立。
–
可靠性
。如果某人没有该证人,则无法构造出有效的证明。对于任何攻击者A,都有概率[Vcrs(x, π) = 1: (x, π) ← A(crs)]= 0
–
证人不可区分性
。这意味着证明不会泄露使用了哪一个证人。形式化地:
概率[(x, w0, w1) ← A; π ← Pcrs(x, w0) : Acrs(π) = 1 ∧(x, w0), (x, w1) ∈R]≈
概率[(x, w0, w1) ← A; π ← Pcrs(x, w1) : Acrs(π) = 1 ∧(x, w0), (x, w1) ∈R]
3 可否认环认证
3.1 语法
在本节中,我们形式化可否认环认证的概念,这是一种对接收者具有发送方匿名性的可否认认证。为了更好地理解该概念,我们首先介绍可否认认证的语法,然后将此概念扩展到可否认环认证。
可否认认证 。我们假设发送方已发布其公钥,而接收者无需发布公钥。发送方与接收者通过交互协议对消息 m 进行认证。在协议执行结束时,接收者将接受或拒绝发送方对 m. 的认证。另一方面,发送方和接收者均可否认参与了此次会话。
可否认环认证的扩展 。尽管发送方可以否认其认证,因为对话记录在可否认认证中不会留下任何证据,但接收者知道发送方的身份。如果发送方希望获得增强隐私保护,即希望对接收者也保持匿名,则需要使用可否认环认证。与环签名类似,可否认环认证包含一组参与者以满足发送方的匿名性需求。实际发送方 S的目标是对接收者 R保持匿名,即使该组中的每个参与者都公开了自己的私钥。发送方S可以随机选择一些参与者,例如 P1, P2,…,组成一个集合 R。我们假设 R中的所有公钥均可被 R访问。 S使用 R与 R交互执行可否认环认证协议。最终, R接受或拒绝此次对 m的认证。由于该认证记录不留下任何信息, R中的所有参与者都可以否认该认证曾经发生过。此外,接收者判断出实际发送方的概率不超过 1/N,其中 N是 R的大小。
3.2 安全模型
我们形式化了可否认环认证的安全模型。该安全模型包含以下四个性质:完备性、可靠性(不可伪造性)、可否认性和匿名性。
完备性 。如果发送方 S与一组参与者诚实地与接收者R执行针对给定消息 m和随机选择的环 R(这是除接收者 R之外所有参与者公钥的集合)的可否认环认证协议 λDRA,则 R以压倒性概率接受该认证至 m。
备注1 。在执行λDRA之后,接收者 R确信 R中的某一个成员(无法确定具体哪一个)对 m进行了认证,前提是 S和 R遵循该协议 λDRA。
可靠性(不可伪造性) 。考虑一个攻击者 A试图伪造认证。该攻击者可以破坏参与者,并能够访问认证预言机,从而获得认证记录。可靠性意味着 A在没有相应私钥的情况下,无法伪造出能被接收者接受的新认证记录。形式上, λDRA的可靠性可通过以下游戏 Ω来描述,该游戏在挑战者 C与攻击者 A之间进行。
初始化 。 C运行初始化以生成 ν个密钥对(PKi, SKi) ν i=1。 A获得公钥 PK={PK1,…, P Kν}。之后, A输出一个被破坏集合D ⊆{1,…, ν},对于该集合,A获得{SKi|i ∈D}。
认证查询 。 A可以按需发起认证查询。她为每次认证查询选择一条消息 m和一个环R={PKj1,…, P KjN},其中 N> 1且 PKi ∈ R。随后, C使用 SKi返回针对 A的相应认证记录 tr。
最后, A生成一个伪造 (m∗, tr∗,R∗),其中 R∗ ∩ D= ∅。当 R关于(m∗,R∗)接受 tr∗,且(m∗,R∗)未被查询认证预言机时,称 A成功。我们用SuccDsdRA(A,Ω)表示 A的成功事件。
定义1 。设λDRA为一个可否认认证协议。若对于任意多项式时间攻击者 A,概率[SuccDsdRA(A,Ω)]均可忽略,则称 λDRA具有可靠性(不可伪造性)。
可否认性 。我们使用模拟范式在 λDRA中形式化这一概念。我们首先考虑 Ωsim A与模拟器 S之间的模拟游戏。
初始化 。一个可信方运行初始化以生成 ν个密钥对 (PKi, SKi) ν i=1。A获得公钥 PK={PK1,…, P Kν}。之后, A输出一个被破坏集合 D ⊆{1,…, ν},对于该集合, A被提供 {SKi|i ∈ D}。最后, PK和 {SKi|i ∈D}也被提供给 S.
认证查询 。 A可以按需发起认证查询。她为每次认证查询选择一条消息 m和一个环R={PKj1 ,…, P K jN},其中 N> 1。针对该查询, S使用 PK和被破坏的密钥{SKi|i ∈D}返回相应的认证记录 tr,用于 A。
最后, A输出他的视图 viewDRA(A,Ωsim)。
然后我们考虑真实游戏 Ωrea ,其中 S 被提供 {PKi, SKi}νi=1 并遵循真实可否认环认证协议来执行认证预言机。在游戏 Ωrea 结束时, A 输出其视图 viewDRA(A,Ωrea)。可否认性要求 A 在 Ωsim 和 Ωrea 中的视图是不可区分的。
定义2 。设λDRA为一个可否认认证协议。如果对于任意多项式时间攻击者 A,存在一个多项式时间模拟器S,使得viewDRA(A,Ωsim) ≈ viewDRA(A,Ωrea)成立,则 λDRA是可否认的。
匿名性 。该性质意味着发送方 S的身份对接收者 R是匿名的,这与可否认性不可比较。该原语具有可否认性这一事实并不意味着它同时具有匿名性。事实上, S和 R都可以否认其参与了会话。然而,在该协议执行过程中,他们彼此知晓对方身份。显然,匿名性性质是相对于发送方 S和接收者 R之间的关系而言的。
我们在下面形式化挑战者 C与攻击者 A之间的匿名性性质。
初始化 。 C运行Setup以生成 ν个密钥对(PKi, SKi) ν i=1。 A获得公钥 PK={PK1,…, P Kν}。之后, A输出一个被破坏集合D ⊆{1,…, ν},对于该集合,A获得{SKi|i ∈D}。
认证查询 。 A可以随意发起认证查询。 A为每次认证查询选择一条消息 m、一个环 R={PKj1,…, P KjN},其中 N> 1, PKi ∈ R和 R ⊆ PK。收到该查询后, C返回关于 (m,R) 使用 SKi 生成的相应认证记录 tr。
匿名性测试 。 A可使用一条消息 m、一个环 R={PKi|i ∈ D}以及任意两个公钥 PKi0, P Ki1 ∈ R发起一次该查询。随后, C获取b ←{0, 1},执行 λDRA 以使用 SKib 生成记录 tr,并将 tr返回给 A。
最后, A猜测一个比特 b′作为 b的结果。若 b′= b成立,则称 A成功。我们用 Succanon DRA(A,Ω) 表示 A 的成功事件。
定义3 。设λDRA为一个可否认环认证协议。 λDRA是匿名的,如果对于任意多项式时间攻击者 A,概率[Succ anon DRA(A,Ω)]= 1 2 +negl(κ)(其中 κ为安全参数)是可忽略的。
4 通用构造
在本节中,我们基于投影哈希函数给出了具有可否认性的认证协议的通用构造。为了实现源隐藏,我们采用NIWI证明来说服接收者,承诺值确实是通过hki, L, c) 计算出的某个Hash输出,而不泄露具体是哪一个。该构造的实例化在附录 A中给出。
4.1 可否认环认证协议 λDRA
主要技术工具是投影哈希函数和NIWI证明。形式化描述如下。
对于系统中的每个参与者 Pi,它分别通过调用哈希密钥生成算法 HashKG(L)和投影密钥生成算法ProjKG(hk L)来获得密钥对(SKi, P Ki)。特别地, Pi的公钥是 PKi= hpi, Pi的私钥是 SKi= hki。所有公钥均可被任何人访问。
发送方 S向接收者 R认证一条消息 m ∈ M。 S希望在执行认证后否认其参与行为。此外, S还希望在此次会话中对 R保持匿名。 S从 PK中选择若干公钥,包括其自身的公钥 PKS,构成集合 R。即 R={PK1,···, P KS,···, P KN},其中 N为集合 R的大小。在收到 S发来的 R后, R开始与 S交互以执行认证。
初始化 。该算法由系统完成。将crs ←{0, 1}l(κ)作为公共参考字符串,其中 l (κ)是关于安全参数 κ.的多项式
密钥生成 。该算法由每个参与者 Pi 自行完成。输入公共参考字符串crs后,生成哈希密钥hk和投影密钥hp。每个 Pi 的私钥/公钥对为 (SKi, P Ki) =(hki, hpi)。
可否认环认证协议λDRA
-
在crs下,集合R={PK1,···, P KN}、消息 m ← M和NP语言L。 R选择一个带有证人 ω的词 c ∈ L,将 flow1=(m, c)发送给集合 R。
-
在收到来自m的 c后, R首先使用私有哈希密钥hk和单词 c计算哈希值,然后通过第2.2节所述的安全承诺方案COM将该哈希值隐藏。假设发送方S是参与者 PI,则 S按如下步骤执行:
– 使用词 c、消息 m及其私钥 SKI= hkI,计算 σI= Hash(hkI, L, c; m);
– 随机选择 rI,计算 CI=COM(σI; rI);
– 将 flow2= CI发送给接收者 R。 -
在收到承诺 CI, R 后,揭示 ω 并将 flow3= ω 发送给集合 R。
-
在收到 ω、 S 后,首先检查值 ω 确实是 c ∈ L 的证人:
– 验证投影哈希(hpi, L, c, ω; m) =? σI是否对 i= I成立;若该等式成立, S 即可确信之后能够成功否认。接下来 S需要做的是向 R证明承诺 CI中的 σI确实与 R计算出的某个 σi一致,且不透露具体是哪一个σi。因此, S执行如下操作:
– 计算σi=投影哈希(hpi, L, c, ω; m) 对于 1 ≤ i ≤ N;
– 设 L′ 为一个 NP语言:
L′ {({σi}iN=1, CI) | ∃σI ∈{σi}iN=1, s.t. CI= COM(σI; rI)}
令 Scrs(x; (σI, rI))为关于 x ∈ L′在公共参考字符串crs下以(σI, rI)为证人的NIWI证明。计算 π=Scrs(({σi}iN=1, CI); (σI, rI));将 flow4= π发送给接收者 R。
最后, R计算 σi= ProjHash(hpi, L, c, ω; m),其中 1 ≤ i ≤ N,若 Rcrs ({σi}iN=1, CI, π) = 1,则接受该认证,其中 Rcrs(·)是 Scrs(·)的验证算法。
备注 2 。接收者 R使用 R 中的每个公钥 hpi 来计算哈希值 {σi} N i=1。某人返回一个 σi,由于投影哈希函数的平滑性,这意味着他知道对应的私钥 hki;否则,将存在一个区分器能够判断单词 c 是否属于 NP 语言 L。认证完成。然而,返回的 σi 会泄露 S 的身份,即 R 可以使用对应的公钥 hpi 和证人 ω 来验证该 σi。为了保护 S 的隐私(源隐藏),返回的 σi 必须被隐藏在承诺中。但是,如果 R 无法打开该承诺,则他无法验证被承诺的 σi。我们的策略是使用 NIWI 证明,使 S 能够说服 R,承诺 CI 中的承诺值确实恰好等于某个 σi,而无需打开该承诺。匿名性由承诺的完美隐藏性和 NIWI 证明的证人不可区分性保证。
5 安全性
我们根据第3.2节中的安全模型,分析协议 λDRA的可靠性、可否认性和匿名性等安全性。
5.1 可靠性(不可伪造性)
我们的可否认环认证 λDRA是可靠的(抗伪造性),这意味着对于(m,R, c ∈ L),不属于集合 R的成员无法伪造关于(m,R, c ∈ L)的认证记录。实际上,攻击者有两种方式欺骗接收者:一种是伪造一个被接受的 σI,使得σI恰好为一个 σi,但由于投影哈希函数的平滑性,这是不可能的;另一种是承诺一个虚假值,然后欺骗接收者接受针对伪造 CI的NIWI证明 π。然而,如果承诺方案是完美绑定的且NIWI证明系统是可靠的,则这种情况也不会发生。
定理1 。假设 L是一个困难的NP语言,且在 L上的投影哈希函数是平滑的,承诺方案 COM具有完美绑定性,并且NIWI证明系统是可靠的,则可否认环认证协议 λDRA满足可靠性(不可伪造性)。
证明 。设 A为一个针对 λDRA的可靠性所构造的概率多项式时间对手,且 Ω 为第3.2节定义中的可靠性游戏。我们构造一个对手 A′,其在给定一个词 c∗后,能够判断 c∗ ∈ L是否成立。
A′维护 λDRA的初始化算法以生成 ν个密钥对(PKi, SKi)νi=1。 A′向 A提供公钥 PK={PK1,···, P Kν}和被破坏的密钥{SKi|i ∈D},其中 D是根据 A的要求指定的被破坏集合。
当 A对消息 m和集合R={PKj1,···, P KjN} ⊆ PK查询认证记录时, A′为语言 L选择一个词 c,并准备 flow1=(m, c)。由于私钥{SKi}νi=1已知于 A′,它使用 SKI(其中 PKI ∈ R)以随机选取的 rI生成 flow2= COM( σI; rI)。然后 A′向其挑战者查询关于 c ∈ L的证人。在收到挑战者发来的证人 ω后, A′展示 flow3= ω。最后, A′使用NIWI证据(σI, rI)正常生成 NIWI证明 π。 A′对 A的认证模拟是完美的。
最后, A对(m∗,R∗)发起伪造挑战。 A无法攻陷集合 R∗,且(m∗,R∗)未被查询认证预言机。 A以输入(m∗,R∗)激活 A′。 A′将给定的词 c∗作为 flow1使用。 A′选择一个随机值ˆω作为flow3。这与真实执行存在差异。然而,除非 A能够获得一个正确的 σI使得 σI= Hash(hkI, L, c∗; m)成立,并验证 σI= ProjHash(hpI, L, c∗, ˆω; m),否则无法察觉该差异。我们声称,如果 A获得了这样的 σI并中止,则 A′以非可忽略的概率成功判断 c∗ ∈ L。因为如果 c∗∉ L成立,由于投影哈希函数的平滑性,哈希值Hash(hkI, L, c∗; m)的输出完全是随机的。在此情况下, A只能猜测正确值,这对 A而言是可忽略的。如果该伪造挑战继续进行,则意味着 A无法获得正确的 σI来发现ˆω与真实证人不一致。因此, A必须在 CI中提交一个伪造哈希值,并尝试为语言 L′={({σi} N | ∃σI ∈ {σi} N i=1满足 CI= COM(ˆσ; rI)}。 A′通过使用给定的词 c∗和私钥 SKi= hki计算 σi,其中 1 ≤ i ≤ N满足 N= |R∗|。 A′通过公共输入({σi} N i=1, CI)验证 π的有效性。由于COM(·)的完美绑定性,该验证将失败,因为它违背了NIWI证明系统的可靠性。因此,Pr[Succ sd DRA(A,Ω)]是可忽略的。
5.2 抗否认性
我们遵循模拟范式来证明协议λDRA满足可否认性。可否认性指出,攻击者 A 分别在真实游戏 Ωrea和模拟游戏 Ωsim中与模拟器S进行交互,然而两种视图 viewDRA(A,Ωrea)和viewDRA(A,Ωsim)是不可区分的。
在真实游戏 Ωrea 中,模拟器 S 被提供 {PKi, SKi} ν i=1。利用这些私钥, S 严格按照真实可否认环认证协议 λDRA 与 A 进行交互。
在模拟游戏 Ω sim 中,模拟器 S 被提供 {PKi} ν i=1 和被破坏集合 D。当 (m,R) 被查询至 认证查询 时,如果对于某个 i 有 PK i ∈ R ∧ i ∈ D,则模拟正常进行,且 A 的视图等于真实的视图。否则, S在没有任何私钥的情况下模拟认证记录。 S的模拟通过回溯实现:即,在从接收者处获得flow1=(m, c)后, S承诺一个随机值以计算 CI;一旦接收到由接收者揭示的 ω, S便回溯接收者并用正确的承诺替换 ω。此后 S的模拟正常进行,因为不再需要私钥。利用语言L的证人 ω ,所模拟的认证记录在统计上与真实的认证记录不可区分。因此,viewDRA(A, Ωrea) = viewDRA(A,Ωsim),可否认性得证。
5.3 匿名性
可否认性仅确保发送方 S和接收者 R能够否认参与了该会话。然而, R在认证过程中知道 S的身份。匿名性属性可以确保 S在执行认证协议期间对 R 也是匿名的。我们的匿名性定义如下:接收者无法从发送方获得 σI,否则接收者可以通过验证 σI?=ProjHash(hpi, L, c, ω; m) 对于 i= 1,2,···, I.
定理2 。假设承诺方案 COM具有完美隐藏性,且NIWI证明系统是证人不可区分的,则可否认环认证协议 λDRA实现匿名性。
证明 。设 A为针对λDRA匿名性的概率多项式时间对手, Ω为第3.2节定义中的匿名性游戏。设 C为 A的挑战者。 C执行初始化 算法以生成密钥对(PKi, SKi) ν i=1。 A在请求下获得公钥集合 PK以及被破坏集合 D。
当 A发起认证查询时,由 C运行的预言机会正常返回相应的会话记录。
当 A挑战匿名性时,它输出一条消息 m∗、一个单词 c∗、 R∗={PKi|i ∈ D}以及来自 R∗的任意两个公钥 PKi0、 P Ki1。 C取b ←{0, 1}并生成 σib=哈希(hkib, L, c∗; m∗)。 C随机选择 rb来计算 C∗= COM(σib; rb)。最后, C生成一个NIWI证明 π∗=Ccrs({σi} N i=1, C ∗; (σib, rb))。然而,对于挑战 transcript (C∗, π∗), A在猜测正确的 b时没有明显优势。原因是 COM是一个具有完美隐藏性的承诺方案。该承诺 C∗可利用陷门重写为C∗= COM(σi(1−b); r1−b)。 π∗是一个具有证人不可区分性的NIWI证明,因此 π∗= Ccrs({σi} N i=1, C∗; (σi(b−1), rb−1))也是一个被接受的证明。因此,概率[Succ anon DRA(A, Ω)]= 1 2 + negl(κ)。
6 性能
6.1 性能比较
我们将协议 λDRA与相关的可否认环认证方案进行比较,例如Naor的方案 [16], Dowsley的方案 [10]和Zeng的方案 [22]。
然而,也存在一些高效的非交互式可否认环认证协议。但是,这些方案的可否认性并不满足零知识性质,因此仅实现弱可否认性。它们超出了本比较的范围。我们从计算和通信两个方面对这些方案进行比较。
计算 。首先回顾Naor的方案。在此方案中,接收者 R 使用 N 个公钥分别对消息 m 和一个随机值 r 的拼接结果进行加密。此步骤包含 N 次加密。如果加密采用基于Diffie‐Hellman的方案,则需要 O(N) 次模幂运算。然后发送方 S 解密一个密文以获得 r,并再次执行 N 次加密。在最后一步中, S 和 R 应分别验证 N 次加密。
Dowsley的方案使用广播加密作为构建模块来实现可否认环认证。首先,对称密钥 K通过广播加密进行加密,然后使用一次性对称密钥加密在 K下加密消息。由于广播加密的特性,此步骤仅需执行 O(1)次指数运算。随后,S需要执行2次配对运算以检查加密消息的一致性,2次配对运算用于解密,1次对称解密, O(1)次指数运算的广播加密以及1次对称加密。最后, S和 R均执行 O (1)次指数运算的广播再加密。
Zeng的方案基于多接收者加密。 R使用它来加密认证密钥 k。在此步骤中,需要 O(N)次指数运算和1次配对运算。然后 S执行 O(N)次配对运算以验证 N 密文的一致性,并获取 k以完成认证。
我们的协议 λDRA可通过在DDH假设下使用平滑投影哈希函数来实现,详见附录A。在这种情况下,接收者 R需要 O(1)计算开销以在第一轮中选择词语 c ∈ L。然后 O需要 S(1)计算开销以在下一轮中计算哈希值和承诺。在第三轮中, R只需展示证人,因此此轮无需计算。最后,S和 R执行一个非交互式证据不可区分证明。这可以通过Groth‐Sahai NIWI证明系统[13]结合非对称双线性映射实例化,详见附录A。在这种情况下,它分别要求 O(N) 计算量供 S和 R执行一次NIWI证明。注意, σi可由 R预先计算。
通信 。Naor的方案需要在每一轮中发送 N个密文或随机比特。这是主要的负担。此外,它需要6轮才能在老大哥存在的情况下实现可否认环认证,这意味着所有私钥都会被揭露,效率低下。
由于采用了广播加密,Dowsley的方案的通信成本是理想的,仅为恒定通信大小。此外,该广播加密是可验证的,因此不需要比纳奥尔的方案多两轮来实现面对老大哥时的匿名性。然而,广播加密需要由第三方生成成员的私钥。因此,将私钥发送给成员是额外的成本。它需要高安全级别的通信通道,这是基础开销。
Zeng的方案只需要2轮,因为它不需要接收者揭示用于模拟的证人。然而,该方案基于迪菲‐赫尔曼知识假设来实现可否认性,这是一个较强的假设。
我们的协议 λDRA遵循黑盒模拟,因此具有4个通信轮次。与Naor的方案不同,前三轮的通信量仅为常数级别。仅在最后一轮需要发送大小为 O(N)的消息以完成NIWI证明。由于NIWI证明具有证人不可区分性,即使每个成员公开其私钥,匿名性仍然成立,因此即使在存在老大哥的情况下,4轮通信仍能保持匿名性。
6.2 安全要求
对于可否认环认证协议的构建 λDRA,我们希望构建模块的安全要求尽可能低。因此,出于实际考虑,寻找底层构建模块的较弱形式具有重要意义。众所周知,大多数可否认环认证基于加密范式构建,即通过加密MAC密钥来认证消息。此类构造的可靠性至少要求底层加密是CCA安全的。例如,Naor的方案[16]和 Dowsley的方案[10]要求底层加密方案是CCA2安全的,而在Zeng的方案[22]中,底层多接收者加密甚至需要具备明文感知性。
我们的可否认环认证协议 λDRA基于投影哈希函数的特定属性(投影和平滑性),而非加密范式。换句话说,协议 λDRA的可靠性仅依赖于投影哈希函数的平滑性、承诺的完美绑定以及NIWI证明的可靠性。事实上,底层构建模块不一定需要CCA安全。
7 结论
我们提出了一种基于投影哈希函数的具有源隐藏性质的可否认认证新构造。与加密范式方案不同,我们的协议不要求底层方案满足CCA安全。我们的源隐藏性质通过环方案实现,但不需要在每轮通信中发送 O(N)大小的消息。我们的方案实例化(见附录A)可在标准假设下实现。
813

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



