Re: Who's familiar with random oracle model?

From: Thomas Pornin (pornin_at_nerim.net)
Date: 10/27/04


Date: Wed, 27 Oct 2004 14:26:22 +0000 (UTC)

According to sqc_zz <sqc_zz@hotmail-dot-com.no-spam.invalid>:
> I'm learning about it. And may we have a communication? :D

Disclaimer: I am not an expert on the random oracle model. What I
describe in this message is a rough scheme of what I understood
about that model, while talking with people who are such experts.

The "random oracle model" is a framework you may use to prove some
properties on cryptographic algorithms. You use the random oracle
model if you suppose that you have access to a "random oracle". A
"random oracle" is an entity which takes some data as input and
produces some output, with the following characteristics:

-- The output values are contained within a finite space which is
known a priori (e.g., all 256-bit values).

-- When an input is sent to the oracle:
   ** if the exact same input was sent previously to the oracle, it
      returns the exact same answer;
   ** otherwise, it selects randomly and uniformly an output value in
      the output space, and returns it.

A practical random oracle is a hash function, with some conditions
(e.g., all inputs must have the same length).

If you define a protocol which uses a random oracle (i.e., which uses
a hash function in such a way that it may be considered as a random
oracle), then you can establish some security proofs, which are relative
to the number of invocations to the oracle (for instance, you prove that
breaking the system requires to send at least 2^128 distinct requests to
the oracle).

Such a proof is usually deemed "heuristic" because there is no guarantee
that any given hash function, used in any specified way, is actually
a random oracle. There is no proof that a random oracle exists at all
(for that matter, there is no proof that there is such a thing as a hash
function anyway -- usual hash functions such as SHA-1 are just "good
candidates" or "not so bad simulations"). And the proof tends to have
some part of randomness, which means that you will not prove that the
attacker needs "at least 2^N oracle invocations" but something along the
lines of "the attacker needs X oracle invocations where the average
value of X is higher than 2^N".

In that sense, using the random oracle model implies that the proof
is somewhat weaker that a proof which uses a more conventional model.
Nevertheless, the random oracle model is a powerful tool, and a proof in
the random oracle model is much better than no proof at all.

        --Thomas Pornin



Relevant Pages

  • Re: Weakness in RSA
    ... > -- and that is what most of the random oracle folks do. ... I don't want make the impression that heuristics are ... a proof in the random oracle model is much more than a heuristic. ... then the practical usefulness of the result ...
    (sci.crypt)
  • Re: dumb question: why is it called a "reduction"?
    ... I don't know of any paper that calls random oracle proofs a reduction. ... Most papers are clear to state that the random oracle model is a *model*, ... Clearly one can't prove that SHA1 is a random ... Reductions avoid the pitfalls of the random oracle model. ...
    (sci.crypt)
  • Re: AES with constant key
    ... more into the direction of reformating an encrpyted block and ... A random oracle is a hypothetical 'black box' function. ... mode, an attacker could find relations between certain bits easily, ... function with a fixed key in the random oracle model, ...
    (sci.crypt)
  • Re: Computational secure entropy extraction
    ... you want to work in the random oracle model. ... the random oracle model makes very strong assumptions. ... My question about the existence of provably secure distillers was asking ... whether there is any distiller that is provably secure in the standard ...
    (sci.crypt)
  • Re: SHA1 and entropy
    ... we don't need to get into all that random oracle ... then let's just talk about SHA1. ... As for design principles for building the inner core of a hash function, ...
    (sci.crypt)