Source: https://www.irif.fr/_media/users/ylg/crypto.pdf