https://djao.math.uwaterloo.ca/wiki/images/9/9c/Indocrypt11.pdf
https://www.win.tue.nl/~berry/papers/crypto99.pdf