0

What is the difference between a random oracle and a probabilistic algorithm?

qqqqqq
  • 1
  • 4
    Can 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 Answers1

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