Patent ID: 7506167

Claim:
An apparatus for forming an identifier for an input object and for securely marking the input object with the identifier so as to yield a marked object, the apparatus comprising: a processor; and a memory having computer executable instructions stored therein; and wherein the processor, in response to the stored executable instructions: generates a flow representation for the input object, the representation having a plurality of nodes, said nodes representing predefined first operations performed by the input object, and connections among the nodes signifying associated flow among the predefined first operations performed by the input object; partitions the flow representation into k-clusters each so as to yield a cluster flow representation, at least one of the k-clusters including two or more of the plurality of the nodes; randomly selects first and second nodes from the plurality of nodes in the cluster flow representation so as to form a pre-defined number of nodal pairs, each of said pairs having one of the first nodes and a corresponding one of the second nodes; wherein the processor, in response to the stored instructions, randomly selects the first and second nodes from different clusters within the cluster flow representation; and for each of the nodal pairs, establishes flow between the first and second nodes in said each nodal pair and inserts, in the flow so established, a selected one of a plurality of different pre-defined second operations so as to collectively define the marked object, whereby the marked object implements the predefined first operations and a plurality of selected ones of the predefined second operations, each of which has been randomly spliced into flow of the input object, wherein the identifier collectively comprises all the different ones of the plurality of predefined second operations, and the associated execution flow associated therewith and involving the nodal pairs.