Expand description
fancy-garbling provides boolean and arithmetic garbling capabilities.
Modules§
- circuit
- DSL for creating circuits compatible with fancy-garbling in the old-fashioned way, where you create a circuit for a computation then garble it.
- circuit_
analyzer - Fancy object to profile a fancy circuit and compute stats such as the multiplicative depth or the number of boolean and arithmetic gates in a circuit.
- classic
- Provides objects and functions for statically garbling and evaluating a circuit without streaming.
- dummy
- Dummy implementation of
Fancy. - errors
- Errors that may be output by this library.
- informer
Informerruns a fancy computation and learns information from it.- util
- Tools useful for interacting with
fancy-garbling.
Structs§
- Binary
Bundle - Bundle which is explicitly binary representation.
- Bundle
- A collection of wires, useful for the garbled gadgets defined by
BundleGadgets. - CrtBundle
- Bundle which is explicitly CRT-representation.
- Evaluator
- Streaming evaluator using a callback to receive ciphertexts as needed.
- Garbler
- Streams garbled circuit ciphertexts through a callback.
- Wire
Mod2 - Representation of a
mod-2wire. - Wire
Mod3 - Representation of a
mod-3wire. - Wire
ModQ - Representation of a
mod-qwire.
Enums§
Traits§
- Arithmetic
Bundle Gadgets - Arithmetic operations on wire bundles, extending the capability of
FancyArithmeticoperating on individual wires. - Arithmetic
Wire - A marker trait indicating that the given
WireLabelinstantiation supports arithmetic operations. - Binary
Bundle Gadgets - Binary operations on wire bundles, extending the capability of
FancyBinaryoperating on individual wires. - Binary
Gadgets - Extension trait for
Fancyproviding gadgets that operate over bundles of mod2 wires. - Binary
Wire Label - The
BinaryWireLabelprovides the subroutines to implement AND gates for the garbler and evaluator incrate::fancy::FancyBinary. - Bundle
Gadgets - Extension trait for Fancy which provides Bundle constructions which are not necessarily CRT nor binary-based.
- CrtGadgets
- Extension trait for
Fancyproviding advanced CRT gadgets based on bundles of wires. - Fancy
- DSL for the basic computations supported by
fancy-garbling. - Fancy
Arithmetic - DSL for arithmetic computation.
- Fancy
Binary - Fancy DSL providing binary operations
- Fancy
Input - Convenience functions for encoding input to Fancy objects.
- Fancy
Reveal - Trait to describe Fancy objects which can reveal outputs to both parties. For many simple Fancy objects in this library such as Dummy, this is simply output. For Garbler and Evaluator, it is more complicated since the BMR16 protocol outputs to the Evaluator only.
- HasModulus
- An object that has some modulus. Basic object of
Fancycomputations. - Wire
Label - A trait that defines a wirelabel as used in garbled circuits.
Functions§
- hash_
wires - Hash a batch of wires, using the same tweak for each wire.