# Is a random oracle controled by the challenger?

When proving a Crypto scheme security under random oracle model, is the random oracle always controlled by the challenger?

What if the Hash is only used by the adversary?

-
What do you mean by "control"? Do you mean programmability that allows a challenger to program the table of the hash function? Or, observability? –  xagawa Mar 24 '14 at 6:34
@xagawa Thx for your question, maybe you can see this paper.In this paper page11, line19, "and H1 is a random oracle controlled by B as describred above".I say "controll"just alike with that. –  frank li Mar 24 '14 at 13:11

As @xagawa mentioned in his comment, it depends on what you mean by "controled".

In the case of using a programmable random oracle, yes, the reduction (in particular the simulation of the challenger of the real game) decides about what to return as answer to an oracle query. Thereby, the reduction has to guarantee that the "programmed" answers are consistent (identical answers to identical queries) and that the distribution of the answers are uniformly random to the adversary.

Such reductions are the ones typically used for reductionists proofs in the ROM, as it nicely allows the reduction to embed a problem instance into the adversaries queries to make the reduction work.

Typically, the random oracle is also observable, i.e., besides the programmability, the reduction "sees" all oracle queries and thus knows how much queries the adversary has made to the random oracle.

There are also works investigating non-observable reductions, where the random oracle is external to the adversary and the reduction. But they still can provide some means of programmability as the reduction can decide on the turing-machine that is used for the external oracle. In the linked paper you find some results for non-observable but programmable random oracles and also some examples for reductions in the ROM that also work if the observability is removed.

There is also the possibiltiy to have reductions in the ROM which are non-programmable and non-observable, but this enormously reduces the power that the ROM provides you in reductionists proofs.

-
There are lots of instances in which the reduction "decides about ... oracle query". $\:$ However, I've never seen an instance in which the challenger "decides about ... oracle query". $\;\;\;\;$ –  Ricky Demer Mar 24 '14 at 10:14
@RickyDemer Thats a bit imprecise in my answer. I mean the simulation of the challenger in the reduction. Thx, I will correct it to reduction. –  DrLecter Mar 24 '14 at 10:15
Why "reduction" in brackets ? "In the case of using a programmable random oracle, yes, the challenger (reduction) decides about what to return as answer to an oracle query". A reduction is not an algorithm that allows to build an adversary ? –  Dingo13 Mar 24 '14 at 10:18
Please feel free to edit the question if there is a clearer wording. –  DrLecter Mar 24 '14 at 10:23
Thank you very much ,you did have a clear wording. –  frank li Mar 24 '14 at 13:37

Firstly, I should clarify: I am just referring to the standard definition of a random oracle. There are other scenario's (better discussed in DrL's answer), but these tend to be explicitly referred to. That is, if you have a standard 'random oracle', this answer should hold. On the other hand, if you have a different type of oracle, this won't hold.

A random oracle is an oracle that, when presented with a bitstring $x$, returns a bitstring $y$ that is either randomly generated (if $x$ is new) or the same as it returned last time $x$ was queried.

It is not controlled by either party, but in most games both parties are allowed to query it. Because of the way it generates it's output, the two parties do not learn anything about what the other has asked the oracle (unless your game explicitly tells them).

-
Even in those other scenarios, "the two parties do not learn anything about what the other has asked the oracle". $\:$ Those scenarios usually allow the reduction to know what the adversary asks the oracle, and sometimes allow the reduction to provide the responses instead of the oracle. $\;\;\;\;$ –  Ricky Demer Mar 24 '14 at 10:39
True enough (used for purposes such as counting internal collisions at later stages in an algorithm). –  figlesquidge Mar 24 '14 at 10:39
@figlesquidge thks very much for your answer, actually I mean that we always see that the adv can make oracle queries to the challenger, and the challenger can decide what to return to the adv. I don't know why the challenger can decide what the adv get from the oracle. –  frank li Mar 24 '14 at 13:04