在密码学里面,随机预言是一个预言(简单说像是理论的黑箱),对任何输入都回传一个真正均匀随机的输出(请参考离散型均匀分布),不过对相同的输入,该预言每次都会回传一模一样的输出。换句话说,随机预言是一个将所有可能输入与输出作随机映射的函数。 目前并不存在真正能实做随机预言的函数。事实上,一些签名和加密方式被证明如果使用随机预言的话是安全的,但是使用其他的函式替代随机预言的话则明显不安全。[1] 另外,对许多通讯作法,在随机预言假设之下证明为安全是对于其可靠性强力的证据。大体上说,一个作法被证明是安全的的话,要攻击此作法就必需要突破该证明的假设;例如,一个加密法的安全证明是基于质因子分解的困难度(像是RSA算法),那么打破此证明的方法就是找到快速质因子分解的算法(像是秀尔算法就被视为是一个可能的攻击)。在这里,要打破随机预言假设,我们就必须找到实际杂凑函式与随机预言未知且不好的不同之处。对于一般被认为不存在这种弱点,够好的杂凑函式来说(这种杂凑函式现在蛮可靠的,像是SHA-3),相关的通讯作法因此可证明是安全的。