Apparatus and an accompanying method, for forming and embedding a highly
tamper-resistant cryptographic identifier, i.e., a watermark, within
non-marked executable code, e.g., an application program, to generate a
"watermarked" version of that code. Specifically, the watermark,
containing, e.g., a relatively large number of separate executable
routines, is tightly integrated into a flow pattern of non-marked
executable code, e.g., an application program, through randomly
establishing additional control flows in the executable code and inserting
a selected one of the routines along each such flow. Since the flow
pattern of the watermark is highly intertwined with the flow pattern of
the non-marked code, the watermark is effectively impossible to either
remove from the code and/or circumvent. The routines are added in such a
manner that the flow pattern of resulting watermarked code is not
substantially different from that of the non-marked code, thus frustrating
third party detection of the watermark using, e.g., standard flow analysis
tools. To enhance tamper-resistance of the watermarked code, each such
routine can provide a pre-defined function such that if that routine were
to be removed from the marked code by, e.g., a third party adversary, then
the marked code will prematurely terminate its execution.
Materiale e un metodo accompagnante, per formare e l'incastonatura del contrassegno crittografico altamente alter-resistente, cioè, una filigrana, all'interno del codice eseguibile non-contrassegnato, per esempio, un programma di applicazione, per generare una versione "con filigrana" di quel codice. Specificamente, la filigrana, contenente, per esempio, un numero relativamente grande di procedure eseguibili separate, è integrata strettamente in un modello di flusso del codice eseguibile non-contrassegnato, per esempio, un programma di applicazione, through a caso stabilendo il controllo supplementare entra nel codice eseguibile e nell'inserimento selezionato delle procedure lungo ogni tale flusso. Poiché il modello di flusso della filigrana altamente intertwined con il modello di flusso del codice non-contrassegnato, la filigrana è efficacemente impossibile a o rimuove dal codice e/o aggira. Le procedure sono in maniera tale che il modello di flusso del codice con filigrana risultante non sia sostanzialmente differente da quello del codice non-contrassegnato, rilevazione aggiunta dei terzi così di frustrazione della filigrana per mezzo, per esempio, degli attrezzi standard di analisi di flusso. Per aumentare la alter-resistenza del codice con filigrana, ogni tale procedura può fornire una funzione predefinita tali che se quella procedura dovesse essere rimossa dal profondo codice vicino, per esempio, un avversario dei terzi, allora il profondo codice prematuramente terminerà la relativa esecuzione.