gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-donau] branch master updated: [doc] More details on signing, sign


From: gnunet
Subject: [taler-donau] branch master updated: [doc] More details on signing, signing applications, BUDI-key-pair
Date: Mon, 23 Oct 2023 19:41:36 +0200

This is an automated email from the git hooks/post-receive script.

pius-loosli pushed a commit to branch master
in repository donau.

The following commit(s) were added to refs/heads/master by this push:
     new 015fae7  [doc] More details on signing, signing applications, 
BUDI-key-pair
015fae7 is described below

commit 015fae704db7a681aae56d7422a362bc7f62d98d
Author: Pius Loosli <loosp2@bfh.ch>
AuthorDate: Mon Oct 23 19:41:28 2023 +0200

    [doc] More details on signing, signing applications, BUDI-key-pair
---
 doc/flows/main.tex | 66 ++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 44 insertions(+), 22 deletions(-)

diff --git a/doc/flows/main.tex b/doc/flows/main.tex
index 8d60ec0..ff24075 100644
--- a/doc/flows/main.tex
+++ b/doc/flows/main.tex
@@ -23,11 +23,28 @@
 \begin{itemize}
   \item \textbf{Cryptographic Hash Function} $H(m) = h$ where $m$ is a message 
and $h$ the resulting hash.
 
-  \item \textbf{Signing Functions}
+  \item \textbf{Signing}
     \begin{itemize}
-      \item $\Sigma(m,k) = \sigma$ where $m$ is a message and $k$ is the 
private key used to sign the message (e.g. EdDSA).
-
-      \item $\overline{\Gamma}(\overline{n},j) = \overline{\gamma}$ where 
$\overline{n}$ is a blinded message and $j$ is the private key used to blind 
sign the message (e.g. RSA/CS).
+      \item \textbf{Classic/lightweight signing (e.g. EdDSA):} 
+      \begin{align}
+        \fbox{$\Sigma(m,k) = \sigma$}
+      \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
+      \end{itemize}
+      
+      \item \textbf{Blind signing(e.g. RSA/CS):}
+      \begin{align}
+        \fbox{$\overline{B}(\overline{m},k) = \overline{\beta}$}
+      \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}
+      \end{itemize}
     \end{itemize}
 
   \item \textbf{Donation Unit} $DU = (K_x^{pub}, K_x^{priv})$ where $x$ is the 
associated value (e.g. 2EUR):
@@ -36,9 +53,14 @@
 
   \item \textbf{Unique Donor Identifier} $UDI = \langle H(\texttt{TAXID}, 
\texttt{SALT}), \texttt{NONCE} \rangle$
 
-  \item \textbf{Blinded Unique Donor Identifier} $BUDI = \langle blinded$ 
$UDI, H(K_x^{pub}) \rangle$, blinded to protect the privacy of the donor
+  \item \textbf{Blinded Unique Donor Identifier} $BUDI = blinded$  $UDI$, 
blinded to protect the privacy of the donor
+  
+  \begin{itemize}
+   \item \textbf{BUDI-key-pair} \emph{BKP}  = $Pair(BUDI, H(K_x^{pub}))$
+  \end{itemize}
+
 
-  \item \textbf{Donation Receipt} $DR = \langle UDI, \gamma, H(K_x^{pub}) 
\rangle$ where $\gamma$ is the unblinded signature: Sent to the Donau to get 
the donation Statement.
+  \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 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.
 
@@ -73,22 +95,22 @@
   \item The donor blinds the $UDI$'s using a \textbf{different} blinding 
factor $b$ for every $UDI_i$.
 
   \begin{align}
-    BUDI_1 &= \langle Blind(UDI_1, K_x^{pub}, b_i), H(K_x^{pub}) \rangle \\
+    BKP_1 &= \langle Blind(UDI_1, K_x^{pub}, b_1), H(K_x^{pub}) \rangle \\
     ... \\
-    BUDI_i &= \langle Blind(UDI_i, K_x^{pub}, b_i), H(K_x^{pub}) \rangle
+    BKP_i &= \langle Blind(UDI_i, K_x^{pub}, b_i), H(K_x^{pub}) \rangle
   \end{align}
 
-\item The donor sends the $BUDI$'s as well as the corresponding payment to the 
charity.
+\item The donor sends the $BKP$'s as well as the corresponding payment to the 
charity.
 \end{enumerate}
 
