commit e019ec800cb41d7626cf574c74573f78439f19b5
parent c69e6d219601aff965af2634bdadf1ab2507c537
Author: Pius Loosli <loosp2@bfh.ch>
Date: Mon, 30 Oct 2023 19:46:39 +0100
[doc] work on notation & definitions
Diffstat:
1 file changed, 28 insertions(+), 14 deletions(-)
diff --git a/doc/flows/main.tex b/doc/flows/main.tex
@@ -19,50 +19,64 @@
\begin{document}
\maketitle
-\section{Definitions}
+\newpage
+\section{Notation \& Definitions }
+\subsection{Notation}
+\begin{itemize}
+ \item $\langle a, b, ... \rangle$ : Pair/tuple
+\end{itemize}
+
+\subsection{Definitions}
\begin{itemize}
\item \textbf{Cryptographic Hash Function} $H(m) = h$ where $m$ is a message and $h$ the resulting hash.
+
+ \item \textbf{Blinding function} $blind(m, b)$ where $m$ is the message to blind and $b$ the blinding factor to apply. The blinding can be done with either the RSA blind signature scheme or the Blinded Clause-Schnorr signature scheme.
+
+ \item \textbf{Keygen} TODO
\item \textbf{Signing}
\begin{itemize}
\item \textbf{Classic/lightweight signing (e.g. EdDSA):}
\begin{align}
- \fbox{$\Sigma(m,k) = \sigma$}
+ \fbox{$\sigma := sign(m,k)$}
\end{align}
where $m$ is a message and $k$ is the private key used to sign the message.\\
Applications:
\begin{itemize}
- \item A charity signs a collection of $BKP$ before transfering them to the Donau to issue $Donation Receipt$s
- \item The Donau computes the \emph{donation statement} signature for a donor for a specific year
+ \item A charity signs a collection of \emph{BUDI-key-pair} before transfering them to the Donau to issue \emph{Donation Receipts}
+ \item The Donau computes the \emph{donation statement signature} for a donor for a specific year
\end{itemize}
\item \textbf{Blind signing(e.g. RSA/CS):}
\begin{align}
- \fbox{${B}(\overline{m},k) = \overline{\beta}$}
+ \fbox{$\overline{\beta} := blind\_sign(\overline{m},k)$}
\end{align}
where $\overline{m}$ is a blinded message and $k$ is the private key used to blind sign the message.\\
Application:
\begin{itemize}
- \item The Donau blind signs \emph{BUDI}s received from the charity with the private key matching the public key in the received \emph{BKP}
+ \item The Donau blind signs \emph{Blinded Unique Donor Identifier}s received from the charity with the private key matching the public key in the received \emph{BUDI-key-pair}
\end{itemize}
\end{itemize}
- \item \textbf{Donation Unit} $DU = (K_x^{pub}, K_x^{priv})$ where $x$ is the associated value (e.g. 2EUR):
+ \item \textbf{Donation Unit} $ = (K_x^{pub}, K_x^{priv})$ where $x$ is the associated value (e.g. 2EUR):
Smallest structure representing a donation confirmation unit.
Consists of a Public key $K_x^{pub}$ and Private key $K_x^{priv}$. Equivalent in Taler is "denomination".
- \item \textbf{Unique Donor Identifier} $m := \langle H(\texttt{TAXID}, \texttt{SALT}), \texttt{NONCE} \rangle$
+ \item \textbf{Donor Identifier} $i = H(\texttt{taxid}, \texttt{salt})$
+
+ \item \textbf{Unique Donor Identifier} $u := \langle i, \texttt{nonce} \rangle$
+ where \texttt{nonce} ...%TODO
- \item \textbf{Blinded Unique Donor Identifier} $\overline{m} := blind(m)$, blinded to protect the privacy of the donor
+ \item \textbf{Blinded Unique Donor Identifier} $\overline{u} := blind(u)$, blinded to protect the privacy of the donor
\begin{itemize}
- \item \textbf{BUDI-key-pair} $\mu := \langle \overline{m}, H(K_x^{pub}) \rangle$
+ \item \textbf{BUDI-key-pair} $\mu := \langle \overline{u}, H(K_x^{pub}) \rangle$ where $H(K_x^{pub})$ indicates which donation unit key should be used by the Donau to sign the resulting donation receipt. Thus, this hash carries the information about the exact value the final donation receipt should carry.
\end{itemize}
- \item \textbf{Donation Receipt} $DR = \langle UDI, \beta, H(K_x^{pub}) \rangle$ where $\beta$ is the unblinded signature: Sent to the Donau to get the donation Statement.
+ \item \textbf{Donation Receipt} $r = \langle u, \beta, H(K_x^{pub}) \rangle$ where $\beta$ is the unblinded signature: Sent to the Donau to get the donation Statement.
- \item \textbf{Donation Statement} $DS = \Sigma(\langle \texttt{AMOUNT}_{Total}, \texttt{YEAR}, H(\texttt{TAXID}, \texttt{SALT}) \rangle, D^{priv})$ where $D^{priv}$ is the private key from the Donau: Signature to attest the amount donated in a particular year by a specific donor.
+ \item \textbf{Donation Statement} $\sigma_s = sign(\langle i, \texttt{amount}_{total}, \texttt{year} \rangle, D^{priv})$ where $D^{priv}$ is the private key from the Donau: Signature to attest the amount donated in a particular year by a specific donor.
\end{itemize}
@@ -73,9 +87,9 @@
\begin{enumerate}
\item The Donau generates a public key $D^{pub}$ and private key $D^{priv}$.
- \item The Donau generates the donation units ($DU$'s) consisting of $K_x^{pub}$ and $K_x^{priv}$ where $x$ is the associated value.
+ \item The Donau generates the \emph{donation units} consisting of $K_x^{pub}$ and $K_x^{priv}$ where $x$ is the associated value.
- \item The charity generates the key pair $(C^{pub}, C^{priv})$ and downloads the $DU's$ from the donau.
+ \item The charity generates the key pair $(C^{pub}, C^{priv})$ and downloads the \emph{donation units} from the donau.
\item The Donau administrator registers the public key $C_{pub}$ and sets the yearly donation limit for the charities.
\end{enumerate}