Starting from the seminal work of Volpano and Smith, there has been growing evidence that type systems may be used to enforce confidentiality of programs through non-interference. However, most type systems operate on high-level languages and calculi, and "low-level languages have not received much attention in studies of secure information flow" (Sabelfeld and Myers, [1]). Therefore, we introduce an information flow type system for a low-level language featuring jumps and calls, and show that the type system enforces termination-insensitive noninterference. Furthermore, information flow type systems for low-level languages should appropriately relate to their counterparts for high-level languages. Therefore, we introduce a compiler from a high-level imperative programming language to our low-level language, and show that the compiler preserves information flow types.
Barthe et al. REF describe a security type system for a low level language with jumps and calls and prove that information flow types are preserved by the compilation from a high level imperative language.
Security types preserving compilation
Comput. Lang. Syst. Struct.
Comput. Lang. Syst. Struct.
Computer Science