ランダムオラクル
Fiat & Shamir (1986)はランダムオラクルの重要な応用例を示した(電子署名作成プロトコルからの対話の除去)。Impagliazzo & Rudich (1989)はランダムオラクルの限界を示した(特に、秘密鍵交換においては単にランダムオラクルがあるだけでは不十分)。Bellare & Rogaway (1993)は暗号設計にランダムオラクルを利用することを主張した。この定義においては、ランダムオラクルは無限長のビット列を生成し、利用者はそれを必要な長さに切り詰めることができる。
安全性の証明に用いる場合、ランダムオラクルは暗号を守る側も破る側も使えるものとする。1つのランダムオラクルは、問合せの先頭に固定ビット列を追加することで複数のランダムオラクルとして扱える(例えば、"1|x" と "0|x" というように問合せの前に 1 か 0 を付けるようにすれば、2台のランダムオラクルに対する呼出しだと看做すことが出来る。同様に、"00|x"、"01|x"、"10|x"、"11|x" とすれば4台のランダムオラクルに対する呼出しと看做せる)。