快速简单的部分遗忘伪随机函数及其应用
1. 引言
在隐私保护协议中,遗忘伪随机函数(OPRF)正变得越来越重要。OPRF允许持有私有输入
x
的客户端和持有PRF
f
密钥
sk
的服务器进行协议交互,以遗忘方式对
fsk
在
x
上进行求值。客户端可以学习(并可选地验证)求值结果
fsk(x)
,而服务器则一无所知。部分遗忘PRF(POPRF)扩展了这一功能,在PRF求值中引入了公共输入(或元数据标签)
t
。客户端可以学习(并可选地验证)
fsk(t, x)
,其中
t
为服务器和客户端所知,而私有输入
x
保持隐藏。
OPRF在许多隐私保护协议中都有应用,如防止垃圾邮件的一次性匿名凭证、检查受损凭证的私有集合交集(PSI)、去标识化认证日志记录以及密码认证密钥交换等。然而,OPRF盲化协议无法安全地支持公共输入,大多数OPRF应用为每个
t
使用单独的密钥实例,这增加了密钥管理的复杂性。目前唯一支持高效验证的POPRF依赖双线性对,这会降低性能并增加部署难度。
本文介绍了一种新的POPRF,即3HashSDHI,它结合了Jarecki等人的2HashDH OPRF和Dodis - Yampolskiy(DY)可验证随机函数的特点。3HashSDHI的性能与2HashDH相当,且不依赖双线性对,能几乎免费地支持公共输入。
2. POPRF的形式语法和安全概念
- 伪随机性 :保证即使恶意客户端可以访问盲化求值预言机,POPRF的求值输出对其来说也应看起来是随机的。通过基于模拟的不可区分性游戏进行形式化,该游戏受UC风格的OPRF安全定义和部分盲签名的相关概念启发。
-
请求隐私
:确保在遗忘求值过程中,客户端消息
x的任何信息都不会泄露给恶意服务器,并且服务器不能将输出fsk(t, x)与产生该输出的特定遗忘请求记录关联起来。该概念分为被动和主动两种情况,分别适用于不支持验证服务器盲化求值协议的方案和支持客户端验证服务器响应的方案。 -
唯一性
:确保恶意服务器不能欺骗客户端接受与共享公钥(与私钥
sk相关联)不一致的求值结果。这与可验证性类似,可验证性指服务器以零知识方式证明输出fsk(t, x)对应于与sk关联的公钥。
3. 3HashSDHI构造
-
基础
:3HashSDHI的起点是Jarecki等人的2HashDH构造,其完整的PRF求值定义为
2HashDH.Ev(sk, x) = H2(x, H1(x)sk)。盲化求值协议中,客户端发送B = H1(x)r(r为随机数),服务器响应B′ = Bsk,客户端通过计算(B′)1/r = H1(x)sk完成函数求值。 -
扩展
:为了支持公共标签,3HashSDHI借鉴了Dodis - Yampolskiy PRF,其求值定义为
DY.Ev(sk, t) = g1/(sk+t)。3HashSDHI的PRF求值为:
3H.Ev(sk, t, x) = H2[t, x, H1(x)1/(sk+H3(t))]
可以将其解释为在由私有输入
x
确定的随机生成器上对公共输入
t
进行Dodis - Yampolskiy PRF求值,然后进行最终的哈希步骤。
-
盲化求值流程
:
-
客户端使用随机标量
r对私有输入进行哈希和盲化,得到B = H1(x)r,并将其发送给持有sk的服务器。 -
服务器使用私钥和公共输入
t的公共哈希计算盲化元素的强Diffie - Hellman逆B′ = B1/(sk+H3(t)),并将其发送回客户端。 -
客户端通过计算
(B′)1/r = H1(x)1/(sk+H3(t))进行去盲化,然后通过适当的哈希完成求值。 -
为了提供可验证性,服务器使用Chaum - Pedersen零知识证明(ZKP)证明离散对数相等,即
logg pk′ = logB′ B,其中pk′ = pk·gH3(t),客户端可以根据公共值轻松计算得到。
-
客户端使用随机标量
这个过程可以用下面的mermaid流程图表示:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([客户端]):::startend -->|B = H1(x)r| B([服务器]):::startend
B -->|B′ = B1/(sk+H3(t))| A
A -->|(B′)1/r = H1(x)1/(sk+H3(t))| C(完成求值):::process
B --> D(ZKP证明):::process
D -->|提供可验证性| A
-
安全性分析
:
- 请求隐私 :在没有ZKP的情况下,基于盲化的随机性可以证明对被动对手的请求隐私;在ZKP可靠的假设下,可以证明对恶意对手的请求隐私。
- 伪随机性 :通过一个新的一次性间隙强Diffie - Hellman逆(OM - Gap - SDHI)假设来证明3HashSDHI的伪随机性。该假设的安全性在代数群模型中可归约为q - DL假设。在具体安全性方面,3HashSDHI的难度大致与破解q - DL问题相当。
4. 部分盲签名
我们的技术为构建部分盲签名提供了新方法。与OPRF需要访问私钥来验证给定输入不同,盲签名协议只需要公钥。这一特性在许多应用和部署场景中很有用,例如在多个验证实例检查OPRF输出的场景中,盲签名可以避免每个实例访问私钥或向持有私钥的实体请求验证,从而避免了信任和网络性能问题。
盲签名用于一次性匿名凭证,也被提议作为W3C中私有点击测量(PCM)的工具。目前这些应用的局限性在于签名计算中不支持公共元数据,而我们的方法可以解决这个问题。
3HashSDHI与ZSS部分盲签名方案密切相关,但ZSS方案的原始不可伪造性证明是错误的。本文使用新的技术对ZSS方案的安全性进行了首次正式分析,得到了支持任意公共元数据的最有效部分盲签名。
此外,任何唯一的(部分)盲签名方案都可以通过使用随机预言机对签名进行哈希来通用地构造POPRF。
5. POPRF的应用
- 一次性匿名凭证 :Privacy Pass协议使用OPRF来发行一次性令牌,用户可以匿名兑换这些令牌进行身份验证。然而,该协议早期使用中出现了令牌囤积攻击,即用户长期收集令牌并一次性兑换,试图压垮网站。使用POPRF可以通过公共元数据输入编码过期时间,从而在不旋转密钥的情况下解决令牌过期问题。
-
用于检查受损凭证的分桶PSI
:密码泄露警报协议允许用户查询其用户名和密码对
(u, pw)是否出现在已知泄露数据集D中。当前的泄露警报服务依赖于基于2HashDH的私有集成员协议,通过分桶实现可扩展性。用户发送用户名的截断哈希H(u)来确定子集B ⊆ D,然后在B上执行2HashDH协议。使用POPRF可以为该协议带来新的灵活性和安全性。
以下是部分应用场景的对比表格:
| 应用场景 | 原方案 | 使用POPRF的方案 |
| ---- | ---- | ---- |
| 一次性匿名凭证 | 可能遭受令牌囤积攻击,密钥旋转复杂 | 可通过公共元数据编码过期时间,无需旋转密钥 |
| 密码泄露警报 | 依赖2HashDH,灵活性有限 | 可提供新的灵活性和安全性 |
快速简单的部分遗忘伪随机函数及其应用
6. 3HashSDHI的性能优势
与依赖双线性对的POPRF相比,3HashSDHI具有显著的性能优势。双线性对运算在计算上较为昂贵,并且缺乏广泛的实现支持,这限制了其在实际应用中的部署。而3HashSDHI不依赖双线性对,其协议仅在2HashDH的盲化求值基础上增加了少量额外操作,如额外的哈希计算、群操作和标量求逆。
具体来说,3HashSDHI在以下几个方面表现出色:
-
计算效率
:由于避免了双线性对运算,3HashSDHI的计算速度更快,能够在更短的时间内完成PRF求值和盲化求值过程。
-
部署便利性
:不需要特殊的双线性对实现支持,使得3HashSDHI更容易集成到现有的系统中,降低了部署成本和难度。
-
可扩展性
:与2HashDH类似,3HashSDHI可以利用Chaum - Pedersen证明进行批量求值,对于相同公共元数据标签
t
的一批输入,只需构造一个Chaum - Pedersen证明,提高了处理大量请求的效率。
以下是3HashSDHI与依赖双线性对的POPRF在性能指标上的对比表格:
| 性能指标 | 3HashSDHI | 依赖双线性对的POPRF |
| ---- | ---- | ---- |
| 计算时间 | 短 | 长 |
| 部署难度 | 低 | 高 |
| 批量处理效率 | 高 | 低 |
7. 安全假设的深入分析
3HashSDHI的安全性基于多个假设,其中最关键的是一次性间隙强Diffie - Hellman逆(OM - Gap - SDHI)假设。该假设的核心是计算任意基
Y
和受限标量
c
的
Y 1/(x+c)
是困难的。
在代数群模型(AGM)中,我们证明了OM - Gap - SDHI假设可以归约为Bauer、Fuchsbauer和Loss提出的超级假设之一,进而归约为q - DL假设。这意味着在AGM中,3HashSDHI的安全性与q - DL问题的难度相当。
然而,我们的主要AGM证明存在一定的松散性,其松散因子是攻击者进行盲化求值查询的最大次数。虽然在通用群模型(GGM)中,通过对AGM分析的轻微修改可以得到一个紧密的归约,但这仍然是一个有待进一步研究的问题。
为了选择合适的参数,我们可以参考对q - DL问题的最佳已知攻击。Cheon的攻击表明,对于80位的安全性,256位的群就足够了;对于128位的安全性,384位的群是必要的。由于3HashSDHI与2HashDH在安全性上的相似性,使用3HashSDHI时不需要改变群参数来达到期望的安全级别。
8. 未来研究方向
尽管3HashSDHI已经取得了显著的成果,但仍有一些问题值得进一步研究:
-
AGM证明的优化
:如前所述,目前的AGM证明存在松散性,如何进一步优化证明,使其更加紧密,是一个重要的研究方向。
-
新的应用场景探索
:除了本文中提到的一次性匿名凭证和密码泄露警报协议,POPRF可能还有其他潜在的应用场景,如在区块链隐私保护、物联网安全等领域的应用。
-
与其他密码学原语的结合
:研究如何将3HashSDHI与其他密码学原语(如零知识证明、同态加密等)结合,以实现更复杂的安全功能。
以下是未来研究方向的mermaid流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A([未来研究方向]):::startend --> B(AGM证明优化):::process
A --> C(新应用场景探索):::process
A --> D(与其他原语结合):::process
9. 总结
本文介绍了一种新的部分遗忘伪随机函数(POPRF)——3HashSDHI,它结合了2HashDH OPRF和Dodis - Yampolskiy PRF的优点,不依赖双线性对,性能与2HashDH相当。我们为POPRF提供了新的形式化语法和安全概念,包括伪随机性、请求隐私和唯一性。
通过深入的安全性分析,我们证明了3HashSDHI在代数群模型中的安全性可以归约为q - DL假设。在部分盲签名方面,我们的技术为构建支持任意公共元数据的部分盲签名提供了新方法。
在应用方面,3HashSDHI可以解决Privacy Pass协议中的令牌囤积攻击问题,以及为密码泄露警报协议带来新的灵活性和安全性。未来,我们期待通过进一步的研究优化3HashSDHI的性能和安全性,并探索其更多的应用场景。
超级会员免费看
35

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



