Patent Document ID: 20120159194
Application ID: 12974952
Patent Flag: 0

Claim One:
1. A method of securing an executable program comprising a cipher with a plurality of functional components each of which can be implemented by one or more polymorphic code blocks, the method comprising the following in any order: receiving input comprising information for encryption or decryption by the cipher, recursively executing the polymorphic code blocks repeatedly in any sequence and/or in parallel, on execution each polymorphic code block reads input from memory and generates and writes output to memory, wherein for any instance of execution the input and output might or might not be valid, checking for a halting condition using at least one polymorphic code block, outputting resultant decryption or encryption of the information when the halting condition occurs, the halting condition occurring when polymorphic code blocks implementing the functional components of the cipher have all been executed to provide valid output, the resultant decryption or encryption of information being the output from one or more of the polymorphic code blocks.