Creating Transformations for Matrix Obfuscation

  • Authors:
  • Stephen Drape;Irina Voiculescu

  • Affiliations:
  • Computing Laboratory, Oxford University, Oxford, UK OX1 3QD;Computing Laboratory, Oxford University, Oxford, UK OX1 3QD

  • Venue:
  • SAS '09 Proceedings of the 16th International Symposium on Static Analysis
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

There are many programming situations where it would be convenient to conceal the meaning of code, or the meaning of certain variables. This can be achieved through program transformations which are grouped under the term obfuscation . Obfuscation is one of a number of techniques that can be employed to protect sensitive areas of code. This paper presents obfuscation methods for the purpose of concealing the meaning of matrices by changing the pattern of the elements. We give two separate methods: one which, through splitting a matrix, changes its size and shape, and one which, through a change of basis in a ring of polynomials, changes the values of the matrix and any patterns formed by these. Furthermore, the paper illustrates how matrices can be used in order to obfuscate a scalar value. This is an improvement on previous methods for matrix obfuscation because we will provide a range of techniques which can be used in concert. This paper considers obfuscations as data refinements. Thus we consider obfuscations at a more abstract level without worrying about implementation issues. For our obfuscations, we can construct proofs of correctness easily. We show how the refinement approach enables us to generalise and combine existing obfuscations. We then evaluate our methods by considering how our obfuscations perform under certain relevant program analysis-based attacks.