Files
masterthesis/presentation/presentation.tex
2023-06-28 22:32:07 +02:00

1038 lines
40 KiB
TeX

\documentclass{beamer}
%Information to be included in the title page:
\title{A formal Security Analysis of the EdDSA Signature Scheme}
\author{Aaron Kaiser}
\institute{Fakultät für Informatik}
\date{2023}
\usetheme[alternativetitlepage=bild]{Rub}
\titlegraphic{curve.png}
\usepackage[noend]{algpseudocodex}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{multicol}
\usepackage{tabularx}
\usepackage[parfill]{parskip}
\usepackage{float}
\usepackage{xspace}
\usepackage{mathtools}
\usepackage[normalem]{ulem}
\include{../thesis/macros}
\begin{document}
\frame{\titlepage}
\begin{frame}
\frametitle{Outline}
\begin{enumerate}
\item Overview
\item Motivation
\item Related work
\item Preliminaries
\item The EdDSA signature scheme
\item Singe- and multi-user Proofs for EdDSA
\item GGM proofs of the underlying assumptions
\item Concrete security
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Overview}
\framesubtitle{What is this thesis about?}
\begin{enumerate}
\item Providing a tight security proof for the EdDSA signature scheme
\item Showing the security level of concrete instantiations of EdDSA
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Overview}
\framesubtitle{Results}
Results of this thesis:
\begin{enumerate}
\item EdDSA is tightly secure under Ed-DLog assumption in the single-user setting
\item EdDSA is tightly secure under the N-Ed-DLog-Reveal assumption in the multi-user setting
\item \textcolor{gray}{Ed25519 provides 125/124 bits of security in the single/multi-user setting}
\item \textcolor{gray}{Ed448 provides 221/220 bits of security in the single/multi-user setting}
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Overview}
\framesubtitle{Results}
Results of this thesis:
\begin{enumerate}
\item EdDSA is tightly secure under Ed-DLog assumption in the single-user setting
\item EdDSA is tightly secure under the N-Ed-DLog-Reveal assumption in the multi-user setting
\item Ed25519 provides 125/124 bits of security in the single/multi-user setting
\item Ed448 provides 221/220 bits of security in the single/multi-user setting
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Motivation}
EdDSA is everywhere...
\includegraphics[scale=0.9]{images/signal.png}
\includegraphics[scale=0.1]{images/whatsapp.png}
\includegraphics[scale=0.1]{images/wireguard.png}
\includegraphics[scale=0.05]{images/SSH.png}
\includegraphics[scale=0.1]{images/FIDO_logo_black_RGB.png}
\end{frame}
\begin{frame}
\frametitle{Motivation}
No existing tight security proof since publication in 2015
\end{frame}
\begin{frame}
\frametitle{Related Work}
\begin{itemize}
\item Brendel et al. 2021 \cite{SP:BCJZ21}: First security proof for Ed25519
\item Chalkias et al. 2020 \cite{EPRINT:ChaGarNik20}: Analysis of different EdDSA implementations
\item Fuchsbauer et al. 2020 \cite{EC:FucPloSeu20}: Tight security proof for Schnorr Signatures using AGM
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Security Notions}
\framesubtitle{Digital Signature Scheme}
\begin{definition}
A digital signature scheme SIG = (\keygen,\sign,\verify) is a tuple of algorithms.
\begin{itemize}
\item \textbf{\keygen}: The key generation algorithm, which upon receiving the security parameter as input outputs a matching tuple of public and private key.
\item \textbf{\sign}: The signature algorithm, which upon receiving a secret key and a message, outputs a signature for that message.
\item \textbf{\verify}: The verification algorithm, which upon receiving a public key, a message and a signature, outputs $1$ if the signature gets accepted and $0$ otherwise.
\end{itemize}
For the digital signature scheme to be correct, it is required that $\forall (\pubkey, \privkey) \in \keygen(par), \m \in \messagespace, \signature \in \sign(\privkey, \m): \verify(\pubkey, \m, \signature) = 1$
\end{definition}
\end{frame}
\begin{frame}
\frametitle{Security Notions}
\framesubtitle{$N\text{-MU-EUF-CMA}$}
\begin{figure}[h]
\hrule
\normalsize
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\game $N\text{-MU-EUF-CMA}$}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $(\pubkey_i, \privkey_i) \randomassign \keygen(1^\secparamter)$
\State $(\m^*, \signature^*) \randomassign \adversary{A}^{\sign(\inp, \inp)}(\pubkey_1, \pubkey_2, ..., \pubkey_n)$
\State \Return $\exists i \in \{1,2,...,N\}: \verify(\pubkey_i, \m^*, \signature^*) \test 1 \wedge (\pubkey_i, \m^*) \notin M$
\end{algorithmic}
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\oracle \Osign($i \in \{1,2,...,n\}$, $\m \in \messagespace$)}
\State $\signature \randomassign \sign(\privkey_i, \m)$
\State $M \assign M \cup \{(\pubkey_i, \m)\}$
\State \Return $\signature$
\end{algorithmic}
\hrule
\caption{$N$-MU-EUF-CMA Security Game}
\label{game:mu-euf-cma}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Security Notions}
\framesubtitle{$N\text{-MU-SUF-CMA}$}
\begin{figure}[h]
\hrule
\normalsize
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\game $N\text{-MU-SUF-CMA}$}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $(\pubkey_i, \privkey_i) \randomassign \keygen(1^\secparamter)$
\State $(\m^*, \signature^*) \randomassign \adversary{A}^{\sign(\inp, \inp)}(\pubkey_1, \pubkey_2, ..., \pubkey_n)$
\State \Return $\exists i \in \{1,2,...,N\}: \verify(\pubkey_i, \m^*, \signature^*) \test 1 \wedge (\pubkey_i, \m^*, \signature^*) \notin M$
\end{algorithmic}
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\oracle \Osign($i \in \{1,2,...,n\}$, $\m \in \messagespace$)}
\State $\signature \randomassign \sign(\privkey_i, \m)$
\State $M \assign M \cup \{(\pubkey_i, \m, \signature)\}$
\State \Return $\signature$
\end{algorithmic}
\hrule
\caption{$N$-MU-SUF-CMA Security Game}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Security Notions}
\framesubtitle{$N\text{-MU-EUF-NMA}$}
\begin{figure}[h]
\hrule
\vspace{1mm}
\begin{algorithmic}
\State \underline{\game $N\text{-MU-EUF-NMA}$}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $(\pubkey_i, \privkey_i) \randomassign \keygen(1^\secparamter)$
\State $(\m^*, \signature^*) \randomassign \adversary{A}(\pubkey_1, \pubkey_2, \pubkey_n)$
\State \Return $\exists i \in \{1,2,...,N\}: \verify(\pubkey_i, \m^*, \signature^*) \test 1$
\end{algorithmic}
\hrule
\caption{$N$-MU-EUF-NMA Security Game}
\label{game:mu-uf-nma}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Random Oracle Model (ROM)}
\begin{itemize}
\item Hash functions are modeled as public oracle
\item Oracle behaves like a true random function
\item Challenger can observe all inputs
\item Challenger can program the random oracle
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Algebraic Group Model (AGM)}
\begin{itemize}
\item Adversary has to provide a representation of all group elements
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Generic Group Model (GGM)}
\begin{itemize}
\item GGM hides all group-specific representation of group elements
\item Adversary works with random labels instead of actual group elements
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Standards}
\begin{itemize}
\item Paper by Bernstein et al. \cite{CHES:BDLSY11,EPRINT:BJLSY15}
\item RFC 8032 \cite{josefsson_edwards-curve_2017}
\item FIPS 186-5 \cite{moody_digital_2023}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{table}
\small
\begin{tabularx}{\textwidth}{@{}lX@{}}
\textbf{Parameter} & \textbf{Description} \\
\hline
$q$ & An odd prime power $q$. EdDSA uses an elliptic curve over the finite field $\mathbb{F}_{q}$. \\
$b$ & An integer $b$ with $2^{b-1} > q$. The bit size of encoded points on the twisted Edwards curve. \\
$Enc(\inp)$ & A $(b-1)$-bit encoding of elements in the underlying finite field. \\
$H(\inp)$ & A cryptographic hash function producing $2b$-bit output. \\
$c$ & The cofactor of the twisted Edwards curve. \\
$n$ & The number of bits used for the secret scalar of the public key. \\
$a, d$ & The curve parameter of the twisted Edwards curve. \\
$\groupelement{B}$ & A generator point of the prime order subgroup of $E$. \\
$L$ & The order of the prime order subgroup. \\
$H'(\inp)$ & A prehash function applied to the message prior to applying the \sign or \verify procedure.
\end{tabularx}
\caption{Parameter of the EdDSA signature scheme}
\end{table}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{table}
\small
\begin{tabularx}{\textwidth}{@{}lX@{}}
\textbf{Parameter} & \textbf{Description} \\
\hline
$b$ & An integer $b$ with $2^{b-1} > q$. The bit size of encoded points on the twisted Edwards curve. \\
$H(\inp)$ & A cryptographic hash function producing $2b$-bit output. \\
$c$ & The cofactor of the twisted Edwards curve. \\
$n$ & The number of bits used for the secret scalar of the public key. \\
$\groupelement{B}$ & A generator point of the prime order subgroup of $E$. \\
$L$ & The order of the prime order subgroup. \\
\end{tabularx}
\caption{Parameter of the EdDSA signature scheme}
\end{table}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{algorithmic}
\State \underline{\textbf{\keygen}}
\State $k \randomsample \{0,1\}^b$
\State $(h_0, h_1, ..., h_{2b-1}) \assign H(k)$
\State $s \leftarrow 2^n + \sum_{i=c}^{n-1} 2^i h_i$
\State $A \assign sB$
\State \Return (\encoded{$A$}, $k$)
\end{algorithmic}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{algorithmic}
\Statex \underline{\textbf{\sign}($k$, $m$)}
\State $(h_0, h_1, ..., h_{2b-1}) \assign H(k)$
\State $s \leftarrow 2^n + \sum_{i=c}^{n-1} 2^i h_i$
\State $(r'_0, r'_1, ..., r'_{2b-1}) \assign H(h_b | ... | h_{2b-1} | m)$
\State $r \assign \sum_{i=0}^{2b-1} 2^i r'_i$
\State $R \assign rB$
\State $\ch \assign H(\encoded{R} | \encoded{A} | m)$
\State $S \assign (r + \ch \cdot s) \pmod L$
\State \Return $\sigma \assign (\encoded{R}, S)$
\end{algorithmic}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{algorithmic}
\Statex \underline{\textbf{\sign}($k$, $m$)}
\BeginBox[draw=red]
\State $(h_0, h_1, ..., h_{2b-1}) \assign H(k)$
\Comment{Recover secret scalar}
\State $s \leftarrow 2^n + \sum_{i=c}^{n-1} 2^i h_i$
\EndBox
\State $(r'_0, r'_1, ..., r'_{2b-1}) \assign H(h_b | ... | h_{2b-1} | m)$
\State $r \assign \sum_{i=0}^{2b-1} 2^i r'_i$
\State $R \assign rB$
\State $\ch \assign H(\encoded{R} | \encoded{A} | m)$
\State $S \assign (r + \ch \cdot s) \pmod L$
\State \Return $\sigma \assign (\encoded{R}, S)$
\end{algorithmic}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{algorithmic}
\Statex \underline{\textbf{\sign}($k$, $m$)}
\State $(h_0, h_1, ..., h_{2b-1}) \assign H(k)$
\State $s \leftarrow 2^n + \sum_{i=c}^{n-1} 2^i h_i$
\BeginBox[draw=red]
\State $(r'_0, r'_1, ..., r'_{2b-1}) \assign H(h_b | ... | h_{2b-1} | m)$
\Comment{Calculate commitment}
\State $r \assign \sum_{i=0}^{2b-1} 2^i r'_i$
\State $R \assign rB$
\EndBox
\State $\ch \assign H(\encoded{R} | \encoded{A} | m)$
\State $S \assign (r + \ch \cdot s) \pmod L$
\State \Return $\sigma \assign (\encoded{R}, S)$
\end{algorithmic}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{algorithmic}
\Statex \underline{\textbf{\sign}($k$, $m$)}
\State $(h_0, h_1, ..., h_{2b-1}) \assign H(k)$
\State $s \leftarrow 2^n + \sum_{i=c}^{n-1} 2^i h_i$
\State $(r'_0, r'_1, ..., r'_{2b-1}) \assign H(h_b | ... | h_{2b-1} | m)$
\State $r \assign \sum_{i=0}^{2b-1} 2^i r'_i$
\State $R \assign rB$
\BeginBox[draw=red]
\State $\ch \assign H(\encoded{R} | \encoded{A} | m)$
\Comment{Calculate challenge}
\EndBox
\State $S \assign (r + \ch \cdot s) \pmod L$
\State \Return $\sigma \assign (\encoded{R}, S)$
\end{algorithmic}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{algorithmic}
\Statex \underline{\textbf{\sign}($k$, $m$)}
\State $(h_0, h_1, ..., h_{2b-1}) \assign H(k)$
\State $s \leftarrow 2^n + \sum_{i=c}^{n-1} 2^i h_i$
\State $(r'_0, r'_1, ..., r'_{2b-1}) \assign H(h_b | ... | h_{2b-1} | m)$
\State $r \assign \sum_{i=0}^{2b-1} 2^i r'_i$
\State $R \assign rB$
\State $\ch \assign H(\encoded{R} | \encoded{A} | m)$
\BeginBox[draw=red]
\State $S \assign (r + \ch \cdot s) \pmod L$
\Comment{Calculate response}
\EndBox
\State \Return $\sigma \assign (\encoded{R}, S)$
\end{algorithmic}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\begin{algorithmic}
\Statex \underline{\textbf{\verify}($\encoded{A}, \sigma \assign (\encoded{R}, S), m$)}
\State \Return $2^c SB \test 2^c R + 2^c H(\encoded{R} | \encoded{A} | m)A$
\end{algorithmic}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\framesubtitle{Signature Parsing}
\begin{itemize}
\item Strict parsing: Reject all bitstring representations of $S > L$
\item Lax parsing: Allow all bitstring representations of $S$ and work with $S \pmod L$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{The EdDSA Signature Scheme}
\framesubtitle{Encoding of Group Elements}
\begin{itemize}
\item Decoding function ensures that point is on curve
\item Multiple bitstrings might map to the same point on the curve
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{The EdDSA' Signature Scheme}
\begin{figure}
\hrule
\begin{multicols}{2}
\scriptsize
\begin{algorithmic}
\Statex \underline{\textbf{\keygen}}
\State $(h_0, h_1, ..., h_{2b-1}) \randomsample \{0,1\}^{2b}$
\State $s \leftarrow 2^n + \sum_{i=c}^{n-1} 2^i h_i$
\State $A \assign sB$
\State \Return (\encoded{$A$}, $k \assign (s, h_b | ... | h_{2b-1})$)
\end{algorithmic}
\columnbreak
\begin{algorithmic}
\Statex \underline{\textbf{\sign}($k \assign (s, h_b | ... | h_{2b-1})$, $m$)}
\State $(r'_0, r'_1, ..., r'_{2b-1}) \assign RF(h_b | ... | h_{2b-1} | m)$
\State $r \assign \sum_{i=0}^{2b-1} 2^i r'_i$
\State $R \assign rB$
\State $S \assign (r + sH(\encoded{R} | \encoded{A} | m)) \pmod L$
\State \Return $\sigma \assign (\encoded{R}, S)$
\end{algorithmic}
\end{multicols}
\hrule
\caption{Generic description of the algorithms \keygen, \sign and \verify used by the EdDSA' signature scheme}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{The EdDSA' Signature Scheme}
\begin{theorem}
\label{theorem:adveddsa'}
Let $\adversary{A}$ be an adversary against SUF-CMA security of the EdDSA signature scheme. Then
\[ \advantage{\text{EdDSA'},\adversary{A}}{\cma}(\secparamter) \leq \advantage{\text{EdDSA},\adversary{A}}{\cma}(\secparamter) + \frac{2 (\hashqueries + 1)}{2^b}. \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\begin{theorem}[Security of EdDSA with strict parsing in the single-user setting]
\label{theorem:eddsa_sp_su}
Let $\adversary{A}$ be an adversary against the SUF-CMA security of EdDSA with strict parsing, making at most $\hashqueries$ hash queries and $\oraclequeries$ oracle queries, and $\group{G}$ be a group of prime order $L$. Then,
\[ \advantage{\group{G}, \adversary{A}}{\text{SUF-CMA}}(\secparamter) \leq \advantage{\curve, n, c, L, \adversary{B}}{\sdlog} + \frac{2(\hashqueries + 1)}{2^b} + \frac{\oraclequeries \hashqueries + \oraclequeries}{2^{-\log_2(\lceil \frac{2^{2b} - 1}{L} \rceil 2^{-2b})}} \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\begin{theorem}[Security of EdDSA with lax parsing in the single-user setting]
\label{theorem:eddsa_lp_su}
Let $\adversary{A}$ be an adversary against the EUF-CMA security of EdDSA with lax parsing, making at most $\hashqueries$ hash queries and $\oraclequeries$ oracle queries, and $\group{G}$ be a group of prime order $L$. Then,
\[ \advantage{\group{G}, \adversary{A}}{\text{EUF-CMA}}(\secparamter) \leq \advantage{\curve, n, c, L, \adversary{B}}{\sdlog} + \frac{2(\hashqueries + 1)}{2^b} + \frac{\oraclequeries \hashqueries + \oraclequeries}{2^{-\log_2(\lceil \frac{2^{2b} - 1}{L} \rceil 2^{-2b})}} \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\[ \sdlog \overset{\text{AGM}}{\Rightarrow} \igame \overset{\text{ROM}}{\Rightarrow} \text{EUF-NMA} \overset{\text{ROM}}{\Rightarrow} \cma_{\text{EdDSA sp}} \]
\[ \sdlog \overset{\text{AGM}}{\Rightarrow} \igame \overset{\text{ROM}}{\Rightarrow} \text{EUF-NMA} \overset{\text{ROM}}{\Rightarrow} \text{EUF-CMA}_{\text{EdDSA lp}} \]
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\framesubtitle{$\text{EUF-NMA} \overset{\text{ROM}}{\Rightarrow} \cma_{\text{EdDSA sp}} / \text{EUF-CMA}_{\text{EdDSA lp}}$}
\begin{theorem}[\cite{SP:BCJZ21}]
Let $\adversary{A}$ be an adversary against $\cma$, making at most $\hashqueries$ hash queries and $\oraclequeries$ oracle queries, and let $\group{G}$ be a group of prime order $L$. Then,
\[ \advantage{\group{G}, \adversary{A}}{\text{\cma}}(\secparamter) \leq \advantage{\group{G}, \adversary{B}}{\text{EUF-NMA}}(\secparamter) + \frac{\oraclequeries \hashqueries}{2^{-\log_2(\lceil \frac{2^{2b} - 1}{L} \rceil 2^{-2b})}}. \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\framesubtitle{$\text{EUF-NMA} \overset{\text{ROM}}{\Rightarrow} \cma_{\text{EdDSA sp}}$}
Proof Idea:
\begin{itemize}
\item Simulate signatures without private key
\begin{enumerate}
\item Choose commitment and solution uniformly at random
\item Calculate corresponding challenge
\item Program random oracle to output that challenge for the signature
\end{enumerate}
\item Forward random oracle quries to challenger
\item A valid signature forgery in the SUF-CMA game is also a valid forgery in the UF-NMA game
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\framesubtitle{$\igame \overset{\text{ROM}}{\Rightarrow} \text{EUF-NMA}$}
\begin{figure}[h]
\hrule
\begin{multicols}{2}
\normalsize
\begin{algorithmic}
\Statex \underline{\game \igame}
\State $a \randomsample \{2^{n-1}, 2^{n-1} + 2^c, ..., 2^n - 2^c\}$
\State $\groupelement{A} \assign a \groupelement{B}$
\State $s^* \randomsample \adversary{A}^{\ioracle(\inp)}(\groupelement{A})$
\State \Return $\exists (\groupelement{R}^*, \ch^*) \in \pset{Q}: \groupelement{R}^* = 2^c s^* \groupelement{B} - 2^c \ch^* \groupelement{A}$
\end{algorithmic}
\columnbreak
\begin{algorithmic}
\Statex \underline{\oracle \ioracle($\groupelement{R_i} \in \group{G}$)}
\State $\ch_i \randomsample \{0,1\}^{2b}$
\State $\pset{Q} \assign \pset{Q} \cup \{ (\groupelement{R}_i, \ch_i) \}$
\State \Return $\ch_i$
\end{algorithmic}
\end{multicols}
\hrule
\caption{\igame}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\framesubtitle{$\igame \overset{\text{ROM}}{\Rightarrow} \text{EUF-NMA}$}
\begin{theorem}
Let $\adversary{A}$ be an adversary against $\text{EUF-NMA}$. Then,
\[ \advantage{\group{G}, \adversary{A}}{\text{EUF-NMA}}(\secparamter) = \advantage{\group{G}, \adversary{B}}{\text{\igame}}(\secparamter). \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\framesubtitle{$\igame \overset{\text{ROM}}{\Rightarrow} \text{EUF-NMA}$}
Proof Idea:
\begin{itemize}
\item Forward random oracle quries to \ioracle oracle
\item A valid signature forgery provides a valid solution for \igame
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\framesubtitle{$\sdlog \overset{\text{AGM}}{\Rightarrow} \igame$}
\begin{figure}[h]
\hrule
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\game \sdlog}
\State $a \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\State $\groupelement{A} \assign a \groupelement{B}$
\State $a' \randomassign \adversary{A}(\groupelement{A})$
\State \Return $a \test a'$
\end{algorithmic}
\vspace{1mm}
\hrule
\caption{\sdlog}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\framesubtitle{$\sdlog \overset{\text{AGM}}{\Rightarrow} \igame$}
\begin{theorem}
\label{theorem:advgamez}
Let $\adversary{A}$ be an adversary against \igame with $\group{G}$ being a cyclic group of prime order $L$, making at most $\oraclequeries$ oracle queries. Then
\[ \advantage{\group{G},\adversary{A}}{\igame}(\secparamter) \leq \advantage{\group{G},\adversary{B}}{\sdlog}(\secparamter) + \frac{\oraclequeries}{2^{-\log_2(\lceil \frac{2^{2b} - 1}{L} \rceil 2^{-2b})}}. \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{Single-User Security}
\framesubtitle{$\sdlog \overset{\text{AGM}}{\Rightarrow} \igame$}
Proof Idea:
\begin{itemize}
\item Adversary provides a valid solution: $R^* = 2^c s^* \groupelement{B} - 2^c \ch^* \groupelement{A}$
\item Adversary also provides: $\groupelement{R^*} = r_1 \groupelement{B} + r_2 \groupelement{A}$
\item Rewrite equations: $A = (2^c s^* - r_1)(r_2 + 2^c \ch^*)^{-1} B$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Multi-User Security}
\begin{theorem}[Security of EdDSA with strict parsing in the multi-user setting]
Let $\adversary{A}$ be an adversary against the $N$-MU-SUF-CMA security of EdDSA with strict parsing, receiving $N$ public keys and making at most $\hashqueries$ hash queries and $\oraclequeries$ oracle queries, and $\group{G}$ be a group of prime order $L$. Then,
\[ \advantage{\group{G}, \adversary{A}}{\text{MU-SUF-CMA}}(\secparamter) \leq \advantage{\curve, n, c, L, \adversary{B}}{\somdl} + \frac{2(\hashqueries + 1)}{2^b} + \frac{\oraclequeries \hashqueries + \oraclequeries N}{2^{-\log_2(\lceil \frac{2^{2b} - 1}{L} \rceil 2^{-2b})}} \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{Multi-User Security}
\begin{theorem}[Security of EdDSA with lax parsing in the multi-user setting]
\label{theorem:eddsa_lp_mu}
Let $\adversary{A}$ be an adversary against the MU-EUF-CMA security of EdDSA with lax parsing, receiving $N$ public keys and making at most $\hashqueries$ hash queries and $\oraclequeries$ oracle queries, and $\group{G}$ be a group of prime order $L$. Then,
\[ \advantage{\group{G}, \adversary{A}}{\text{MU-EUF-CMA}}(\secparamter) \leq \advantage{\curve, n, c, L, \adversary{B}}{\somdl} + \frac{2(\hashqueries + 1)}{2^b} + \frac{\oraclequeries \hashqueries + \oraclequeries N}{2^{-\log_2(\lceil \frac{2^{2b} - 1}{L} \rceil 2^{-2b})}} \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{Multi-User Security}
\[ \somdl \overset{\text{AGM}}{\Rightarrow} \igame \overset{\text{ROM}}{\Rightarrow} \text{MU-EUF-NMA} \overset{\text{ROM}}{\Rightarrow} \text{MU-\cma}_{\text{EdDSA sp}} \]
\[ \somdl \overset{\text{AGM}}{\Rightarrow} \igame \overset{\text{ROM}}{\Rightarrow} \text{MU-EUF-NMA} \overset{\text{ROM}}{\Rightarrow} \text{MU-EUF-CMA}_{\text{EdDSA lp}} \]
\end{frame}
\begin{frame}
\frametitle{Multi-User Security}
\framesubtitle{$\somdl \overset{\text{AGM}}{\Rightarrow} \igame$}
\begin{figure}[h]
\hrule
\vspace{1mm}
\large
\begin{algorithmic}
\Statex \underline{\game \somdl}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\State \quad $\groupelement{A_i} \assign a_i \groupelement{B}$
\State $(a'_1, a'_2, ..., a'_N) \randomassign \adversary{A}^{DL(\inp)}(\groupelement{A_1}, \groupelement{A_2}, ..., \groupelement{A_N})$
\State \Return $(a_1, a_2, ..., a_N) \test (a'_1, a'_2, ..., a'_N)$
\end{algorithmic}
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\oracle $DL(j \in \{1,2,...,N\})$}
\Comment{max. one query}
\vspace{1mm}
\State \Return $\{a_i|i \in \{1,2,...,N\}\backslash \{j\}\}$
\end{algorithmic}
\vspace{1mm}
\hrule
\caption{\somdl}
\label{fig:somdl}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Multi-User Security}
\framesubtitle{$\somdl \overset{\text{AGM}}{\Rightarrow} \igame$}
Proof Idea:
\begin{itemize}
\item Similar to single-user proof
\item Query discrete logarithms of all but one challenge group element $A_i$
\item Construct a representation $\groupelement{R^*} = r_1 \groupelement{B} + r_2 \groupelement{A_i}$
\item Calculate discrete logarithm of $\groupelement{A_i}$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{\sdlog}
\begin{theorem}
\label{theorem:sdlog_ggm}
Let $n$ and $c$ be positive integers. Consider a twisted Edwards curve $\curve$ with a cofactor of $2^c$ and a generating set consisting of $(\groupelement{B}, \groupelement{E_2}, ..., \groupelement{E_m})$. Among these, let $\groupelement{B}$ be the generator of the largest prime order subgroup with an order of $L$. Let $\adversary{A}$ be a generic adversary making at most $\groupqueries$ group operations. Then,
\[ \advantage{\curve, n, c, L, \adversary{A}}{\sdlog} \leq \frac{(\groupqueries + 3)^2 + 1}{2^{n-1-c}}. \]
\end{theorem}
\end{frame}
\begin{frame}
\frametitle{\somdl}
\begin{theorem}
\label{theorem:somdl_ggm}
Let $n$, $N$, $c$ be positive integers. Consider a twisted Edwards curve $\curve$ with a cofactor of $2^c$ and a generating set consisting of $(\groupelement{B}, \groupelement{E_2}, ..., \groupelement{E_m})$. Among these, let $\groupelement{B}$ be the generator of the largest prime order subgroup with an order of $L$. Let $\adversary{A}$ be a generic adversary against \somdl receiving $N$ group elements as challenge and making at most $\groupqueries$ group operations queries. Then,
\[ \advantage{\curve, n, c, L, \adversary{A}}{\somdl} \leq \frac{2(\groupqueries + N + 2)^2 + 1}{2^{n-1-c}}. \]
\end{theorem}
\end{frame}
\begin{frame}
\begin{lemma}[Schwartz-Zippel lemma \cite{schwartz_fast_1980}]
Let $L$ be a prime number and $P \in \mathbb{F}_{L}[X_1, ..., X_n]$ be a non-zero polynomial of total degree $d \geq 0$ over a field $\mathbb{F}_{L}$. Let $S$ be a finite subset of $\mathbb{F}_{L}$ and let $x$ be selected uniformly at random from $S$. Then
\[ \Pr[P(x) = 0] \leq \frac{d}{|S|}. \]
\end{lemma}
\end{frame}
\begin{frame}
\begin{figure}[H]
\hrule
\tiny
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\game \textcolor{black}{$G_0$} / \textcolor{blue}{$G_1$} /\textcolor{red}{$G_2$} / \textcolor{green}{$G_3$} / \textcolor{orange}{$G_4$}}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\State \quad $\groupelement{A_i} \assign a_i \groupelement{B}$
\State $(a'_1, a'_2, ..., a'_N) \randomassign \adversary{A}^{GOp(\inp, \inp, \inp), DL(\inp)}(Enc(\groupelement{B}), Enc(\groupelement{E_2}), ..., Enc(\groupelement{E_m}), Enc(\groupelement{A_1}), ..., Enc(\groupelement{A_N}))$
\State \Return $(a_1, a_2, ..., a_N) \test (a'_1, a'_2, ..., a'_N)$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle DL($j \in \{1,2,...,N\}$)}
\State \Return $\{a_i | i \in \{1,2,...,N\} \backslash \{j\}\}$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle GOp($x, y \in \mathbf{S}, b \in \{0,1\}$)}
\State \quad \Return $Enc(\sum^{-1}[x] + (-1)^b \sum^{-1}[y])$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\State \underline{\textbf{Procedure} Enc($\groupelement{X} \in \curve$)}
\State \textbf{If } $\sum[\groupelement{X}] = \bot$ \textbf{ then}
\State \quad $\sum[\groupelement{X}] \randomsample \{0,1\}^{\lceil log_2(|\curve|) \rceil} \backslash \pset{S}$
\State \quad $\mathbf{S} \assign \pset{S} \cup \{\sum[X]\}$
\State \Return $\sum[\groupelement{X}]$
\end{algorithmic}
\hrule
\caption{$G_0$}
\end{figure}
\end{frame}
\begin{frame}
\begin{figure}[H]
\hrule
\tiny
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\game \textcolor{black}{$G_0$} / \textcolor{blue}{$G_1$} /\textcolor{red}{$G_2$} / \textcolor{green}{$G_3$} / \textcolor{orange}{$G_4$}}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\BeginBox[draw=blue]
\State \quad $\groupelement{A_i} \assign (a_i, 0, ..., 0)$
\EndBox
\State $(a'_1, a'_2, ..., a'_N) \randomassign \adversary{A}^{GOp(\inp, \inp, \inp), DL(\inp)}(Enc(\groupelement{B}), Enc(\groupelement{E_2}), ..., Enc(\groupelement{E_m}), Enc(\groupelement{A_1}), ..., Enc(\groupelement{A_N}))$
\State \Return $(a_1, a_2, ..., a_N) \test (a'_1, a'_2, ..., a'_N)$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle DL($j \in \{1,2,...,N\}$)}
\State \Return $\{a_i | i \in \{1,2,...,N\} \backslash \{j\}\}$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle GOp($x, y \in \mathbf{S}, b \in \{0,1\}$)}
\State \quad \Return $Enc(\sum^{-1}[x] + (-1)^b \sum^{-1}[y])$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\BeginBox[draw=blue]
\State \underline{\textbf{Procedure} Enc($\groupelement{X} \in \field{L} \times \field{ord(E_2)} \times ... \times \field{ord(E_n)}$)}
\EndBox
\State \textbf{If } $\sum[\groupelement{X}] = \bot$ \textbf{ then}
\State \quad $\sum[\groupelement{X}] \randomsample \{0,1\}^{\lceil log_2(|\curve|) \rceil} \backslash \pset{S}$
\State \quad $\mathbf{S} \assign \pset{S} \cup \{\sum[X]\}$
\State \Return $\sum[\groupelement{X}]$
\end{algorithmic}
\hrule
\caption{$G_1$}
\end{figure}
\end{frame}
\begin{frame}
\begin{figure}[H]
\hrule
\tiny
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\game \textcolor{black}{$G_0$} / \textcolor{blue}{$G_1$} /\textcolor{red}{$G_2$} / \textcolor{green}{$G_3$} / \textcolor{orange}{$G_4$}}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\BeginBox[draw=red]
\State \quad $P_i \assign Z_i$
\State \quad $\groupelement{A_i} \assign (P_i, 0, ..., 0)$
\EndBox
\State $(a'_1, a'_2, ..., a'_N) \randomassign \adversary{A}^{GOp(\inp, \inp, \inp), DL(\inp)}(Enc(\groupelement{B}), Enc(\groupelement{E_2}), ..., Enc(\groupelement{E_m}), Enc(\groupelement{A_1}), ..., Enc(\groupelement{A_N}))$
\State \Return $(a_1, a_2, ..., a_N) \test (a'_1, a'_2, ..., a'_N)$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle DL($j \in \{1,2,...,N\}$)}
\State \Return $\{a_i | i \in \{1,2,...,N\} \backslash \{j\}\}$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle GOp($x, y \in \mathbf{S}, b \in \{0,1\}$)}
\State \quad \Return $Enc(\sum^{-1}[x] + (-1)^b \sum^{-1}[y])$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\BeginBox[draw=red]
\State \underline{\textbf{Procedure} Enc($\groupelement{X} \in \field{L}[Z_1,...,Z_N] \times \field{ord(E_2)} \times ... \times \field{ord(E_n)}$)}
\State Let $X = (P, x_2, ..., x_n)$
\State $\pset{P} = \pset{P} \cup \{P\}$
\State $X \assign (P(\overset{\rightharpoonup}{a}), x_2, ..., x_n)$
\EndBox
\State \textbf{If } $\sum[\groupelement{X}] = \bot$ \textbf{ then}
\State \quad $\sum[\groupelement{X}] \randomsample \{0,1\}^{\lceil log_2(|\curve|) \rceil} \backslash \pset{S}$
\State \quad $\mathbf{S} \assign \pset{S} \cup \{\sum[X]\}$
\State \Return $\sum[\groupelement{X}]$
\end{algorithmic}
\hrule
\caption{$G_2$}
\end{figure}
\end{frame}
\begin{frame}
\begin{figure}[H]
\hrule
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\oracle DL($j \in \{1,2,...,N\}$)}
\BeginBox[draw=green]
\State \textbf{for } $P_i \in \pset{P}$
\Comment{$G_3$}
\State \quad Let $P_i = R_i + S_i, R_i \in \field{L}[Z_1,...,Z_{j-1},Z_{j+1},...,Z_N], S_i \in \field{L}[Z_j]$
\State \quad $\pset{R} \assign \pset{R} \cup \{R_i\}$
\State \textbf{if } $\exists R_i, R_j \in \pset{R}: R_i(\overset{\rightharpoonup}{a}) = R_j(\overset{\rightharpoonup}{a}) \wedge R_i \neq R_j$
\State \quad $bad_1 \assign true$
\BeginBox[draw=orange,dashed]
\State \quad abort
\Comment{$G_4$}
\EndBox
\State \textbf{for } $P_i \in \pset{P}$
\State \quad $\sum[R_i(\overset{\rightharpoonup}{a}) + S_i] = \sum[P_i]$
\State \quad $P_i \assign R_i(\overset{\rightharpoonup}{a}) + S_i$
\EndBox
\State \Return $\{a_i | i \in \{1,2,...,N\} \backslash \{j\}\}$
\end{algorithmic}
\vspace{2mm}
\hrule
\caption{$G_3 - G_4$}
\end{figure}
\end{frame}
\begin{frame}
\begin{figure}[H]
\hrule
\tiny
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\game \textcolor{black}{$G_4$} / \textcolor{blue}{$G_5$} /\textcolor{red}{$G_6$} / \textcolor{green}{$G_7$} / \textcolor{orange}{$G_8$}}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\State \quad $P_i \assign Z_i$
\State \quad $\groupelement{A_i} \assign (P_i, 0, ..., 0)$
\State $(a'_1, a'_2, ..., a'_N) \randomassign \adversary{A}^{GOp(\inp, \inp, \inp), DL(\inp)}(Enc(\groupelement{B}), Enc(\groupelement{E_2}), ..., Enc(\groupelement{E_m}), Enc(\groupelement{A_1}), ..., Enc(\groupelement{A_N}))$
\BeginBox[draw=blue]
\State \textbf{if } $\exists P_i, P_j \in \pset{P}: P_i(\overset{\rightharpoonup}{a}) = P_j(\overset{\rightharpoonup}{a}) \wedge P_i \neq P_j$
\Comment{$G_5$}
\State \quad $bad_2 \assign true$
\BeginBox[draw=red,dashed]
\State \quad abort
\Comment{$G_6$}
\EndBox
\EndBox
\State \Return $(a_1, a_2, ..., a_N) \test (a'_1, a'_2, ..., a'_N)$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle DL($j \in \{1,2,...,N\}$)}
\State ...
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle GOp($x, y \in \mathbf{S}, b \in \{0,1\}$)}
\State \quad \Return $Enc(\sum^{-1}[x] + (-1)^b \sum^{-1}[y])$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\State \underline{\textbf{Procedure} Enc($\groupelement{X} \in \field{L}[Z_1,...,Z_N] \times \field{ord(E_2)} \times ... \times \field{ord(E_n)}$)}
\State Let $X = (P, x_2, ..., x_n)$
\State $\pset{P} = \pset{P} \cup \{P\}$
\State $X \assign (P(\overset{\rightharpoonup}{a}), x_2, ..., x_n)$
\State \textbf{If } $\sum[\groupelement{X}] = \bot$ \textbf{ then}
\State \quad $\sum[\groupelement{X}] \randomsample \{0,1\}^{\lceil log_2(|\curve|) \rceil} \backslash \pset{S}$
\State \quad $\mathbf{S} \assign \pset{S} \cup \{\sum[X]\}$
\State \Return $\sum[\groupelement{X}]$
\end{algorithmic}
\hrule
\caption{$G_5 - G_6$}
\end{figure}
\end{frame}
\begin{frame}
\begin{figure}[H]
\hrule
\tiny
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\game \textcolor{black}{$G_4$} / \textcolor{blue}{$G_5$} /\textcolor{red}{$G_6$} / \textcolor{green}{$G_7$} / \textcolor{orange}{$G_8$}}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad $a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\State \quad $P_i \assign Z_i$
\State \quad $\groupelement{A_i} \assign (P_i, 0, ..., 0)$
\State $(a'_1, a'_2, ..., a'_N) \randomassign \adversary{A}^{GOp(\inp, \inp, \inp), DL(\inp)}(Enc(\groupelement{B}), Enc(\groupelement{E_2}), ..., Enc(\groupelement{E_m}), Enc(\groupelement{A_1}), ..., Enc(\groupelement{A_N}))$
\State \textbf{if } $\exists P_i, P_j \in \pset{P}: P_i(\overset{\rightharpoonup}{a}) = P_j(\overset{\rightharpoonup}{a}) \wedge P_i \neq P_j$
\State \quad $bad_2 \assign true$
\State \quad abort
\State \Return $(a_1, a_2, ..., a_N) \test (a'_1, a'_2, ..., a'_N)$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle DL($j \in \{1,2,...,N\}$)}
\State ...
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle GOp($x, y \in \mathbf{S}, b \in \{0,1\}$)}
\State \quad \Return $Enc(\sum^{-1}[x] + (-1)^b \sum^{-1}[y])$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\State \underline{\textbf{Procedure} Enc($\groupelement{X} \in \field{L}[Z_1,...,Z_N] \times \field{ord(E_2)} \times ... \times \field{ord(E_n)}$)}
\State Let $X = (P, x_2, ..., x_n)$
\State $\pset{P} = \pset{P} \cup \{P\}$
\State \sout{$X \assign (P(\overset{\rightharpoonup}{a}), x_2, ..., x_n)$}
\State \textbf{If } $\sum[\groupelement{X}] = \bot$ \textbf{ then}
\State \quad $\sum[\groupelement{X}] \randomsample \{0,1\}^{\lceil log_2(|\curve|) \rceil} \backslash \pset{S}$
\State \quad $\mathbf{S} \assign \pset{S} \cup \{\sum[X]\}$
\State \Return $\sum[\groupelement{X}]$
\end{algorithmic}
\hrule
\caption{$G_7$}
\end{figure}
\end{frame}
\begin{frame}
\begin{figure}[H]
\hrule
\tiny
\vspace{2mm}
\begin{algorithmic}
\Statex \underline{\game \textcolor{black}{$G_4$} / \textcolor{blue}{$G_5$} /\textcolor{red}{$G_6$} / \textcolor{green}{$G_7$} / \textcolor{orange}{$G_8$}}
\State \textbf{for} $i \in \{1,2,...,N\}$
\State \quad \sout{$a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$}
\State \quad $P_i \assign Z_i$
\State \quad $\groupelement{A_i} \assign (P_i, 0, ..., 0)$
\State $(a'_1, a'_2, ..., a'_N) \randomassign \adversary{A}^{GOp(\inp, \inp, \inp), DL(\inp)}(Enc(\groupelement{B}), Enc(\groupelement{E_2}), ..., Enc(\groupelement{E_m}), Enc(\groupelement{A_1}), ..., Enc(\groupelement{A_N}))$
\BeginBox[draw=orange]
\State \textbf{for } $i \in \{1,2,...,N\}$
\State \quad \textbf{if } $a_i = \bot$
\State \qquad $a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\EndBox
\State \textbf{if } $\exists P_i, P_j \in \pset{P}: P_i(\overset{\rightharpoonup}{a}) = P_j(\overset{\rightharpoonup}{a}) \wedge P_i \neq P_j$
\State \quad $bad_2 \assign true$
\State \quad abort
\State \Return $(a_1, a_2, ..., a_N) \test (a'_1, a'_2, ..., a'_N)$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle DL($j \in \{1,2,...,N\}$)}
\BeginBox[draw=orange]
\State \textbf{for } $i \in \{1,2,...,N\} \backslash \{j\}$
\State \quad $a_i \randomsample \{ 2^{n-1}, 2^{n-1} + 2^c, ..., 2^{n} - 2^c \}$
\EndBox
\State ...
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\Statex \underline{\oracle GOp($x, y \in \mathbf{S}, b \in \{0,1\}$)}
\State \quad \Return $Enc(\sum^{-1}[x] + (-1)^b \sum^{-1}[y])$
\end{algorithmic}
\vspace{1mm}
\begin{algorithmic}
\State \underline{\textbf{Procedure} Enc($\groupelement{X} \in \field{L}[Z_1,...,Z_N] \times \field{ord(E_2)} \times ... \times \field{ord(E_n)}$)}
\State ...
\end{algorithmic}
\hrule
\caption{$G_8$}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Concrete Security}
\begin{definition}[Success Ratio \cite{AC:HofJagKil11}]
Let adversary $\adversary{A}$ be an adversary with runtime Time($\adversary{A}$) and advantage $\advantage{\adversary{A}}{}$. Its success ratio is defined as following:
\[ SR(\adversary{A}) = \frac{\advantage{\adversary{A}}{}}{Time(\adversary{A})}. \]
\end{definition}
\begin{definition}[Bit Security \cite{AC:HofJagKil11}]
A cryptographic scheme has $\kappa$ bit security if the success ratio of all adversaries with a runtime $Time(\adversary{A}) \leq 2^\kappa$ is upper bounded by $2^{-\kappa}$.
\end{definition}
\end{frame}
\begin{frame}
\frametitle{Concrete Security}
\framesubtitle{Ed25519}
\begin{align*}
SR(\adversary{A}) &\leq \frac{\advantage{\group{G}, \adversary{A}}{\text{SUF-CMA}}(\secparamter)}{Time(\adversary{A})} \\
&\leq \frac{\advantage{\curve, n, c, L, \adversary{B}}{\sdlog} + \frac{2(\hashqueries + 1)}{2^b} + \frac{\oraclequeries \hashqueries + \oraclequeries}{2^{-\log_2(\lceil \frac{2^{2b} - 1}{L} \rceil 2^{-2b})}}}{Time(\adversary{A})} \\
&\leq \frac{\frac{(\groupqueries + 3)^2 + 1}{2^{n-1-c}} + \frac{2(\hashqueries + 1)}{2^b} + \frac{\oraclequeries \hashqueries + \oraclequeries}{2^{-\log_2(\lceil \frac{2^{2b} - 1}{L} \rceil 2^{-2b})}}}{Time(\adversary{A})} \\
&\leq \frac{(2^{125} + 3)^2 + 1}{2^{250} 2^{125}} + \frac{2(2^{125} + 1)}{2^{256} 2^{125}} + \frac{2^{64} 2^{125} + 2^{64}}{2^{252} 2^{125}} \\
&\approx 2^{-125} + 2^{-316} + 2^{-189} \\
&\approx 2^{-125}
\end{align*}
\end{frame}
\begin{frame}
\huge
\centering
\textbf{Thank you!}\\
Questions?
\end{frame}
\begin{frame}
\bibliographystyle{ieeetr}
\bibliography{../thesis/cryptobib/abbrev0,../thesis/cryptobib/crypto,../thesis/citation}
\end{frame}
\end{document}