donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit 3368b0cd5db37549a4637d5a9f342f8119f11edb
parent 0addb20f4af5d12633df53fa9719100328f1ef9a
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
Date:   Tue, 17 Oct 2023 13:21:11 +0200

[doc] some adjustments

Diffstat:
Mdoc/flows/main.tex | 37+++++++++++++++++++------------------
1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/doc/flows/main.tex b/doc/flows/main.tex @@ -21,21 +21,23 @@ \section{Definitions} \begin{itemize} - \item \textbf{Cryptographic Hash Function} $H$ + \item \textbf{Cryptographic Hash Function} $H(m)$ where $m$ is a message. - \item \textbf{Signing Function} $Sign$ + \item \textbf{Signing Function} $Sign(m,k)$ where $m$ is a message and $k$ is the key used to sign the message. - \item \textbf{Signature} $S$ + \item \textbf{Blinding Function} $Blind(m,b)$ where $m$ is a message and $b$ is the blinding factor used to blind the message. + + \item \textbf{Unblinding Function} $Unlind(s,b)$ where $s$ is a blind signature and $b$ is the blinding factor. - \item \textbf{Blind Signature} $BS$ + \item \textbf{Signature} $S$ - \item \textbf{Blinding Factor} $b$ + \item \textbf{Blind Signature} $S^b$ \item \textbf{Donation Unit} $DU = (K_{pub}, K_{priv})$: Smallest structure representing a donation confirmation unit. Consists of a Public key $K_{pub}$ and Private key $K_{priv}$. Equivalent in Taler is "denomination". \item \textbf{Unique Donor Identifier} $UDI = \langle H(TAXID, SALT), NONCE \rangle$ - \item \textbf{Blinded Unique Donor Identifier} $BUDI = \langle B_{UDI}, H(K_{pub}) \rangle$, blinded to protect the privacy of the donor + \item \textbf{Blinded Unique Donor Identifier} $BUDI = \langle S^b_{UDI}, H(K_{pub}) \rangle$, blinded to protect the privacy of the donor \item \textbf{Donation Receipt} $DR = \langle UDI, S_{UDI}, H(K_{pub}) \rangle$ @@ -67,8 +69,7 @@ \item The donor blinds the $UDI$'s using a \textbf{different} blinding factor $b$ for every $UDI$. \begin{align} - B_{UDI} &= blind(b,UDI, K_{pub}) \\ - BUDI &= \langle B_{UDI}, H(K_{priv}) \rangle + BUDI &= \langle Blind(\langle UDI, K_{pub} \rangle, b), H(K_{pub}) \rangle \end{align} \item The donor sends the $BUDI$'s as well as the corresponding payment to the charity. @@ -81,27 +82,27 @@ \item The charity signs (using EdDSA) a structure containing all unsigned $BUDI$'s coming from the donor. \begin{align} - S_C = Sign(\langle BUDI_1, BDUI_2, .. \rangle, C_{priv}) + S_{C} = Sign(\langle BUDI_1, BDUI_2, .. \rangle, C_{priv}) \end{align} - \item The charity sends this structure and the signature $S_C$ to the Donau. + \item The charity sends this structure $\langle BUDI_1, BDUI_2, .. \rangle$ and the signature $S_{C}$ to the Donau. \end{enumerate} \subsubsection{Donau sends back the blind signed $UDI$'s to charity} \begin{enumerate} \item The Donau: \begin{enumerate} - \item verifies the signature $S_C$ on the structure. + \item verifies the signature $S_{C}$ on the structure. \item increments the current amount of donations received per year of the charity. This value is increased by the total amount of the $BUDI$'s, if the increment does not exceed the annual limit. - \item blind signs all the $BUDI$'s using the $DU$ private keys $K_{priv}$ matching the public keys used in $H(K_{pub})$. + \item signs all the $BUDI$'s using the $DU$ private keys $K_{priv}$ matching the public keys $H(K_{pub})$ used in the $BUDI$. \begin{align} - BS_D = Sign(BUDI, K_{priv}) + S^b_{K} = Sign(BUDI, K_{priv}) \end{align} - \item sends back the blind signatures ($S_D$'s) to the charity. + \item sends back the blind signatures ($S^b_{K}$'s) to the charity. \end{enumerate} \item The charity transmits the blind signatures to the donor. @@ -109,7 +110,7 @@ \item The donor unblinds the $BUDI$'s to get the signed $UDI$'s. This results in the \textbf{Donation Receipt} $DR$ consisting of the $UDI$, the signature $S_{UDI}$ and the Hash of the $DU$ public key $H(K_{pub})$. \begin{align} - S_{UDI} &= unblind(BS_D, b) \\ + S_{UDI} &= Unblind(S^b_{K}, b) \\ DR &= \langle UDI, S_{UDI}, H(K_{pub}) \rangle \end{align} \end{enumerate} @@ -129,10 +130,10 @@ \end{itemize} \item The Donau signs over the total amount, - year and $H(TAXID, SALT)$ and sends the signature and the total amount so far back to the donor. This results in the \textbf{Donation Statement} $DS$. + year and $H(TAXID, SALT)$ and sends the signature and the total amount so far back to the donor. This results in a final signature called the \textbf{Donation Statement} $DS$. \begin{align} - DS = Sign(\langle AMOUNT_{Total}, YEAR, H(TAXID, SALT) \rangle) + DS = Sign(\langle AMOUNT_{Total}, YEAR, H(TAXID, SALT) \rangle, D_{priv}) \end{align} \end{enumerate} @@ -140,7 +141,7 @@ \begin{enumerate} \item The donor generates a QR code: \begin{align} - QR = \langle TAXID, SALT, DS, YEAR, AMOUNT \rangle + QR = \langle TAXID, SALT, DS, YEAR, AMOUNT \rangle %version? \end{align} \item The validator scans the QR code and verifies the signature in the $DS$.