Skip to content
Snippets Groups Projects
Verified Commit bd8fb0ee authored by Dmytro Bogatov's avatar Dmytro Bogatov :two_hearts:
Browse files

More on presentation.

parent 18307e52
Branches
No related tags found
No related merge requests found
Pipeline #
# http://editorconfig.org
root = true
[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = true
[*.yml]
indent_style = space
indent_size = 2
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
"Dmytro", "Dmytro",
"Dulmage", "Dulmage",
"Edmonds", "Edmonds",
"Eulerconst",
"Freivald", "Freivald",
"Freivalds", "Freivalds",
"Fulkerson", "Fulkerson",
...@@ -15,10 +16,18 @@ ...@@ -15,10 +16,18 @@
"Karp", "Karp",
"Martello", "Martello",
"Mendelsohn", "Mendelsohn",
"ORAM",
"Rainer", "Rainer",
"Silvano", "Silvano",
"Untrusted",
"Zwick", "Zwick",
"alertblock",
"allcaps",
"allsmallcaps",
"amsalpha",
"approxident",
"arrowsize", "arrowsize",
"beamer",
"bijection", "bijection",
"bijective", "bijective",
"binom", "binom",
...@@ -26,15 +35,31 @@ ...@@ -26,15 +35,31 @@
"captionof", "captionof",
"cheatsheets", "cheatsheets",
"chktex", "chktex",
"colback",
"colframe",
"colsep", "colsep",
"cryptosystem", "cryptosystem",
"cryptosystem's",
"dbogatov", "dbogatov",
"distinguisher", "distinguisher",
"ensuremath",
"eqref",
"frametitle",
"highlightline",
"highlightlinespecial",
"highlightmany",
"hltitlecodebox",
"hltitlecodeboxspecial",
"includegraphics",
"indist",
"indistinguishability", "indistinguishability",
"keepaspectratio",
"labelsep", "labelsep",
"linestyle", "linestyle",
"linewidth", "linewidth",
"lstlisting", "lstlisting",
"mathbb",
"mathrm",
"midrule", "midrule",
"mnode", "mnode",
"multicols", "multicols",
...@@ -44,55 +69,31 @@ ...@@ -44,55 +69,31 @@
"myitemize", "myitemize",
"naput", "naput",
"ncput", "ncput",
"negl",
"nicefrac", "nicefrac",
"nonsaturating", "nonsaturating",
"noteq", "noteq",
"npos", "npos",
"orams",
"parametrization",
"preflow", "preflow",
"printf",
"progressbar",
"providecommand",
"psmatrix", "psmatrix",
"psset", "psset",
"rearrangeable", "rearrangeable",
"smallcaps",
"subfigure", "subfigure",
"subtrees",
"toprule",
"Eulerconst",
"approxident",
"colback",
"colframe",
"cryptosystem's",
"ensuremath",
"eqref",
"printf",
"highlightline",
"highlightlinespecial",
"highlightmany",
"hltitlecodebox",
"hltitlecodeboxspecial",
"indist",
"mathbb",
"mathrm",
"subname", "subname",
"subtrees",
"tcblower", "tcblower",
"tcolorbox", "tcolorbox",
"textasciitilde", "textasciitilde",
"titlecodebox", "titlecodebox",
"ORAM",
"Untrusted",
"alertblock",
"allcaps",
"allsmallcaps",
"amsalpha",
"beamer",
"frametitle",
"includegraphics",
"keepaspectratio",
"negl",
"orams",
"parametrization",
"progressbar",
"providecommand",
"smallcaps",
"titleformat", "titleformat",
"toprule",
"unstashed",
"usetheme" "usetheme"
] ]
} }
\ No newline at end of file
...@@ -4,3 +4,4 @@ ...@@ -4,3 +4,4 @@
\usepackage{pgfpages} \usepackage{pgfpages}
\usepackage{booktabs} \usepackage{booktabs}
\usepackage{bm} \usepackage{bm}
\usepackage{mathtools}
...@@ -38,3 +38,6 @@ ...@@ -38,3 +38,6 @@
\newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)}
\newcommand{\RAM}{\textbf{RAM}} \newcommand{\RAM}{\textbf{RAM}}
\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
\section{Path ORAM protocol} \section{Path ORAM protocol}
\subsection{Overview}
\begin{frame}{Main invariant}
The client stores a small amount of local data in a \textbf{stash}.
The server-side storage is treated as a \textbf{binary tree} where each node is a \textbf{bucket} that can hold up to a fixed number of \textbf{blocks}.
\begin{block}{Invariant}
At any time, each block is mapped to a uniformly random leaf bucket in the tree, and unstashed blocks are always placed in some bucket along the path to the mapped leaf.
\end{block}
\note{
An underlying data structure for PAth ORAM is a binary tree.
Client has a position table where each data block ID is mapped to the leaf node.
Each time access occurs, whole path from the leaf to the root gets read and written.
This ensures indistinguishability.
}
\end{frame}
\subsection{Server storage}
\begin{frame}{Binary tree}
The server stores a binary tree data structure of height $L$ and $2^L$ leaves.
We then need $L = \ceil*{ \log_2 N }$.
The levels of the tree are numbered $0$ to $L$ where level $0$ denotes the root of the tree and level $L$ denotes the leaves.
\note{
Let us define $L$ --- the height of our tree.
Then reasonably it will be equal to $\log_2 N$ rounded up.
Let us also define 0 level as root and $L$th level as leaves.
}
\end{frame}
\begin{frame}{Bucket}
Each node in the tree is called a bucket.
Each bucket can contain up to $Z$ real blocks.
If a bucket has less than $Z$ real blocks, it is padded with dummy blocks to always be of size $Z$.
\note{
Each node in a tree is a bucket that contains $Z$ blocks.
For the sake of indistinguishability, we pad bucket with dummy encrypted blocks.
Choice of $Z$ is a parameter.
Experimental results show that small constant, eq.\ 4, will suffice.
}
\end{frame}
\begin{frame}{Path}
Let $x \in \{ 0, 1, \ldots, 2^L - 1 \}$ denote the $x_{\text{th}}$ leaf node in the tree.
Any leaf node $x$ defines a unique path from leaf $x$ to the root of the tree.
We use $\mathcal{P}(x)$ to denote set of buckets along the path from leaf $x$ to the root.
Additionally, $\mathcal{P}(x,l)$ denotes the bucket in $\mathcal{P}(x)$ at level $l$ in the tree.
\note{
Let us define a path from leaf $x$ to root as $\mathcal{P}(x)$.
Let us also define $\mathcal{P}(x,l)$ as the bucket along the path at level $l$.
}
\end{frame}
\begin{frame}{Server storage}
\begin{block}{Observation}
Total server storage used is about $Z \cdot N$ blocks.
Since $Z$ is s small constant, server storage is $\BigO{N}$.
\end{block}
\note{
Let us make an important observation.
The total server storage used is the order of $N$ since $Z$ is s small constant.
}
\end{frame}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment