- Anonymous Retrospective Broadcasts
- If we don't assume a centralized party that can be trusted to verify information, what we're left with is not really a contact tracing application but a particular kind of messaging application, where users create tracks through space and time, and can retrospectively broadcast anonymous messages to users whose tracks were spatially nearby to theirs in a particular time range.
- This messaging system should be privacy-preserving, in the sense that:
- Server Privacy: An honest-but-curious server should not learn information about any user's space-time tracks;
- Locality Integrity: A user should not be able to broadcast messages to users who were not nearby to them;
- User Privacy:
- A passive adversary cannot not learn any information about a user's space-time track outside of the segments they have broadcast messages to. This means that users who do not broadcast reveal no information about their movements.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
git clone https://github.com/dalek-cryptography/curve25519-dalek.git | |
cd curve25519-dalek | |
git checkout 0.18.0 | |
echo "nightly-2018-06-19" > rust-toolchain | |
export RUSTFLAGS="-C target_cpu=znver1" | |
cargo bench --features "nightly u64_backend" "aA+bB" | |
cargo bench --features "nightly avx2_backend" "aA+bB" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
impl<'a, 'b> Add<&'b CachedPoint> for &'a ExtendedPoint { | |
type Output = ExtendedPoint; | |
fn add(self, other: &'b CachedPoint) -> ExtendedPoint { | |
// The coefficients of an `ExtendedPoint` are reduced after | |
// every operation. If the `CachedPoint` was negated, its | |
// coefficients grow by one bit. So on input, `self` is | |
// bounded with `b < 0.007` and `other` is bounded with | |
// `b < 1.0`. | |
let mut tmp = self.0; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
create_nipk!{dleq, (x), (A, B, G, H) : A = (G * x), B = (H * x) } | |
mod dleq { | |
use curve25519_dalek::ristretto::RistrettoPoint; | |
use curve25519_dalek::scalar::Scalar; | |
use curve25519_dalek::traits::{MultiscalarMul, VartimeMultiscalarMul}; | |
use merlin::Transcript; | |
use rand::thread_rng; | |
use std::iter; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Initialize STROBE-128(4d65726c696e2076312e30) # b"Merlin v1.0" | |
meta-AD : 646f6d2d736570 || LE32(24) # b"dom-sep" | |
AD : 4167677265676174656452616e676550726f6f6654657374 # b"AggregatedRangeProofTest" | |
meta-AD : 646f6d2d736570 || LE32(13) # b"dom-sep" | |
AD : 72616e676570726f6f66207631 # b"rangeproof v1" | |
meta-AD : 6e || LE32(8) # b"n" | |
AD : 4000000000000000 # b"@" | |
meta-AD : 6d || LE32(8) # b"m" | |
AD : 0100000000000000 # b"" | |
meta-AD : 56 || LE32(32) # b"V" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[536870912,434873] | |
[536870912,434902] | |
[536870912,434903] | |
[536870912,434904] | |
[536870912,434917] | |
[536870912,434936] | |
[536870912,434978] | |
[536870912,434993] | |
[536870912,435023] | |
[536870912,435040] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
TestCase { | |
vk_bytes: "0100000000000000000000000000000000000000000000000000000000000000", | |
sig_bytes: "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", | |
valid_legacy: false, | |
valid_zip215: true, | |
}, | |
TestCase { | |
vk_bytes: "0100000000000000000000000000000000000000000000000000000000000000", | |
sig_bytes: "c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a0000000000000000000000000000000000000000000000000000000000000000", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
encoding edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f has order 4 | |
encoding edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff has order 4 | |
encoding eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f has order 1 | |
encoding eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff has order 1 | |
encoding f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f has order 8p | |
encoding f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff has order 8p | |
encoding f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f has order 8p | |
encoding f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff has order 8p | |
encoding f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f has order 8p | |
encoding f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff has order 8p |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"annotations": { | |
"list": [ | |
{ | |
"builtIn": 1, | |
"datasource": "-- Grafana --", | |
"enable": true, | |
"hide": true, | |
"iconColor": "rgba(0, 211, 255, 1)", | |
"name": "Annotations & Alerts", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
curl -s "https://api.github.com/orgs/THE_ORG_NAME/repos?per_page=200" | jq '.[].clone_url' | xargs -L1 git clone |