libbrandt/tex-stuff/math.tex

169 lines
8.2 KiB
TeX
Raw Normal View History

2016-06-10 16:48:50 +02:00
\documentclass{article}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
2016-06-10 16:48:50 +02:00
\begin{document}
\section{first price auction with tie breaking and private outcome (EC-Version)}
\subsection{Zero Knowledge Proofs}
\subsubsection{Proof of Knowledge of a EC DL}
Alice and Bob know $v$ and $g$ with $|g| = n$, but only Alice knows $x$, so that $v = xg$.
\begin{enumerate}
\item Alice chooses $z$ at random and calculates $a = zg$.
\item Alice computes $c = HASH(g,v,a)$ mod n.
\item Alice sends $r = (z + cx)$ mod n and $a$ to Bob.
\item Bob checks that $rg = a + cv$.
\end{enumerate}
2016-06-16 00:08:49 +02:00
\subsubsection{Proof of equality of two EC DL}
Alice and Bob know $v$, $w$, $g_1$ and $g_2$, but only Alice knows $x$, so that
$v = xg_1$ and $w = xg_2$.
\begin{enumerate}
\item Alice chooses $z$ at random and calculates $a = zg_1$ and $b = zg_2$.
2016-06-12 15:35:05 +02:00
\item Alice computes $c = HASH(g_1,g_2,v,w,a,b)$ mod n.
\item Alice sends $r = (z + cx)$ mod n, $a$ and $b$ to Bob.
\item Bob checks that $rg_1 = a + cv$ and $rg_2 = b + cw$.
\end{enumerate}
2016-06-16 00:08:49 +02:00
\subsubsection{Proof that an encrypted value is one out of two values}
Alice proves that an El Gamal encrypted value $(\alpha, \beta) = (m + ry, rg)$
2016-06-12 15:35:05 +02:00
either decrypts to $0$ or to the fixed value $g$ without revealing which is the
2016-06-12 20:52:52 +02:00
case, in other words, it is shown that $m \in \{0, g\}$.
2016-06-12 15:35:05 +02:00
If $m = 0$:
\begin{enumerate}
\item Alice chooses $r_1$, $d_1$, $w$ at random and calculates $a_1 = r_1g + d_1\beta$, $b_1 = r_1y + d_1(\alpha - g)$, $a_2=wg$ and $b_2=wy$.
\item Alice computes $c = HASH(g,\alpha,\beta,a_1,b_1,a_2,b_2)$ mod n.
\item Alice chooses $d_2=c-d_1$ mod n and $r_2=w-rd_2$ mod n.
\end{enumerate}
If $m = g$:
\begin{enumerate}
\item Alice chooses $r_2$, $d_2$, $w$ at random and calculates $a_1=wg$, $b_1=wy$, $a_2=r_2g + d_2\beta$ and $b_2=r_2y + d_2\alpha$.
\item Alice computes $c = HASH(g,\alpha,\beta,a_1,b_1,a_2,b_2)$ mod n.
\item Alice chooses $d_1=c-d_2$ mod n and $r_1=w-rd_1$ mod n.
\end{enumerate}
Then regardless of the value of $m$:
\begin{enumerate}
\item Alice sends $(\alpha, \beta), a_1, b_1, a_2, b_2, c, d_1, d_2, r_1, r_2$ to Bob.
\item Bob checks that $c=d_1+d_2$ mod n, $a_1=r_1g+d_1\beta$, $b_1=r_1y+d_1(\alpha-g)$, $a_2=r_2g+d_2\beta$ and $b_2=r_2y+d_2\alpha$.
\end{enumerate}
2016-06-16 00:08:49 +02:00
\subsection{Protocol}
Let $n$ be the number of participating bidders/agents in the protocol and $k$ be
the amount of possible valuations/prices for the sold good. Let $g$ be the
2016-06-19 21:58:39 +02:00
base point of Ed25519 and $q = ord(g)$ the order of it. $0$ is the neutral point
for addition on Ed25519. $a \in \left\{1,2,\dots,n\right\}$ is the index of the
agent executing the protocol, while $i, h \in \left\{1, 2, \dots, n\right\}$ are
other agent indizes. $j, b_a \in \left\{1,2,\dots,k\right\}$ with $b_a$ denoting
the price $p_{b_a}$ bidder $a$ is willing to pay. $\forall j: p_j < p_{j+1}$.
2016-06-16 00:08:49 +02:00
\subsubsection{Generate public key}
\begin{enumerate}
\item Choose $x_{+a} \in \mathbb{Z}_q$ and $m_{ij}^{\times a}, r_{aj} \in \mathbb{Z}_q$ for each $i$ and $j$ at random.
\item Publish $y_{\times a}={x_{+a}}g$ along with a zero-knowledge proof of knowledge of $y_{\times a}$'s EC DL.
\item Compute $y=\sum_{i=1}^ny_{\times i}$.
2016-06-16 00:08:49 +02:00
\end{enumerate}
\subsubsection{Round 1: Encrypt bid}
2016-06-20 01:38:16 +02:00
The message has $k$ parts, each consisting of $10$ Points plus an additional $3$
Points for the last proof. Therefore the message is $10k*32 + 3*32 = 320k + 96$
bytes large.
2016-06-16 00:08:49 +02:00
\begin{enumerate}
2016-06-20 01:38:16 +02:00
\item $\forall j:$ Set $b_{aj}=\begin{cases}g & \mathrm{if}\quad j=b_a\\0 & \mathrm{else}\end{cases}$ and publish $\alpha_{aj}=b_{aj}+r_{aj}y$ and $\beta_{aj}=r_{aj}g$ for each j.
\item $\forall j:$ Prove that $(\alpha_{aj}, \beta_{aj})$ decrypts to either $0$ or $g$.
\item Prove that $ ECDL_y\left(\left(\sum_{j=1}^k\alpha_{aj}\right) - g\right) = ECDL_g\left(\sum_{j=1}^k\beta_{aj}\right)$
2016-06-16 00:08:49 +02:00
\end{enumerate}
\subsubsection{Round 2: Compute outcome}
2016-06-20 01:38:16 +02:00
The message has $nk$ parts, each consisting of $5$ Points. Therefore the message
is $5nk*32 = 160nk$ bytes large.
2016-06-16 00:08:49 +02:00
\begin{enumerate}
\item Compute and publish for each $i$ and $j$: \\[2.0ex]
$\gamma_{ij}^{\times a} = m_{ij}^{+a}\displaystyle\left(\left(\sum_{h=1}^n\sum_{d=j+1}^k\alpha_{hd}\right)+\left(\sum_{d=1}^{j-1}\alpha_{id}\right)+\left(\sum_{h=1}^{i-1}\alpha_{hj}\right)\right)$ and \\[2.0ex]
$\delta_{ij}^{\times a} = m_{ij}^{+a}\displaystyle\left(\left(\sum_{h=1}^n\sum_{d=j+1}^k\beta_{hd}\right)+\left(\sum_{d=1}^{j-1}\beta_{id}\right)+\left(\sum_{h=1}^{i-1}\beta_{hj}\right)\right)$ \\[2.0ex]
with a proof of correctness.
2016-06-16 00:08:49 +02:00
\end{enumerate}
\subsubsection{Round 3: Decrypt outcome}
\begin{enumerate}
\item Send $\varphi_{ij}^{\times a} =
x_{+a}\left(\sum_{h=1}^n\delta_{ij}^{\times h}\right)$ for each $i$ and
$j$ with a proof of correctness (ECDL is known \textbf{and} equal to the
ECDL used for $y_{\times a}$) to the seller who publishes all
$\varphi_{ij}^{\times h}$ and the corresponding proofs of correctness for
each $i, j$ and $h \neq i$ after having received all of them.
2016-06-16 00:08:49 +02:00
\end{enumerate}
\subsubsection{Epilogue: Outcome determination}
\begin{enumerate}
\item Compute $v_{aj}=\sum_{i=1}^n\gamma_{aj}^{\times i} - \sum_{i=1}^n\varphi_{aj}^{\times i}$ for each $j$.
\item If $v_{aw} = 1$ for any $w$, then bidder $a$ is the winner of the auction. $p_w$ is the selling price.
2016-06-16 00:08:49 +02:00
\end{enumerate}
2016-06-10 16:48:50 +02:00
\section{first price auction with tie breaking and private outcome}
\begin{align}
v_{aj} & = \frac{\prod_{i=1}^n \gamma_{aj}^{\times i}}{\prod_{i=1}^n \varphi_{aj}^{\times i}} \\[2.0ex]
& = \frac{\prod_{i=1}^n \gamma_{aj}^{\times i}}{\prod_{i=1}^n \left(\prod_{h=1}^n \delta_{aj}^{\times h}\right)^{x_{+i}}} \\[2.0ex]
& = \frac{\prod_{i=1}^n \left(\left(\prod_{h=1}^n \prod_{d=j+1}^k \alpha_{hd}\right)\cdot\left(\prod_{d=1}^{j-1} \alpha_{ad}\right)\cdot\left(\prod_{h=1}^{a-1} \alpha_{hj}\right)\right)^{m_{aj}^{+i}}}{\prod_{i=1}^n \left(\prod_{h=1}^n \left(\left(\prod_{s=1}^n \prod_{d=j+1}^k \beta_{sd}\right)\cdot\left(\prod_{d=1}^{j-1} \beta_{ad}\right)\cdot\left(\prod_{s=1}^{a-1} \beta_{sj}\right)\right)^{m_{aj}^{+h}}\right)^{x_{+i}}} \\[2.0ex]
& = \frac{\prod_{i=1}^n \left(\left(\prod_{h=1}^n \prod_{d=j+1}^k b_{hd} y^{r_{hd}}\right)\cdot\left(\prod_{d=1}^{j-1} b_{ad} y^{r_{ad}}\right)\cdot\left(\prod_{h=1}^{a-1} b_{hj} y^{r_{hj}}\right)\right)^{m_{aj}^{+i}}}{\prod_{i=1}^n \left(\prod_{h=1}^n \left(\left(\prod_{s=1}^n \prod_{d=j+1}^k g^{r_{sd}}\right)\cdot\left(\prod_{d=1}^{j-1} g^{r_{ad}}\right)\cdot\left(\prod_{s=1}^{a-1} g^{r_{sj}}\right)\right)^{m_{aj}^{+h}}\right)^{x_{+i}}} \\[2.0ex]
& = \frac{\prod_{i=1}^n \left(\left(\prod_{h=1}^n \prod_{d=j+1}^k b_{hd} \left(\prod_{t=1}^n g^{x_{+t}}\right)^{r_{hd}}\right)\cdot\left(\prod_{d=1}^{j-1} b_{ad} \left(\prod_{t=1}^n g^{x_{+t}}\right)^{r_{ad}}\right)\cdot\left(\prod_{h=1}^{a-1} b_{hj} \left(\prod_{t=1}^n g^{x_{+t}}\right)^{r_{hj}}\right)\right)^{m_{aj}^{+i}}}{\prod_{i=1}^n \left(\prod_{h=1}^n \left(\left(\prod_{s=1}^n \prod_{d=j+1}^k g^{r_{sd}}\right)\cdot\left(\prod_{d=1}^{j-1} g^{r_{ad}}\right)\cdot\left(\prod_{s=1}^{a-1} g^{r_{sj}}\right)\right)^{m_{aj}^{+h}}\right)^{x_{+i}}}
\end{align}
\subsection{outcome function}
\begin{align}
v_a & = \left((2U-I)\sum_{i=1}^n b_i-(2M+1)\mathbf{e}+(2M+2)Lb_a\right)R_a^* \\[2.0ex]
v_{aj} & = \left(\sum_{i=1}^n \left(\sum_{d=j}^k b_{id} + \sum_{d=j+1}^k b_{id}\right)-(2M+1)+(2M+2)\sum_{d=1}^j b_{ad}\right)R_a^* \\[2.0ex]
& \text{switch from additive finite group to multiplicative finite group} \\[2.0ex]
v_{aj} & = \left(\frac{\displaystyle\prod_{i=1}^n \left(\prod_{d=j}^k b_{id} \cdot \prod_{d=j+1}^k b_{id}\right) \cdot \left(\prod_{d=1}^j b_{ad}\right)^{2M+2}}{(2M+1)g}\right)R_a^* \\[2.0ex]
\end{align}
\subsection{fixes to step 5 in (M+1)st Price auction from the 2003 paper pages 9 an 10}
\begin{align}
\gamma_{ij} = & \frac{\prod_{h=1}^n \prod_{d=j}^k (\alpha_{hd}\alpha_{h,d+1})\left(\prod_{d=1}^j \alpha_{id}\right)^{2M+2}}{(2M+1)Y} \\
\text{changed to} & \frac{\prod_{h=1}^n \left(\prod_{d=j}^k \alpha_{hd} \cdot \prod_{d=j+1}^k \alpha_{hd}\right)\left(\prod_{d=1}^j \alpha_{id}\right)^{2M+2}}{Y^{2M+1}} \\[2.0ex]
\delta_{ij} = & \prod_{h=1}^n \prod_{d=j}^k (\beta_{hd}\beta_{h,d+1})\left(\prod_{d=1}^j \beta_{id}\right)^{2M+2} \\
\text{changed to} & \prod_{h=1}^n \left(\prod_{d=j}^k \beta_{hd} \prod_{d=j+1}^k \beta_{hd}\right)\left(\prod_{d=1}^j \beta_{id}\right)^{2M+2}
\end{align}
\end{document}