Time consistency is critical in many fields, especially in sensitive applications like cryptography. The FaCT DSL is used to define functions with predictable execution times to prevent timing leaks. In this notebook, functions have been created to simulate varying computational complexity (e.g., sorting, searching).
In the code snippet below the timing-sensitive sorting function is set and measures how long it takes to execute, with an optional delay.
This code creates a function to sort a random array, with an optional delay to simulate timing inconsistencies, and measures how long it takes to execute.
The plot shows the consistency of execution times across different input sizes without any intentional delay, allowing to observe how input size affects timing stability.