Garble Mixed Boolean and Arithmetic Circuits

Jianqiao Mo 09-05-2024

TL;DR:

Garble Circuit (GC) is a powerful technique for privacy-preserving computation (secure multi-party computation).

There are two types of GC: Boolean GC and arithmetic GC. Recent paper demonstrates efficient transformations between them (BC: bit composition, BD: bit decomposition).

Mul
Mul
A
A
B
B
Sqrt
Sqrt
C
C
D
D
Boolean
Boolean
Boolean
Boolean
Mul
Mul
E
E
F
F
Sqrt
Sqrt
C
C
D
D
Arithmetic
Arithmetic
Boolean
Boolean
BD
BD

We implement these transformations in the library, and profile the scenario to choose the optimal GC realization - given a user computation, either Boolean GC or mixed GC will be the most suitable choice.


[Github]

  • This library implements mixed Garbled Circuits (GC), i.e., transformations between Boolean and arithmetic GC without revealing plaintext values.

  • The transformations include bit composition, where Boolean values are composed into CRT-arithmetic labels, and bit decomposition, which breaks CRT-arithmetic labels down into Boolean values. These methods allow for efficient and secure conversions between different types of GC, optimized for practical use in privacy-preserving computation.