About Cryptographic Engineering
Cryptographic engineering is the name we have coined to refer to the theory and practice of engineering of cryptographic systems, i.e., encryption and decryption engines, digital signature and authentication hardware and software systems, key generation, distribution, and management systems, and random number generators. A cryptographic engineer designs, implements, tests, and validates cryptographic systems. She is also interested in cryptanalyzing them for the purpose of checking their robustness and their strength against attacks, and also building countermeasures in them in order to thwart such attacks by reducing their probability of success.
This is a subject barely taught in our undergraduate and graduate schools. Most courses in cryptography deal with theory, generally introducing mathematically expressed algorithms without showing (or knowing) how they are realized in actual software or hardware. As expected, the devil is in the details: The fastest and most...