Software defines what moves us. From mobility apps and real-time maps to increasingly automated vehicles, lines of code have become fundamental to the world of transportation.
As this software becomes more complex, there’s a greater chance for human error, opening up more potential for security and safety risks.
To ensure that this vital software is secure, NVIDIA is working with AdaCore, a development and verification tool provider for safety and security critical software. By implementing the Ada and SPARK programming languages into certain firmware elements, we can reduce the potential for human error.
Both languages were designed with reliability, robustness and security in mind. Using them for programming can bring more efficiency to the process of verifying that code is free of bugs and vulnerabilities.
For industries that have strong safety, reliability and security standards, like aerospace and automotive, these benefits can translate to nearly 40 percent cost and time savings from enhanced software verification, according to a study by consultancy VDC Research.
Catching Defects Earlier
Ada has a variety of built-in features that detect code defects early in the software life cycle. These reduce the potential for human error and the need for extra cycles of testing and peer review after development.
SPARK, a subset of Ada, is able to mathematically prove whether code written in that language is error-free. This proof is able to define how the software application should behave. It also determines whether the implementation is in accordance with that definition, finding bugs or vulnerabilities that may not have been detected otherwise.
By integrating these languages into NVIDIA hardware, the potential for the software to malfunction or be exploited is minimized. This verification process can happen faster and sooner in the development cycle, reducing waste.
Measures like the incorporation of Ada and SPARK languages into NVIDIA’s platform can help improve the robustness of automotive security, especially as cars become increasingly automated.
That software must be as functionally safe as the hardware it operates upon, undergoing the same rigorous standards and expert assessments. With languages that perform verifications, this process becomes baked into development, creating a smoother review cycle.
“Self-driving cars are complex and require sophisticated software exceeding the most rigorous standards out there,” said Daniel Rohrer, vice president of software security at NVIDIA. “Ada and SPARK bring exciting possibilities to address the critical needs of this ecosystem.”