We provide the reference and optimized implementations of EMBLEM and R.EMBLEM (download the source code here). The latest implementation results of EMBLEM and R.EMBLEM are shown below:
- [I] EMBLEM
- Choose each element of the secret key from [-1,1] uniformly at random
- Encode 8 bits at a time (t=8)
- [II] EMBLEM
- Choose each element of the secret key from [-1,1] uniformly at random
- Encode 4 bits at a time (t=4)
- [III] EMBLEM
- Choose each element of the secret key from [-2,2] uniformly at random
- Encode 8 bits at a time (t=8)
- [IV] EMBLEM
- Choose each element of the secret key from [-2,2] uniformly at random
- Encode 4 bits at a time (t=4)
- [i] R.EMBLEM
- Choose each element of the secret key from [-1,1] uniformly at random
- Encode 1 bit or 2 bits at a time (t=1 or 2)
- Use the Number Theoretic Transform (NTT)
- [ii] R.EMBLEM
- Choose each element of the secret key from [-2,2] uniformly at random
- Encode 1 bit or 2 bits at a time (t=1 or 2)
- Use the Number Theoretic Transform (NTT)