You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: 6.857/lecture4.tex
+51-1
Original file line number
Diff line number
Diff line change
@@ -81,6 +81,56 @@ \subsection{Random Oracle Model (ROM)}
81
81
82
82
Oracle's Process: Receives $x$. If $x$ is in the book, look up $h(x)$ and return it. Otherwise, flip a coin $d$ times and call that $h(x)$. Write this $h(x)$ in the book and return it.
83
83
84
-
This is both consistent and random (the ideal of a cryptographic hash function).
84
+
This is both consistent and random (the ideal of a cryptographic hash function). In the random oracle model, if $x \neq y$:
85
+
\begin{eqnarray}
86
+
P[h(x) = h(y)] = \frac{1}{2^d}
87
+
\end{eqnarray}
88
+
89
+
\subsection{Properties}
90
+
91
+
\begin{itemize}
92
+
\item One-wayness (OW) - preimage resistance. If $h(x) = y$ then $x$ is the preimage of $y$ and $y$ is the image of $x$. It should be hard to go from $y$ back to $x$.
93
+
94
+
Infeasible for anyone given $y \in_{r} \{0, 1\}^d$ (where $\in_r$ denotes randomly chosen) to find any $x$ such that $h(x) = y$. Infeasible means that work is proportional to $2^d$, which is just brute forcing every possible $x$ and checking if it matches a $y$. Maybe take $d \geq90$ to make this hard.
Infeasible for anyone to find $x$ and $x'$ such that $x \neq x'$ and $h(x) = h(x')$.
99
+
100
+
In Random Orcale Model, difficulty is $\theta(2^{d/2})$ for finding any collision. The work should eceed $2^90$ if $d > 180$. You lose a factor of 2 because of the birthday paradox.
Infeasible given $x \in_r \{0, 1\}^*$ to find $x' \neq x$ such that $h(x) = h(x')$. Like pairwise resistance, work is $\theta(2^d)$ in ROM.
120
+
121
+
\item Pseudorandomness. Indistinguishable from a random oracle. Hard to define well.
122
+
123
+
\item Non-malleability.
124
+
125
+
Infeasible given $h(x)$ to produce $h(x')$ where $x$ and $x'$ are related.
126
+
\end{itemize}
127
+
128
+
\subsection{Applications}
129
+
130
+
\begin{itemize}
131
+
\item Password storage: store $h(p)$ instead of string $p$. System compares $h(p)$ to $h(t)$ where $t$ is the typed in password attempt. For a given user, this depends on the one-wayness property.
0 commit comments