# What are alternatives to the random oracle model for modelling hash functions? [closed]

I was looking for more realistic alternatives to the ROM for describing hash functions in theoretical proofs. I came across the common reference string model (where hash functions can be modeled as having been picked from a family of functions). Are there any other?

EDIT: http://cstheory.stackexchange.com/questions/16383/what-are-alternatives-to-the-random-oracle-model-for-modelling-hash-functions -- explains exactly what I was looking for.

-

I just commented at the cstheory version of your question. $\:$ – Ricky Demer Feb 8 at 21:26
Please don't post the same question at two StackExchange sites.  (Cross-posting is discouraged on StackExchange.)  Pick one to keep, and flag the other the moderators to ask them to close it: you can click the "flag" button beneath the question to do so. – D.W. Feb 8 at 21:55

## closed as off topic by mikeazo♦Feb 13 at 13:07

Questions on Cryptography Stack Exchange are expected to relate to cryptography within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.

## 2 Answers

Another approach is to assume that the hash function is collision-resistant, and see if you can prove your protocol is secure under this weaker assumption. For some protocols, it is possible, and then you're good. For others, it's not. (More precisely, you demonstrate that any successful attack on the protocol can be turned into an algorithm that produces collisions for the hash function.)

-

There's the common random string model (where hash functions can be modeled as having been picked from a family of functions using public coins).

There are also "whatever-tractable random oracles", where adversaries also have an oracle that finds a whatever with respect to the random oracle.
(Usually 'whatever' is one of {'preimage','second-preimage','collision'}.)

There's also something I've thought of that I've never heard of actually being used, where the oracle is drawn from a distribution of oracles such that, for any algorithm that adaptively makes a feasible number of queries to the oracle and then outputs a guessed $\:\langle \hspace{.01 in}x\hspace{.01 in},\hspace{-0.02 in}y\rangle\:$ pair, the probability that
the algorithm did not query the oracle on $\hspace{.01 in}x$ $\:$ and $\:$ the oracle's output on $x$ is $y$
is negligible. (Perhaps the "Unpredictable Oracle Model"?)

-

2
Okay, just a question ... why do you manually add line breaks and complicated spaces in your answer? This seems like a lot of work for little benefit (it might even look worse on some browsers). – Paŭlo Ebermann♦ Feb 6 at 20:24
Well, the last two line breaks and the spaces between them were to aid in parsing. I put in the "purely spacing" TeX and the rest of the line breaks because I didn't realize that some (at least mobile) browsers would not display the TeX and/or break lines on their own, and so thought it would be worth making the answer look nicer (on browsers that didn't do either of those). I put and just kept the spacing in other TeX because I thought and still think that any browser that does display the TeX will display it in the same way, so I think that is worth the extra work. – Ricky Demer Feb 7 at 0:24
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 7, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9445546269416809, "perplexity_flag": "middle"}