What is the difference between a random oracle and a probabilistic algorithm?
Asked
Active
Viewed 340 times
0
-
4Can you provide more context for your question? – mikeazo Aug 24 '15 at 14:59
-
generally: A random oracle always gives you the same output on the same input (like a hash-function). A probabilistic algorithm usually gives you different outputs for the same input (like ElGamal encryption). – SEJPM Aug 24 '15 at 20:19
-
Without more context this looks like a request to show the difference between two random terms so I've cast the final vote to close this question. – Maarten Bodewes Aug 25 '15 at 08:21
1 Answers
1
Essentially a probabilistic algorithm is simply an algorithm that makes random choices (i.e., takes some random bits). So any algorithm that involves sampling random numbers or the like is a probabilistic algorithm.
A random oracle is a theoretical construct mostly used to analyze cryptographic schemes. It is an oracle that on all inputs gives a uniformly random output, but gives the same output each time its queried on the same input. Often this is used as a model of an idealized hash function. There is a more thorough description of it in the answer here.

Guut Boy
- 2,877
- 16
- 25
-
One important distinction is that the random oracle is generally considered public (that is, the adversary is free to make queries to it); for a probabilistic algorithm, we don't expect that the adversary has special insight into the choices we make (he might be able to deduce them from the ciphertext) – poncho Aug 24 '15 at 21:43
-
I don't think you can make that distinction. The adversary may also run probabilistic algorithms. Think of the IND-CPA game, for example. Here we essentially define the adversary to be a polytime probabilistic algorithm. – Guut Boy Aug 25 '15 at 04:53