When we develop N-for-1 Auth (ePrint 2021/342), many circuit files that we need were unavailable.
This repository contains the circuits that we synthesize or assemble using existing works.
To synthesize circuits, we leverage the DFF library from TinyGarble and scripts from SCALE-MAMBA. The synthesizing is done with the Synopsys tools thanks to UC Berkeley's subscription.
To assemble circuits, we use base circuits from Nigel Smart and Matteo Campanelli. We want to highlight the latter's SHA256 circuit: Steven Goldfeder discovered that previous methods to synthesize SHA256 circuits are suboptimal, and special tricks are needed to force the synthesizer to use a simple adder. The assembly is done using EMP-toolkit, which has a powerful plaintext engine for making circuit files.
A collection of Bristol format circuit files related to TLS-in-SMPC.
- [key-derivation]: Circuits for key derivation in TLS
- [aes]: Circuits for AES
- [gcm]: Circuits for computing GCM power shares
- [sha256]: Circuits for multi-block SHA256
- [generator]: Program that assembles these circuits
This repository is not subject to the U.S. Export Administration Regulation (EAR) because it is publicly available; notifications to U.S. Bureau of Industry and Security (BIS) and National Security Agency (NSA) have been sent.
For more information about this regulatory issue, see this post by Electronic Frontier Foundation (EFF).