xaynet_core provides basic building blocks for implementing the
Privacy-Enhancing Technology (PET), a privacy preserving
protocol for federated machine learning. Download the whitepaper
for an introduction.
Wrappers around some of the sodiumoxide crypto primitives.
Masking, aggregation and unmasking of models.
The messages of the PET protocol.
An error related to insufficient system entropy for secrets at program startup.
A public encryption key that identifies a coordinator.
A secret encryption key that belongs to the public key of a coordinator.
Local seed dictionaries are sent by update participants. They contain the participant's masking seed, encrypted with the ephemeral public key of each sum participant.
A public signature key that identifies a participant.
A secret signature key that belongs to the public key of a participant.
A signature to prove a participant's eligibility for a task.
A dictionary created during the update phase of the protocol. The global seed dictionary is built from the local seed dictionaries sent by the update participants. It maps each sum participant to the encrypted masking seeds of all the update participants.
A dictionary created during the sum phase of the protocol. It maps the public key of every sum participant to the ephemeral public key generated by that sum participant.
A public encryption key generated by a sum participant. It is used by the update participants to encrypt their masking seed for each sum participant.
The secret counterpart of
A public signature key that identifies a sum participant.
A secret signature key that belongs to the public key of a sum participant.
A public signature key that identifies an update participant.
A secret signature key that belongs to the public key of an update participant.