\usepackage[asymptotics,mm,notions,adversary]{cryptocode} % Layout \newcommand{\scbf}[1]{\noindent\textbf{\textsc{#1}}} % Abbreviations %% Algorithms \newcommand{\TrapGen}{\textsf{TrapGen}\xspace} \newcommand{\ExtBasis}{\textsf{ExtBasis}\xspace} \newcommand{\SampleR}{\textsf{SampleRight}\xspace} \newcommand{\SampleL}{\textsf{SampleLeft}\xspace} \newcommand{\GPVSample}{\textsf{GPVSample}\xspace} %% Complexity \newcommand{\NP}{\textsf{NP}\xspace} \newcommand{\redto}{\ensuremath{\preceq_P}} %% Primitives \newcommand{\ZK}{\textsf{ZK}\xspace} \newcommand{\NIZK}{\textsf{NIZK}\xspace} \newcommand{\PKE}{\textsf{PKE}\xspace} \newcommand{\OT}{\textsf{OT}\xspace} %% Common \newcommand{\Setup}{\ensuremath{\mathsf{Setup}}\xspace} \newcommand{\Keygen}{\ensuremath{\mathsf{Keygen}}\xspace} \newcommand{\param}{\ensuremath{\mathsf{par}}\xspace} %% ZK \newcommand{\trans}{\textsf{trans}\xspace} \newcommand{\cmt}{\textsf{cmt}\xspace} \newcommand{\com}{\ensuremath{\mathsf{com}}\xspace} \newcommand{\chall}{\textsf{chall}\xspace} \newcommand{\rsp}{\textsf{response}\xspace} \newcommand{\extr}{\textsf{extract}\xspace} \newcommand{\Commit}{\ensuremath{\mathsf{Commit}}\xspace} \newcommand{\Verify}{\ensuremath{\mathsf{Verify}}\xspace} \newcommand{\open}{\ensuremath{\mathsf{open}}\xspace} \newcommand{\Open}{\textsf{Open}\xspace} % Assumptions/Problems %% Pairings \newcommand{\DLP}{\textsf{DLP}\xspace} \newcommand{\DDH}{\textsf{DDH}\xspace} \newcommand{\SXDH}{\textsf{SXDH}\xspace} \newcommand{\SDL}{\textsf{SDL}\xspace} %% Lattices \newcommand{\ISIS}{\ensuremath{\mathsf{ISIS}}\xspace} \newcommand{\SIS}{\ensuremath{\mathsf{SIS}}\xspace} \newcommand{\LWE}{\ensuremath{\mathsf{LWE}}\xspace} \newcommand{\SIVP}{\ensuremath{\textsf{SIVP}_\gamma}\xspace} %% Codes \newcommand{\SDP}{\ensuremath{\mathsf{SDP}}\xspace} %% Models \newcommand{\UC}{\textsf{UC}\xspace} \newcommand{\ROM}{\textsf{ROM}\xspace} %% Experience/Games \newcommand{\Exp}[2]{\ensuremath{\mathsf{Exp}^{#1}_{#2}}\xspace} \newcommand{\advantage}[2]{\ensuremath{\mathrm{Advt}^{#1}_{#2}}\xspace} \newcommand{\oracle}[2]{\ensuremath{\mathcal O^{\,\mathsf{#1}(\,#2\,)}_{}}\xspace} \newcommand{\ensemble}[1]{\ensuremath{\mathcal S_{\mathsf{#1}}^{}}\xspace} % Operators \newcommand{\sample}{\xspace\ensuremath{\hookleftarrow}\xspace} \newcommand{\bigO}{\ensuremath{\mathcal{O}}} \newcommand{\softO}{\ensuremath{\tilde{\mathcal{O}}}} \newcommand{\Span}{\ensuremath{\mathrm{span}}\xspace} % Sets %% Usual sets \newcommand{\FF}{\xspace\ensuremath{\mathbb{F}}\xspace} \newcommand{\RR}{\xspace\ensuremath{\mathbb{R}}\xspace} \newcommand{\ZZ}{\xspace\ensuremath{\mathbb{Z}}\xspace} \newcommand{\NN}{\xspace\ensuremath{\mathbb{N}}\xspace} \newcommand{\CC}{\xspace\ensuremath{\mathbb{C}}\xspace} \newcommand{\QQ}{\xspace\ensuremath{\mathbb{Q}}\xspace} \newcommand{\Zq}{\xspace\ensuremath{\mathbb{Z}_q}\xspace} \newcommand{\bit}{\xspace\ensuremath{\{0,1\}}\xspace} \newcommand{\nbit}{\xspace\ensuremath{\{-1,0,1\}}\xspace} \newcommand{\permutations}{\ensuremath{\mathfrak S}\xspace} %% Pairings \newcommand{\Zp}{\xspace\ensuremath{\mathbb{Z}_p}\xspace} \newcommand{\GG}{\xspace\ensuremath{\mathbb{G}}\xspace} \newcommand{\Gh}{\xspace\ensuremath{\widehat{\mathbb{G}}}\xspace} \newcommand{\GT}{\xspace\ensuremath{\mathbb{G}_T}\xspace} \newcommand{\atob}[2]{\xspace\ensuremath{\{#1,\ldots,\#2\}}} % Other \newcommand{\TODO}{\textbf{\textcolor{red}{TODO}}}