Structure and DRM comments. Christian will be amused.
This commit is contained in:
parent
a1c32c9554
commit
2177b81140
@ -1277,8 +1277,8 @@ Let $C$ denote a coin controlled by users Alice and Bob.
|
|||||||
Suppose Bob creates a fresh coin $C'$ from $C$ following the refresh protocol.
|
Suppose Bob creates a fresh coin $C'$ from $C$ following the refresh protocol.
|
||||||
Assuming the exchange and Bob operated the refresh protocol correctly,
|
Assuming the exchange and Bob operated the refresh protocol correctly,
|
||||||
and that the exchange continues to operate the linking protocol
|
and that the exchange continues to operate the linking protocol
|
||||||
in \S\ref{subsec:linking} correctly,
|
in \S\ref{subsec:linking} correctly, then
|
||||||
then Alice can gain control of $C'$ using the linking protocol.
|
Alice can gain control of $C'$ using the linking protocol.
|
||||||
\end{theorem}
|
\end{theorem}
|
||||||
|
|
||||||
\begin{proof}
|
\begin{proof}
|
||||||
@ -1294,9 +1294,24 @@ for the residual value on $C'$ and runs the linking protocol to
|
|||||||
determine if it was refreshed too.
|
determine if it was refreshed too.
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
|
As discussed in the next subsection, there are serious privacy risks
|
||||||
|
from coins obtained through the linking protocol, so we must not
|
||||||
|
implement the linking protocol in the wallet ourselves.
|
||||||
|
We assert that Taler is taxable on the grounds that any user who
|
||||||
|
modified their wallet to operate dishonestly could similarly modify
|
||||||
|
it to use the linking protocol to cheat other users.
|
||||||
|
|
||||||
|
Although this claims holds broadly, one could envision violating it
|
||||||
|
with advanced forms of Digital Restrictions Management (DRM) that
|
||||||
|
exploited trusted code execution. We discount this threat as being
|
||||||
|
similar to the withdrawal loophole, but we recommend that hardware
|
||||||
|
DRM be outlawed for posing a threat to the state's tax base, along
|
||||||
|
with more serious concerns.
|
||||||
|
|
||||||
\begin{corollary}
|
\begin{corollary}
|
||||||
Abusing the refresh protocol to transfer ownership has an
|
Assuming the user can operate their computer freely,
|
||||||
expected loss of $1 - \frac{1}{\kappa}$ of the transaction value.
|
abusing the refresh protocol to transfer ownership has an
|
||||||
|
expected loss of $1 - \frac{1}{\kappa}$ of the transaction value.
|
||||||
\end{corollary}
|
\end{corollary}
|
||||||
|
|
||||||
|
|
||||||
@ -1328,35 +1343,39 @@ $b m^d \mod n$ where $m$ is the FDH of the coin's public key
|
|||||||
and $b$ is the blinding factor, while coin deposits transcripts
|
and $b$ is the blinding factor, while coin deposits transcripts
|
||||||
consist of only $m^d \mod n$.
|
consist of only $m^d \mod n$.
|
||||||
|
|
||||||
Of course, if the adversary can link coins then they can compute
|
If the adversary can link coins then they can compute the blinding
|
||||||
the blinding factors as $b m^d / m^d \mod n$. Conversely, if the
|
factors as $b m^d / m^d \mod n$. Conversely, if the adversary can
|
||||||
adversary can recognize blinding factors then they link coins after
|
recognize blinding factors then they link coins after first computing
|
||||||
first computing $b_{i,j} = b_i m_i^d / m_j^d \mod n$ for all $i,j$.
|
$b_{i,j} = b_i m_i^d / m_j^d \mod n$ for all $i,j$.
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
We now know the following because Taler uses SHA512 adopted to be
|
% As a corollary, Taler would have information theoretic privacy
|
||||||
a FDH to be the blinding factor.
|
% if the blinding factors were truly random and
|
||||||
|
% refresh operations were disallowed.
|
||||||
|
|
||||||
|
We actually generate blinding factors using an FDH built by
|
||||||
|
running HMAC-SHA512 on a secret 256 bit seed and a count until
|
||||||
|
it outputs a number $b$ less than $n$ satisfying $\gcd(b,n) = 1$.
|
||||||
|
|
||||||
\begin{corollary}
|
\begin{corollary}
|
||||||
Assuming no refresh operation,
|
Assuming no refresh operation,
|
||||||
any adversary with an advantage for linking Taler coins gives
|
any adversary with an advantage for linking Taler coins gives rise
|
||||||
rise to an adversary with an advantage for recognizing SHA512 output.
|
to an adversary with an advantage for recognizing our SHA512 output.
|
||||||
\end{corollary}
|
\end{corollary}
|
||||||
|
|
||||||
Importantly, we do not consider coins about which wallet learns
|
Importantly, we do not consider coins about which wallet learns
|
||||||
through the linking protocol given in \S\ref{subsec:linking}.
|
through the linking protocol given in \S\ref{subsec:linking}.
|
||||||
An honest participant never needs to run the linking protocol,
|
An honest participant never needs to run the linking protocol,
|
||||||
so these coins should not appear, and we do not count them in
|
so these coins should not appear, and we do not count them in
|
||||||
the adversary's advantage. If linked coins do appear, then
|
the adversary's advantage. If linked coins do appear, then
|
||||||
they cannot be spent anonymously because the other user controlling
|
they cannot be spent anonymously because the other user controlling
|
||||||
the coin can learn about any transactions involving these coins.
|
the coin can learn about any transactions involving these coins.
|
||||||
Worse still, the exchange itself could issue tagged coins through
|
Worse still, the exchange itself could issue tagged coins through
|
||||||
the linking protocol. As a result, we limit the refresh protocol to
|
the linking protocol. As a result, we limit the refresh protocol to
|
||||||
a feature offered by the exchange, and test it from the auditor, but
|
a feature offered by the exchange, and test it from the auditor, but
|
||||||
do not use it in any real Taler protocols and do not implement it in
|
do not use it in any real Taler protocols and do not implement it in
|
||||||
the wallet. A user who modified their wallet to operate dishonestly
|
the wallet. We observed in the previous subsection that merely
|
||||||
could similarly modify it to use the linking protocol to cheat
|
the threat of the linking protocol suffices for taxability.
|
||||||
other users.
|
|
||||||
|
|
||||||
\smallskip
|
\smallskip
|
||||||
|
|
||||||
@ -1369,10 +1388,10 @@ encrypted using the secret $t^{(i)} C_s$ where $C_s = c_s G$ of the
|
|||||||
dirty coin $C$ being refreshed and $T^{(i)} = t^{(i)} G$ is the
|
dirty coin $C$ being refreshed and $T^{(i)} = t^{(i)} G$ is the
|
||||||
transfer key.
|
transfer key.
|
||||||
%
|
%
|
||||||
In Taler, we replaced this encryption-based scheme with the current KDF-based
|
In Taler, we replaced this encryption-based scheme with the current
|
||||||
scheme, as the earlier scheme required slightly more storage space, an
|
KDF-based scheme, as the earlier scheme required more storage space,
|
||||||
additional encryption primitive, and exposed more random number generator
|
an additional encryption primitive, and exposed more random number
|
||||||
output from the wallet.
|
generator output from the wallet.
|
||||||
|
|
||||||
\begin{proposition}
|
\begin{proposition}
|
||||||
Assume the encryption used is semantically (IND-CPA) secure,
|
Assume the encryption used is semantically (IND-CPA) secure,
|
||||||
@ -1381,7 +1400,7 @@ Assume also the independence of $c_s$, $t$, and the new coins' key
|
|||||||
materials.
|
materials.
|
||||||
Then any probabilistic polynomial time (PPT) adversary with an
|
Then any probabilistic polynomial time (PPT) adversary with an
|
||||||
advantage for linking Taler coins gives rise to an adversary with
|
advantage for linking Taler coins gives rise to an adversary with
|
||||||
an advantage for recognizing SHA512 output.
|
an advantage for recognizing our SHA512 output.
|
||||||
\end{proposition}
|
\end{proposition}
|
||||||
% TODO: Is independence here too strong?
|
% TODO: Is independence here too strong?
|
||||||
|
|
||||||
@ -1429,9 +1448,9 @@ $t$ also learns $k$.
|
|||||||
|
|
||||||
We may now conclude that Taler remains unlinkable even with the
|
We may now conclude that Taler remains unlinkable even with the
|
||||||
refresh protocol, assuming the security of elliptic curve Diffie-Hellman
|
refresh protocol, assuming the security of elliptic curve Diffie-Hellman
|
||||||
key exchange on curve25519 and that SHA512 remains strong enough.
|
key exchange on curve25519 and that our SHA512 HMAC construction remains
|
||||||
We have lost our clean assumption on merely the hardness of
|
strong enough. We have lost our clean assumption on merely the hardness
|
||||||
recognizing SHA512 output, due to using the random oracle model,
|
of recognizing our SHA512 output, due to using the random oracle model,
|
||||||
but recognizing has output remains the most realistic attack.
|
but recognizing has output remains the most realistic attack.
|
||||||
We use an HMAC in our implementation to make this part more robust.
|
We use an HMAC in our implementation to make this part more robust.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user