Expand description
Implementation of a new style of bridge authority for Tor that allows users to invite other users, while protecting the social graph from the bridge authority itself.
We use uCMZ credentials (Orr`u, 2024 https://eprint.iacr.org/2024/1552.pdf) which improves issuer efficiency over our original CMZ14 credential (GGM version, which is more efficient, but makes a stronger security assumption) implementation: “Algebraic MACs and Keyed-Verification Anonymous Credentials” (Chase, Meiklejohn, and Zaverucha, CCS 2014)
The notation follows that of the paper “Hyphae: Social Secret Sharing” (Lovecruft and de Valence, 2017), Section 4.
Modules§
- bridge_
table - The encrypted table of bridges.
- dup_
filter - Filter duplicate shows of credentials and open invitations by id (which will typically be a Scalar).
- lox_
creds - migration_
table - The migration table.
- mock_
auth - proto
Constants§
- EXPIRY_
DATE - MAX_
DAILY_ BRIDGES - TODO: Decide on maximum daily number of invitations to be distributed
- OPENINV_
K - Number of times a given invitation is ditributed
- OPENINV_
LENGTH - An open invitation is a [u8; OPENINV_LENGTH] where the first 32 bytes are the serialization of a random Scalar (the invitation id), the next 4 bytes are a little-endian bucket number, and the last SIGNATURE_LENGTH bytes are the signature on the first 36 bytes.