Cryptographic Engineering covers the theory and practice of engineering of cryptographic systems, including encryption and decryption engines, digital signature and authentication systems, true random number generators, and the design, implementation, testing, and validation of cryptographic systems. This book also addresses cryptanalysis of security systems for the purpose of checking their robustness and their strength against attacks, and building countermeasures in order to thwart such attacks by reducing their probability of success.
The material includes four important features:
Cryptographic Engineering is a comprehensive text that is suitable as a handbook for hardware and software engineers who are interested in building secure systems using cryptographic techniques.
Working in the area of cryptography, one encounters two distinct schools of thinking. The first school is conducted by mathematicians who are usually interested in cryptographic theory and cryptographic algorithms. The implementation of these algorithms is of a secondary importance to this school of thinking style. Attack on an algorithm, as viewed by this school, is anything that breaks the algorithm faster than brute force even if this attack in some cases is totally impractical. One can call this type of attacks "mathematical attacks." The second school of thought, usually adopted by engineers, considers that an attack is successful if it is practical or at least will be practical in the foreseen future. Usually engineers are busy implementing algorithms using high-level programming languages such as C language or hardware description languages such as VHDL or Verilog languages. Their aim is to provide software and hardware implementations of a certain cryptographic algorithm. They are also thinking of probable side-channel attacks and other implementation-dependent attacks. Some controversy may arise between these two schools of thinking styles. The definition of an attack varies widely between a mathematician's and an engineer's perspectives.
The text provides an attempt to cover the theory and practice of cryptography from an engineering point of view. It includes ASIC and FPGA hardware cryptographic designs, a section on implementation of Random Number Generators, a discussion on known side-channel attacks and a section on public key cryptography.
This is one-of-a kind textbook that represents an early introduction to the subject of cryptographic engineering.