Building a Crypto-Agility Training Program for Developers
Teach developers to implement crypto-agile best practices
Crypto-agility is best practice for the modern business. It streamlines quantum migration and enables organizations to quickly adapt to deprecated algorithms or vulnerable implementations. NIST has even published a guide specifically on how to implement crypto-agile principles within an organization.
While a crypto-agility program requires executive buy-in, the real work falls on developers. Software engineers need to understand why traditional development practices for implementing cryptographic code no longer work and what changes need to be made going forward.
Why Developer Training Specifically
Crypto-agility touches various different departments within the organization. It has compliance implications as the company transitions to post-quantum algorithms, and the potential for broken algorithms and exposed data impacts the security and legal teams as well.
However, developers are explicitly called out in NIST CSWP 39 Section 6.5 because they're responsible for writing the code that is crypto-agile or isn't. Core crypto-agile principles, like using a crypto API and implementing abstraction for accessing cryptographic functionality, aren't how many developers traditionally do things. Without training on why crypto-agility is important and how to implement best practices, an organization is unlikely to meet its crypto-agility goals.
What Developers Need to Know
Software developers often know how to implement cryptography in their code. There are numerous examples online, and AI can provide good examples and explanations of security best practices.
However, writing the code the crypto-agile way requires:
Avoiding Hardcoded Calls: Often, developers will hardcode calls to cryptographic algorithms within their application logic. When cryptography was relatively static, this was a fairly safe decision since the choice to use RSA-2048 and AES-256 was best practice. However, the need for quantum migration and the potential for vulnerabilities in cryptographic libraries means that this practice can be a liability and a source of technical debt.
Using Crypto APIs: Crypto-agility best practices state that all cryptography should be accessed via a centralized crypto API, making it easier to swap out or reconfigure algorithms as needed. Developers need to know how to design these APIs and call them correctly in their code. For example, quantum migration is dramatically changing the lengths of public keys and digital signatures used by public key cryptography (RSA-3072 ≈ few hundred bytes vs. ML-DSA's 2,420-byte signature), making it necessary for applications to be able to adapt to changing key lengths.
Updating the CBOM: A cryptographic bill of materials (CBOM) is a complete inventory of an organization's cryptographic code, making it easier to identify and update code that needs to be changed as part of quantum migration or a response to a broken crypto library. Developers need to understand what a CBOM is, the information that it contains, and the importance of ensuring that their code is visible within the inventory.
While quantum migration is a major driver for embracing crypto-agility, it isn't the only reason for doing so and shouldn't entirely set the timeline and scope of the project. Widely-used cryptographic libraries like Bouncy Castle have had vulnerabilities in the past (CVE-2020-28052 and CVE-2026-5588), and organizations need to be prepared to rapidly swap out impacted cryptographic code.
Where Training Fits
Developers already should receive a certain amount of initial and ongoing security training. For example, an onboarding to the OWASP Top Ten with regular refreshers is best practice to reduce the risk that the organization falls prey to common vulnerabilities.
Crypto-agility training naturally fits into the same schedule, including a session during on-boarding and recurring refreshers. Training can also be partially event-driven, as quantum migration, a deprecated algorithm, or a CVE disclosure for a major cryptographic library provide opportunities to tie training to real-life consequences.
Common Objections to Developer Training
Adding additional training content to developers' workload might seem like it's just getting in the way of shipping code. Some common objections to crypto-agility training include:
"Developers already know crypto": Many developers are already crypto-literate, meaning that they know how to implement encryption and hash algorithms securely. However, this often involves hardcoding crypto calls within application code, making them more difficult to update later. Crypto-agility training introduces less common practices, such as the use of crypto APIs and a CBOM.
"One onboarding session is enough": Most of the key principles of crypto-agility can be covered in a single session during onboarding; however, repetition is essential for retention and adoption. This is why NIST's guide explicitly calls out regular, ongoing training as part of its recommendations for developers.
"This is the security team's job": The security team is certainly impacted by crypto-agility, quantum migration, and the need to address deprecated algorithms and new CVEs. However, developers are responsible for writing the code that calls crypto functions. Training developers on crypto-agile best practices makes it cheaper and easier for the business to update its crypto usage as needed, which will be essential during quantum migration.
Measuring the Success of Developer Training
Crypto-agility training shouldn't be a check-the-box exercise for the business. Embracing crypto-agile best practices makes the company more secure and adaptive to new cryptographic risks.
For this reason, attendance shouldn't be the only metric used to measure the success of a training program. More useful KPIs include:
Number of Hardcoded Calls: Hardcoded calls to cryptographic functions are a key liability to an organization's crypto-agility program. Checks for these can be easily automated in a CI/CD pipeline and tracked as a metric for the success of the training program.
CBOM Coverage: A CBOM should be a comprehensive inventory of an organization's crypto usage, with new entries created as cryptographic code is added to the codebase. Estimated CBOM coverage and whether entries are created with new code (instead of during later reviews) can help track crypto visibility.
Crypto Incident Response Times: In the event of a CVE involving cryptography, rapid remediation may be necessary to protect sensitive data or authentication flows. The time required to swap out vulnerable implementations helps to measure an organization's existing level of crypto-agility.
Building the Program
Organizations looking to develop a crypto-agility training program should follow these steps:
Define the Curriculum: Developer training for crypto-agility should cover the risks of hardcoded algorithms, the use of crypto APIs, CBOM usage, and the rationale behind adopting crypto-agility best practices.
Choose a Format: Crypto-agility training can be embedded within onboarding training or delivered as separate, standalone modules. Ideally, training should include examples of best-practice implementations compared to insecure practices like hardcoded cryptographic calls.
Assign Ownership: Ownership of the training program should be officially assigned and documented. This helps to ensure that it isn't overlooked and continues to meet the needs of the business.
Set a Cadence: Companies should set a defined cadence for regular re-training. Additionally, ad hoc, event-driven sessions should be scheduled in the wake of a CVE disclosure, algorithm deprecation, or similar event.
Pilot and Revise: Training should be run initially with a small starting group to collect feedback and tune the program. KPIs collected from the pilot group can help with determining effectiveness and any changes that are needed before a wide-scale rollout.
Further Reading
NIST CSWP 39, Section 6.5 (Tier 3 criterion) and Section 5 (governance integration)
Why Hardcoding Algorithms in Your Codebase Is a Liability
Crypto Bill of Materials (CBOM), Explained
FAQs
Does documentation replace the need for actual training?
No, documentation defines the rules for development but doesn't encourage anyone to read or follow them. Regular, actual training helps to ensure that developers absorb the content and increases the likelihood of retention and adoption.
How is this different from general security-awareness training?
General security-awareness training covers common vulnerabilities and security threats and best practices for avoiding them. Crypto-agility training teaches developers to write cryptographic code in a way that makes it easier to adapt as part of quantum migration or in response to a broken algorithm or crypto library CVE.
How often should refreshers happen?
Refreshers should happen at the same cadence as other developer or security refreshers. Additionally, special sessions might be scheduled as needed in response to certain events, like a vulnerability discovered in a major crypto library.