Obfuscation of Abstract Data-Types - Rowan
Obfuscation of Abstract Data-Types - Rowan
Obfuscation of Abstract Data-Types - Rowan
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