随机预言机的可编程性研究
1. 引言
在随机预言机模型(ROM)中,各方可以访问一个公开可用的随机函数,即随机预言机(RO)。随机预言机常被视为密码哈希函数的理想化形式,在ROM中进行的安全证明为使用实际哈希函数时的安全性提供了启发式支持。
ROM之所以能为众多重要方案提供安全证明,是因为归约可以利用RO的各种特性,而这些特性在标准模型中最多只能有限实现。其中一个特性就是可编程性,简单来说,随机预言机可以通过动态选择返回值来“实现”,只要输出的分布正确(在指定范围内均匀分布),任何选择这些值的方法都是允许的。在许多积极的研究成果中,对RO输出值进行编程的技术似乎至关重要。然而,目前已知的标准模型函数都无法提供RO所具备的完全任意和自适应的可编程性,因此很自然地会产生这样的疑问:在不利用ROM的完全可编程性的情况下,这些成果中的哪些(如果有的话)仍然能够成立呢?
本文正式探索了在归约中对随机预言机的可编程性进行限制的模型。为此,我们提出了一种介于完全可编程性和无可编程性之间的有限可编程性形式,并给出了这种有限可编程性的两种不同但令人惊讶地等价的刻画。利用这些,我们证明了:(1)使用Hsiao - Reyzin双预言机分离技术的一种新变体,可以证明对于FDH签名方案,在有限编程的情况下无法给出黑盒归约;(2)Shoup基于陷门置换的密钥封装方案(TDP - KEM)在有限可编程性的情况下可证明是CCA安全的,但在完全禁止编程时,不存在黑盒归约。
2. 归约中(非)可编程性的建模
Nielsen是第一个正式研究可编程性在安全结果中作用的人。他表明,在严格禁止对RO输出进行编程的类似ROM的模型中,无法实现一种自然的密码功能(非承诺非交互式加密