Forward and backward simulations I.: untimed systems
Information and Computation
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Simple relational correctness proofs for static analyses and program transformations
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
An approach to formal verification of arithmetic functions in assembly
ASIAN'06 Proceedings of the 11th Asian computing science conference on Advances in computer science: secure software and related issues
A kripke logical relation between ML and assembly
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Certifying assembly with formal security proofs: The case of BBS
Science of Computer Programming
On construction of a library of formally verified low-level arithmetic functions
Innovations in Systems and Software Engineering
Hi-index | 0.00 |
Most information security infrastructures rely on cryptography, which is usually implemented with low-level arithmetic functions. The formal verification of these functions therefore becomes a prerequisite to firmly assess any security property. We propose an approach for the construction of a library of formally verified low-level arithmetic functions that can be used to implement realistic cryptographic schemes in a trustful way. For that purpose, we introduce a formalization of data structures for signed multi-precision arithmetic and we experiment it with formal verification of basic functions, using Separation logic. Because this direct style of formal verification leads to technically involved specifications, we also propose for larger functions to show a formal simulation relation between pseudo-code and assembly. This is illustrated with the binary extended gcd algorithm.