2.12 Cryptography: A Subtle Art
This chapter has presented just a brief overview of the basics of digital cryptography at a high level. Beyond the security of individual algorithms lies the question of overall system security. A secure system can be made insecure by the addition of one more operation/feature even if that operation is secure in isolation.
Technical progress in this area occurs constantly. Unless you want to make the study of this area into your life's work, we suggest you follow these guidelines:
Do not depend on security by obscurity (i.e., the secrecy of your algorithms). Depend only on the secrecy of symmetric and private keys.
Do not design your own basic cryptographic algorithms or formats. Use recentbut not too recentstrong algorithms and formats that have been subject to public scrutiny.
Pay attention to such often neglected areas as randomness generation and proper canonicalization for your application.
Keep in mind that physical security of cryptographic processing and key storage; covert channels and electromagnetic emanations that can compromise keying material or plain text; traffic analysis; operational procedures; and personnel security, all of which are beyond the scope of this book, can be crucial, depending on your threat model.
Cross your fingers and consider actively monitoring for intrusion or compromise: No matter how careful you are, security is never perfect.