What is a cryptographic random oracle?

By Wvbailey [Public domain], via Wikimedia Commons
Programmers have a deep understanding of what functions are. A function works just as the picture shows where you take some structured input, which goes into the box we call function f, and then it produces an output. The function could be for example a formula to take one number and transform it into another, such as to turn Fahrenheit into Celsius. The example in the image above is even more simple, taking the number 3 we have an integer for input into the function which is 3 to the second power for an output of f(x)=9.
In the example that output becomes an input for the next function with is simply X+1, so 9+1=10. This shows the example which is how information often flows in a program or application. An input or series of inputs are presented to the user, with each input taking in a variable in the form of integers, strings or whatever, and that input is typically fed into a function which manipulates it logically to produce some output which becomes an input to the next function or series of functions in the app.
So now we reach the question of what is a random oracle?
![]()
By User:Jorge Stolfi based on Image:Hash_function.svg by Helix84 (Original work for Wikipedia) [Public domain], via Wikimedia Commons
An oracle is a cryptographic mechanism built from a mathematical function just as we see in the example above. An input is given to the random oracle which acts like a black box. Feed any input into this black box and a random output is the result from any input. The example of a random oracle could be a cryptographic hash function. These hash functions which can take any data as input to produce a random output as useful because each output being unique can act as a fingerprint for any data.
Hash functions are deterministic which means you can hash your name which is a string, and always be sure you will be able to take that hash and rewind it backwards to produce your name. Yet you also know for sure that any other name will never produce the exact same hash as yours. So your input string will always produce a unique digital hash or fingerprint as the output which can be rewound back.
Signed: 789639d9912cf889ddad7889a36603ca
Note, random oracles are an abstract concept. Random as in any input for truly random output is not used in any practical application. Hash functions are deterministic and are pseudo-random, as in they appear random in practice.
In cryptography, a random oracle is an oracle (a theoretical black box) that responds to every unique query with a (truly) random response chosen uniformly from its output domain. If a query is repeated it responds the same way every time that query is submitted.
Stated differently, a random oracle is a mathematical function chosen uniformly at random, that is, a function mapping each possible query to a (fixed) random response from its output domain.
Random oracles as a mathematical abstraction were firstly used in rigorous cryptographic proofs in the 1993 publication by Mihir Bellare and Phillip Rogaway (1993). They are typically used when the cryptographic hash functions in the method cannot be proven to possess the mathematical properties required by the proof. A system that is proven secure when every hash function is replaced by a random oracle is described as being secure in the random oracle model, as opposed to secure in the standard model of cryptography.
Yeah, random oracles as far as I know only exist in the abstract. The practical version of this abstract concept is called a hash function. Mathematical abstractions don't always exist in a practical implementation.
Where is my upvote?
Your post was plagiarism because you did not cite the wikipedia article you copied word for word from. Also you did not add anything additional to the discussion. Do you have an opinion on random oracles? Do you have a question about hash functions?
By the way, random oracles (the abstract cryptographic concept) is to be distinguished from the sort of oracles used by RealityKeys or the SMT Oracles concept promoted by Ned. That is a different concept. In the case of RealityKeys or SMT Oracles it is about prediction markets, or to be more precise about verifying certain events took place.
Reference
Good Work!!!
Great informative post dear. Loved reading. Upvoted and following u.
Regards Nainaz
#thealliance