\usepackage{amsthm}
\usepackage{xcolor}

\usepackage{fullpage}
\usepackage{microtype,pdfsync}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{tabu}
\usepackage{url}
\usepackage{graphicx}

\usepackage{xspace}
\usepackage{multirow}
\usepackage{enumitem}
\usepackage{amsmath}
\usepackage{mathtools}

\usepackage{framed}
\usepackage{booktabs}
\usepackage{caption}

\usepackage{nopageno}

\usepackage[T1]{fontenc}
\usepackage{fourier}
\DeclareSymbolFont{calletters}{OMS}{cmsy}{m}{n}
\DeclareSymbolFontAlphabet{\mathcal}{calletters}

\usepackage[hang,flushmargin]{footmisc}

\usepackage{hyperref}
\hypersetup{
	colorlinks=true,
	linkcolor={blue!60!black},
	citecolor={blue!60!black},
	urlcolor={blue!60!black},
	bookmarksopen=true
}
\usepackage{bookmark}

\bookmarksetup{  numbered,
depth=5}
\usepackage{scalerel}
\setcounter{secnumdepth}{2}

\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{arrows.meta}

\newcommand{\ignore}[1]{}
%\numberwithin{equation}{section}


\newcommand{\concat}{\mathbin{||}}

%fields and groups
\newcommand{\F}{\mathbb{F}}
\newcommand{\Fp}{\F_p}
\newcommand{\Fq}{\F_q}
\newcommand{\Ftwo}{\F_2}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\C}{\mathbb{C}}
\newcommand{\T}{\mathbb{T}}
\newcommand{\Qbar}{\overline{\Q}}
\newcommand{\G}{\mathbb{G}}
\newcommand{\Vs}{\mathbb{V}}
\newcommand{\Fbar}{\overline{\mathbb{F}}}

\DeclareMathOperator*{\Exp}{\mathbb{E}}
\DeclareMathOperator*{\E}{\mathbb{E}}
\DeclareMathOperator*{\Var}{\mathrel{Var}}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}

%vectors, etc.
\newcommand{\av}{\mathbf{a}} \newcommand{\cv}{\mathbf{c}}
\newcommand{\dv}{\mathbf{d}} \newcommand{\ev}{\mathbf{e}}
\newcommand{\rv}{\mathbf{r}} \newcommand{\sv}{\mathbf{s}}
\newcommand{\tv}{\mathbf{t}} \newcommand{\uv}{\mathbf{u}}
\newcommand{\vv}{\mathbf{v}} \newcommand{\wv}{\mathbf{w}}
\newcommand{\xv}{\mathbf{x}} \newcommand{\yv}{\mathbf{y}}
\newcommand{\zv}{\mathbf{z}} \newcommand{\zerov}{\mathbf{0}}
\renewcommand{\AA}{\mathbf{A}} \newcommand{\BB}{\mathbf{B}}
\newcommand{\CC}{\mathbf{C}} \newcommand{\FF}{\mathbf{F}}
\newcommand{\MM}{\mathbf{M}} \newcommand{\RR}{\mathbf{R}}
\renewcommand{\SS}{\mathbf{S}} \newcommand{\TT}{\mathbf{T}}
\newcommand{\UU}{\mathbf{U}} \newcommand{\XX}{\mathbf{X}}
\newcommand{\YY}{\mathbf{Y}} \newcommand{\KK}{\mathbf{K}}
\newcommand{\A}{\mathcal{A}} \newcommand{\B}{\mathcal{B}}
\newcommand{\dash}{\mbox{---}}
\renewcommand{\O}{\mathcal{O}}
\newcommand{\qq}{\mathfrak{q}}
\newcommand{\QQ}{\mathfrak{Q}}
\newcommand{\ZQ}{\Z_{q}}

\newcommand{\vk}{\mathbf{k}}
\newcommand{\vu}{\mathbf{u}}

