Module prio::vdaf[][src]

Expand description

(NOTE: This module is experimental. Applications should not use it yet.) This module implements the prio3 Verifiable Distributed Aggregation Function specified in [VDAF]. It is constructed from a Value.

Modules

This module implements the cryptographic dependencies for our VDAF implementation. This includes a stream cipher (here we call it a KeyStream) and a pseudorandom function whose output size is the same as the key size (we call this a KeyDeriver).

Structs

The message sent by the client to each aggregator. This includes the client’s input share and the initial message of the input-validation protocol.

The message sent by an aggregator to every other aggregator. This is the final message of the input-validation protocol.

The verification parameter used by each aggregator to evaluate the VDAF.

The state of each aggregator.

Enums

A share of an input or proof for Prio.

Errors emitted by this module.

Functions

The verify-finish algorithm of the VDAF. Run by each aggregator, this consumes the VerifyMessage messages broadcast by all of the aggregators and produces the aggregator’s input share.

The input-distribution algorithm of the VDAF. Run by the client, this generates the sequence of InputShareMessage messages to send to the aggregators. Note that this particular VDAF does not have a public parameter.

The verify-start algorithm of the VDAF. Run by each aggregator, this consumes the InputShareMessage message sent from the client and produces the VerifyMessage message that will be broadcast to the other aggregators. This VDAF does not involve an aggregation parameter.