Can Code Polymorphism Limit Information Leakage?
In addition to its usual complexity assumptions, cryptography silently assumes that information can be physically protected in a single location. As one can easily imagine, real-life devices are not ideal and information may leak through different physical side-channels. It is a known fact that information leakage is a function of both the executed code F and its input x. 
 
In this work we explore the use of polymorphic code as a way of resisting side channel attacks. We present experimental results with procedural and functional languages. In each case we rewrite the protected code code Fi before its execution. The outcome is a genealogy of programs F0, F1, . . . such that for all inputs x and for all indexes i ≠ j ⇒ Fi(x) = Fj(x) and Fi ne; Fj . This is shown to increase resistance to side channel attacks.