在密码学里面,随机预言机(英语:Random oracle)是一部预言机(简单说像是理论的黑箱),对任何输入都回传一个真正均匀随机的输出(请参考离散型均匀分布),不过对相同的输入,该预言机每次都会用同一方法输出(即如果重复查询,则每次提交查询时,其响应方式都相同。)。换句话说,随机预言机是一个将所有可能输入与输出作随机映射的函数。
Mihir Bellare和Phillip Rogaway(1993)在1993年的出版物中首先将随机预言作为数学抽象用于严格的密码学证明中。[1]当证明不能使用加密哈希函数上较弱的假设进行时,通常使用它们。与随机密码模型的标准模型相反,当随机算术模型中的每个散列函数都被随机预言替换时[详见第二部部分],被证明是安全的系统被描述为安全的。
在需要对哈希函数的输出进行强随机性假设的方案中,随机预言通常被用作加密哈希函数的理想替代品。这样的证明通常通过表明攻击者必须要求Oracle采取不可能的行为,或者解决一些难以破解的数学问题来表明系统或协议是安全的。但是,它仅在随机预言模型中证明了此类属性,从而确保不存在主要的设计缺陷。通常,这种证明暗示了标准模型中的相同属性是不正确的。尽管如此,随机预言模型中的证明还是比没有正式的安全证明要好。
1.随机预言机模型:
随机预言机模型通常是现实中哈希函数的理想化替身,其起源于把哈希函数看伪随机的函数的思想。(随机语言机模型是在一个假设完美的密码学方案先进行的。)
随机预言机模型理解为完美的散列函数具有以下性质:
在随机预言机模型中,假定敌手不会利用散列函数的弱点来攻击密码学方案。
2.随机预言机模型详解:
1993年,Bellare 和 Rogaway 两位学者[1]正式提出了随机预言模型(Random OracleModel,ROM)方法论,使得过去纯作理论研究的可证明安全方法论迅速在实际应用领域取得重大进展,一大批快捷有效的安全方案相继提出,同时,还产生了“具体安全性(concrete security or exact security)”,其意义在于,我们不再仅仅满足安全性的渐近度,而是可以确切地得到较准确的安全度量。面向实际的可证安全性理论已被学术界和产业界广泛接受。归约是可证明安全性理论最常用的工具或推理方法,在可证明安全方案中,首先要建立安全模型,为了证明方案的安全性需要建立一个挑战算法C(模拟挑战者角色)。算法C 将一个复杂的安全性问题归结为数学上难题(如大数分解、求解离散对数、CDH 困难问题等),在 ROM 中的归约论断一般表现为:
先形式化定义方案的安全性,假设在概率多项式时间内(PPT)内敌手能以不可忽略的概率破坏方案的安全性(如伪造签名);
然后模拟者C 为敌手提供一个与实际环境不可区分的模拟环境(ROM),回答敌手的所有预言询问(模拟敌手能得到所有的攻击条件);
最后,利用敌手攻击的结果(如存在一个伪造签名)设法解决数学上难题。
其中,算法C 要将困难问题的一个随机实例嵌入到攻击者模拟过程中,但挑战者C 不知道困难问题中所涉及到的私钥,为了模拟回答攻击者所有的询问,或掩饰不知道私钥的事实(即模拟一个真实的攻击环境),使得攻击认为自己在和一个真正的挑战者在进行交互, 算法C 需要某种特殊能力来弥补对私钥的无知,这种能力在构造过程中通过随机预言机来实现。在证明过程中,将哈希函数看作是随机的函数,即随机预言机。任何人都能通过询问随机预言机来获得哈希函数的值,这样通过控制预言机,C 就能在提供真实的攻击环境下利用攻击者的能力来求解数学难题。利用预言机上述性质所得到的证明模型称为随机预言机模型(简称 ROM)。
在 ROM 中证明了的方案安全并不能保障该方案在现实生活中的安全性。目前,存在许多 ROM 中是可证安全的,但具体的应用中却无法构造出相应的实例。标准模型中可证安全更具有重要的现实意义。在标准模型中,算法仍然是通过预言机来弥补对私钥的无知,不同在于这个预言机的内部映射并不是随机指定的,必须符合具体方案中的函数关系,这样增加了方案设计的难度。尽管 ROM 方法论并不能作为实际方案安全的绝对证据,但其可作为任何实际方案的一种必要的基本安全测试,ROM 方法论至少可以排除很多安全隐患。利用 ROM 设计简单而有效的协议,可以抵抗许多未知攻击。也有一些学者仍然坚持在标准模型中证明方案安全性,认为尽管在 ROM 中可证安全的方案非常有效,但是把哈希函数看成了一个完全随机的理想模型,这是一种很强的假设,而且方案在 ROM 中的安全性和通过哈希函数实现的安全性之间无必然的因果关系。例如,一些签名和加密方案在 ROM 中是安全的,但在实际应用中却不是安全的。
• Basic Papers
Random oracles are practical: A paradigm for designing efficient protocols (M. Bellare and P. Rogaway, 1993)
The Black-Box Model for Cryptographic Primitives (Claus Peter Schnorr, Serge Vaudenay, JoC 1998)
• Surveys
Practice-oriented provable-security (Mihir Bellare, survey)
• Cryptography and Information Security Group Research Project: The Random Oracle Model (MIT)
• Critique
The random oracle methodology, revisited (Canetti, Goldreich, Halevi, STOC 1998 (Full version)
On the (Im)possibility of Obfuscating Programs (Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan, Ke Yang, ECCC TR01-057)
Separating Random Oracle Proofs from Complexity Theoretic Proofs: The Non-Committing Encryption Case (Jesper Buus Nielsen, Crypto 2002)
Adapting the weaknesses of the Random Oracle model to the Generic Group model (Alexander W. Dent, Asiacrypt 2002)
On the (In)security of the Fiat-Shamir Paradigm (Shafi Goldwasser and Yael Tauman, eprint 2003/034)
An Un-Instantiable Random-Oracle-Model Scheme for a Hybrid-Encryption Problem (Mihir Bellare and Alexandra Boldyreva and Adriana Palacio, eprint 2003/077 (& Eurocrypt 2004))
The Ideal-Cipher Model, Revisited: An Uninstantiable Blockcipher-Based Hash Function (John Black, eprint 2005/210)
Unprovable Security of RSA-OAEP in the Standard Model (Daniel R. L. Brown, eprint 2006/223)
• Properties of random functions
Random Mapping Statistics (Philippe Flajolet, Andrew M. Odlyzko, 1990)
• Weaker models, separations
oNon-Programmable Random Oracle Model
Separating Random Oracle Proofs from Complexity Theoretic Proofs: The Non-Committing Encryption Case (Jesper Buus Nielsen, Crypto 2002)
On Protocol Security in the Cryptographic Model (Jesper Buus Nielsen, 2003 (PhD thesis))
Extending Oblivious Transfers Efficiently (Yuval Ishai, Joe Kilian, Kobbi Nissim, Erez Petrank, Crypto 2003)
Fully Simulatable Multiparty Computation (Yevgeniy Dodis, Rafael Pass, Shabsi Walfish, 2004)
Time Capsule Signature (Yevgeniy Dodis and Dae Hyun Yum)
o Common Reference String Model
On Deniability in the Common Reference String and Random Oracle Model
参考文献
[1]Bellare, Mihir; Rogaway, Phillip (1993). “Random Oracles are Practical: A Paradigm for Designing Efficient Protocols”. ACM Conference on Computer and Communications Security: 62–73.
[2]https://blog.csdn.net/jinjiaoooo/article/details/27387365?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf
[3]https://blog.csdn.net/jinjiaoooo/article/details/27387365?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf