Verifying and Synthesizing Constant-Resource Implementations with Types
Van Chan Ngo, Mario Dehesa-Azuara, Matthew Fredrikson, Jan Hoffmann

TL;DR
This paper introduces a new type system that verifies and synthesizes constant-resource implementations, incorporating information flow tracking to ensure resource behavior does not leak sensitive information, and automates program repair.
Contribution
It presents a novel type system extending AARA with information flow tracking, formalizes resource-aware noninterference, and automates the synthesis of secure constant-time programs.
Findings
Successfully verified constant-time behavior in cryptographic routines
Automatically repaired insecure programs to meet resource constraints
Derived quantitative bounds on information leakage through resource analysis
Abstract
We propose a novel type system for verifying that programs correctly implement constant-resource behavior. Our type system extends recent work on automatic amortized resource analysis (AARA), a set of techniques that automatically derive provable upper bounds on the resource consumption of programs. We devise new techniques that build on the potential method to achieve compositionality, precision, and automation. A strict global requirement that a program always maintains constant resource usage is too restrictive for most practical applications. It is sufficient to require that the program's resource behavior remain constant with respect to an attacker who is only allowed to observe part of the program's state and behavior. To account for this, our type system incorporates information flow tracking into its resource analysis. This allows our system to certify programs that need to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
