Creating Transformations for Matrix Obfuscation
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.
KeywordsObfuscation Matrix Operations Information Hiding Program Transformations
Unable to display preview. Download preview PDF.
- 2.Berchtold, J.: The Bernstein basis in set-theoretic geometric modelling. PhD thesis, University of Bath (2000)Google Scholar
- 5.Claessen, K., Hughes, J.: QuickCheck: a lightweight tool for random testing of Haskell programs. ACM SIGPLAN Notices (2000)Google Scholar
- 6.Collberg, C., Thomborson, C., Low, D.: A taxonomy of obfuscating transformations. Technical Report 148, Department of Computer Science, University of Auckland (July 1997)Google Scholar
- 8.Drape, S.: Obfuscation of Abstract Data-Types. DPhil thesis, Oxford University Computing Laboratory (2004)Google Scholar
- 13.Geisow, A.: Surface Interrogations. PhD thesis, University of East Anglia (1983)Google Scholar
- 16.LiDIA Group, Darmstadt University of Technology, www.cdc.informatik.tu-darmstadt.de/TI/LiDIA