WO2002101519A2 - Method and system for generating sustainable digital watermarks - Google Patents
Method and system for generating sustainable digital watermarks Download PDFInfo
- Publication number
- WO2002101519A2 WO2002101519A2 PCT/CA2002/000847 CA0200847W WO02101519A2 WO 2002101519 A2 WO2002101519 A2 WO 2002101519A2 CA 0200847 W CA0200847 W CA 0200847W WO 02101519 A2 WO02101519 A2 WO 02101519A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- encoding
- program
- watermark
- data
- digital
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000006870 function Effects 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 9
- 230000000295 complement effect Effects 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 4
- 230000001131 transforming effect Effects 0.000 claims 2
- 238000004422 calculation algorithm Methods 0.000 abstract description 25
- 238000012986 modification Methods 0.000 abstract description 6
- 230000004048 modification Effects 0.000 abstract description 6
- 230000000739 chaotic effect Effects 0.000 abstract description 3
- 230000003245 working effect Effects 0.000 abstract description 2
- 238000013459 approach Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 239000006185 dispersion Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 235000000332 black box Nutrition 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 241001074639 Eucalyptus albens Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002153 concerted effect Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003090 exacerbative effect Effects 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1063—Personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
Definitions
- the present invention relates generally to computer software, and more specifically, to a method and system which allows digital watermarking algorithms to be kept secret, while still allowing ownership of marked entities to be demonstrated in public or in court.
- Digital marks such as "digital fingerprints” or “watermarks” are patterns of bits (i.e. O's and 1's) inserted into a digital file, that can be used to identify the file's owner or originator. Unlike printed watermarks, which are intended to be somewhat visible, digital watermarks are designed to be invisible. The actual bits that make up the watermark are also scattered throughout the digital file so that they cannot be identified and manipulated by an attacker. Digital marks generally serve two basic purposes (see, for example:
- the investigative need is the easier of the two needs to meet, since everything may be kept secret: the owner need reveal nothing about how the mark was applied, and legal proof is not required. That is, there is generally no need to justify the manner in which the thief was identified, since the owner is primarily interested in asserting legal rights over a marked entity in the thief's possession.
- One aspect of the invention is broadly defined as a method for performing digital marking comprising the steps of: developing a digital mark injector program for inserting a digital mark into a digital file; developing a complementary digital mark extractor program for identifying the digital mark in the digital file; and encoding the digital mark extractor program using tamper-resistant software encoding techniques.
- Another aspect of the invention is defined as a system for performing digital marking comprising a computer operable to perform the steps of: developing a digital mark injector program for inserting a digital mark into a digital file; developing a complementary digital mark extractor program for identifying the digital mark in the digital file; and encoding the digital mark extractor program using tamper-resistant software encoding techniques.
- Figure 1 presents a flow chart of a general algorithm for implementation of the invention
- Figure 2 presents an exemplary computer system in which the invention may be embodied
- Figure 3 presents a flow chart of a method for performing control-flow encoding in an embodiment of the invention
- Figure 4 presents a flow chart of a method for performing white-box encoding in an embodiment of the invention.
- digital marking techniques are typically implemented using a complementary pairing of injector and extractor software, the injector software being used to insert the digital mark into a targeted software, data or other digital file, and the extractor program being used to identify the digital mark that was injected into the digital file.
- the extractor program is then encoded using tamper-resistant software
- TRS tamper-resistant software
- the chaos enhances the obscurity by frustrating perturbation analysis (i.e. it roughly corresponds to 'full cascade' in cryptography).
- watermarking is a form of steganography, it protects against analysis of the watermarking algorithm by fault injection, which has been shown to be an effective attack against cryptographic functions embodied in smart cards, for example.
- TRS The obscurity of TRS, and its chaotic response to tampering, are both relative rather than absolute. As in the case of the obscurity provided by cryptography, these properties are removable in principle: however, we can make the required effort for such removal expensive for the attacker. TRS techniques which are particularly effective in digital mark applications are described hereinafter.
- the method of the invention enables a sustainable watermarking strategy in which the watermarking method is kept secret.
- the invention will be of most value to an owner who requires a long-term, legally verifiable, watermarking strategy, where many different items will be watermarked, so that the number of forms of watermark is substantial. If the owner decides to employ a secret watermarking method, but also needs the capability of verifying the presence of the watermark in court, the following approach could be used:
- the owner develops or obtains a series of watermarking methods, each consisting of two algorithms: an injector, which 'marks' an entity with the watermark, and an extractor, which reads out the watermark information.
- injector/extractor pairs are required when it is desirable to have digital marks stored in different patterns, or using different encodings.
- These different injector/extractor pairs can be said to contain "secret keys" in that each injector/extractor pair will inherently (or explicitly) have data which define the pattern and encoding for that pair.
- Generic injector/extractor pairs could also be written, which require a user- input key to establish the patterns and encoding parameters of a digital mark;
- each extractor algorithm is converted into TRS form (a TRS-extractor) which is then: a. published; and b. registered with a trusted third party;
- TRS-extractor a TRS-extractor
- Various forms of publication of the extractor may be used, including Internet publication with download capability whereby the TRS-extractor software can easily be obtained by virtually anyone, or publication on physical media such as floppy disk, cassette tape, or CD ROM, or as program text in a widely recognized source language such as C or JavaTM;
- each TRS-extractor is tested by the trusted third party to verify that it recognizes and extracts watermarks from marked items but extracts no watermark from an unmarked (or differently marked) item;
- the owner can use an extremely heavily protected form of TRS-extractor. Within limits, the TRS-extractor can run slowly and take a lot of space, providing a maximum of freedom in the conversion techniques used to convert the extractor to tamper-resistant form. Also, the more computer resources it costs to run the TRS-extractor, the harder an attack will be: an attacker needs many runs for cracking whereas proof of ownership in court takes just one; and
- the owner can deploy a large number of different injectors and extractors, so that the expense of compromising any given watermark is multiplied by the number of TRS-extractors which the owner has published.
- the injectors may be kept a secret, as the TRS-extractors may be legitimized independently of the injectors.
- other implementations are also possible, such as preparing TRS versions of both an injector and an extractor.
- the shortcoming of this technique would be that an attacker may be able to obtain useful information by comparing the operation of the injector and extractor algorithms, knowing that they are complements of one another.
- an attacker could inject a watermark into a blank digital file and obtain a perfect mapping of the digital mark.
- such an implementation would almost invariably be applied with a secret key input by the user at run time, the secret key dictating the pattern of the digital mark, and the encoding parameters.
- the method of the invention may be applied on virtually any computer or microprocessor-based system.
- An exemplary system on which the invention may be implemented, is presented as a block diagram in Figure 2.
- This computer system 30 includes a display 32, keyboard 34, computer 36 and external devices 38.
- the computer 36 may contain one or more processors or microprocessors, such as a central processing unit (CPU) 40.
- the CPU 40 performs arithmetic calculations and control functions to execute software stored in an internal memory 42, preferably random access memory (RAM) and/or read only memory (ROM), and possibly additional memory 44.
- the additional memory 44 may include, for example, mass memory storage, hard disk drives, floppy disk drives, magnetic tape drives, compact disk drives, program cartridges and cartridge interfaces such as those found in video game devices, removable memory chips such as EPROM or PROM, or similar storage media as known in the art.
- This additional memory 44 may be physically internal to the computer 36, or external as shown in Figure 1.
- the computer system 30 may also include other similar means for allowing computer programs or other instructions to be loaded.
- Such means can include, for example, a communications interface 46 which allows software and data to be transferred between the computer system 30 and external systems.
- communications interface 46 can include a modem, a network interface such as an Ethernet card, a serial or parallel communications port.
- Software and data transferred via communications interface 46 are in the form of signals which can be electronic, electromagnetic, optical or other signals capable of being received by communications interface 46. Multiple interfaces, of course, can be provided on a single computer system 30.
- Input and output to and from the computer 36 is administered by the input output (I/O) interface 48. This I/O interface 48 administers control of the display 32, keyboard 34, external devices 38 and other such components of the computer system 30.
- I/O input output
- TRS encoding techniques There are many TRS encoding techniques known in the art. These techniques may generally be categorized as follows:
- White-box encoding concerns TRS encoding of functions and transforms for an environment in which the software is fully-accessible. It is somewhat misleading to divide encoding techniques out in this manner.
- TRS be much more than simply obscure. It should also resist tampering. That is, it should preferably be aggressively fragile under tampering, so that attempts to change its functionality result, not in the desired change, but in useless pieces of nonsense code. (Avoiding a visible point of failure prevents leakage of information about why the functionality has become nonsense.)
- As with encryption, the mapping from original form (plaintext or ordinary software, respectively) to encoded form (ciphertext or TRS, respectively) is one way. it is very much easier to encrypt or cloak, respectively, than to decrypt or de-cloak, respectively, unless the secret information used in encrypting or cloaking is known.
- TRS is software which can do its job perfectly well while remaining in TRS form. This is a significant difference, and means that the applications of cryptography and the applications of TRS are orthogonal and complementary: each does something that the other cannot.
- the other aspect of data-flow cloaking for TRS is to induce aggressive fragility under tampering. This is achieved by generating code according to the following policies:
- control-flow of a program refers to the decision points and branch instructions that govern which lines of code in the program are to be executed.
- control-flow encoding increases tamper-resistance by adding fake- robust, data-driven, control transfers to the software code. If a large number of control transfers are added to the software code, it will be extremely difficult for the attacker to identify the specific line of control that he wishes to analyse or modify.
- control-flow encoding ensures that what was one control transfer, has been instantiated in multiple parts of the code, and that control transfers from different parts of the code are often merged into one. As the added control transfers are fake-robust, the erroneously modified program will appear to continue executing properly, while in fact it is not. Since control is exercised using a complex data- driven scheme, any attempt to modify a single control transfer will almost certainly affect others (this is described as the "anti-hologram” property), especially where multiple control transfers are often combined into one (the “togetherness” property), as they are in this invention.
- control-flow encoding is presented as a flow chart in Figure 3.
- the operations in the targeted code preferably in SSA (single-static assignment) or similar intermediate form, are re-sorted without changing the semantics of the program.
- the code is in an intermediate form, the interdependencies of the intermediate statements are clear and the bounds on what re-sorting could be performed may be easily determined. The understanding of these interdependencies is what allows multi-threading and optimisation techniques as known in the art.
- SSA is a very commonly used intermediate form.
- these instructions can be re-sorted so that a direct decompiling into high level language yields obscure results.
- an enormously greater benefit is realized with the synergy between re-sorting of the code and the creation of 'lake-robust" targets at step 54.
- a fake-robust target is one which will appear to operate correctly when it is modified, but in fact, results in nonsensical operation.
- the re-sorted code is copied into multiple different segments. For example, in a contiguous sequence of ten successive instructions, six distinct segments of five contiguous instructions each, may be identified (namely, the pieces comprising instructions 1 to 5, 2 to 6, 3 to 7, 4 to 8, 5 to 9, or 6 to 10 of the original sequence of ten instructions). Of course, many more distinct segments may be selected from the sequence of ten instructions by choosing segments of different lengths. Some of the selections will consist of segments or sequences of segments that will correctly mirror the functionality of the original program.
- new control transfer instructions are added to make reference to the new code segments created at step 52.
- the targeted code is now protected by control-flow encoding.
- control-flow encoding Additional details on control-flow encoding may be found in the co-pending patent application titled: Tamper Resistant Software - Control-flow Encoding, filed under the Patent Co-operation Treaty on August 18, 2000, under Serial No. PCT/CA00/00943; inventors: Stanley Chow, Harold Johnson, and Yuan Gu.
- each original operation is represented, variously cloaked, at multiple cloaked sites;
- execution paths include a pseudo-random component: any change in input data causes pervasive changes to branch patterns;
- simplification requires removal of the pseudo-random component from branches, but it appears indistinguishable from the normal components (see comment on NP-hardness below); d. simplification requires unraveling of both the branching and the data- flow together; and e. almost any perturbation-based analysis on control-flow, in effect, involves branch jamming, and will fail as branch jamming will fail.
- Mass data encoding relies on the random or pseudo-random dispersion of data being stored, throughout the available memory or an area of the available memory. This dispersion makes it very difficult for an attacker to locate certain pieces of data he is searching for, and also distributes the data values with respect to one another. Thus, data are not stored in areas of the memory one might expect them to be, and there are no clearly identifiable blocks or patterns of data in the memory.
- a simple technique for performing mass data encoding is to respond to a request to store a data value at a virtual address, by mapping that virtual address onto a randomly selected actual address. This mapping may be done in a truly random manner, but will generally be done in a pseudo-random manner, because of the difficulties in generating truly random numbers in pure software.
- a desirable technique for generating pseudo-random address is by use of a hash function, which generates what appears to be a random number from a given input.
- a hash function which generates what appears to be a random number from a given input.
- the definition of a hash function is somewhat more restrictive, but it is clear in this case that any function may be employed which maps a given input onto a random or pseudo-random output.
- mass data encoding techniques may also be used to complement the main invention. These additional techniques may be applied collectively, or independently to obtain varying degrees of security:
- White-box encoding concerns cryptographic computation which can be observed in complete detail without revealing internal data such as a secret key.
- the white-box techniques of the invention provide ways to make finding an embedded cryptographic key or other hidden information combinatorially difficult for the attacker, even under this severe threat model. Such methods are inherently bulkier and slower than software designed under a black-box model, but in digital mark extraction applications, the tradeoff is well worthwhile.
- white-box encoding is implemented by as shown in the flow chart of Figure 4. Firstly, functions and transforms substantive to the targeted software program are identified at step 70. Next, new functions and transforms which alter the processing activity visible to the attacker are generated at step 72. The identified functions and transforms are then replaced with the new functions and transforms in the software program at step 74.
- a linear transform can be replaced with a simple lookup table. If unused portions of the lookup table are filled with random data, then the lookup table becomes non-linear and irreducible.
- Lookup tables can also be partitioned so that they are accessed by concatenated input variables; that is, the table is indexed by the values of two variables, concatenated together. This has the effect of replacing two variables with a single variable having a lookup table which will generally be non-linear. If a lookup table is generated for a transform concatenated with a random transform, then the lookup table will almost certainly be non-linear and irreducible.
- the invention can be employed to protect any manner of software from being analysed, reversed-engineered, or simply observed to discover secure data such as secret keys. Secret keys can then be incorporated into software programs without the danger of the secret key being disclosed, or the program being altered to do anything other than what it was originally intended to do.
- many digital marking algorithms employ secret keys to the extent that they contain secret data which defines the pattern of memory locations for the digital mark data, the parameters of any encoding, and the content of the digital mark itself.
- watermark extractors do not have a critical decision branch like a password checker would.
- the watermark is typically a visual image which says something like "Property of OwnerCo, Chicago, Illinois. Watermarked on April 1 ,
- the typical extractor program may also contain mass data structures, though this depends very much on the particular watermark extraction algorithm.
- the secret key i.e. the data which defines the pattern of memory locations for the digital mark data, the parameters of any encoding, and the content of the digital mark itself
- the watermark algorithm may depend on large mathematical tables generated in advance for computing certain functions, which also are good candidates for mass data encoding.
- a 'normal' watermarking approach reveals the watermarking algorithm when it is applied for legal enforcement of property rights.
- a TRS-based approach allows this enforcement to be done without revealing the algorithm to the public.
- TRS encoding such as that provided by the invention is necessary to preserve such complex, diverse, context-sensitive, data-sensitive extraction algorithms, or assemblages of algorithms. Without using TRS, this cannot be done.
- TRS-extractor any publication of the extractor reveals its methods. Moreover, the third party entrusted with testing the extractors becomes a potential point of leakage for the marking techniques, even if they were otherwise kept secret. TRS permits the owner to prove to a court that:
- the owner is not cheating, by publishing the various TRS-extractors in advance, and
- the method steps of the invention may be embodiment in sets of executable machine code stored in a variety of formats such as object code or source code.
- Such code is described generically herein as programming code, or a computer program for simplification.
- the executable machine code may be integrated with the code of other programs, implemented as subroutines, by external program calls or by other techniques as known in the art.
- the embodiments of the invention may be executed by a computer processor or similar device programmed in the manner of method steps, or may be executed by an electronic system which is provided with means for executing these steps.
- an electronic memory means such computer diskettes, CD-Roms, Random Access Memory (RAM), Read Only Memory (ROM) or similar computer software storage media known in the art, may be programmed to execute such method steps.
- electronic signals representing these method steps may also be transmitted via a communication network.
- Portable music devices such as mp3 players, video disk players such as DVD players are just two such devices that are commonly used with watermarked data content.
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02737682A EP1421457A2 (en) | 2001-06-08 | 2002-06-10 | Method and system for generating sustainable digital watermarks |
AU2002312670A AU2002312670A1 (en) | 2001-06-08 | 2002-06-10 | Method and system for generating sustainable digital watermarks |
CA002449595A CA2449595A1 (en) | 2001-06-08 | 2002-06-10 | Method and system for sustainable digital watermarking |
US10/478,696 US7395433B2 (en) | 2001-06-08 | 2002-06-10 | Method and system for sustainable digital watermarking |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002350029A CA2350029A1 (en) | 2001-06-08 | 2001-06-08 | Sustainable digital watermarking via tamper-resistant software |
CA2,350,029 | 2001-06-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2002101519A2 true WO2002101519A2 (en) | 2002-12-19 |
WO2002101519A3 WO2002101519A3 (en) | 2004-02-05 |
Family
ID=4169233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CA2002/000847 WO2002101519A2 (en) | 2001-06-08 | 2002-06-10 | Method and system for generating sustainable digital watermarks |
Country Status (5)
Country | Link |
---|---|
US (1) | US7395433B2 (en) |
EP (1) | EP1421457A2 (en) |
AU (1) | AU2002312670A1 (en) |
CA (1) | CA2350029A1 (en) |
WO (1) | WO2002101519A2 (en) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005122114A1 (en) * | 2004-06-10 | 2005-12-22 | Protection Technology Limited | Water marks injector |
KR100611989B1 (en) * | 2004-08-31 | 2006-08-11 | 삼성전자주식회사 | Method and apparatus for generating fingerprint codes |
CN1322433C (en) * | 2004-08-12 | 2007-06-20 | 西南交通大学 | Positioning vulnerable water print generating and recognizing method capable of distigushing image and watermark distortion |
WO2007036863A3 (en) * | 2005-09-30 | 2007-07-19 | Nxp Bv | Watermarking of a processing module |
EP1722313A3 (en) * | 2005-05-12 | 2008-07-30 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
EP1734459A3 (en) * | 2005-05-12 | 2008-10-01 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
CN100428107C (en) * | 2004-02-11 | 2008-10-22 | 北京邮电大学 | Digital watermarking infrastructure |
WO2009034504A2 (en) * | 2007-09-13 | 2009-03-19 | Koninklijke Philips Electronics N.V. | Cryptographic processing of content |
US8510571B1 (en) | 2003-03-24 | 2013-08-13 | Hoi Chang | System and method for inserting security mechanisms into a software program |
US8621187B2 (en) | 2008-02-11 | 2013-12-31 | Nxp, B.V. | Method of program obfuscation and processing device for executing obfuscated programs |
US8661559B2 (en) | 2003-08-18 | 2014-02-25 | Riverside Research Institute | Software control flow watermarking |
US8856500B2 (en) | 2008-02-06 | 2014-10-07 | Nxp B.V. | Obfuscating program by scattering sequential instructions into memory regions such that jumps occur with steps of both signs in equal frequency |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7770016B2 (en) * | 1999-07-29 | 2010-08-03 | Intertrust Technologies Corporation | Systems and methods for watermarking software and other media |
JP2004362532A (en) * | 2002-10-25 | 2004-12-24 | Matsushita Electric Ind Co Ltd | Watermark insertion device and watermark extraction device |
US8887287B2 (en) * | 2004-10-27 | 2014-11-11 | Alcatel Lucent | Method and apparatus for software integrity protection using timed executable agents |
EP1715436A3 (en) * | 2005-04-21 | 2007-03-28 | St Microelectronics S.A. | Protection of program execution performed by an integrated circuit or the data stored in this circuit |
US7760903B2 (en) * | 2005-08-30 | 2010-07-20 | Microsoft Corporation | Tamper-resistant text stream watermarking |
FR2903508B1 (en) * | 2006-07-10 | 2008-10-17 | Sagem Defense Securite | PROTECTION OF A PROGRAM INTERPRETED BY A VIRTUAL MACHINE |
WO2009007876A2 (en) * | 2007-07-06 | 2009-01-15 | Koninklijke Philips Electronics N.V. | Warermarking and encryption of entropy-coded data using additive huffman table |
US20100095376A1 (en) * | 2008-03-07 | 2010-04-15 | Rodriguez Tony F | Software watermarking |
JP5460699B2 (en) * | 2008-05-23 | 2014-04-02 | イルデト カナダ コーポレーション | System and method for generating a white-box implementation of a software application |
EP2359520B1 (en) * | 2008-11-17 | 2019-08-14 | Intrinsic ID B.V. | Distributed puf |
EP3923165A1 (en) | 2009-11-13 | 2021-12-15 | Irdeto B.V. | System and method to protect java bytecode code against static and dynamic attacks within hostile execution environments |
US20150121073A1 (en) | 2012-03-23 | 2015-04-30 | Irdeto B.V. | Software fingerprinting |
WO2015149826A1 (en) | 2014-03-31 | 2015-10-08 | Irdeto B.V. | Protecting an item of software |
GB201405755D0 (en) | 2014-03-31 | 2014-05-14 | Irdeto Bv | Optimizing and protecting software |
US20160132317A1 (en) | 2014-11-06 | 2016-05-12 | Intertrust Technologies Corporation | Secure Application Distribution Systems and Methods |
GB201505553D0 (en) | 2015-03-31 | 2015-05-13 | Irdeto Bv | Online advertisements |
US10223511B2 (en) * | 2016-03-30 | 2019-03-05 | Nxp B.V. | Watermarking input and output of a white-box implementation |
CA3047009A1 (en) | 2016-12-15 | 2018-06-21 | Irdeto B.V. | Software integrity verification |
GB201703864D0 (en) | 2017-03-10 | 2017-04-26 | Irdeto Bv | Secured system operation |
US10805693B2 (en) | 2017-09-12 | 2020-10-13 | Irdeto B.V. | Device and method for GPU-based watermarking |
CN108491698B (en) * | 2018-03-22 | 2020-03-10 | 维沃移动通信有限公司 | Watermark generation method and mobile terminal |
US10797868B2 (en) | 2018-05-31 | 2020-10-06 | Irdeto B.V. | Shared secret establishment |
US10706746B2 (en) * | 2018-06-01 | 2020-07-07 | Polyverse Corporation | Pure binary scrambling |
US11263316B2 (en) | 2019-08-20 | 2022-03-01 | Irdeto B.V. | Securing software routines |
US11574032B2 (en) | 2019-11-14 | 2023-02-07 | Baidu Usa Llc | Systems and methods for signing an AI model with a watermark for a data processing accelerator |
US11582260B2 (en) | 2019-11-14 | 2023-02-14 | Baidu Usa Llc | Systems and methods for verifying a watermark of an AI model for a data processing accelerator |
US11481678B2 (en) * | 2019-11-14 | 2022-10-25 | Baidu Usa Llc | Systems and methods for learning new watermark algorithms for a data processing accelerator |
US11579928B2 (en) | 2019-11-14 | 2023-02-14 | Baidu Usa Llc | Systems and methods for configuring a watermark unit with watermark algorithms for a data processing accelerator |
EP4339835A1 (en) | 2022-09-16 | 2024-03-20 | Irdeto B.V. | Machine learning model protection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892899A (en) * | 1996-06-13 | 1999-04-06 | Intel Corporation | Tamper resistant methods and apparatus |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5123045A (en) * | 1989-08-18 | 1992-06-16 | Massachusetts Institute Of Technology | Comprehensive software protection system |
CA2184949C (en) * | 1995-09-28 | 2000-05-30 | Ingemar J. Cox | Secure spread spectrum watermarking for multimedia data |
US5889868A (en) * | 1996-07-02 | 1999-03-30 | The Dice Company | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US5875249A (en) * | 1997-01-08 | 1999-02-23 | International Business Machines Corporation | Invisible image watermark for image verification |
US5991519A (en) * | 1997-10-03 | 1999-11-23 | Atmel Corporation | Secure memory having multiple security levels |
US6330672B1 (en) * | 1997-12-03 | 2001-12-11 | At&T Corp. | Method and apparatus for watermarking digital bitstreams |
JP3654077B2 (en) * | 1999-09-07 | 2005-06-02 | 日本電気株式会社 | Online digital watermark detection system, online digital watermark detection method, and recording medium on which online digital watermark detection program is recorded |
-
2001
- 2001-06-08 CA CA002350029A patent/CA2350029A1/en not_active Abandoned
-
2002
- 2002-06-10 EP EP02737682A patent/EP1421457A2/en not_active Withdrawn
- 2002-06-10 WO PCT/CA2002/000847 patent/WO2002101519A2/en not_active Application Discontinuation
- 2002-06-10 US US10/478,696 patent/US7395433B2/en not_active Expired - Fee Related
- 2002-06-10 AU AU2002312670A patent/AU2002312670A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892899A (en) * | 1996-06-13 | 1999-04-06 | Intel Corporation | Tamper resistant methods and apparatus |
Non-Patent Citations (3)
Title |
---|
BERGHEL H ET AL: "PROTECTING OWNERSHIP RIGHTS THROUGH DIGITAL WATERMARKING" COMPUTER, IEEE COMPUTER SOCIETY, LONG BEACH., CA, US, US, vol. 29, no. 7, 1 July 1996 (1996-07-01), pages 101-103, XP000613936 ISSN: 0018-9162 * |
FABIEN A.P. PETITCOLAS, ROSS J. ANDERSON, MARKUS G. KUHN: "Attacks on Copyright Marking Systems" SECOND WORKSHOP ON INFORMATION HIDING, LECTURE NOTES IN COMPUTER SCIENCE, vol. 1525, 14 - 17 April 1998, pages 218-238, XP002261151 Portland, Oregon cited in the application * |
NASIR MEMON, PING WAH WONG: "Protecting Digital Media Content" COMMUNICATIONS OF THE ACM, vol. 41, no. 7, July 1998 (1998-07), pages 34-43, XP002261150 cited in the application * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510571B1 (en) | 2003-03-24 | 2013-08-13 | Hoi Chang | System and method for inserting security mechanisms into a software program |
US8661559B2 (en) | 2003-08-18 | 2014-02-25 | Riverside Research Institute | Software control flow watermarking |
CN100428107C (en) * | 2004-02-11 | 2008-10-22 | 北京邮电大学 | Digital watermarking infrastructure |
WO2005122114A1 (en) * | 2004-06-10 | 2005-12-22 | Protection Technology Limited | Water marks injector |
CN1322433C (en) * | 2004-08-12 | 2007-06-20 | 西南交通大学 | Positioning vulnerable water print generating and recognizing method capable of distigushing image and watermark distortion |
KR100611989B1 (en) * | 2004-08-31 | 2006-08-11 | 삼성전자주식회사 | Method and apparatus for generating fingerprint codes |
EP1722313A3 (en) * | 2005-05-12 | 2008-07-30 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
EP1734459A3 (en) * | 2005-05-12 | 2008-10-01 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
US8209543B2 (en) | 2005-09-30 | 2012-06-26 | Nxp B.V. | Watermarking of a processing module |
WO2007036863A3 (en) * | 2005-09-30 | 2007-07-19 | Nxp Bv | Watermarking of a processing module |
WO2009034504A2 (en) * | 2007-09-13 | 2009-03-19 | Koninklijke Philips Electronics N.V. | Cryptographic processing of content |
WO2009034504A3 (en) * | 2007-09-13 | 2009-06-04 | Koninkl Philips Electronics Nv | Cryptographic processing of content |
US8726029B2 (en) | 2007-09-13 | 2014-05-13 | Irdeto Corporate B.V. | Cryptographic processing of content |
KR101545631B1 (en) | 2007-09-13 | 2015-08-26 | 이르데토 비.브이. | Cryptographic processing of content |
US8856500B2 (en) | 2008-02-06 | 2014-10-07 | Nxp B.V. | Obfuscating program by scattering sequential instructions into memory regions such that jumps occur with steps of both signs in equal frequency |
US8621187B2 (en) | 2008-02-11 | 2013-12-31 | Nxp, B.V. | Method of program obfuscation and processing device for executing obfuscated programs |
Also Published As
Publication number | Publication date |
---|---|
US7395433B2 (en) | 2008-07-01 |
WO2002101519A3 (en) | 2004-02-05 |
US20050021966A1 (en) | 2005-01-27 |
CA2350029A1 (en) | 2002-12-08 |
AU2002312670A1 (en) | 2002-12-23 |
EP1421457A2 (en) | 2004-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7395433B2 (en) | Method and system for sustainable digital watermarking | |
US7464269B2 (en) | Secure method and system for handling and distributing digital media | |
US9659157B2 (en) | Systems and methods for watermarking software and other media | |
US7346780B2 (en) | Integrity ordainment and ascertainment of computer-executable instructions | |
Collberg et al. | Watermarking, tamper-proofing, and obfuscation-tools for software protection | |
US7797549B2 (en) | Secure method and system for biometric verification | |
US5745569A (en) | Method for stega-cipher protection of computer code | |
CA2783822C (en) | Steganographic messaging system using code invariants | |
CA3047009A1 (en) | Software integrity verification | |
CA2384360A1 (en) | Tamper resistant software encoding | |
CA2449595A1 (en) | Method and system for sustainable digital watermarking | |
CA2454761A1 (en) | Secure method and system for handling and distributing digital media | |
Beri et al. | Dynamic software component authentication for autonomous systems using slack space | |
Pervez et al. | Semblance based disseminated software watermarking algorithm | |
Kosky | Software Executable Fingerprinting: Literature Review and a Case Study | |
Collberg et al. | Watermarking, Tamper-Proofing and Obfuscation | |
Sharma | Watermarking for copyright protection of software codes | |
Mokhov et al. | A Java Data Security Framework (JDSF) and its Case Studies | |
Fla et al. | Moskowitz et al. | |
CA2451617A1 (en) | Secure method and system for biometric verification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2449595 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2002737682 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2002737682 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2002737682 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 10478696 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |