A random oracle is an idealized, fictional participant used to analyze protocols when proving security directly from real hash-function properties is difficult. It accepts any input, returns an apparently completely random output, and returns the same output whenever that input is repeated. section 2.2
The model assumes three practical behaviors:
- Queries produce unpredictable outputs, as though they came from a random source. section 2.2
- Repeated queries with identical inputs produce identical outputs. section 2.2
- Security proofs may treat a real hash function as this ideal construction, although replacing the oracle with a real function is not guaranteed to preserve the proof. section 2.2
SHA-3 as an approximation
SHA-3 uses a sponge construction whose permutation is intended to look sufficiently random. Its absorbing and squeezing process therefore behaves closely to a random oracle, supporting the hash-function security properties expected from the model. section 2.5.2
