Algorithm Diversity for Resilent Systems
Technical Report,01 Jul 2015,30 Jun 2016
The Research Foundation for The State University of New York Albany United States
Pagination or Media Count:
Diversity can increase the resilience of systems, by reducing the prevalence of shared vulnerabilities. This project explores the use of diversity to detect attacks that, directly or indirectly, cause incorrect changes to a programs state during execution. Specifically, the project aims to develop techniques to introduce algorithm-level diversity, in contrast to existing work on execution-level diversity. Algorithm-level diversity can introduce larger differences between variants than execution-level diversity and hence can provide greater resilience. Our approach to creating algorithm-level diversity is to start from a high-level executable specification and generate different algorithms that satisfy it. This approach builds on our extensive prior work on a systematic approach to generating efficient implementation from specifications, based on the fundamental principle of incremental computation. Many choices need to be made during a derivation different choices lead to different algorithms. The generated algorithms may differ in fundamental ways involving both control structures and data structures.