diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 61794d88dc8f8f56cbc25c38bd8b1ac94d3906b2..7b0a9cb8b1c6a1b663bd12b55c5dfcb783b729c3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,6 +29,7 @@ artifacts: - printf "\providecommand{\\\version}{%s}" $(echo $CI_BUILD_REF | cut -c1-8) > version.tex - ./build.sh - ./build.sh -n -c presentation-with-notes + - ./build.sh -b - mv dist/*.pdf . artifacts: paths: diff --git a/.vscode/settings.json b/.vscode/settings.json index 95962b5df03d32972e811106c6fe7215a50b68c4..06f46f52ffb6c5efc728e51640e065fb6beff4a6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -50,6 +50,7 @@ "distinguisher", "ensuremath", "eqref", + "exampleblock", "exponentiate", "firstline", "firstnumber", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 494b29c32f3c3bf36a1134034cac0303d17708dd..bad535afe520ce13435e07fc922bb6395c1fb5d3 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -3,6 +3,19 @@ // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ + { + "label": "Compile bibliography", + "type": "shell", + "command": "./build.sh -b", + "group": "build", + "presentation": { + "echo": true, + "reveal": "always", + "focus": true, + "panel": "shared" + }, + "problemMatcher": [] + }, { "label": "Compile once notes", "type": "shell", diff --git a/bibliography.tex b/bibliography.tex new file mode 100644 index 0000000000000000000000000000000000000000..89c8c627c754059f4ad01952b9816381a4f2ee35 --- /dev/null +++ b/bibliography.tex @@ -0,0 +1,19 @@ +% cSpell:disable + +\documentclass{article} + +\usepackage[ + backend=biber, + style=alphabetic, + sorting=ynt +]{biblatex} + +\addbibresource{bibfile.bib} + +\begin{document} + + \nocite{*} + + \printbibliography% + +\end{document} diff --git a/build.sh b/build.sh index c5e8da59e6deff5fd8f94b66e213552e983109f1..34c34d8af3b490fd61474a5b3abe0d3388684413 100755 --- a/build.sh +++ b/build.sh @@ -10,7 +10,7 @@ ITERATIONS=3 LATEX_DEBUG="" LATEX_NOTES="" -usage() { echo "Usage: $0 [-i <number> -g -v -t -n -c <string>]" 1>&2; exit 1; } +usage() { echo "Usage: $0 [-i <number> -g -v -t -n -b -c <string>]" 1>&2; exit 1; } log() { if [ -n "${VERBOSE}" ]; then @@ -41,8 +41,40 @@ test() { echo "Tests passed!" } -while getopts "c:i:vgtn" o; do +bibliography () { + + JOBNAME=bibliography + INTERACTION=batchmode + + rm -f ${OUTDIR}/${JOBNAME}.pdf + + echo "Compiling bibliography into ${JOBNAME}.pdf ..." + + for j in `seq 1 2`; + do + xelatex \ + --interaction=${INTERACTION} \ + -output-directory=${OUTDIR} \ + -jobname=${JOBNAME} \ + bibliography.tex + + if [ "$j" == "1" ] + then + biber ${OUTDIR}/${JOBNAME} + fi + done + + rm -f ${OUTDIR}/${JOBNAME}*.{aux,log,out,xwm,toc,nav,snm,bbl,blg,vrb,bcf,xml} + + echo "Done." +} + +while getopts "c:i:vgtnb" o; do case "${o}" in + b) + bibliography + exit 0 + ;; g) DEBUG=true INTERACTION=nonstopmode @@ -107,7 +139,7 @@ log "Done." echo "Removing build files..." -rm -f ${OUTDIR}/*.{aux,log,out,xwm,toc,nav,snm,bbl,blg,vrb,bcf,xml} +rm -f ${OUTDIR}/${JOBNAME}*.{aux,log,out,xwm,toc,nav,snm,bbl,blg,vrb,bcf,xml} log "Done." diff --git a/definitions.tex b/definitions.tex index d2e3158d89bd91546cebdc00bb421121c3ba66fc..b4a9b89636e716413b57fa0bc3940f277c8d2d85 100644 --- a/definitions.tex +++ b/definitions.tex @@ -8,6 +8,7 @@ \DeclarePairedDelimiter\floor{\lfloor}{\rfloor} \newsavebox{\mybox} +\newsavebox{\tablebox} \xpatchbibmacro{name:andothers}{% \bibstring{andothers}% diff --git a/sections/oblivious-memory.tex b/sections/oblivious-memory.tex index 9feae6d8d5782f23f764a6323a58e1c1fb2491df..fc396c4a46988efda2b9cd9c510ede9b956e71a7 100644 --- a/sections/oblivious-memory.tex +++ b/sections/oblivious-memory.tex @@ -1,4 +1,4 @@ -% cSpell:ignore bibfile Goldreich +% cSpell:ignore bibfile Goldreich Dautrich \section{Oblivious Memory} @@ -11,9 +11,15 @@ \pause% \begin{alertblock}{Security vulnerability} - Adversary still sees the \textbf{access pattern}. + Adversary still sees the \textbf{access pattern} --- an ordered sequence of read/write operations on data records. \end{alertblock} + \begin{exampleblock}{Attack example} + Compromising Privacy in Precise Query Protocols~\cite{Dautrich:2013:CPP:2452376.2452397}. + Observe range queries to recover order. + Requires $10^4$ queries to compromise privacy for database of over $10^6$ records. + \end{exampleblock} + \note{ The idea is to build a secure cloud, and more specifically --- secure database. The server is untrusted --- we assume an adversary can read every byte on the disk and track all CPU operations. diff --git a/sections/overview-of-other-orams.tex b/sections/overview-of-other-orams.tex index 3013338775aca967b57392efe7543c2778df77d4..45fce608864a9d422199386ebb12d8a151f70193 100644 --- a/sections/overview-of-other-orams.tex +++ b/sections/overview-of-other-orams.tex @@ -1,25 +1,37 @@ +%cSpell:ignore tablebox + \section{Overview of other ORAMs} \begin{frame}{ORAMs Experimental Evaluation} - \begin{tabular}{ l c c c c } + \begin{lrbox}{\tablebox}% + + \begin{tabular}{ l c c c c } + + \toprule% + + $ORAM$ & Computation & Communication & Server & Client \\ - \toprule% + \midrule% - $ORAM$ & Computation & Communication & Server & Client \\ + Basic-SR & $N \log N$ & $N \log N$ & $N$ & $1$ \\ + IBS-SR & $N$ & $\sqrt{N}$ & $N$ & $\sqrt{N}$ \\ + Basic-HR & $N \log^2 N$ & $N \log^2 N$ & $N \log N$ & $1^b$ \\ + BB-ORAM & $\log^2 N$ & $N \log^2 N$ & $N \log N$ & $1$ \\ + TP-ORAM & $\sqrt{N}$ & $1$ & $N$ & $\sqrt{N} + \frac{N}{B}$ \\ + \textbf{Path-ORAM} & $\bm{\log N}$ & $\bm{1}$ & $\bm{N}$ &\footnote{$\BigO{\log N} \cdot \omega(1) + \BigO{\frac{N}{B}}$} \\ - \midrule% + \bottomrule% - Basic-SR & $N \log N$ & $N \log N$ & $N$ & $1$ \\ - IBS-SR & $N$ & $\sqrt{N}$ & $N$ & $\sqrt{N}$ \\ - Basic-HR & $N \log^2 N$ & $N \log^2 N$ & $N \log N$ & $1^b$ \\ - BB-ORAM & $\log^2 N$ & $N \log^2 N$ & $N \log N$ & $1$ \\ - TP-ORAM & $\sqrt{N}$ & $1$ & $N$ & $\sqrt{N} + \frac{N}{B}$ \\ - \textbf{Path-ORAM} & $\bm{\log N}$ & $\bm{1}$ & $\bm{N}$ &\footnote{$\BigO{\log N} \cdot \omega(1) + \BigO{\frac{N}{B}}$} \\ + \end{tabular} + + \end{lrbox}% + + \begin{center} - \bottomrule% + \scalebox{0.9}{\usebox{\tablebox}} - \end{tabular} + \end{center} Table 2 from~\cite{Chang:2016:ORD:2994509.2994528}. Worst-case scenarios shown. diff --git a/settings.tex b/settings.tex index 575faee62627fdf5906860ed4043ecebab7814eb..7edb0bc6a5843d05d77ab7f9444e79e0724e0276 100644 --- a/settings.tex +++ b/settings.tex @@ -11,7 +11,10 @@ \title{Data-X Talk} % chktex 13 -\subtitle{Path ORAM:\ An Extremely Simple Oblivious RAM Protocol~\cite{DBLP:journals/corr/abs-1202-5150}} +\subtitle{ + Path ORAM:\ An Extremely Simple Oblivious RAM Protocol by \emph{Emil Stefanov} and \emph{Elaine Shi} \\ + \cite{DBLP:journals/corr/abs-1202-5150} % chktex 2 +} \date{Built from \href{https://git.dbogatov.org/bu/PathORAM-Talk/commit/\version}{\emph{\version}} on \today} @@ -19,13 +22,15 @@ \institute{Boston University} -\logo{ - \includegraphics[ - width=1cm, - height=1cm, - keepaspectratio - ]{static/logo.eps}\hspace{325pt}\vspace{-30pt} -} +\ifrelease% + \logo{ + \includegraphics[ + width=1cm, + height=1cm, + keepaspectratio + ]{static/logo.eps}\hspace{325pt}\vspace{-30pt} + } +\fi \addbibresource{bibfile.bib} @@ -70,3 +75,13 @@ } \captionsetup[figure]{labelformat=empty} + +\definecolor{CardinalRed}{RGB}{172,29,55} +\definecolor{Tangerine}{RGB}{247,148,30} + +\setbeamercolor{alerted text}{fg=CardinalRed} +\setbeamercolor{example text}{fg=Tangerine} +{ + \usebeamercolor[fg]{alerted text} + \usebeamercolor[fg]{example text} +}