23.11.2013 Views

Obfuscation of Abstract Data-Types - Rowan

Obfuscation of Abstract Data-Types - Rowan

Obfuscation of Abstract Data-Types - Rowan

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.4.3 Third Definition . . . . . . . . . . . . . . . . . . . . . . . 102<br />

5.4.4 Last Definition . . . . . . . . . . . . . . . . . . . . . . . . 104<br />

5.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />

6 The Matrix Obfuscated 107<br />

6.1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

6.2 Matrix data-type . . . . . . . . . . . . . . . . . . . . . . . . . . . 108<br />

6.2.1 Definitions <strong>of</strong> the operations . . . . . . . . . . . . . . . . 109<br />

6.3 Splitting Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

6.3.1 Splitting in squares . . . . . . . . . . . . . . . . . . . . . . 110<br />

6.3.2 Modelling the split in Haskell . . . . . . . . . . . . . . . . 112<br />

6.3.3 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />

6.3.4 Deriving transposition . . . . . . . . . . . . . . . . . . . . 113<br />

6.3.5 Problems with arrays . . . . . . . . . . . . . . . . . . . . 115<br />

6.4 Other splits and operations . . . . . . . . . . . . . . . . . . . . . 116<br />

6.4.1 Other Splits . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

6.4.2 A more general square splitting . . . . . . . . . . . . . . . 117<br />

6.4.3 Extending the data-type <strong>of</strong> matrices . . . . . . . . . . . . 118<br />

6.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />

7 Cultivating Tree <strong>Obfuscation</strong>s 119<br />

7.1 Binary Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />

7.1.1 Binary Search Trees . . . . . . . . . . . . . . . . . . . . . 120<br />

7.2 Obfuscating Trees . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />

7.2.1 Ternary Trees . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />

7.2.2 Particular Representation . . . . . . . . . . . . . . . . . . 124<br />

7.2.3 Ternary Operations . . . . . . . . . . . . . . . . . . . . . 126<br />

7.2.4 Making Ternary Trees . . . . . . . . . . . . . . . . . . . . 127<br />

7.2.5 Operations for Binary Search Trees . . . . . . . . . . . . . 128<br />

7.2.6 Deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br />

7.3 Other Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />

7.3.1 <strong>Abstract</strong>ion Functions . . . . . . . . . . . . . . . . . . . . 130<br />

7.3.2 Heuristics . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />

7.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132<br />

IV Conclusions 133<br />

8 Conclusions and Further Work 134<br />

8.1 Discussion <strong>of</strong> our approach to <strong>Obfuscation</strong> . . . . . . . . . . . . . 134<br />

8.1.1 Meeting the Objectives . . . . . . . . . . . . . . . . . . . 134<br />

8.1.2 Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />

8.1.3 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />

8.1.4 Randomness . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />

8.1.5 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />

8.2 Further Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />

8.2.1 Deobfuscation . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

8.2.2 Other techniques . . . . . . . . . . . . . . . . . . . . . . . 138<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!