-\subsubsection{Charity sends signed $BUDI$'s to Donau}
+\subsubsection{Charity sends signed $BKP$'s to Donau}
 \begin{enumerate}
   \item The charity verifies that the amount requested (based on the 
$H(K_x^{pub})$) for signing is lower or equal to the effective amount of the 
donation.
 
-  \item The charity signs (using EdDSA) a structure containing all unsigned 
$BUDI$'s coming from the donor.
+  \item The charity signs (using EdDSA) a structure containing all unsigned 
$BKP$'s coming from the donor.
 
   \begin{align}
-      \sigma = \Sigma(\langle BUDI_1, BUDI_2, ..., BUDI_i \rangle, C^{priv})
+      \sigma_c = \Sigma(\langle BKP_1, BKP_2, ..., BKP_i \rangle, C^{priv})
   \end{align}
 
   \item The charity sends this structure and the signature $\sigma$ to the 
Donau.
@@ -98,34 +120,34 @@
 \begin{enumerate}
   \item The Donau:
     \begin{enumerate}
-      \item verifies the signature $\sigma$ on the structure.
+      \item verifies the signature $\sigma_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 $blinded$ $UDI$'s using the $DU$ private keys 
$K_x^{priv}$ matching the public keys $H(K^{pub})$ used in the $BUDI$'s.
 
         \begin{align}
-          \overline{\gamma_1} = \overline{\Gamma}(blinded\ UDI_1, K_x^{priv}) 
\\
+          \overline{\beta_1} = \overline{B}(blinded\ UDI_1, K_x^{priv}) \\
           ... \\
-          \overline{\gamma_i} = \overline{\Gamma}(blinded\ UDI_i, K_x^{priv})
+          \overline{\beta_i} = \overline{B}(blinded\ UDI_i, K_x^{priv})
         \end{align}
 
-      \item sends back the blind signatures $\overline{\gamma_1}, ..., 
\overline{\gamma_i}$ to the charity.
+      \item sends back the blind signatures $\overline{\beta_1}, ..., 
\overline{\beta_i}$ to the charity.
     \end{enumerate}
 
   \item The charity forwards the blind signatures to the donor.
 
-  \item The donor unblinds the $BUDI$'s to get the signatures $\gamma_1, ..., 
\gamma_i$. This results in a collection of \textbf{Donation Receipts} $DR$'s 
each consisting of the $UDI$, the signature $\gamma$ and the Hash of the $DU$ 
public key $H(K_x^{pub})$.
+  \item The donor unblinds the signed $BUDI$'s $\overline{\beta_1}, ..., 
\overline{\beta_i}$ to get the signatures $\beta_1, ..., \beta_i$. This results 
in a collection of \textbf{Donation Receipts} $DR$'s each consisting of the 
$UDI$, the signature $\beta$ and the Hash of the $DU$ public key $H(K_x^{pub})$.
 
   \begin{align}
-    \gamma_1 &= Unblind(\overline{\gamma_1}, b_1) \\
+    \beta_1 &= Unblind(\overline{\beta_1}, b_1) \\
     ... \\
-    \gamma_i &= Unblind(\overline{\gamma_i}, b_i)
+    \beta_i &= Unblind(\overline{\beta_i}, b_i)
   \end{align}
   \begin{align}
-      DR_1 &= \langle UDI_1, \gamma_1, H(K_x^{pub}) \rangle \\
+      DR_1 &= \langle UDI_1, \beta_1, H(K_x^{pub}) \rangle \\
       ... \\
-      DR_i &= \langle UDI_i, \gamma_i, H(K_x^{pub}) \rangle
+      DR_i &= \langle UDI_i, \beta_i, H(K_x^{pub}) \rangle
   \end{align}
 \end{enumerate}
 
@@ -136,7 +158,7 @@
   \begin{itemize}
     \item checks that $K_x^{pub}$ is known.
 
-    \item verifies that the signature $\gamma$ is correct using the 
corresponding public key $K_x^{pub}$.
+    \item verifies that the signature $\beta$ is correct using the 
corresponding public key $K_x^{pub}$.
 
     \item verifies that the hash of the $\texttt{TAXID}$ and the 
$\texttt{SALT}$ is the same as in other $DR$'s (With multiple wallets each 
wallet must simply obtain a separate $DS$!).
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]