Security without Obscurity: A Guide to Cryptographic Architectures