commit a2647abcd5c56635580a0d0b3b4624ed8aea3d90
parent d66829f4eda977d19279f86613686ba0b3f0b75b
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
Date: Thu, 13 Jun 2024 13:02:44 +0200
thesis review
Diffstat:
4 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/doc/thesis/chapters/implementation/donau.tex b/doc/thesis/chapters/implementation/donau.tex
@@ -235,13 +235,13 @@ The last parameter of the URL is the salted hash of the donor tax ID.
"donau_pub": "63f62b7901311c2187bfcde6304d1..."
}
\end{lstlisting}
-\subsection{Donau Client}
+\subsection{Donau client}
The REST client removes some of the complexity of sending requests to the Donau
Server. It converts request parameters into JSON and parses JSON responses into
a usable C format. What the exact queries are and how they look like is already
described in chapter \label{rest_api}.
-\subsection{Donau Database}\label{donau_database}
+\subsection{Donau database}\label{donau_database}
The Donau database contains five tables as shown in figure
\ref{fig:db_physical_model}. The \texttt{donation\_units} and
\texttt{donau\_sign\_keys} table store the keys necessary for signing and
diff --git a/doc/thesis/chapters/protocol/definitions.tex b/doc/thesis/chapters/protocol/definitions.tex
@@ -140,12 +140,12 @@ The following are notations used in the following pages of this chapter.
\end{displaymath}
where $\beta$ is the unblinded signature sent to the Donau to get the \textbf{Donation Statement}.
- \item \textbf{Donation Statement}
+ \item \textbf{Donation Statement Signature}
\begin{displaymath}
\sigma := sign(\langle i, \Sigma{\vec{r}}, \texttt{Year}\rangle, D^{priv})
\end{displaymath}
- The \textbf{Donation Statement} is the signature over the sum (amount donated) of all the \textbf{Donation Receitps} $\Sigma{\vec{r}}$, that a donor has received from donating throughout the year where $i$ is the \textbf{Donor Identifier}.
+ The \textbf{Donation Statement Signature} is the signature over the sum (amount donated) of all the \textbf{Donation Receitps} $\Sigma{\vec{r}}$, that a donor has received from donating throughout the year where $i$ is the \textbf{Donor Identifier}. The \textbf{Donation Statement} itself includes all sign values and the signature itself.
- These signatures attest the amount donated in a particular year by a specific donor.
+ These \textbf{Donation Statement Signatures} attest the amount donated in a particular year by a specific donor.
\end{itemize}
diff --git a/doc/thesis/chapters/protocol/details.tex b/doc/thesis/chapters/protocol/details.tex
@@ -19,7 +19,7 @@
% \subsubsection{Donor donates to charity and transmits \textbf{Unique Donor identifiers} (future donation receipts)}
In order to make a donation the donor has to first download the \textbf{Donation Unit} public keys $K_x^{pub}$ from the Donau for the current year.
After that the donor generates his \textbf{Donor Identifier} which is a salted hash of his tax number.
-As each \textbf{Donation Unit} holds a specific value the donor has to splits the donation amount into a sum of \textbf{Donation Units} offered by the Donau.
+As each \textbf{Donation Unit} holds a specific value the donor has to split the donation amount into \textbf{Donation Units} offered by the Donau.
Donor Identifier $i$:
\begin{align*}
@@ -28,10 +28,10 @@ Donor Identifier $i$:
\emph{Example: With \textbf{Donation units} $\{1,2,4\}$ beeing available, and a donation of $7$, the donation amount is split into the valus $4$, $2$ and $1$.}
-For every \textbf{Donation unit} the donor generates a \textbf{Unique Donor Identifier} by adding a nonce to his \textbf{Donor Identifier} $i$.
-If one \textbf{Donation Unit} of the same value is present more than once, then there needs to be a \textbf{Unique Donor Identifier} for each of the \textbf{Donation Units}.
+For every \textbf{Donation Unit} the donor generates a \textbf{Unique Donor Identifier} by adding a nonce to his \textbf{Donor Identifier} $i$.
+If a \textbf{Donation Unit} of the same value has to be present more than once to represent the target sum, multiple \textbf{Unique Donor Identifiers} of same \textbf{Donation Unit} has to be generated.
-\emph{In our example, there are $3$ \textbf{Unique Donor Identifiers}: one per \textbf{Donation Unit}}.
+\emph{In our example, there are $3$ \textbf{Unique Donor Identifiers} needed to represent the value of $7$}.
Unique Donor Identifiers $u_1, u_2, u_3$:
\begin{align*}
@@ -74,7 +74,7 @@ These individual \textbf{BKP}'s are then put in an array of \textbf{BKP}'s $\vec
The donor sends the array of \textbf{BKP}'s $\vec{\mu}$ as well as the corresponding \textbf{payment} to the charity.
\subsection{Charity receives donation}\label{charity_receives_donation}
-Upon receiving the \textbf{BKP}'s $\vec{\mu}$ with the corresponding payment the charity has to verify that the amount requested (based on the \textbf{Donation Unit} public key hash $h(K_x^{pub})$) for signing is \textbf{lower or equal} to the effective amount of the donation.
+Upon receiving the \textbf{BKP}'s $\vec{\mu}$ with the corresponding payment the charity has to verify that the amount requested (based on the \textbf{Donation Unit} public key hash $h(K_x^{pub})$) is \textbf{lower or equal} to the effective amount of the donation.
If the payment was successful with the correct amount present, the charity signs (using EdDSA) a structure containing all unsigned \textbf{BKP}'s $\vec{\mu}$ coming from the donor.
@@ -93,7 +93,7 @@ Verifing the charity signature $\sigma_c$:
verify(\vec{\mu},\sigma_c, C^{pub})
\end{align*}
-Once verified the Donau has to check for any legal restrictions such as the yearly donation limit. Then the Donau increments the current amount of the donations received per year of the charity. This value is increased by the total amount of the \textbf{Blinded Unique Donor Identifier (BUDI)}'s, if the increment does not exceed the annual limit.
+Once verified the Donau has to check for any legal restrictions such as the yearly donation limit per charity. Then the Donau increments the current amount of the donations received per year of the charity. This value is increased by the total amount of the \textbf{Blinded Unique Donor Identifier (BUDI)}'s, if the increment does not exceed the annual limit.
After that the Donau blind signs all the \textbf{BUDI}'s using the \textbf{Donation Unit} private keys $K_x^{priv}$ matching the public keys used in the hash $h(K^{pub})$ which was inturn used in the \textbf{BKP}'s.
@@ -104,10 +104,10 @@ Donau blind signing Blinded Unique Donor Identifiers $\overline u_1, \overline u
\overline{\beta_3} = blind\_sign(\overline u_3, K_4^{priv})
\end{align*}
-The signatures $\overline{\beta_1}, \overline{\beta_2}, \overline{\beta_3}$ are then sent back to the charity which inturn forwards them to the donor. This is done out of simplicity as the charity has already a secure channel open with the donor, elmination the need to open another channel.
+The signatures $\overline{\beta_1}, \overline{\beta_2}, \overline{\beta_3}$ are then sent back to the charity which in turn forwards them to the donor. This is done out of simplicity as the charity has already a secure channel open with the donor, eliminating the need to open another channel.
\subsection{Donor receives donation receipt material}\label{donor_receives_donation_receipt}
-Upon receiving the Donau signatures $\overline{\beta_1}, \overline{\beta_2}, \overline{\beta_3}$ via the charity, the Donor checks if the blind signatures over the \textbf{Blinded Unique Donor Identifiers} $\overline u_1, \overline u_2, \overline u_3$ is valid:
+Upon receiving the Donau signatures $\overline{\beta_1}, \overline{\beta_2}, \overline{\beta_3}$ via the charity, the Donor checks if the blind signatures over the \textbf{Blinded Unique Donor Identifiers} $\overline u_1, \overline u_2, \overline u_3$ are valid:
\begin{align*}
verify\_blind(u_1,\overline{\beta_1}, K_1^{pub}) \\
verify\_blind(u_2,\overline{\beta_2}, K_2^{pub}) \\
@@ -152,14 +152,14 @@ Donau creates Donation Statement $\sigma_s$:
\end{align*}
\subsection{Donor sends final statement to a validator}\label{donor_sends_final_statement_to_a_validator}
-The Donor uses the \textbf{Donation Statement} $\sigma_s$ to create a QR-Code which then can be included in the tax declaration.
+The Donor uses the \textbf{Donation Statement} to create a QR-Code which then can be included in the tax declaration.
-Donor generates a \texttt{QR} code which contains the following:
+Donor generates a \texttt{QR} code which contains the \textbf{Donation Statement}:
\begin{align*}
\texttt{QR} = \langle \texttt{taxid}, \texttt{salt}, \texttt{year}, \texttt{amount}, \sigma_s \rangle
\end{align*}
-The validator at the tax office then scans the QR code and verifies the \textbf{Donation Statement} $\sigma_s$.
+The validator at the tax office then scans the QR code and verifies the \textbf{Donation Statement Signature} $\sigma_s$.
\begin{align*}
verify(\langle i, \texttt{amount}_{Total}, \texttt{year}) \rangle,\sigma_s, D^{pub})
\end{align*}
diff --git a/doc/thesis/thesis.pdf b/doc/thesis/thesis.pdf
Binary files differ.