When I studied electronic engineering, there was one code that was so simple to implement but could minimise the number of changes that we have in a circuit: the Gray Code.

For the Gray code, we make sure there is only one bit change for an incremental count. Thus for our binary code, if we go from 1 (0001) to 2 (0010), there is be two transistions of bits. But with a Gray code we can represent 1 by 0001 and 2 by 0011, and so there is only one transition of the bits. The truth table is then:

`Decimal Binary Gray`

----------------------------

0 0000 0000

1 0001 0001

2 0010 0011

3 0011 0010

4 0100 0110

5 0101 0111

6 0110 0101

7 0111 0100

8 1000 1100

9 1001 1101

10 1010 1111

11 1011 1110

12 1100 1010

13 1101 1011

14 1110 1001

15 1111 1000

The circuit for this is then:

Now, let’s implement this with homomorphic encryption. Overall, FHEW [1] uses a LWE (Learning With Error) method that provides fully homomorphic…