This textbook provides an all-in-one approach for learning about hardware security of cryptographic systems. It gives the necessary background on mathematics that is used for the construction of symmetric and public-key cryptosystems. Then, it introduces the most commonly used encryption algorithms that can be found on a wide variety of embedded devices to provide confidentiality, integrity, and authenticity of the messages/data. Finally, it provides theoretical and practical details on the two most common attack methods in hardware security side-channel attacks, and fault injection attacks, together with the protection methods used against both.