Point and Permute
As described in the last subsection, the evaluator has to decrypt all the four ciphertexts of all the garbled gates, and extracts the valid label. This trial decryption results in 4 decryption operations and ciphertext expansion.
The point-and-permute optimization of garbled circuit in BMR90 only needs 1 decryption and no ciphertext expansion. It works as follows.
-
For the two random labels of each wire, the garbler assigns uniformly random
color
bits to them. For example for the wire , the garbler chooses uniformly random labels , and then sets . Note that the randomcolor
bits are independent of the truth bits. -
Then the garbled gate becomes the following. Suppose the relation of the labels and
color
bits are , ,
Color Bits | Garbled Gate |
---|---|
- Reorder the 4 ciphertexts canonically by the color bits of the input labels as follows.
Color Bits | Garbled Gate |
---|---|
- When the evaluator gets the input label, say , the evaluator first extracts the
color
bits and decrypts the corresponding ciphertext (the third one in the above example) to get a output label.
Encryption Instantiation
The encryption algorithm is instantiated with hash function (modeled as random oracle) and one-time pad. The hash function could be truncated . The garbled gate is then as follows.
Color Bits | Garbled Gate |
---|---|
For security and efficiency reasons, one usually uses tweakable hash functions: , where is public and unique for different groups of calls to . E.g., could be the gate identifier. Then the garbled gate is as follows. The optimization of tweakable hash functions is given in following subsections.
Color Bits | Garbled Gate |
---|---|