Source: http://math.univ-lyon1.fr/capes/IMG/pdf/UE10-CoursSSL.pdf