The widely used encryption algorithms, based both on private- and public-key cryptography, provide provable security guarantees against attacks under an abstract model of computation. In reality, physical systems leak information and the adversarial access is not completely captured by the abstractions in the standard model. Attacks that exploit a physically observable signal, such as power, timing, or electromagnetic (EM) radiation, are known as side-channel attacks. They present a formidable challenge to ensuring the security of existing cryptographic applications.