Skip to content

Separate protocols with trusted, untrusted witnesses #213

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 30 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
324064f
Moves system model
dbosk Apr 16, 2020
4cf8bfe
Starts splitting protocol into trusted/untrusted
dbosk Apr 17, 2020
e7cbf4c
Removes old remains of locations-proofs.tex
dbosk Apr 17, 2020
4204c19
Adds ref to SelfCertifiedSybilFreePseudonyms (fixes #192)
dbosk Apr 17, 2020
735276f
Merge Sybil-free creds and anon creds
dbosk Apr 20, 2020
6da3426
Improves intro to trusted witnesses protocol
dbosk Apr 20, 2020
08552d3
Rewrites the trusted-witness protocol up to verification section
dbosk Apr 21, 2020
5f1065b
Edits trusted-witness counting section
dbosk Apr 21, 2020
f217a0e
No need for W subscript when P doesn't do anything
dbosk Apr 21, 2020
934822a
Enables revision comments again
dbosk Apr 22, 2020
d5709fa
Improves description of protest model
dbosk Apr 22, 2020
10e6180
Updates protocol section title
dbosk Apr 22, 2020
6135bf7
Removes extra \\ in protocol figure
dbosk Apr 22, 2020
b8e4ed1
Updates proofshare figure
dbosk Apr 22, 2020
f1bf638
Fixes typo in trusted (\psh_W -> \psh)
dbosk Apr 29, 2020
d8a1193
Writes up untrusted
dbosk Apr 29, 2020
31e2d8c
Slight clarifications
dbosk May 7, 2020
e842d12
Removes the ref to Anon-Pass in protocol description
dbosk May 7, 2020
e77410a
Merge branch 'master' into separate-trusted-untrusted-versions
dbosk Jun 14, 2021
f0c46ab
Fixes dead crefs, clarifications for trusted/untrusted
dbosk Jun 15, 2021
0ed199b
Clarifies confusion about trust in security analysis
dbosk Jun 15, 2021
dad47e2
Merge branch 'master' into separate-trusted-untrusted-versions
dbosk Jun 15, 2021
1e39b09
Merges system model into definitions section
dbosk Jun 15, 2021
7a00564
Removes redundant anon-cred text
dbosk Jun 15, 2021
76a3ce8
Puts \input for anon-creds.tex in a better place
dbosk Jun 15, 2021
1eb1001
Merge branch 'master' into separate-trusted-untrusted-versions
dbosk Jun 16, 2021
2bbd993
Minor clarification for trusted protocol intro
dbosk Jun 17, 2021
200c5a8
Clarifies intro to trusted protocol
dbosk Jun 17, 2021
168a830
More clarifications to trusted protocol
dbosk Jun 17, 2021
16c342e
Clarifications to untrusted protocol
dbosk Jun 17, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions fig/proofshare-trusted.tikz
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
\begin{tikzpicture}[%
-Latex,
item/.style={rectangle,draw},
edge from parent/.style={},
]
\tikzset{%
%grow'=left,%
%level distance=5em%
}
\node[item] (proof) {$(\cid, \pid, \wid, t, l)$}
child {%
node[item] (pid) {$\pid$}
child {%
node[item] (cid) {$\cid$}
child {%
node[item] (manifesto) {$\mfst$}
}
}
}
child {%
node[item] (wid) {$\wid$}
}
child {%
node[item] (ts) {$t$}
}
child {%
node[item] (l) {$l$}
}
;

\node[item,right of=proof,node distance=8em] (prfW) {$\prf_W$} ;

\path[every node/.style={font=\small}]
(cid) edge [out=north west,in=west] node [anchor=east] {$\in$} (proof)
(pid) edge node [anchor=south east] {$\in$} (proof)
(wid) edge node [anchor=east] {$\in$} (proof)
(ts) edge node [anchor=east] {$\in$} (proof)
(l) edge node [anchor=west] {$\in$} (proof)
;

\path[every node/.style={font=\small}]
(manifesto) edge node [anchor=east] {$\Hash[\cdot]$} (cid)
(cid) edge node [anchor=west,rotate=-30]
{$\ACprf[_{\sk_P}][\cdot]$} (pid)
(pid) edge[bend right] node [anchor=160,rotate=-30]
{$\ACprf[_{\sk_W}][\cdot]$} (wid)
;

\path[every node/.style={font=\small}]
(proof) edge [out=east,in=west] node {} (prfW)
;

\end{tikzpicture}
1 change: 1 addition & 0 deletions paper/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ location.bib
main.pdf
paper.pdf
proofshare.tikz
proofshare-trusted.tikz
protests.bib
sybil.bib
tposet.tikz
Expand Down
12 changes: 7 additions & 5 deletions paper/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ main.pdf: preamble.tex preamble-paper.tex
SRC+= contents.tex
SRC+= abstract.tex
SRC+= intro.tex
SRC+= system-model.tex
SRC+= current-crowd-counting.tex
SRC+= definitions.tex
SRC+= protest-model.tex
SRC+= security-properties.tex
SRC+= adversary-model.tex
SRC+= system-model.tex
SRC+= building-blocks.tex
SRC+= ZKPK.tex
#SRC+= ZKPK-instantiations.tex
Expand All @@ -25,10 +25,11 @@ SRC+= anon-cred.tex
SRC+= distance-bounding.tex
#SRC+= DB-anon-cred.tex
SRC+= timestamp.tex
SRC+= protocol.tex
SRC+= protocol-trusted.tex
SRC+= protocol-untrusted.tex
SRC+= security-analysis.tex
SRC+= verifiability-analysis.tex
SRC+= privacy-analysis.tex
SRC+= verifiability-analysis.tex
SRC+= privacy-analysis.tex
SRC+= performance.tex
SRC+= related-work.tex
SRC+= discussion.tex
Expand All @@ -39,8 +40,9 @@ SRC+= identity-limits.tex

main.pdf: ${SRC}

FIGS+= proofshare.tikz
FIGS+= proofshare.tikz proofshare-trusted.tikz
proofshare.tikz: ../fig/proofshare.tikz
proofshare-trusted.tikz: ../fig/proofshare-trusted.tikz

FIGS+= base-adversary.tikz
base-adversary.tikz: ../fig/base-adversary.tikz
Expand Down
2 changes: 2 additions & 0 deletions paper/building-blocks.tex
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,7 @@ \section{Building blocks}%

\input{distance-bounding.tex}

\input{location-proofs.tex}

\input{timestamp.tex}

4 changes: 2 additions & 2 deletions paper/contents.tex
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
\include*{definitions}
\include*{building-blocks}
%\include*{DB-anon-cred}
\include*{protocol}
\include*{protocol-trusted}
\include*{protocol-untrusted}
\include*{security-analysis}
\include*{performance}
\include*{related-work}
Expand All @@ -23,7 +24,6 @@
\printbibliography{}

\appendix
\include*{location-proofs}
%\include*{trust-assumptions}
\include*{anon-cred-figures}
%\include*{tamarin-spec}
Expand Down
5 changes: 3 additions & 2 deletions paper/distance-bounding.tex
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@ \subsection{Distance-bounding protocols}%
Our setting requires a public-key \ac{DB} protocol with a \emph{malicious verifier} who will potentially try to \emph{impersonate the prover}.
The verifier might also try to track the provers and map their identities to
their actions, thus we also require strong privacy.
In fact, as the construction in \cref{Protocol} shows, we require \iac{DB}
\ac{ZKPK}, or simply \ac{PPK}, for discrete logarithms.
In fact, as the construction in
\cref{untrusted-witnesses-protocol,trusted-witnesses-protocol} shows, we
require \iac{DB} \ac{ZKPK}, or simply \ac{PPK}, for discrete logarithms.
For this paper, we assume the existence of such a protocol.
There exists one such protocol in the literature, namely one by
\textcite{DB-Schnorr}, we refer to that paper for a detailed discussion.
Expand Down
4 changes: 3 additions & 1 deletion paper/intro.tex
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,9 @@ \section{Introduction}%
%
We present \CROCUS, a privacy-preserving crowd counting
%estimation
protocol in in \Cref{Protocol}, analyze its security in \cref{SecurityAnalysis}, and estimate its performance in \cref{PerformanceAnalysis}.
protocol in in \cref{trusted-witnesses-protocol,untrusted-witnesses-protocol},
analyze its security in \cref{SecurityAnalysis}, and estimate its performance
in \cref{PerformanceAnalysis}.
We compare it to related work in \cref{related-work}.
Finally, we discuss limitations and assumptions in \cref{Discussion} and give
our conclusions in \cref{Conclusion}.
37 changes: 37 additions & 0 deletions paper/location-proofs.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
\subsection{Location proofs}
\label{location-proofs}
Some \acp{LBS} only grant access to resources to users located at a particular
location, thus raising the issue of verifying the position claimed by a
particular user.
One possible way to counter this threat is by having the requesting device
formally prove that it really is at the claimed location, which gives rise to
the concept of \acp{LP}.
In a nutshell, \iac{LP} is a digital certificate attesting that someone was at
a particular location at a specific moment in time.
\Iac{LPS} is an architecture by which users can obtain \acp{LP} from
neighboring witnesses (\eg trusted access points or other users) that can later
be shown to verifiers who can check the validity of a particular
proof~\cite{luo2010veriplace,zhu2011applaus}.
Most of the existing approaches to \acp{LP} require the prover and the
witnesses to disclose their identities, thus raising many privacy issues such
as the possibility of tracing the movements of users of the \ac{LPS}.
However, some \acp{LPS}, such as PROPS~\cite{PROPS}, exist that provide strong
privacy guarantees along with the possibility of verifying the claim of the
location.

%\CROCUS shares some similarities with PROPS, although their objective is quite
%different as it aims at verifying a global property of the population (\ie
%crowd estimation) in contrast to checking the location claim made by a user,
%which is an individual property.
%
%Another difference is that \CROCUS operates in a more adverse environment.
%\CROCUS must provide \emph{universal verifiability}, this means that all proofs
%must be available to and verifiable by anyone.
%One problem here is that we have multiple verifiers who might not trust the
%same witnesses.
%The incentives to cheat are also bigger and consequently the thresholds for
%collusion are much higher.
%
\sonja{add something on platin.io, details unknown but roughly relying on
witnesses and graph theory (unique big cluster, assumption of honest
majority)}
10 changes: 6 additions & 4 deletions paper/preamble.tex
Original file line number Diff line number Diff line change
Expand Up @@ -112,11 +112,14 @@
\NewAlgorithm{\CROCUSsetup}{Setup}
\NewVariable{\pk}{pk}
\NewVariable{\sk}{sk}
\NewVariable{\spk}{spk}
\NewVariable{\ssk}{ssk}
\NewVariable{\CA}{CA}
\NewVariable{\spk}{spk_\CA}
\NewVariable{\ssk}{ssk_\CA}
\NewVariable{\spkw}{spk_{\CA'}}
\NewVariable{\sskw}{ssk_{\CA'}}
\NewAlgorithm{\CROCUSreg}{Reg}
\NewAlgorithm{\CROCUSjoin}{Join}
\NewVariable{\mfst}{manifesto}
\NewVariable{\mfst}{m}
\NewAlgorithm{\CROCUSparticipate}{Prticip}
\NewAlgorithm{\CROCUSwitness}{Witness}
\NewAlgorithm{\CROCUSsubmit}{Submit}
Expand Down Expand Up @@ -149,7 +152,6 @@
\NewAlgorithm{\PKverify}{PK.\!Verify}
\NewAlgorithm{\SPKprove}{SPK.\!Prove}
\NewAlgorithm{\SPKverify}{SPK.\!Verify}
\NewVariable{\CA}{CA}
\NewSet{\TT}{T}
\NewSet{\LL}{L}

Expand Down
Loading