Applied Cryptography
Which of the following is an appropriate measure to increase crypto agility (the property of making cryptographic schemes easy to replace) in system design?
- AWrite the cryptographic algorithms and key lengths directly into the program so that nobody can change the settings during operation
- BKeep a list of which cryptographic schemes are used where, and make algorithms replaceable through configuration or protocol negotiation
- CSince new cryptographic schemes may have defects, keep using only proven schemes that have been in use for more than 20 years
Show answer and explanation
Answer: B. Keep a list of which cryptographic schemes are used where, and make algorithms replaceable through configuration or protocol negotiation
Cryptographic schemes can become insecure as attacks advance, as with MD5, SHA-1 and short-key RSA, and the migration to post-quantum cryptography is another such case. If a scheme is written deep into a program, just finding where it is used takes effort, and replacing it takes many years. Keeping an inventory of which cryptography is used where, including algorithm identifiers in communication and data formats, and making algorithms replaceable through configuration allow migrations to proceed quickly and safely.
- A. Writing them in directly makes replacement slow when a scheme becomes dangerous. It is the opposite of crypto agility.
- B. Correct. Both a cryptographic inventory and a design that allows replacement are needed.
- C. Some old schemes already have known attacks. It is important to be ready to move to new schemes.