\newcommand{\todo}[1]{\noindent {\color{blue} {\footnotesize {\bf TODO}:~{#1}}}}

\newcommand{\mr}[1]{\ensuremath{\mathrm{{#1}}}}
\newcommand{\la}{\ensuremath{\leftarrow}}
\newcommand{\ra}{\ensuremath{\rightarrow}}
\newcommand{\ala}{\ensuremath{\ \la\ }}
\newcommand{\ara}{\ensuremath{\ \ra\ }}
\newcommand{\rf}{\ensuremath{\overset{\$}{\la}}}

\newcommand{\calA}{\ensuremath{\mathcal{A}}}
\newcommand{\calB}{\ensuremath{\mathcal{B}}}
\newcommand{\calC}{\ensuremath{\mathcal{C}}}
\newcommand{\calD}{\ensuremath{\mathcal{D}}}
\newcommand{\calE}{\ensuremath{\mathcal{E}}}
\newcommand{\calF}{\ensuremath{\mathcal{F}}}
\newcommand{\calG}{\ensuremath{\mathcal{G}}}
\newcommand{\calH}{\ensuremath{\mathcal{H}}}
\newcommand{\calI}{\ensuremath{\mathcal{I}}}
\newcommand{\calJ}{\ensuremath{\mathcal{J}}}
\newcommand{\calK}{\ensuremath{\mathcal{K}}}
\newcommand{\calL}{\ensuremath{\mathcal{L}}}
\newcommand{\calM}{\ensuremath{\mathcal{M}}}
\newcommand{\calN}{\ensuremath{\mathcal{N}}}
\newcommand{\calO}{\ensuremath{\mathcal{O}}}
\newcommand{\calP}{\ensuremath{\mathcal{P}}}
\newcommand{\calQ}{\ensuremath{\mathcal{Q}}}
\newcommand{\calR}{\ensuremath{\mathcal{R}}}
\newcommand{\calS}{\ensuremath{\mathcal{S}}}
\newcommand{\calT}{\ensuremath{\mathcal{T}}}
\newcommand{\calU}{\ensuremath{\mathcal{U}}}
\newcommand{\calV}{\ensuremath{\mathcal{V}}}
\newcommand{\calW}{\ensuremath{\mathcal{W}}}
\newcommand{\calX}{\ensuremath{\mathcal{X}}}
\newcommand{\calY}{\ensuremath{\mathcal{Y}}}
\newcommand{\calZ}{\ensuremath{\mathcal{Z}}}

% -- bold math symbols, for some reason --
\newcommand{\boldalpha}{\ensuremath{\boldsymbol{\alpha}}}
\newcommand{\boldchi}{\ensuremath{\boldsymbol{\chi}}}
\newcommand{\boldtau}{\ensuremath{{\boldsymbol{\tau}}}}
\newcommand{\boldstar}{\ensuremath{\mathbf{*}}}
\newcommand{\bolda}{\ensuremath{\mathbf{a}}}
\newcommand{\boldb}{\ensuremath{\mathbf{b}}}
\newcommand{\boldc}{\ensuremath{\mathbf{c}}}
\newcommand{\boldd}{\ensuremath{\mathbf{d}}}
\newcommand{\bolde}{\ensuremath{\mathbf{e}}}
\newcommand{\boldf}{\ensuremath{\mathbf{f}}}
\newcommand{\boldg}{\ensuremath{\mathbf{g}}}
\newcommand{\boldh}{\ensuremath{\mathbf{h}}}
\newcommand{\boldi}{\ensuremath{\mathbf{i}}}
\newcommand{\boldj}{\ensuremath{\mathbf{j}}}
\newcommand{\boldk}{\ensuremath{\mathbf{k}}}
\newcommand{\boldl}{\ensuremath{\mathbf{l}}}
\newcommand{\boldm}{\ensuremath{\mathbf{m}}}
\newcommand{\boldn}{\ensuremath{\mathbf{n}}}
\newcommand{\boldo}{\ensuremath{\mathbf{o}}}
\newcommand{\boldp}{\ensuremath{\mathbf{p}}}
\newcommand{\boldq}{\ensuremath{\mathbf{q}}}
\newcommand{\boldr}{\ensuremath{\mathbf{r}}}
\newcommand{\bolds}{\ensuremath{\mathbf{s}}}
\newcommand{\boldt}{\ensuremath{\mathbf{t}}}
\newcommand{\boldu}{\ensuremath{\mathbf{u}}}
\newcommand{\boldv}{\ensuremath{\mathbf{v}}}
\newcommand{\boldw}{\ensuremath{\mathbf{w}}}
\newcommand{\boldx}{{\ensuremath{\mathbf{x}}}}
\newcommand{\boldy}{\ensuremath{\mathbf{y}}}
\newcommand{\boldz}{\ensuremath{\mathbf{z}}}
\newcommand{\boldzero}{\ensuremath{\boldsymbol{0}}}
\newcommand{\boldone}{\ensuremath{\boldsymbol{1}}}
\newcommand{\boldpi}{\ensuremath{\boldsymbol{\pi}}}
\newcommand{\boldPi}{\ensuremath{\boldsymbol{\Pi}}}

% -- bold italic math symbols, for some reason --
\newcommand{\boldia}{\ensuremath{\boldsymbol{a}}}
\newcommand{\boldib}{\ensuremath{\boldsymbol{b}}}
\newcommand{\boldic}{\ensuremath{\boldsymbol{c}}}
\newcommand{\boldid}{\ensuremath{\boldsymbol{d}}}
\newcommand{\boldie}{\ensuremath{\boldsymbol{e}}}
\newcommand{\boldif}{\ensuremath{\boldsymbol{f}}}
\newcommand{\boldig}{\ensuremath{\boldsymbol{g}}}
\newcommand{\boldih}{\ensuremath{\boldsymbol{h}}}
\newcommand{\boldii}{\ensuremath{\boldsymbol{i}}}
\newcommand{\boldij}{\ensuremath{\boldsymbol{j}}}
\newcommand{\boldik}{\ensuremath{\boldsymbol{k}}}
\newcommand{\boldil}{\ensuremath{\boldsymbol{l}}}
\newcommand{\boldim}{\ensuremath{\boldsymbol{m}}}
\newcommand{\boldin}{\ensuremath{\boldsymbol{n}}}
\newcommand{\boldio}{\ensuremath{\boldsymbol{o}}}
\newcommand{\boldip}{\ensuremath{\boldsymbol{p}}}
\newcommand{\boldiq}{\ensuremath{\boldsymbol{q}}}
\newcommand{\boldir}{\ensuremath{\boldsymbol{r}}}
\newcommand{\boldis}{\ensuremath{\boldsymbol{s}}}
\newcommand{\boldit}{\ensuremath{\boldsymbol{t}}}
\newcommand{\boldiu}{\ensuremath{\boldsymbol{u}}}
\newcommand{\boldiv}{\ensuremath{\boldsymbol{v}}}
\newcommand{\boldiw}{\ensuremath{\boldsymbol{w}}}
\newcommand{\boldix}{\ensuremath{\boldsymbol{x}}}
\newcommand{\boldiy}{\ensuremath{\boldsymbol{y}}}
\newcommand{\boldiz}{\ensuremath{\boldsymbol{z}}}

\newcommand{\transpose}[1]{\ensuremath{{#1}^{\intercal}}}

\newcommand{\boldA}{\ensuremath{\mathbf{A}}}
\newcommand{\boldB}{\ensuremath{\mathbf{B}}}
\newcommand{\boldC}{\ensuremath{\mathbf{C}}}
\newcommand{\boldD}{\ensuremath{\mathbf{D}}}
\newcommand{\boldE}{\ensuremath{\mathbf{E}}}
\newcommand{\boldF}{\ensuremath{\mathbf{F}}}
\newcommand{\boldG}{\ensuremath{\mathbf{G}}}
\newcommand{\boldH}{\ensuremath{\mathbf{H}}}
\newcommand{\boldI}{\ensuremath{\mathbf{I}}}
\newcommand{\boldJ}{\ensuremath{\mathbf{J}}}
\newcommand{\boldK}{\ensuremath{\mathbf{K}}}
\newcommand{\boldL}{\ensuremath{\mathbf{L}}}
\newcommand{\boldM}{\ensuremath{\mathbf{M}}}
\newcommand{\boldN}{\ensuremath{\mathbf{N}}}
\newcommand{\boldO}{\ensuremath{\mathbf{O}}}
\newcommand{\boldP}{\ensuremath{\mathbf{P}}}
\newcommand{\boldQ}{\ensuremath{\mathbf{Q}}}
\newcommand{\boldR}{\ensuremath{\mathbf{R}}}
\newcommand{\boldS}{\ensuremath{\mathbf{S}}}
\newcommand{\boldT}{\ensuremath{\mathbf{T}}}
\newcommand{\boldU}{\ensuremath{\mathbf{U}}}
\newcommand{\boldV}{\ensuremath{\mathbf{V}}}
\newcommand{\boldW}{\ensuremath{\mathbf{W}}}
\newcommand{\boldX}{\ensuremath{\mathbf{X}}}
\newcommand{\boldY}{\ensuremath{\mathbf{Y}}}
\newcommand{\boldZ}{\ensuremath{\mathbf{Z}}}

\newcommand{\deq}{\mathrel{\mathop:}=}
\newcommand{\zo}{\ensuremath{\{0,1\}}} % bits
\newcommand{\zon}{\ensuremath{\{0,1\}^n}} % bits

% Theorem definitions

\theoremstyle{plain}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Corollary}
\theoremstyle{definition}
\newtheorem*{claims}{Claim}
\newtheorem*{theorems}{Theorem}
\newtheorem{defn}[theorem]{Definition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{fact}[theorem]{Fact}
\newtheorem{remark}[theorem]{Remark}
\newtheorem{conjecture}[theorem]{Conjecture}
\newtheorem{construction}[theorem]{Construction}

\newcounter{problemcnt}
\newcommand{\problem}[1]{\refstepcounter{problemcnt}\paragraph{Problem~\arabic{problemcnt}: #1.}}
\newcommand{\solution}{\paragraph{Solution:}}

%% custom macros

\newcommand{\esm}[1]{\ensuremath{#1}}
\newcommand{\ms}[1]{\esm{\mathsf{#1}}}

\newcommand{\prg}{\ms{PRG}}
\newcommand{\prf}{\ms{PRF}}
\newcommand{\prp}{\ms{PRP}}

\newcommand{\poly}{\esm{\mr{poly}}}
\newcommand{\polylog}{\operatorname{polylog}}
\newcommand{\negl}{\esm{\mr{negl}}}

\newcommand{\ord}[1]{\esm{{#1}^{\mr{th}}}}

\newcommand{\hyb}{\ms{Hyb}}
\newcommand{\Funs}{\ms{Funs}}
\newcommand{\getsr}{\mathrel{\mathpalette\rgetscmd\relax}}
\newcommand{\rgetscmd}{\ooalign{$\leftarrow$\cr
    \hidewidth\raisebox{1.2\height}{\scalebox{0.5}{\ \rm R}}\hidewidth\cr}}
\newcommand{\Unif}{\ms{Unif}}

\newcommand{\appc}{\stackrel{c}{\approx}}
\newcommand{\apps}{\stackrel{s}{\approx}}
\newcommand{\abs}[1]{\left| #1 \right|}

\newcommand{\classP}{\ms{P}}
\newcommand{\classBPP}{\ms{BPP}}
\newcommand{\classNP}{\ms{NP}}
\newcommand{\Ppoly}{\ms{P}/\ms{poly}}
\newcommand{\NCone}{\ms{NC^1}}

\newcommand{\round}[1]{\left\lfloor #1 \right\rceil}
\newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor}
\newcommand{\ceil}[1]{\left\lceil #1 \right\rceil}
\newcommand{\iprod}[1]{\left\langle #1 \right\rangle}
\newcommand{\norm}[1]{\left\| #1 \right\|}
\newcommand{\set}[1]{\left\{ #1 \right\}}

\newcommand{\Zp}{\Z_p}
\newcommand{\Zq}{\Z_q}

\newcommand{\subind}[2]{{#1}^{(#2)}}

\newcommand{\eqq}{\stackrel{?}{=}}

\newcommand{\Otilde}{\widetilde{O}}

\newcommand{\hc}{\ms{hc}}

\newcommand{\xstar}{x^*}
\newcommand{\ystar}{y^*}

\newcommand{\DDHAdv}{\ms{DDHAdv}}
\newcommand{\PRFAdv}{\ms{PRFAdv}}
\newcommand{\SCPRFAdv}{\ms{SC\hbox{-}PRFAdv}}

\newcommand{\ct}{\ms{ct}}

\newcommand{\view}{\ms{view}_{P,V^*}}
\newcommand{\viewHonest}{\ms{view}_{P,V}}
\newcommand{\Sim}{\calS}

\newcommand{\Am}{\mathbf{A}}
\newcommand{\Cm}{\mathbf{C}}

\newcommand{\SIS}{\ms{SIS}}
\newcommand{\ISIS}{\ms{ISIS}}
\newcommand{\LWE}{\ms{LWE}}
\newcommand{\mLWE}{\ms{MatrixLWE}}

\newcommand{\Sm}{\mathbf{S}}
\newcommand{\Em}{\mathbf{E}}
\newcommand{\Um}{\mathbf{U}}

\newcommand{\LWEadv}{\ms{LWEAdv}}
\newcommand{\HNFLWEadv}{\textsf{HNF-LWEAdv}}
\newcommand{\mLWEadv}{\ms{MatrixLWEAdv}}
\newcommand{\SISadv}{\ms{SISAdv}}
\newcommand{\OWFadv}{\ms{OWFAdv}}
\newcommand{\ISISadv}{\ms{ISISAdv}}

\newcommand{\bv}{\mathbf{b}}
\newcommand{\Bm}{\mathbf{B}}
\newcommand{\Rm}{\mathbf{R}}
\newcommand{\Gm}{\mathbf{G}}

\newcommand{\pro}[1]{\langle #1 \rangle}
\newcommand{\Comm}{\ms{Commit}}
\newcommand{\cSAT}{\ms{circuit}\text{-}\ms{SAT}}

\newcommand{\sk}{\ms{sk}}
\newcommand{\pk}{\ms{pk}}

\newcommand{\td}{\ms{td}}
\newcommand{\TrapGen}{\ms{TrapGen}}

\newcommand{\cupdot}{\mathbin{\mathaccent\cdot\cup}}
\newcommand{\Mod}[1]{\ (\mathrm{mod}\ #1)}

\newcommand{\Commit}{\ms{Commit}}
\newcommand{\Open}{\ms{Open}}
\newcommand{\Verify}{\ms{Verify}}
\newcommand{\IdxOpen}{\ms{IdxOpen}}
\newcommand{\IdxVerify}{\ms{IdxVerify}}


\newcommand{\Aditi}[1]{\begin{center} \framebox{ \parbox{ 13cm }
			{\textcolor[rgb]{.8,0,0}{{\bf Aditi:} #1}}} \end{center}}
\newcommand{\Wilson}[1]{\begin{center} \framebox{ \parbox{ 13cm }
			{\textcolor[rgb]{.8,0,0}{{\bf Wilson:} #1}}} \end{center}}
\newcommand{\Trisha}[1]{\begin{center} \framebox{ \parbox{ 13cm }
			{\textcolor[rgb]{.8,0,0}{{\bf Trisha:} #1}}} \end{center}}


\newcommand{\aditi}[1]{\textcolor[rgb]{.8,0,0}{ [{\bf Aditi:} #1]}}
\newcommand{\wilson}[1]{\textcolor[rgb]{.8,0,0}{ [{\bf Wilson:} #1]}}
\newcommand{\trisha}[1]{\textcolor[rgb]{.8,0,0}{ [{\bf Trisha:} #1]}}

