WO1999031842A1 - Conditional use private key distribution - Google Patents

Conditional use private key distribution Download PDF

Info

Publication number
WO1999031842A1
WO1999031842A1 PCT/US1998/026415 US9826415W WO9931842A1 WO 1999031842 A1 WO1999031842 A1 WO 1999031842A1 US 9826415 W US9826415 W US 9826415W WO 9931842 A1 WO9931842 A1 WO 9931842A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
tamper resistant
executable
key module
digital content
Prior art date
Application number
PCT/US1998/026415
Other languages
French (fr)
Other versions
WO1999031842A8 (en
Inventor
Gary L. Graunke
John Carbajal
Richard L. Maliszewski
Carlos V. Rozas
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25539740&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO1999031842(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to AU18201/99A priority Critical patent/AU1820199A/en
Publication of WO1999031842A1 publication Critical patent/WO1999031842A1/en
Publication of WO1999031842A8 publication Critical patent/WO1999031842A8/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption

Definitions

  • the present invention relates generally to digital content protection in computer systems and more specifically to dynamically and securely distributing a private key over a network so only a specific trusted player can use the private key to access specific encrypted digital content.
  • the personal computer (PC) platform is an open and accessible computer architecture.
  • the openness of the PC means that it is a fundamentally insecure computing platform. Both the hardware and software can be accessed for observation and modification. This openness allows malicious users and programs to observe and to modify executing code. For example, this insecurity has been exploited by software viruses that attack a user's PC. Software viruses infect PCs by masquerading as popular software or by attaching themselves to other programs. Such observation or modification can be performed by either a malevolent user or a malicious program.
  • the threat of digital piracy at the PC requires new software that is resistant to attacks by a malicious user.
  • the malicious user may wish to tamper with or replace components of the software in order to gain unauthorized access to digital content or to make unauthorized reproductions.
  • a cryptosystem based on cryptographic methods may be used to protect the content owner's rights.
  • Content may be encrypted to provide some measure of protection, but the software accessing the encrypted content is still vulnerable to attack.
  • Public key cryptography uses two keys to perform cryptographic operations. One key is public and known to everyone while the second key is private and known only to a particular user. Depending on the cipher, there are two uses of public key cryptography. The first use is encryption where the public key can be used to send information that only a user with the corresponding private key can read. The second use is digital signatures where the public key is used to verify the digital signature while the private key is used to create the signature.
  • a digital signature convinces a recipient that the signer and no one else deliberately signed a document (e.g., a computer file), prevents the signer from claiming that he/she did not sign a document (non-repudiation), and prevents the document from being altered without detection.
  • a document e.g., a computer file
  • non-repudiation e.g., non-repudiation
  • DSA Digital Signature Algorithm
  • DSA Digital Signature Algorithm
  • a practical consideration in using public key algorithms is that they are not efficient enough to sign large documents. Consequently, digital signature protocols use one-way hash functions to improve performance and security of the protocol.
  • Certificates are used to provide a tight binding between a public/private key pair and an identity.
  • the binding must be certified by some certificate authority using a digital signature. Certificates may imply privileges like a credit card or a driver's license.
  • For certificates to be useful there must be at least one known trusted public key. This key is called the root key and the corresponding certificate is called the root certificate.
  • the root key must be distributed by some trusted means like certified postal mail.
  • the application could be a digital versatile disk (DVD) player and the storage medium could be a DVD.
  • DVD digital versatile disk
  • the user typically buys the DVD player software, installs it on the PC, and buys DVD content to be operated on by the DVD player.
  • the content may include any multimedia data.
  • the content on the DVD is encrypted by the DVD manufacturer to prevent unauthorized copies from being made by users. The user cannot simply view the DVD's content; it must be decrypted by the DVD player and the DVD player typically does not provide the capability for storing decrypted content.
  • the key used to decrypt the DVD is typically included in the DVD player so that when the user inserts a DVD into a DVD drive, the DVD player decrypts the encrypted content and plays it in realtime for the user.
  • the key is able to be used with all encrypted DVDs.
  • the DVD player software could be "hacked” and the key obtained.
  • a rogue DVD player could then be constructed to use the recovered key to decrypt any encrypted DVD content and store it on the PC's hard drive for subsequent unauthorized copies to be made.
  • An embodiment of the present invention is a method of securely distributing data to a process on a remote system.
  • the method includes the steps of generating an asymmetric key pair having a public key and a private key, encrypting predetermined data with the generated public key, building an executable tamper resistant key module identified for the process, the executable tamper resistant key module including the generated private key and the encrypted predetermined data, and sending the executable tamper resistant key module to the remote system.
  • the tamper resistant key module is then executed on the remote system to check the integrity and authenticity of the process and the integrity of the tamper resistant key module itself. If the validation process is successful, then the encrypted predetermined data is decrypted with the generated private key included in the tamper resistant key module.
  • FIG. 1 is a diagram of the computer system environment of one embodiment of the present invention.
  • FIG. 2 is a diagram of a trusted player having the capability to use a key mechanism without direct access to the key according to the present invention
  • FIG. 3 is a diagram illustrating an example of a manifest
  • FIG. 4A and 4B are flow diagrams illustrating the operation of a secure key distribution system according to the present invention.
  • FIG. 5 is a diagram of the key module generation function.
  • An embodiment of the present invention includes a method of securely distributing a private key to a user's application program (also called a "trusted player” such as a digital versatile disk (DVD) player, compact disk read only memory (CD-ROM) player, or floppy disk device driver, and the like) with conditional access based on verification of the trusted player's integrity and authenticity.
  • the trusted player can then use the private key to decrypt or sign a digital object.
  • Conditional access to digital content is controlled because the trusted player is not pre-loaded with any key; each key is dynamically generated and communicated in real-time to the trusted player in a secure manner.
  • the trusted player is not dependent on only one global key for decryption purposes of all digital content for the trusted player.
  • each key is valid only for selected digital content (e.g., a particular movie, song, game, etc.). Additionally, the key is not nakedly transmitted to the trusted player, because the key could then be intercepted and copied. Instead, it is wrapped into a key module in which the key can only be used by the right trusted player as determined by the key module. The key module plugs in to the trusted player to validate the player and decrypt the content.
  • An embodiment of the present invention binds the integrity of a given application to its ability to perform some cryptographic operation using an asymmetric key pair in a manner that is tamper resistant. The goal is to prevent an unencrypted copy of digital content to be made. The trusted player will not be able to perform the cryptographic operation if its integrity has been compromised.
  • An embodiment of the present invention includes integrity verification kernels (IVKs), the use of an asymmetric key pair and a key compiler, and tamper resistance methods. It combines the cryptographic technologies of digital signatures and certificates with tamper resistant software to improve the integrity of the trusted player and a key module on the PC. Once these methods are used, this software is very difficult to modify without detection. Additionally, intrusive debuggers may not be used to debug or trace software protected in this manner.
  • FIG. 1 is a diagram of the computer system environment of one embodiment of the present invention.
  • a computer system 10 (such as a PC) includes a storage device 12 which accepts one or more removable storage mediums 14.
  • the storage device may be a floppy disk drive unit, a CD-ROM drive unit, a DVD drive unit, or other data storage unit not yet developed.
  • the removable storage medium may be a floppy disk, a CD-ROM, a DVD, or other data storage medium not yet developed.
  • the storage medium includes digital content encrypted to provide protection against unauthorized use.
  • the digital content may consist of any multimedia data, such as films, music, games, etc.
  • the data on the storage medium is accessed by a program such as a storage device reader 16 via key module 18.
  • the storage device reader forwards decrypted digital content to other application programs (not shown) for presentation or other use by a user (not shown).
  • the storage device reader may be a trusted DVD player and the digital content may be a feature film
  • the reader may be a CD-ROM player and the digital content may be a computer game
  • the reader may be a CD-ROM audio player and the digital content may be recorded music, etc.
  • the storage device reader 16 interacts with a key module 18, which is downloaded from a communications network or otherwise accessed by the storage device reader.
  • the key module 18 verifies that the storage device reader is authentic and that access to the digital content is allowed.
  • the key module uses a key integral with the key module to decrypt the encrypted digital content.
  • key module 18 ensures that the party requesting the decryption of an encrypted digital content is authentic and its integrity is verified.
  • key module 18 is provided dynamically by a content provider from a remote system over a communications network such as the Internet.
  • the malicious user may attempt to corrupt the key module to always return a positive verification of the storage device reader, despite the fact that either the key module, the storage device reader, or both, may have been altered, or attempt to change the integrity parameters in the key module. If the malicious user can locate and identify the key in the key module, the malicious user can try to expose the key. The malicious user may try to closely monitor the operation of the key module with a debugging tool to capture the key at the critical moment when it is used to decrypt the digital content.
  • the malicious user may halt the computer system (i.e., "dump core") during the time when the key is being used to decrypt the digital content and search the memory contents of the computer system to identify the key.
  • the present invention is designed to prevent or obstruct all of these attacks by the combined methods of tamper resistance, authentication, and verification of integrity.
  • Integrity is determined by using digital signatures.
  • the integrity of executing storage device reader software is determined by generating a digital signature of the software.
  • An integrity verification kernel (IVK) is software that verifies that a program image corresponds to the supplied digital signature.
  • An IVK is a small code segment that has been "armored” using methods to ensure that it is not easily tampered with.
  • An IVK can be used alone, to ensure that its tasks are executed correctly, or it can be used in conjunction with other software to provide the assurance that the other software has executed correctly (that is, they can be used as verification engines). This use of an IVK provides a robust mechanism for detecting changes made to executing software, where those changes might be caused by transmission errors or malicious attacks to the software. Any change to the software results in a failure in the verification process.
  • IVKs designed to make software tamper resistant, are constructed to perform self-checks of object code, bilateral authentication of partner modules, and checks on local and remote data to verify the integrity of a software module.
  • the IVK is self-modifying and self-decrypting. Two software modules requiring to communicate with each other can establish that the module they are calling is indeed the one they are expecting by computing the digital signature of the called module and comparing the computed signature against a predetermined value. This process is called bilateral authentication. IVKs enable these mechanisms within selected software modules such as the storage device reader and the security module.
  • a key compiler is a program that takes an asymmetric key pair, which is represented as data, and turns it into a piece of executing code such as the key module 18. In this way, the entire key is never assembled at one place in a program at one point in time. Instead, pieces of the key are revealed as they are needed. Thus, the key is distributed in program space. This makes it hard for an attacker to find and change the key.
  • Tamper resistant software is software which is resistant to observation and modification. It can be trusted, within certain bounds, to operate as intended even in the presence of a malicious attack.
  • the software is generated by using a tamper resistant compiler.
  • the tamper resistant compiler is a compiler that when applied to a well prepared software module replaces the plain-text source code compiler generated image with a new image that is obfuscated. This self-decrypting software will only execute properly if no part of the image has been altered from the time it was compiled by the tamper resistant compiler.
  • the tamper resistant compiler is a software approach towards providing kernels of software with the ability to run in a "hidden" execution mode.
  • the tamper resistant compiler is applied to the IVKs and to the output of the key compiler.
  • all or significant portions of key module 18 are processed by the tamper resistant compiler (not shown) to protect it from tampering and the key module includes an IVK to validate the storage device driver.
  • Detailed methods for creating the tamper resistant module and providing integrity verification processing with IVKs and bilateral authentication are disclosed in pending US patent applications entitled “Tamper Resistant Methods and Apparatus", Serial No. 08/662,679, and “Tamper Resistant Methods and Apparatus", Serial No. 08/924,740, both of which are commonly assigned to the same entity as the present invention and are incorporated herein by reference.
  • FIG. 2 is a diagram of a trusted player having the capability to use a key mechanism without direct access to the key according to the present invention.
  • a server computer system 30 communicates with a client computer system 32 via a communications network 34.
  • server 30 is a computer system providing files and data to other computer systems
  • client 32 is a PC being operated by a user (not shown)
  • communications network 34 is the Internet, although other combinations of computer systems and networks may also be used as is appreciated by one skilled in the art.
  • the user interacts with client 32 to request it to read and display some encrypted digital content E(Content) 36.
  • the encrypted content may be a single physical copy of a DVD, CD-ROM, audio CD, or other storage medium inserted into an I/O subsystem (not shown) of client 32 via line 38, or it may be a file downloaded over communications network 34 via line 40 prior to usage.
  • the encrypted content is not accessible without a key to decrypt it.
  • Trusted player 42 is included in client 32 to read the encrypted digital content E(Content), decrypt it, and play it for the user.
  • trusted player 42 is a DVD player, however, in other embodiments, trusted player 42 may consist of other content readers and players such as CD-ROM drive readers, floppy disk drive readers, streaming audio and video readers, text readers, etc.
  • Trusted player 42 includes executable software 44, which is the code image of the trusted player as loaded into the memory of client 32. Also included in the trusted player is a signed manifest 46.
  • the manifest is a statement of the integrity and authenticity (i.e., a signature) of the trusted player software.
  • the manifest is generated by the manufacturer of the trusted player or other provider of the trusted player software.
  • the manifest is a credential about the trusted player including a digital signature of the trusted player software.
  • Signed manifests describe the integrity of a list of digital objects of any type and associate arbitrary attributes with those objects in a manner that is tightly binding and offers non- repudiation.
  • the integrity description does not change the object being described as it exists outside of the object. This means that an object can exist in encrypted form and processes can inquire about the integrity and authenticity of an object or its attributes without decrypting the object.
  • a section of the manifest contains a reference to the object, attributes of the object, and a list of digest algorithm identifiers used to digest the object and the associated digest values.
  • the signer's information describes a list of references to one or more sections of the manifest. Each reference includes a signature information section which contains a reference to a manifest section, a list of digest algorithm identifiers used to digest the manifest section and the associated digest value, and any other attributes that the signer may wish to be associated with the manifest section.
  • the signature block contains a signature over the signer's information.
  • FIG. 3 is a diagram illustrating an example of a manifest.
  • the manifest includes referents such as version number, cryptographic algorithm, signature version, and a digital signature.
  • the trusted player and its signature are freely distributable. However, there is no secret (such as a decryption key) embedded in the trusted player.
  • the manifest 46 is unique for each trusted player 42. It contains a unique identifier relating to the trusted player. For example, the unique identifier could be a number randomly generated by the manufacturer or other provider, a serial number, a credit card number, etc.
  • trusted player 42 requests the keys required to perform the decryption operation from key control software 48 running on server 30 via lines 47 and 49.
  • trusted player includes the identifier of the encrypted content, the manifest 46, and optionally, a client identifier.
  • the request may include some financial information such as a credit card number or billing identifier so server 30 can charge the user for access to the digital content.
  • server 30 can charge the user for access to the digital content.
  • the encrypted content is freely distributable but the user cannot make use of the content until a fee has been paid to obtain the necessary key to decrypt the content.
  • the server calls key control software 48 to execute key module generation (gen) function 50.
  • This function creates a tamper resistant key module 52 containing the keys necessary to decrypt the selected encrypted content 36 and code to validate the trusted player.
  • the key module also includes an integrity verification kernel (IVK) that, when executed by client 32, will attempt to validate the trusted player.
  • the IVK checks that the trusted player accessing the key module on the client is the correct trusted player according to the manifest and that it has not been altered since purchase and installation by the user.
  • the key module is forwarded over communications network 34 to client 32. It is a "plug-in" to executable 44 of trusted player 42.
  • the key module is generated to work with a specific trusted player as identified by the user's request and manifest, and also is unique for specific, user-selected digital content.
  • the key module contains a plurality of keys. It contains an asymmetric public key for verifying the digital signature of the manifest. The digital signature was created using an asymmetric private key by the manufacturer of the trusted player. To create a key module capable of verifying the manifest, key module generation function 50 needs to obtain the corresponding asymmetric public key. The key module also contains one or more symmetric keys for decrypting the encrypted digital content. Finally, the key module includes an asymmetric private key for decrypting the encrypted symmetric public keys when the validity of the trusted player on the client is assured.
  • FIG. 4A and 4B are flow diagrams illustrating the operation of a secure key distribution system according to the present invention.
  • an entity such as a trusted player manufacturer builds a trusted player and an accompanying manifest, and digitally signs the manifest with an asymmetric private key.
  • the corresponding asymmetric public key is stored in a secure database accessible to the server.
  • the trusted player is purchased by a user and installed on the disk drive of the user's PC (the client 32 in FIG. 2).
  • the manifest is also loaded onto the client system.
  • a content provider creates digital content, encrypts the content using one or more symmetric keys, and stores the corresponding symmetric keys in the same or another secure database.
  • the secure databases may be accessible by server 30, e.g., over the Internet.
  • the user then obtains the encrypted content at step 104, for example, by purchasing it at a retail store, by mail order, or through an on-line purchase and delivery mechanism.
  • the trusted player When the user desires to play the encrypted content, he or she directs the trusted player on the client system to initiate the performance operation through a well-known graphical user interface.
  • the trusted player requests the symmetric keys for decrypting the encrypted content from the server by sending a copy of the trusted player's manifest and the user's information regarding the title of the content, and optionally, financial information for the transaction, to the key control software within the server.
  • Key control then generates the key module by execution of the following steps. First, key control generates an asymmetric key pair at step 108.
  • key control obtains the symmetric keys associated with the user-selected content from the database and encrypts the symmetric keys using the generated asymmetric public key.
  • step 112 key control builds a tamper resistant key module with the generated asymmetric private key, the now-encrypted symmetric keys, and the asymmetric public key for the manifest of the trusted player from the database.
  • the tamper resistant key module includes an IVK and is made tamper resistant by processing it by a tamper resistant compiler. Processing then continues on FIG. 4B via connector 4B.
  • key control downloads the tamper resistant key module including the encrypted symmetric keys to the trusted player.
  • the trusted player loads the tamper resistant key module and executes it.
  • the executing key module checks the integrity and the authenticity of the manifest at step 118.
  • the key module checks the integrity and authenticity of the trusted player.
  • the IVK in the key module verifies that the signature of the trusted player corresponds to the manifest. To accomplish this, when the IVK in the key module is being executed by the client, it calculates the digest of the trusted player and compares the calculation to the digest in the manifest. If the IVK in the key module validates the manifest and the trusted player, then the key module is allowed to decrypt the encrypted digital content.
  • the validation processing is performed according to bilateral authentication of the trusted player and the IVK in the key module as is described in pending US patent applications entitled “Tamper Resistant Methods and Apparatus", Serial No. 08/662,679, and “Tamper Resistant Methods and Apparatus", Serial No. 08/924,740, both of which are commonly assigned to the same entity as the present invention and are incorporated herein by reference. If the key module determines that the integrity and authenticity of the trusted player is acceptable at step 120, then Yes path 122 is taken to step 124 for further processing. Otherwise, No path 126 is taken to failure condition 128. No further processing for accessing the selected encrypted content is performed.
  • the tamper resistant key module decrypts zero or more encrypted symmetric keys using the generated asymmetric private key at step 124.
  • the key module uses a selected one of the symmetric keys to decrypt a small portion of the encrypted content at step 130.
  • the trusted player then plays this portion of the newly decrypted content for the user at step 132. If there are remaining portions of the content to be played at step 134, then Yes path 136 is taken to step 138. If further verification of the trusted player is desired, Yes path 140 is taken back to step 119, where further verification of the trusted player is performed to ensure that the trusted player is not being tampered with during playback of the content.
  • the key module can be left in a state that provides incremental verification and decryption processing. This allows the trusted player to only store a few decrypted symmetric keys at any time. If no further verification is desired, No path 142 is taken to step 124 for additional decryption of encrypted symmetric keys. At step 130, the same or a newly selected and possibly newly decrypted symmetric key may be used to decrypt the current portion of the content. When no portions of the content remain to be played, No path 144 is taken from step 134 to End step 146.
  • FIG. 5 is a diagram of the key module generation function of step 112 of FIG. 4A.
  • the key module generation function takes as input the asymmetric public key for the manifest of the trusted player 200 and the generated asymmetric private key 202. It also references the symmetric keys (not shown) used to decrypt the selected encrypted digital content.
  • the key module generation function produces the tamper resistant key module 52 to be downloaded to the client 32.
  • the asymmetric public key for the manifest of the trusted player 200 is passed to an Integrity Verification Kernel (IVK) generation (GEN) function 204.
  • IVK Gen function 204 creates an IVK source code module 206 that uses the asymmetric public key 200 as the root of trust.
  • the IVK checks the manifest and the trusted player using the embedded asymmetric public key.
  • a key compiler 208 computes the Montgomery components of the asymmetric public key 200 for the manifest and generates IVK source code for key module 210 for calculating digital signatures using those components.
  • the source code is generated in the "C" programming language, although other programming languages may also be used.
  • the source code which is output contains the "unrolled", optimized code for computing a cryptographic hash function followed by modular exponentiation.
  • the asymmetric public key 200 is hard-coded into the source code 210 as part of the mathematical operations performed by the key compiler.
  • the manifest parser generator source code 212 is static source code that includes the IVK's entry code, generator code, accumulator code, and other code for tamper detection.
  • Supported services in this code include locating credentials and code using a registry, verification of object code prior to loading on disk and after loading in memory on the client, and validation of addresses in previously verified modules to provide secure linkage.
  • the generated "C" IVK source code for the key module 210 and the manifest parser generator source code 212 are combined into the single IVK source code module 206.
  • the generated asymmetric private key 202 for use in decrypting the encrypted symmetric keys is processed by another instance of key compiler 208.
  • the key compiler computes the components of the asymmetric private key 202 for the encrypted symmetric keys and generates decrypt engine source code module 214.
  • the decrypt engine source code module decrypts the encrypted symmetric keys.
  • the decrypt engine source code module is merged with the IVK source code module to produce key module source code 216.
  • Key module source code 216 is structured as a function. Given an IVK having the encrypted symmetric keys and a path on the client to the manifest, the function verifies that the return address in the trusted player (i.e., the code that is calling the tamper resistant key module) matches the appropriate referent in the IVK check. Then, if the manifest path is correct, the decrypt engine module executes to decrypt the symmetric keys with the generated asymmetric private key embedded in the function.
  • the key module source code is compiled by a standard source code compiler 218 to produce relocatable key module object code 220.
  • the key module object code is then passed to tamper resistant compiler 222.
  • the tamper resistant compiler operates on position-independent Intel Architecture code. It takes as input a procedure and those procedures that it directly calls, and produces a self-modifying version of the same code that decrypts only the currently executing step and the last or next step at any given moment.
  • the tamper resistant key module is now merely a vector of encrypted bytes.
  • the vector of encrypted bytes has a defined entry point which is not encrypted.
  • the encrypted bytes are eventually loaded into the client where the trusted player can call the function described above to verify the trusted player and provide the decrypted symmetric keys.
  • the manifest parser generator source code 212, IVK source code for key module 210, and decrypt engine source code module 214 can be compiled individually and the object code for each component can be linked together by an object code linker to form key module object code 220.
  • the processing shown in FIG. 5 for building a decrypt engine function can also be used to build a signature verification engine function.
  • the digest of the object to sign is included.
  • the signature verification engine function is performed on the digest of the specified object using the generated asymmetric private key to generate a signature, which can be validated by the trusted player or other application on the client.

Abstract

A computer system (10) includes a storage device (12) which accepts one or more removable storage mediums (14). The storage device (12) could be a floppy disk drive, a CD-ROM drive, a dvd drive unit or any other data storage unit. The data on the storage medium (14) is accessed by the storage reader device (16) by means of the key module (18). The key module (18) verifies that the storage device reader device (16) is authentic and that access to the digital content is allowed. The protected data on the storage media (14) are encrypted using a public key of public key/private key pair.

Description

CONDITIONAL USE PRIVATE KEY DISTRIBUTION
BACKGROUND OF THE INVENTION
1. FIELD OF THE INVENTION
The present invention relates generally to digital content protection in computer systems and more specifically to dynamically and securely distributing a private key over a network so only a specific trusted player can use the private key to access specific encrypted digital content.
2. DESCRIPTION OF RELATED ART
The personal computer (PC) platform is an open and accessible computer architecture. However, the openness of the PC means that it is a fundamentally insecure computing platform. Both the hardware and software can be accessed for observation and modification. This openness allows malicious users and programs to observe and to modify executing code. For example, this insecurity has been exploited by software viruses that attack a user's PC. Software viruses infect PCs by masquerading as popular software or by attaching themselves to other programs. Such observation or modification can be performed by either a malevolent user or a malicious program. Yet, there are classes of operations that must be performed securely on the fundamentally insecure PC platform. These are applications where the basic integrity of the operation must be assumed, or at least verified, to be reliable. Examples of such operations include financial transactions and other electronic commerce, unattended access authorization, and digital content management. The recent use of the Internet as a new content delivery mechanism adds yet another dimension to the uses of PCs.
For content providers, the threat of digital piracy at the PC requires new software that is resistant to attacks by a malicious user. In this scenario, the malicious user may wish to tamper with or replace components of the software in order to gain unauthorized access to digital content or to make unauthorized reproductions. A cryptosystem based on cryptographic methods may be used to protect the content owner's rights. Content may be encrypted to provide some measure of protection, but the software accessing the encrypted content is still vulnerable to attack.
Various concepts from the field of cryptography, such as public key cryptography, digital signatures, and certificates, are discussed herein to assist the reader in understanding the present invention.
In modern cryptography, the security of the cryptographic algorithm (or cipher) is not dependent on keeping the algorithm secret, but instead on using a key that is kept secret. Public key cryptography uses two keys to perform cryptographic operations. One key is public and known to everyone while the second key is private and known only to a particular user. Depending on the cipher, there are two uses of public key cryptography. The first use is encryption where the public key can be used to send information that only a user with the corresponding private key can read. The second use is digital signatures where the public key is used to verify the digital signature while the private key is used to create the signature.
A digital signature convinces a recipient that the signer and no one else deliberately signed a document (e.g., a computer file), prevents the signer from claiming that he/she did not sign a document (non-repudiation), and prevents the document from being altered without detection. In public key algorithms such as Digital Signature Algorithm (DSA), a separate cipher is used for digital signatures that cannot be used to encipher but simply for verification. DSA was proposed by the National Institute of Standards and Technology (NIST) in August, 1991 , for use in the Digital Signature Standard (DSS).
A practical consideration in using public key algorithms is that they are not efficient enough to sign large documents. Consequently, digital signature protocols use one-way hash functions to improve performance and security of the protocol. A one-way hash function, H(M), maps an arbitrary length message M to a fixed-length value h. It also has the following characteristics to make it secure: 1) given M, it is easy to compute h; 2) given h, it is hard to compute M such that H(M)=h; and 3) given M, it is hard to find M' such that H(M)=H(M'). If an attacker could do either 2) or 3), then he could undermine the digital signature protocol that uses one-way functions by either altering documents or reusing signatures.
Certificates are used to provide a tight binding between a public/private key pair and an identity. The binding must be certified by some certificate authority using a digital signature. Certificates may imply privileges like a credit card or a driver's license. For certificates to be useful, there must be at least one known trusted public key. This key is called the root key and the corresponding certificate is called the root certificate. The root key must be distributed by some trusted means like certified postal mail.
With the arrival of new classes of computer applications, such as content management, whose basic integrity must be assumed or verified, new security techniques must be developed. Generally, users need methods of authenticating the origin of software and testing the integrity of the software, all within a cryptosystem environment.
Consider the situation where an application program running on a user's PC accesses encrypted digital content on a storage medium. For example, the application could be a digital versatile disk (DVD) player and the storage medium could be a DVD. The user typically buys the DVD player software, installs it on the PC, and buys DVD content to be operated on by the DVD player. The content may include any multimedia data. The content on the DVD is encrypted by the DVD manufacturer to prevent unauthorized copies from being made by users. The user cannot simply view the DVD's content; it must be decrypted by the DVD player and the DVD player typically does not provide the capability for storing decrypted content. The key used to decrypt the DVD is typically included in the DVD player so that when the user inserts a DVD into a DVD drive, the DVD player decrypts the encrypted content and plays it in realtime for the user.
This scenario appears to provide adequate security, however, the system is open to attack. The key is able to be used with all encrypted DVDs. The DVD player software could be "hacked" and the key obtained. A rogue DVD player could then be constructed to use the recovered key to decrypt any encrypted DVD content and store it on the PC's hard drive for subsequent unauthorized copies to be made.
In response, what is required is a method which will allow the fundamentally insecure, open PC to execute software which cannot be observed or modified in order to enable trusted access to encrypted digital content. Furthermore, any key needed for decryption must be dynamically provided to the trusted software and not "pre-loaded". The key should also be dynamically generated for a specific instance of trusted software and specific encrypted content based on user input. Overcoming the deficiencies of the prior art and fulfilling these requirements would greatly increase the protection available for digital content access systems.
SUMMARY OF THE INVENTION
An embodiment of the present invention is a method of securely distributing data to a process on a remote system. The method includes the steps of generating an asymmetric key pair having a public key and a private key, encrypting predetermined data with the generated public key, building an executable tamper resistant key module identified for the process, the executable tamper resistant key module including the generated private key and the encrypted predetermined data, and sending the executable tamper resistant key module to the remote system. The tamper resistant key module is then executed on the remote system to check the integrity and authenticity of the process and the integrity of the tamper resistant key module itself. If the validation process is successful, then the encrypted predetermined data is decrypted with the generated private key included in the tamper resistant key module.
BRIEF DESCRIPTION OF THE DRAWINGS
The features and advantages of the present invention will become apparent from the following detailed description of the present invention in which:
FIG. 1 is a diagram of the computer system environment of one embodiment of the present invention;
FIG. 2 is a diagram of a trusted player having the capability to use a key mechanism without direct access to the key according to the present invention;
FIG. 3 is a diagram illustrating an example of a manifest;
FIG. 4A and 4B are flow diagrams illustrating the operation of a secure key distribution system according to the present invention; and
FIG. 5 is a diagram of the key module generation function.
DETAILED DESCRIPTION OF THE PRESENT INVENTION
In the following description, various aspects of the present invention will be described. However, it will be apparent to those skilled in the art that the present invention may be practiced with only some or all aspects of the present invention. For purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the present invention. However, it will also be apparent to one skilled in the art that the present invention may be practiced without the specific details. In other instances, well known features are omitted or simplified in order not to obscure the present invention.
An embodiment of the present invention includes a method of securely distributing a private key to a user's application program (also called a "trusted player" such as a digital versatile disk (DVD) player, compact disk read only memory (CD-ROM) player, or floppy disk device driver, and the like) with conditional access based on verification of the trusted player's integrity and authenticity. The trusted player can then use the private key to decrypt or sign a digital object. Conditional access to digital content is controlled because the trusted player is not pre-loaded with any key; each key is dynamically generated and communicated in real-time to the trusted player in a secure manner. Thus, the trusted player is not dependent on only one global key for decryption purposes of all digital content for the trusted player. Instead, each key is valid only for selected digital content (e.g., a particular movie, song, game, etc.). Additionally, the key is not nakedly transmitted to the trusted player, because the key could then be intercepted and copied. Instead, it is wrapped into a key module in which the key can only be used by the right trusted player as determined by the key module. The key module plugs in to the trusted player to validate the player and decrypt the content.
An embodiment of the present invention binds the integrity of a given application to its ability to perform some cryptographic operation using an asymmetric key pair in a manner that is tamper resistant. The goal is to prevent an unencrypted copy of digital content to be made. The trusted player will not be able to perform the cryptographic operation if its integrity has been compromised. An embodiment of the present invention includes integrity verification kernels (IVKs), the use of an asymmetric key pair and a key compiler, and tamper resistance methods. It combines the cryptographic technologies of digital signatures and certificates with tamper resistant software to improve the integrity of the trusted player and a key module on the PC. Once these methods are used, this software is very difficult to modify without detection. Additionally, intrusive debuggers may not be used to debug or trace software protected in this manner.
FIG. 1 is a diagram of the computer system environment of one embodiment of the present invention. A computer system 10 (such as a PC) includes a storage device 12 which accepts one or more removable storage mediums 14. The storage device may be a floppy disk drive unit, a CD-ROM drive unit, a DVD drive unit, or other data storage unit not yet developed. The removable storage medium may be a floppy disk, a CD-ROM, a DVD, or other data storage medium not yet developed. The storage medium includes digital content encrypted to provide protection against unauthorized use. The digital content may consist of any multimedia data, such as films, music, games, etc. The data on the storage medium is accessed by a program such as a storage device reader 16 via key module 18. The storage device reader forwards decrypted digital content to other application programs (not shown) for presentation or other use by a user (not shown). For example, the storage device reader may be a trusted DVD player and the digital content may be a feature film, the reader may be a CD-ROM player and the digital content may be a computer game, the reader may be a CD-ROM audio player and the digital content may be recorded music, etc. The storage device reader 16 interacts with a key module 18, which is downloaded from a communications network or otherwise accessed by the storage device reader. The key module 18 verifies that the storage device reader is authentic and that access to the digital content is allowed. The key module uses a key integral with the key module to decrypt the encrypted digital content. If the storage device reader is verified and it is indeed the authorized storage device reader software asking the key module for access to the digital content, then the digital content is decrypted by the key module. Otherwise, the digital content is not decrypted. Hence, the key module ensures that the party requesting the decryption of an encrypted digital content is authentic and its integrity is verified. Preferably, key module 18 is provided dynamically by a content provider from a remote system over a communications network such as the Internet.
There are various ways that a malicious user or program can attack the system of FIG. 1 to attempt to defeat the security measures. First, the malicious user may attempt to corrupt the key module to always return a positive verification of the storage device reader, despite the fact that either the key module, the storage device reader, or both, may have been altered, or attempt to change the integrity parameters in the key module. If the malicious user can locate and identify the key in the key module, the malicious user can try to expose the key. The malicious user may try to closely monitor the operation of the key module with a debugging tool to capture the key at the critical moment when it is used to decrypt the digital content. Finally, the malicious user may halt the computer system (i.e., "dump core") during the time when the key is being used to decrypt the digital content and search the memory contents of the computer system to identify the key. The present invention is designed to prevent or obstruct all of these attacks by the combined methods of tamper resistance, authentication, and verification of integrity.
Integrity is determined by using digital signatures. The integrity of executing storage device reader software is determined by generating a digital signature of the software. An integrity verification kernel (IVK) is software that verifies that a program image corresponds to the supplied digital signature. An IVK is a small code segment that has been "armored" using methods to ensure that it is not easily tampered with. An IVK can be used alone, to ensure that its tasks are executed correctly, or it can be used in conjunction with other software to provide the assurance that the other software has executed correctly (that is, they can be used as verification engines). This use of an IVK provides a robust mechanism for detecting changes made to executing software, where those changes might be caused by transmission errors or malicious attacks to the software. Any change to the software results in a failure in the verification process. IVKs, designed to make software tamper resistant, are constructed to perform self-checks of object code, bilateral authentication of partner modules, and checks on local and remote data to verify the integrity of a software module. The IVK is self-modifying and self-decrypting. Two software modules requiring to communicate with each other can establish that the module they are calling is indeed the one they are expecting by computing the digital signature of the called module and comparing the computed signature against a predetermined value. This process is called bilateral authentication. IVKs enable these mechanisms within selected software modules such as the storage device reader and the security module.
A key compiler is a program that takes an asymmetric key pair, which is represented as data, and turns it into a piece of executing code such as the key module 18. In this way, the entire key is never assembled at one place in a program at one point in time. Instead, pieces of the key are revealed as they are needed. Thus, the key is distributed in program space. This makes it hard for an attacker to find and change the key.
Tamper resistant software is software which is resistant to observation and modification. It can be trusted, within certain bounds, to operate as intended even in the presence of a malicious attack. The software is generated by using a tamper resistant compiler. The tamper resistant compiler is a compiler that when applied to a well prepared software module replaces the plain-text source code compiler generated image with a new image that is obfuscated. This self-decrypting software will only execute properly if no part of the image has been altered from the time it was compiled by the tamper resistant compiler. The tamper resistant compiler is a software approach towards providing kernels of software with the ability to run in a "hidden" execution mode. Attempts to decipher what the software is actually doing, or modifications made to the software, will result in the complete failure of the kernels (i.e., it will not decrypt properly). In an embodiment of the present invention, the tamper resistant compiler is applied to the IVKs and to the output of the key compiler. In the context of FIG. 1 , all or significant portions of key module 18 are processed by the tamper resistant compiler (not shown) to protect it from tampering and the key module includes an IVK to validate the storage device driver. Detailed methods for creating the tamper resistant module and providing integrity verification processing with IVKs and bilateral authentication are disclosed in pending US patent applications entitled "Tamper Resistant Methods and Apparatus", Serial No. 08/662,679, and "Tamper Resistant Methods and Apparatus", Serial No. 08/924,740, both of which are commonly assigned to the same entity as the present invention and are incorporated herein by reference.
FIG. 2 is a diagram of a trusted player having the capability to use a key mechanism without direct access to the key according to the present invention. In the configuration shown in FIG. 2, a server computer system 30 communicates with a client computer system 32 via a communications network 34. In this embodiment, server 30 is a computer system providing files and data to other computer systems, client 32 is a PC being operated by a user (not shown), and communications network 34 is the Internet, although other combinations of computer systems and networks may also be used as is appreciated by one skilled in the art. The user interacts with client 32 to request it to read and display some encrypted digital content E(Content) 36. The encrypted content may be a single physical copy of a DVD, CD-ROM, audio CD, or other storage medium inserted into an I/O subsystem (not shown) of client 32 via line 38, or it may be a file downloaded over communications network 34 via line 40 prior to usage. The encrypted content is not accessible without a key to decrypt it.
Trusted player 42 is included in client 32 to read the encrypted digital content E(Content), decrypt it, and play it for the user. In this embodiment, trusted player 42 is a DVD player, however, in other embodiments, trusted player 42 may consist of other content readers and players such as CD-ROM drive readers, floppy disk drive readers, streaming audio and video readers, text readers, etc. Trusted player 42 includes executable software 44, which is the code image of the trusted player as loaded into the memory of client 32. Also included in the trusted player is a signed manifest 46.
The manifest is a statement of the integrity and authenticity (i.e., a signature) of the trusted player software. The manifest is generated by the manufacturer of the trusted player or other provider of the trusted player software. Generally, the manifest is a credential about the trusted player including a digital signature of the trusted player software. Signed manifests describe the integrity of a list of digital objects of any type and associate arbitrary attributes with those objects in a manner that is tightly binding and offers non- repudiation. The integrity description does not change the object being described as it exists outside of the object. This means that an object can exist in encrypted form and processes can inquire about the integrity and authenticity of an object or its attributes without decrypting the object. A section of the manifest contains a reference to the object, attributes of the object, and a list of digest algorithm identifiers used to digest the object and the associated digest values. The signer's information describes a list of references to one or more sections of the manifest. Each reference includes a signature information section which contains a reference to a manifest section, a list of digest algorithm identifiers used to digest the manifest section and the associated digest value, and any other attributes that the signer may wish to be associated with the manifest section. The signature block contains a signature over the signer's information. FIG. 3 is a diagram illustrating an example of a manifest. In this example, the manifest includes referents such as version number, cryptographic algorithm, signature version, and a digital signature.
The trusted player and its signature are freely distributable. However, there is no secret (such as a decryption key) embedded in the trusted player. In contrast, the manifest 46 is unique for each trusted player 42. It contains a unique identifier relating to the trusted player. For example, the unique identifier could be a number randomly generated by the manufacturer or other provider, a serial number, a credit card number, etc. Referring back to FIG. 2, when a user desires to view the encrypted content E(Content) 36, trusted player 42 requests the keys required to perform the decryption operation from key control software 48 running on server 30 via lines 47 and 49. As part of the request, trusted player includes the identifier of the encrypted content, the manifest 46, and optionally, a client identifier. Additionally, the request may include some financial information such as a credit card number or billing identifier so server 30 can charge the user for access to the digital content. In this way the encrypted content is freely distributable but the user cannot make use of the content until a fee has been paid to obtain the necessary key to decrypt the content. When the server has the manifest, the server calls key control software 48 to execute key module generation (gen) function 50. This function creates a tamper resistant key module 52 containing the keys necessary to decrypt the selected encrypted content 36 and code to validate the trusted player. The key module also includes an integrity verification kernel (IVK) that, when executed by client 32, will attempt to validate the trusted player. The IVK checks that the trusted player accessing the key module on the client is the correct trusted player according to the manifest and that it has not been altered since purchase and installation by the user.
The key module is forwarded over communications network 34 to client 32. It is a "plug-in" to executable 44 of trusted player 42. The key module is generated to work with a specific trusted player as identified by the user's request and manifest, and also is unique for specific, user-selected digital content.
The key module contains a plurality of keys. It contains an asymmetric public key for verifying the digital signature of the manifest. The digital signature was created using an asymmetric private key by the manufacturer of the trusted player. To create a key module capable of verifying the manifest, key module generation function 50 needs to obtain the corresponding asymmetric public key. The key module also contains one or more symmetric keys for decrypting the encrypted digital content. Finally, the key module includes an asymmetric private key for decrypting the encrypted symmetric public keys when the validity of the trusted player on the client is assured.
FIG. 4A and 4B are flow diagrams illustrating the operation of a secure key distribution system according to the present invention. Initially, at step 100, an entity such as a trusted player manufacturer builds a trusted player and an accompanying manifest, and digitally signs the manifest with an asymmetric private key. The corresponding asymmetric public key is stored in a secure database accessible to the server. The trusted player is purchased by a user and installed on the disk drive of the user's PC (the client 32 in FIG. 2). The manifest is also loaded onto the client system. At step 102, a content provider creates digital content, encrypts the content using one or more symmetric keys, and stores the corresponding symmetric keys in the same or another secure database. The secure databases may be accessible by server 30, e.g., over the Internet. The user then obtains the encrypted content at step 104, for example, by purchasing it at a retail store, by mail order, or through an on-line purchase and delivery mechanism.
When the user desires to play the encrypted content, he or she directs the trusted player on the client system to initiate the performance operation through a well-known graphical user interface. At step 106, the trusted player requests the symmetric keys for decrypting the encrypted content from the server by sending a copy of the trusted player's manifest and the user's information regarding the title of the content, and optionally, financial information for the transaction, to the key control software within the server. Key control then generates the key module by execution of the following steps. First, key control generates an asymmetric key pair at step 108. Next, at step 110, key control obtains the symmetric keys associated with the user-selected content from the database and encrypts the symmetric keys using the generated asymmetric public key. Finally, at step 112, key control builds a tamper resistant key module with the generated asymmetric private key, the now-encrypted symmetric keys, and the asymmetric public key for the manifest of the trusted player from the database. The tamper resistant key module includes an IVK and is made tamper resistant by processing it by a tamper resistant compiler. Processing then continues on FIG. 4B via connector 4B.
At step 114 on FIG. 4B, key control downloads the tamper resistant key module including the encrypted symmetric keys to the trusted player. At step 116, the trusted player loads the tamper resistant key module and executes it. The executing key module checks the integrity and the authenticity of the manifest at step 118. Next, at step 119, the key module checks the integrity and authenticity of the trusted player. The IVK in the key module verifies that the signature of the trusted player corresponds to the manifest. To accomplish this, when the IVK in the key module is being executed by the client, it calculates the digest of the trusted player and compares the calculation to the digest in the manifest. If the IVK in the key module validates the manifest and the trusted player, then the key module is allowed to decrypt the encrypted digital content. The validation processing is performed according to bilateral authentication of the trusted player and the IVK in the key module as is described in pending US patent applications entitled "Tamper Resistant Methods and Apparatus", Serial No. 08/662,679, and "Tamper Resistant Methods and Apparatus", Serial No. 08/924,740, both of which are commonly assigned to the same entity as the present invention and are incorporated herein by reference. If the key module determines that the integrity and authenticity of the trusted player is acceptable at step 120, then Yes path 122 is taken to step 124 for further processing. Otherwise, No path 126 is taken to failure condition 128. No further processing for accessing the selected encrypted content is performed.
If the trusted player is validated, the tamper resistant key module decrypts zero or more encrypted symmetric keys using the generated asymmetric private key at step 124. When at least one of the symmetric keys is decrypted, the key module uses a selected one of the symmetric keys to decrypt a small portion of the encrypted content at step 130. The trusted player then plays this portion of the newly decrypted content for the user at step 132. If there are remaining portions of the content to be played at step 134, then Yes path 136 is taken to step 138. If further verification of the trusted player is desired, Yes path 140 is taken back to step 119, where further verification of the trusted player is performed to ensure that the trusted player is not being tampered with during playback of the content. Hence, after the first verification, the key module can be left in a state that provides incremental verification and decryption processing. This allows the trusted player to only store a few decrypted symmetric keys at any time. If no further verification is desired, No path 142 is taken to step 124 for additional decryption of encrypted symmetric keys. At step 130, the same or a newly selected and possibly newly decrypted symmetric key may be used to decrypt the current portion of the content. When no portions of the content remain to be played, No path 144 is taken from step 134 to End step 146.
FIG. 5 is a diagram of the key module generation function of step 112 of FIG. 4A. The key module generation function takes as input the asymmetric public key for the manifest of the trusted player 200 and the generated asymmetric private key 202. It also references the symmetric keys (not shown) used to decrypt the selected encrypted digital content. The key module generation function produces the tamper resistant key module 52 to be downloaded to the client 32. The asymmetric public key for the manifest of the trusted player 200 is passed to an Integrity Verification Kernel (IVK) generation (GEN) function 204. The IVK Gen function 204 creates an IVK source code module 206 that uses the asymmetric public key 200 as the root of trust. The IVK checks the manifest and the trusted player using the embedded asymmetric public key.
A key compiler 208 computes the Montgomery components of the asymmetric public key 200 for the manifest and generates IVK source code for key module 210 for calculating digital signatures using those components. In one embodiment of the present invention, the source code is generated in the "C" programming language, although other programming languages may also be used. The source code which is output contains the "unrolled", optimized code for computing a cryptographic hash function followed by modular exponentiation. The asymmetric public key 200 is hard-coded into the source code 210 as part of the mathematical operations performed by the key compiler. The manifest parser generator source code 212 is static source code that includes the IVK's entry code, generator code, accumulator code, and other code for tamper detection. Supported services in this code include locating credentials and code using a registry, verification of object code prior to loading on disk and after loading in memory on the client, and validation of addresses in previously verified modules to provide secure linkage. The generated "C" IVK source code for the key module 210 and the manifest parser generator source code 212 are combined into the single IVK source code module 206.
In parallel with IVK generation function processing, the generated asymmetric private key 202 for use in decrypting the encrypted symmetric keys is processed by another instance of key compiler 208. The key compiler computes the components of the asymmetric private key 202 for the encrypted symmetric keys and generates decrypt engine source code module 214. When executed, the decrypt engine source code module decrypts the encrypted symmetric keys. The decrypt engine source code module is merged with the IVK source code module to produce key module source code 216.
Key module source code 216 is structured as a function. Given an IVK having the encrypted symmetric keys and a path on the client to the manifest, the function verifies that the return address in the trusted player (i.e., the code that is calling the tamper resistant key module) matches the appropriate referent in the IVK check. Then, if the manifest path is correct, the decrypt engine module executes to decrypt the symmetric keys with the generated asymmetric private key embedded in the function. The key module source code is compiled by a standard source code compiler 218 to produce relocatable key module object code 220. The key module object code is then passed to tamper resistant compiler 222. In an embodiment of the present invention, the tamper resistant compiler operates on position-independent Intel Architecture code. It takes as input a procedure and those procedures that it directly calls, and produces a self-modifying version of the same code that decrypts only the currently executing step and the last or next step at any given moment.
The tamper resistant key module is now merely a vector of encrypted bytes. The vector of encrypted bytes has a defined entry point which is not encrypted. The encrypted bytes are eventually loaded into the client where the trusted player can call the function described above to verify the trusted player and provide the decrypted symmetric keys.
In an alternate embodiment, the manifest parser generator source code 212, IVK source code for key module 210, and decrypt engine source code module 214 can be compiled individually and the object code for each component can be linked together by an object code linker to form key module object code 220.
The processing shown in FIG. 5 for building a decrypt engine function can also be used to build a signature verification engine function. In this case, rather than including the encrypted symmetric keys in the key module source code function, the digest of the object to sign is included. The signature verification engine function is performed on the digest of the specified object using the generated asymmetric private key to generate a signature, which can be validated by the trusted player or other application on the client.
It is important to note that although an embodiment focused on a trusted player and the secure delivery of encrypted symmetric keys has been described herein, the methods of the present invention could be used for delivery of any data in a secure manner to a requesting program on a system served by a server.
While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications of the illustrative embodiments, as well as other embodiments of the invention, which are apparent to persons skilled in the art to which the inventions pertains are deemed to lie within the spirit and scope of the invention.

Claims

CLAIMSWhat is claimed is:
1. A method of securely distributing data to a process comprising: generating an asymmetric key pair having a public key and a private key; encrypting predetermined data with the generated public key; and building an executable tamper resistant key module identified for the process, the executable tamper resistant key module including the generated private key and the encrypted predetermined data.
2. The method of claim 1 , wherein the process is on a remote system and further comprising sending the executable tamper resistant key module to the remote system.
3. The method of claim 1 , wherein building the executable tamper resistant code module comprises generating an integrity verification kernel.
4. The method of claim 3, wherein generating an integrity verification kernel comprises accessing an asymmetric public key of a predetermined asymmetric key pair associated with a manifest of the process signed by an asymmetric private key of the predetermined asymmetric key pair, producing integrity verification kernel code with the asymmetric public key for verifying the signed manifest of the process and combining manifest parser generator code and the integrity verification kernel code to produce the integrity verification kernel.
5. The method of claim 4, wherein the process is a trusted player and the method further comprises building a manifest for the trusted player, signing the manifest with the asymmetric private key of the predetermined asymmetric key pair, and storing the asymmetric public key of the predetermined asymmetric key pair.
6. The method of claim 4, wherein building the executable tamper resistant key module further comprises building a decrypt engine with the generated private key for decrypting the encrypted predetermined data.
7. The method of claim 6, wherein building the executable tamper resistant key module further comprises combining the integrity verification kernel and the decrypt engine to produce a key module.
8. The method of claim 7, wherein building the executable tamper resistant key module further comprises compiling the key module with a tamper resistant compiler to generate the tamper resistant key module.
9. The method of claim 2, further comprising executing the executable tamper resistant key module on the remote system to check the integrity and authenticity of the process and the integrity of the tamper resistant key module.
10. The method of claim 9, further comprising decrypting the encrypted predetermined data with the generated private key for the tamper resistant key module when the process is authentic and the process's integrity is validated and the tamper resistant key module is validated.
11. The method of claim 10, further comprising decrypting encrypted digital content resident on the remote system using the decrypted predetermined data.
12. The method of claim 11 , wherein the process is a trusted player and the trusted player plays the decrypted digital content for a user of the remote system.
13. The method of claim 2 wherein the predetermined data is at least one key used to decrypt selected encrypted digital content on the remote system.
14. The method of claim 13, wherein the at least one key is specifically associated with the selected encrypted digital content but not other encrypted digital content.
15. The method of claim 1 , wherein the predetermined data is a plurality of symmetric keys used to decrypt selected encrypted digital content.
16. The method of claim 15, further comprising creating digital content, encrypting the digital content with the plurality of symmetric keys, and storing the plurality of symmetric keys for subsequent access during the decrypting step.
17. The method of claim 16, further comprising obtaining the encrypted digital content and requesting, by the remote system, the plurality of symmetric keys from a server performing the generating, encrypting, building and sending steps.
18. The method of claim 17, wherein the requesting step comprises providing an identifier of the selected encrypted digital content, an identifier of the remote system, and payment information for usage of the selected encrypted digital content.
19. A method of distributing a conditional use private key to a process on a remote system comprising: generating an asymmetric key pair having a public key and a private key; encrypting predetermined data with the generated public key; building an executable tamper resistant key module identified for the process, the executable tamper resistant key module including the generated private key and the encrypted predetermined data; sending the executable tamper resistant key module to the remote system; executing the executable tamper resistant key module on the remote system to check the integrity and authenticity of the process, and the integrity of the tamper resistant key module; and decrypting the encrypted predetermined data with the generated private key when the process is authentic and the process's integrity is validated and the tamper resistant key module is validated.
20. A method of distributing a conditional use private key from a server system to a trusted player on a client system for providing authorized access to selected encrypted digital content comprising: receiving a request from the trusted player for access to selected encrypted digital content on the client system; generating an asymmetric key pair having a public key and a private key; encrypting predetermined data with the generated public key; building an executable tamper resistant key module identified for the trusted player, the executable tamper resistant key module including the generated private key and the encrypted predetermined data; sending the executable tamper resistant key module to the client system; executing the executable tamper resistant key module on the client system as part of the trusted player to check the integrity and authenticity of the trusted player, and the integrity of the tamper resistant key module; and decrypting the encrypted predetermined data with the generated private key when the trusted player is authentic and the trusted player's integrity is validated and the tamper resistant key module is validated.
21. The method of claim 20 wherein the predetermined data is at least one key used to decrypt the selected encrypted digital content on the client system.
22. The method of claim 21 , wherein the at least one key is specifically associated with the selected encrypted digital content but not other encrypted digital content.
23. The method of claim 20, wherein the predetermined data is a plurality of symmetric keys used to decrypt the selected encrypted digital content.
24. The method of claim 23, further comprising creating digital content, encrypting the digital content with the plurality of symmetric keys, and storing the plurality of symmetric keys for subsequent access during the decrypting step.
25. The method of claim 20, further comprising decrypting encrypted digital content resident on the client system using the decrypted predetermined data.
26. The method of claim 25, wherein the trusted player plays the decrypted digital content for a user of the client system.
27. A machine readable medium having stored therein a plurality of machine readable instructions designed to be executed by a processing unit, the machine readable instructions for generating an asymmetric key pair having a public key and a private key; for encrypting predetermined data with the generated public key; for building an executable tamper resistant key module identified for the process, the executable tamper resistant key module including the generated private key and the encrypted predetermined data; and for sending the executable tamper resistant key module to a remote system to verify the authenticity and integrity of a process operating on the remote system and decrypt the encrypted predetermined data when the process is validated.
28. A machine readable medium having stored therein a plurality of machine readable instructions designed to be executed by a plurality of processing units, the machine readable instructions for generating an asymmetric key pair having a public key and a private key; for encrypting predetermined data with the generated public key; for building an executable tamper resistant key module identified for the process, the executable tamper resistant key module including the generated private key and the encrypted predetermined data; for sending the executable tamper resistant key module to a remote system, for executing the executable tamper resistant key module by a processing unit on the remote system to check the integrity and authenticity of the process, and the integrity of the tamper resistant key module; and for decrypting the encrypted predetermined data with the generated private key when the process is authentic and the process's integrity is validated and the tamper resistant key module is validated.
29. An apparatus for secure distribution of data comprising: a processor for executing programming instructions; and a storage medium having stored thereon a plurality of programming instructions to be executed by the processor, the programming instructions generating an asymmetric key pair having a public key and a private key, encrypting predetermined data with the generated public key, building an executable tamper resistant key module identified for the process, and the executable tamper resistant key module including the generated private key and the encrypted predetermined data.
30. The apparatus of claim 29, wherein the storage medium comprises instructions for sending the executable tamper resistant key module to the remote system.
31. A system for secure distribution of data comprising: a first system comprising a first processor for executing a first set of programming instructions, and a first storage medium having stored thereon the first set of programming instructions to be executed by the first processor, the first set of programming instructions generating an asymmetric key pair having a public key and a private key, encrypting predetermined data with the generated public key, and building an executable tamper resistant key module, the executable tamper resistant key module including the generated private key and the encrypted predetermined data; and a second system comprising a second processor for executing a second set of programming instructions, and a second storage medium having stored thereon the second set of programming instructions to be executed by the second processor, the second set of programming instructions for operating as a trusted player of digital content, for receiving the executable tamper resistant key module from the first system, for executing the executable tamper resistant key module to check the integrity and authenticity of the trusted player, and the integrity of the tamper resistant key module; and for decrypting the encrypted predetermined data with the generated private key when the trusted player is authentic and the trusted player's integrity is validated and the tamper resistant key module is validated.
32. The system of claim 31 , where the second set of programming instructions further comprise instructions for decrypting encrypted digital content resident on the second storage medium using the decrypted predetermined data.
33. The system of claim 32, wherein the trusted player plays the decrypted digital content for a user of the second system.
PCT/US1998/026415 1997-12-18 1998-12-11 Conditional use private key distribution WO1999031842A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU18201/99A AU1820199A (en) 1997-12-18 1998-12-11 Conditional use private key distribution

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/993,597 US5991399A (en) 1997-12-18 1997-12-18 Method for securely distributing a conditional use private key to a trusted entity on a remote system
US08/993,597 1997-12-18

Publications (2)

Publication Number Publication Date
WO1999031842A1 true WO1999031842A1 (en) 1999-06-24
WO1999031842A8 WO1999031842A8 (en) 1999-10-07

Family

ID=25539740

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1998/026415 WO1999031842A1 (en) 1997-12-18 1998-12-11 Conditional use private key distribution

Country Status (3)

Country Link
US (1) US5991399A (en)
AU (1) AU1820199A (en)
WO (1) WO1999031842A1 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001043336A2 (en) * 1999-12-09 2001-06-14 Music-Aliens Ag Method and system for transmitting data and/or information and/or signals, especially of a dynamic content, and the use of said method and said system
GB2366162A (en) * 2000-08-15 2002-02-27 Chargenet Ltd Controlling access to a telecommunicated data file
GB2366969A (en) * 2000-09-14 2002-03-20 Phocis Ltd Copyright protection for digital content distributed over a network
GB2377137A (en) * 2001-06-27 2002-12-31 Hewlett Packard Co Networked storage device provided with a trusted device for indicating the integrity and/or identity of the storage device
EP1495574A1 (en) * 2002-04-16 2005-01-12 Sony Computer Entertainment America Inc. Method and system for using tamperproof hardware to provide copy protection and online security
EP1804506A3 (en) * 1999-08-27 2008-02-06 World Theatre, Inc. Video and music distribution systems
US7430668B1 (en) 1999-02-15 2008-09-30 Hewlett-Packard Development Company, L.P. Protection of the configuration of modules in computing apparatus
US7596702B2 (en) 2001-06-27 2009-09-29 Hewlett-Packard Development Company, L.P. Network storage devices
US7693286B2 (en) 2004-07-14 2010-04-06 Intel Corporation Method of delivering direct proof private keys in signed groups to devices using a distribution CD
US7697691B2 (en) 2004-07-14 2010-04-13 Intel Corporation Method of delivering Direct Proof private keys to devices using an on-line service
US7792303B2 (en) 2004-07-14 2010-09-07 Intel Corporation Method of delivering direct proof private keys to devices using a distribution CD
EP2270805A3 (en) * 2004-07-22 2011-01-26 Panasonic Corporation Playback apparatus for performing application-synchronized playback
US9659285B2 (en) 1999-08-27 2017-05-23 Zarbaña Digital Fund Llc Music distribution systems
CN108985079A (en) * 2018-06-08 2018-12-11 深圳大普微电子科技有限公司 Data verification method and verifying system

Families Citing this family (405)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
USRE39369E1 (en) * 1995-06-29 2006-10-31 Igt Electronic casino gaming system with improved play capacity, authentication and security
US7063615B2 (en) * 1995-06-29 2006-06-20 Igt Electronic gaming apparatus with authentication
US5643086A (en) * 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
US20020025852A1 (en) * 2000-09-29 2002-02-28 Alcorn Allan E. Gaming apparatus with portrait-mode display
US6546193B1 (en) * 1997-10-28 2003-04-08 Lg Electronics Inc. Reproduction apparatus for remote rental system and control method of said apparatus
JPH11196084A (en) * 1997-10-31 1999-07-21 Matsushita Electric Ind Co Ltd Ciphering system
JP4320817B2 (en) 1998-02-09 2009-08-26 ソニー株式会社 Recording / reproducing apparatus, recording / reproducing system, recording / reproducing method, and program
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
US6336121B1 (en) * 1998-03-24 2002-01-01 Entrust Technologies, Ltd. Method and apparatus for securing and accessing data elements within a database
US6738905B1 (en) * 1998-04-15 2004-05-18 Digital Video Express, L.P. Conditional access via secure logging with simplified key management
EP0964370B1 (en) * 1998-06-05 2003-08-20 International Business Machines Corporation Method and device for loading instruction codes to a memory and linking said instruction codes
IL124895A0 (en) 1998-06-14 1999-01-26 Csafe Ltd Methods and apparatus for preventing reuse of text images and software transmitted via networks
US6298446B1 (en) * 1998-06-14 2001-10-02 Alchemedia Ltd. Method and system for copyright protection of digital images transmitted over networks
US6138235A (en) * 1998-06-29 2000-10-24 Sun Microsystems, Inc. Controlling access to services between modular applications
US6564255B1 (en) * 1998-07-10 2003-05-13 Oak Technology, Inc. Method and apparatus for enabling internet access with DVD bitstream content
US6438235B2 (en) * 1998-08-05 2002-08-20 Hewlett-Packard Company Media content protection utilizing public key cryptography
US6983371B1 (en) * 1998-10-22 2006-01-03 International Business Machines Corporation Super-distribution of protected digital content
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
ES2274557T3 (en) * 1998-08-31 2007-05-16 Irdeto Access B.V. SYSTEM TO PROVIDE ENCRYPTED DATA, SYSTEM TO DESCRIBE ENCRYPTED DATA AND METHOD TO PROVIDE A COMMUNICATIONS INTERFACE IN SUCH DESCRIBER SYSTEM.
TW527604B (en) * 1998-10-05 2003-04-11 Toshiba Corp A memory systems
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7174457B1 (en) * 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US7139915B2 (en) * 1998-10-26 2006-11-21 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US7017188B1 (en) * 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US6763370B1 (en) * 1998-11-16 2004-07-13 Softricity, Inc. Method and apparatus for content protection in a secure content delivery system
US6247130B1 (en) * 1999-01-22 2001-06-12 Bernhard Fritsch Distribution of musical products by a web site vendor over the internet
US6567917B1 (en) * 1999-02-01 2003-05-20 Cisco Technology, Inc. Method and system for providing tamper-resistant executable software
US6370222B1 (en) * 1999-02-17 2002-04-09 Ccvs, Llc Container contents verification
US6675297B1 (en) * 1999-03-01 2004-01-06 Sigma Designs, Inc. Method and apparatus for generating and using a tamper-resistant encryption key
US6959390B1 (en) * 1999-03-03 2005-10-25 International Business Machines Corporation Data processing system and method for maintaining secure user private keys in non-secure storage
KR100320183B1 (en) * 1999-03-17 2002-01-10 구자홍 File encryption apparatus for digital data player
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US8131648B2 (en) * 1999-10-20 2012-03-06 Tivo Inc. Electronic content distribution and exchange system
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US7730169B1 (en) 1999-04-12 2010-06-01 Softricity, Inc. Business method and system for serving third party software applications
US7370071B2 (en) 2000-03-17 2008-05-06 Microsoft Corporation Method for serving third party software applications from servers to client computers
US6941383B1 (en) 2000-01-20 2005-09-06 Interactual Technologies, Inc. System, method and article of manufacture for java/javascript component in a multimedia synchronization framework
US6453420B1 (en) 1999-04-21 2002-09-17 Research Investment Network, Inc. System, method and article of manufacture for authorizing the use of electronic content utilizing a laser-centric medium
US6769130B1 (en) 2000-01-20 2004-07-27 Interactual Technologies, Inc. System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers
US7188193B1 (en) 2000-01-20 2007-03-06 Sonic Solutions, A California Corporation System, method and article of manufacture for a synchronizer component in a multimedia synchronization framework
US6529949B1 (en) 2000-02-07 2003-03-04 Interactual Technologies, Inc. System, method and article of manufacture for remote unlocking of local content located on a client device
US7178106B2 (en) 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US7448021B1 (en) 2000-07-24 2008-11-04 Sonic Solutions, A California Corporation Software engine for combining video or audio content with programmatic content
US7346920B2 (en) 2000-07-07 2008-03-18 Sonic Solutions, A California Corporation System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content
US6681212B1 (en) 1999-04-23 2004-01-20 Nianning Zeng Internet-based automated system and a method for software copyright protection and sales
US8099758B2 (en) * 1999-05-12 2012-01-17 Microsoft Corporation Policy based composite file system and method
US6938154B1 (en) 2000-06-19 2005-08-30 Xerox Corporation System, method and article of manufacture for a cryptographic key infrastructure for networked devices
US6658567B1 (en) * 1999-06-25 2003-12-02 Geomechanics International, Inc. Method and logic for locking geological data and an analyzer program that analyzes the geological data
US6874087B1 (en) * 1999-07-13 2005-03-29 International Business Machines Corporation Integrity checking an executable module and associated protected service provider module
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US7647618B1 (en) 1999-08-27 2010-01-12 Charles Eric Hunter Video distribution system
US8090619B1 (en) 1999-08-27 2012-01-03 Ochoa Optics Llc Method and system for music distribution
US20030133692A1 (en) * 1999-08-27 2003-07-17 Charles Eric Hunter Video distribution system
US20060212908A1 (en) 1999-08-27 2006-09-21 Ochoa Optics Llc Video distribution system
US6647417B1 (en) 2000-02-10 2003-11-11 World Theatre, Inc. Music distribution systems
US6952685B1 (en) 1999-08-27 2005-10-04 Ochoa Optics Llc Music distribution system and associated antipiracy protection
GB9922665D0 (en) 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
WO2001024080A1 (en) * 1999-09-27 2001-04-05 Gte Internetworking Incorporated Secure play of performance data
GB9925227D0 (en) 1999-10-25 1999-12-22 Internet Limited Data storage retrieval and access system
US8055894B2 (en) * 1999-11-09 2011-11-08 Google Inc. Process and streaming server for encrypting a data stream with bandwidth based variation
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US7158641B2 (en) * 1999-11-30 2007-01-02 Sanyo Electric Co., Ltd. Recorder
US7213005B2 (en) * 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US6996720B1 (en) * 1999-12-17 2006-02-07 Microsoft Corporation System and method for accessing protected content in a rights-management architecture
US6970849B1 (en) 1999-12-17 2005-11-29 Microsoft Corporation Inter-server communication using request with encrypted parameter
JP2003521039A (en) * 2000-01-21 2003-07-08 ソーセロン インコーポレイテッド System and method for delivering rich media content over a network
US9252898B2 (en) 2000-01-28 2016-02-02 Zarbaña Digital Fund Llc Music distribution systems
US6754784B1 (en) 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
GB2359156B (en) * 2000-02-14 2004-10-13 Reuters Ltd Methods of computer programs for and apparatus for providing and accessing digital content
US6974076B1 (en) 2000-02-14 2005-12-13 Sony Corporation Portable music player with pay per play usage and method for purchase of credits for usage
US6834269B1 (en) 2000-02-23 2004-12-21 Dell Products L.P. Factory-installed software purchase verification key
AU2001243365A1 (en) * 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
CA2299946A1 (en) * 2000-03-03 2001-09-03 Destiny Software Productions Inc. Digital media distribution method and system
US7043641B1 (en) 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
US7988559B2 (en) 2001-03-08 2011-08-02 Igt Computerized gaming system, method and apparatus
JP4617533B2 (en) * 2000-03-14 2011-01-26 ソニー株式会社 Information providing apparatus and method, information processing apparatus and method, and program storage medium
US7000119B1 (en) 2000-04-20 2006-02-14 Realnetworks, Inc. Instruction/data protection employing derived obscuring instruction/data
US20020013897A1 (en) * 2000-05-15 2002-01-31 Mcternan Brennan J. System and method for secure delivery of rich media
US7089420B1 (en) 2000-05-24 2006-08-08 Tracer Detection Technology Corp. Authentication method and system
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
US7152047B1 (en) * 2000-05-24 2006-12-19 Esecure.Biz, Inc. System and method for production and authentication of original documents
US7493486B1 (en) * 2000-06-09 2009-02-17 Verizon Laboratories, Inc. Method and apparatus for supporting cryptographic-related activities in a public key infrastructure
US6950522B1 (en) * 2000-06-15 2005-09-27 Microsoft Corporation Encryption key updating for multiple site automated login
US7051199B1 (en) 2000-06-19 2006-05-23 Xerox Corporation System, method and article of manufacture for providing cryptographic services utilizing a network
US7421583B1 (en) 2000-06-19 2008-09-02 Xerox Corp System, method and article of manufacture for determining a price of cryptograph IC services based on a computational burden thereof
US6990468B1 (en) 2000-06-19 2006-01-24 Xerox Corporation System, method and article of manufacture for cryptoserver-based auction
US6754821B1 (en) * 2000-06-19 2004-06-22 Xerox Corporation System, method and article of manufacture for transition state-based cryptography
US7171692B1 (en) 2000-06-27 2007-01-30 Microsoft Corporation Asynchronous communication within a server arrangement
US7539875B1 (en) * 2000-06-27 2009-05-26 Microsoft Corporation Secure repository with layers of tamper resistance and system and method for providing same
US7812856B2 (en) 2000-10-26 2010-10-12 Front Row Technologies, Llc Providing multiple perspectives of a venue activity to electronic wireless hand held devices
US6891953B1 (en) * 2000-06-27 2005-05-10 Microsoft Corporation Method and system for binding enhanced software features to a persona
US7149549B1 (en) 2000-10-26 2006-12-12 Ortiz Luis M Providing multiple perspectives for a venue activity through an electronic hand held device
US7782363B2 (en) 2000-06-27 2010-08-24 Front Row Technologies, Llc Providing multiple video perspectives of activities through a data network to a remote multimedia server for selective display by remote viewing audiences
US7630721B2 (en) 2000-06-27 2009-12-08 Ortiz & Associates Consulting, Llc Systems, methods and apparatuses for brokering data between wireless devices and data rendering devices
US7051200B1 (en) 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
US7158953B1 (en) 2000-06-27 2007-01-02 Microsoft Corporation Method and system for limiting the use of user-specific software features
US8583027B2 (en) 2000-10-26 2013-11-12 Front Row Technologies, Llc Methods and systems for authorizing computing devices for receipt of venue-based data based on the location of a user
US7796162B2 (en) 2000-10-26 2010-09-14 Front Row Technologies, Llc Providing multiple synchronized camera views for broadcast from a live venue activity to remote viewers
US6981262B1 (en) 2000-06-27 2005-12-27 Microsoft Corporation System and method for client interaction in a multi-level rights-management architecture
AU2001267055A1 (en) * 2000-06-27 2002-01-08 Microsoft Corporation System and method for providing an individualized secure repository
US7017189B1 (en) 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US7124408B1 (en) * 2000-06-28 2006-10-17 Microsoft Corporation Binding by hash
US7117371B1 (en) 2000-06-28 2006-10-03 Microsoft Corporation Shared names
US6882730B1 (en) * 2000-06-29 2005-04-19 Intel Corporation Method for secure distribution and configuration of asymmetric keying material into semiconductor devices
US20020046045A1 (en) * 2000-06-30 2002-04-18 Attila Narin Architecture for an electronic shopping service integratable with a software application
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US7225159B2 (en) * 2000-06-30 2007-05-29 Microsoft Corporation Method for authenticating and securing integrated bookstore entries
EP1316168A4 (en) * 2000-08-04 2006-05-10 First Data Corp Method and system for using electronic communications for an electronic contact
WO2002014991A2 (en) * 2000-08-11 2002-02-21 Incanta, Inc. Resource distribution in network environment
CA2420290C (en) * 2000-08-21 2009-04-21 Igt Method and apparatus for software authentication
US7603319B2 (en) * 2000-08-28 2009-10-13 Contentguard Holdings, Inc. Method and apparatus for preserving customer identity in on-line transactions
US7165175B1 (en) * 2000-09-06 2007-01-16 Widevine Technologies, Inc. Apparatus, system and method for selectively encrypting different portions of data sent over a network
JP2002082987A (en) * 2000-09-06 2002-03-22 Seiko Epson Corp Document information reading support device, digital content generating system, digital content distributing system and storage medium
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US7779097B2 (en) 2000-09-07 2010-08-17 Sonic Solutions Methods and systems for use in network management of content
DE60133481T2 (en) * 2000-09-12 2009-04-30 Sony Corp. Information processing apparatus, electronic apparatus, information processing method and medium
US7171558B1 (en) * 2000-09-22 2007-01-30 International Business Machines Corporation Transparent digital rights management for extendible content viewers
US7237123B2 (en) 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
KR100441065B1 (en) * 2000-09-27 2004-07-19 지은묵 Internet Broadcasting Assisting System and Method
JP2002132585A (en) * 2000-10-20 2002-05-10 Sony Corp Information recording apparatus, information reproducing apparatus, information recording medium, information recording method, information reproducing method, and program providing medium
FI113898B (en) * 2000-11-21 2004-06-30 Nokia Corp Process for producing content in a wireless communication device
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US20020091643A1 (en) * 2001-01-11 2002-07-11 Ryuichi Okamoto Digital data distribution system
US7085744B2 (en) * 2000-12-08 2006-08-01 International Business Machines Corporation Method and system for conducting a transaction over a network
CA2328644C (en) * 2000-12-15 2005-05-10 Ibm Canada Limited-Ibm Canada Limitee Methods, systems, signals and media for encouraging users of computer readable content to register
US20030115351A1 (en) * 2001-12-14 2003-06-19 Giobbi John J. Digital content distribution system and method
US7305560B2 (en) * 2000-12-27 2007-12-04 Proxense, Llc Digital content security system
US9613483B2 (en) 2000-12-27 2017-04-04 Proxense, Llc Personal digital key and receiver/decoder circuit system and method
US7472280B2 (en) * 2000-12-27 2008-12-30 Proxense, Llc Digital rights management
US20020080969A1 (en) * 2000-12-27 2002-06-27 Giobbi John J. Digital rights management system and method
US6973576B2 (en) * 2000-12-27 2005-12-06 Margent Development, Llc Digital content security system
US20020094089A1 (en) * 2000-12-28 2002-07-18 Shigeki Kamiya Data delivery method and data delivery system
US7421082B2 (en) * 2000-12-28 2008-09-02 Sony Corporation Data delivery method and data delivery system using sets of passkeys generated by dividing an encryption key
US6965994B1 (en) * 2001-01-30 2005-11-15 Microsoft Corporation Security mechanism for computer processing modules
US20030018895A1 (en) * 2001-02-02 2003-01-23 Morrison Gregg B. Processes and systems for enabling secure and controlled distribution and use of information
AU1547402A (en) * 2001-02-09 2002-08-15 Sony Corporation Information processing method/apparatus and program
US8112311B2 (en) 2001-02-12 2012-02-07 Ochoa Optics Llc Systems and methods for distribution of entertainment and advertising content
TW552808B (en) * 2001-02-12 2003-09-11 World Theatre Inc Video distribution system
DE10108872B4 (en) * 2001-02-15 2013-04-11 Deutsche Telekom Ag Method for enabling the decryption of transmitted information
US7167565B2 (en) * 2001-03-06 2007-01-23 Arcot Systems, Inc. Efficient techniques for sharing a secret
US20020129261A1 (en) * 2001-03-08 2002-09-12 Cromer Daryl Carvis Apparatus and method for encrypting and decrypting data recorded on portable cryptographic tokens
KR100406630B1 (en) * 2001-03-13 2003-11-20 엘지전자 주식회사 Method for recording and reproducing a demo data, and medium thereof
KR20020072934A (en) * 2001-03-13 2002-09-19 엘지전자 주식회사 Read only optical disc recorded demo data, and method for reproducing them
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7016496B2 (en) * 2001-03-26 2006-03-21 Sun Microsystems, Inc. System and method for storing and accessing digital media content using smart card technology
JP3687587B2 (en) * 2001-03-27 2005-08-24 ソニー株式会社 Data processing system, data processing method, information processing apparatus, information processing method, and computer software
WO2002079955A2 (en) * 2001-03-28 2002-10-10 Nds Limited Digital rights management system and method
US20020141582A1 (en) * 2001-03-28 2002-10-03 Kocher Paul C. Content security layer providing long-term renewable security
EP1282262A1 (en) * 2001-03-29 2003-02-05 Sony Corporation Information processing apparatus
US8352372B1 (en) * 2001-04-02 2013-01-08 At&T Intellectual Property I, L.P. Software conditional access system for a media delivery network
US20020143974A1 (en) * 2001-04-02 2002-10-03 Scott Swix Local account manager for a media delivery network
US20020141348A1 (en) * 2001-04-02 2002-10-03 Scott Swix Remote diagnostic tool for a media delivery network
US7188342B2 (en) * 2001-04-20 2007-03-06 Microsoft Corporation Server controlled branding of client software deployed over computer networks
US8909555B2 (en) * 2001-04-24 2014-12-09 Hewlett-Packard Development Company, L.P. Information security system
US20030023862A1 (en) * 2001-04-26 2003-01-30 Fujitsu Limited Content distribution system
US20020161997A1 (en) * 2001-04-26 2002-10-31 Fujitsu Limited Content distribution system
CA2446584A1 (en) 2001-05-09 2002-11-14 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US7676430B2 (en) * 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
CA2453310A1 (en) 2001-05-23 2003-01-16 Weinstein, David J. System and method for a commercial multimedia rental and distribution system
US8131993B2 (en) * 2001-05-23 2012-03-06 Sharestream, Llc System and method for a commercial multimedia rental and distribution system
IL159342A0 (en) * 2001-06-12 2004-06-01 Research In Motion Ltd Certificate management and transfer system and method
CA2450601C (en) 2001-06-12 2012-10-16 Research In Motion Limited System and method for compressing secure e-mail for exchange with a mobile data communication device
US20020187828A1 (en) * 2001-06-12 2002-12-12 Jamal Benbrahim Method and apparatus for securing gaming machine operating data
JP4460283B2 (en) * 2001-06-12 2010-05-12 リサーチ イン モーション リミテッド Method for processing an encrypted message for exchange with a mobile data communication device
KR100430158B1 (en) * 2001-06-18 2004-05-04 지은묵 A contents consignment sale system of the internet broadcasting and a method thereof
FI118358B (en) * 2001-06-29 2007-10-15 Sanako Oy A method for controlling the use of digital media content
FI112904B (en) * 2001-06-29 2004-01-30 Nokia Corp The method of protecting the electronic device and the electronic device
EP1410601B1 (en) 2001-07-10 2017-02-08 BlackBerry Limited System and method for secure message key caching in a mobile communication device
US7257844B2 (en) 2001-07-31 2007-08-14 Marvell International Ltd. System and method for enhanced piracy protection in a wireless personal communication device
US7463739B2 (en) * 2001-08-02 2008-12-09 Safenet, Inc. Method and system providing improved security for the transfer of root keys
US8019081B2 (en) 2001-08-06 2011-09-13 Research In Motion Limited System and method for processing encoded messages
US7162036B2 (en) 2001-08-06 2007-01-09 Igt Digital identification of unique game characteristics
US6685567B2 (en) 2001-08-08 2004-02-03 Igt Process verification
US7299496B2 (en) * 2001-08-14 2007-11-20 Illinois Institute Of Technology Detection of misuse of authorized access in an information retrieval system
US7310821B2 (en) * 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
US7672903B2 (en) * 2001-08-27 2010-03-02 Dphi Acquisitions, Inc. Revocation method and apparatus for secure content
US20030188183A1 (en) * 2001-08-27 2003-10-02 Lee Lane W. Unlocking method and system for data on media
US7110982B2 (en) * 2001-08-27 2006-09-19 Dphi Acquisitions, Inc. Secure access method and system
EP1436693A2 (en) * 2001-08-29 2004-07-14 Globespanvirata, Inc. Key interface for secure object manipulation
US20030051156A1 (en) * 2001-09-10 2003-03-13 Ravi Razdan Delivering, storing and retrieving secured digital content for untethered usage
US7960005B2 (en) 2001-09-14 2011-06-14 Ochoa Optics Llc Broadcast distribution of content for storage on hardware protected optical storage media
US6902481B2 (en) 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US8708828B2 (en) 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
US7931533B2 (en) 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US20030068047A1 (en) * 2001-09-28 2003-04-10 Lee David A. One-way broadcast key distribution
US7865440B2 (en) * 2001-10-11 2011-01-04 International Business Machines Corporation Method, system, and program for securely providing keys to encode and decode data in a storage cartridge
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
EP1463569A4 (en) 2001-11-26 2010-06-02 Igt Reno Nev Pass-through live validation device and method
US7088823B2 (en) * 2002-01-09 2006-08-08 International Business Machines Corporation System and method for secure distribution and evaluation of compressed digital information
US7328345B2 (en) * 2002-01-29 2008-02-05 Widevine Technologies, Inc. Method and system for end to end securing of content for video on demand
US7636860B2 (en) * 2002-02-13 2009-12-22 Realnetworks, Inc. Scalable and extensible secure rendering of digital content
US7725404B2 (en) * 2002-02-27 2010-05-25 Imagineer Software, Inc. Secure electronic commerce using mutating identifiers
US20060195402A1 (en) * 2002-02-27 2006-08-31 Imagineer Software, Inc. Secure data transmission using undiscoverable or black data
US6996544B2 (en) * 2002-02-27 2006-02-07 Imagineer Software, Inc. Multiple party content distribution system and method with rights management features
US7376624B2 (en) * 2002-02-27 2008-05-20 Imagineer Software, Inc. Secure communication and real-time watermarking using mutating identifiers
US7693285B2 (en) * 2002-03-06 2010-04-06 Entrust, Inc. Secure communication apparatus and method
KR20030075018A (en) * 2002-03-15 2003-09-22 주식회사 셈틀로미디어 Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment
JP3866597B2 (en) * 2002-03-20 2007-01-10 株式会社東芝 Internal memory tamper resistant processor and secret protection method
US7275109B1 (en) * 2002-04-02 2007-09-25 Nortel Networks Limited Network communication authentication
US20040006701A1 (en) * 2002-04-13 2004-01-08 Advanced Decisions Inc. Method and apparatus for authentication of recorded audio
US7487365B2 (en) 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7890771B2 (en) * 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
GB2387678B (en) * 2002-04-18 2005-10-12 Hewlett Packard Co Apparatus for remote working
US7350069B2 (en) * 2002-04-18 2008-03-25 Herz Frederick S M System and method which employs a multi user secure scheme utilizing shared keys
US7277544B1 (en) * 2002-05-07 2007-10-02 Cinea, Inc. Local content security system
US8250663B2 (en) * 2002-09-04 2012-08-21 Music Public Broadcasting, Inc. Method and system for controlling presentation of media on a media storage device
US20030217280A1 (en) * 2002-05-17 2003-11-20 Keaton Thomas S. Software watermarking for anti-tamper protection
US7478233B2 (en) * 2002-05-30 2009-01-13 Microsoft Corporation Prevention of software tampering
GB2389928A (en) * 2002-06-21 2003-12-24 Spero Comm Ltd Data stored in encrypted form on a data carrier may be accessed by a user when a remote server provides permission
US7242771B2 (en) * 2002-06-26 2007-07-10 Matsushita Electric Industrial Co., Ltd. Contents management system
US7174021B2 (en) 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations
US9521213B2 (en) * 2002-06-28 2016-12-13 Adobe Systems Incorporated Electronic fulfillment system for distributing digital goods
EP1387238B1 (en) * 2002-07-30 2011-06-15 Fujitsu Limited Method and apparatus for reproducing information using a security module
CN1327308C (en) * 2002-08-21 2007-07-18 皇家飞利浦电子股份有限公司 Communication method and system between a recording and/or reproducing device and a remote unit
GB2392262A (en) * 2002-08-23 2004-02-25 Hewlett Packard Co A method of controlling the processing of data
US7810133B2 (en) * 2002-08-23 2010-10-05 Exit-Cube, Inc. Encrypting operating system
US7979700B2 (en) 2002-08-23 2011-07-12 Sandisk Corporation Apparatus, system and method for securing digital documents in a digital appliance
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
JP2004102789A (en) * 2002-09-11 2004-04-02 Sony Corp License management device, license management method and computer program
US7594271B2 (en) * 2002-09-20 2009-09-22 Widevine Technologies, Inc. Method and system for real-time tamper evidence gathering for software
US7548621B1 (en) 2002-09-26 2009-06-16 Ncr Corporation System and method for securing a base derivation key for use in injection of derived unique key per transaction devices
US20040083373A1 (en) * 2002-10-28 2004-04-29 Perkins Gregory M. Automatically generated cryptographic functions for renewable tamper resistant security systems
US7305711B2 (en) * 2002-12-10 2007-12-04 Intel Corporation Public key media key block
US20090178127A1 (en) * 2003-01-06 2009-07-09 Sony Corporation Authentication system, authentication server, authenticating method, authenticating program, terminal, authentication requesting method, authentication requesting program, and storage medium
US7801820B2 (en) * 2003-01-13 2010-09-21 Sony Corporation Real-time delivery of license for previously stored encrypted content
US20040143492A1 (en) * 2003-01-17 2004-07-22 Howell James A. Process for restoring upgrade keys or promotional offers using a unique identifier
US7584354B2 (en) * 2003-01-31 2009-09-01 Intel Corporation Implementing portable content protection to secure secrets
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7996907B2 (en) * 2003-02-18 2011-08-09 International Business Machines Corporation Data recording method, data recording system, data recording apparatus, data reading method, data reading system, counting method, counting system, method of supplying encryption key, system for supplying encryption key and program
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7356143B2 (en) * 2003-03-18 2008-04-08 Widevine Technologies, Inc System, method, and apparatus for securely providing content viewable on a secure device
US7007170B2 (en) * 2003-03-18 2006-02-28 Widevine Technologies, Inc. System, method, and apparatus for securely providing content viewable on a secure device
WO2004086363A2 (en) * 2003-03-27 2004-10-07 M-Systems Flash Disk Pioneers Ltd. Data storage device with full access by all users
US7562214B2 (en) * 2003-03-31 2009-07-14 International Business Machines Corporation Data processing systems
US20040199771A1 (en) * 2003-04-04 2004-10-07 Widevine Technologies, Inc. Method for tracing a security breach in highly distributed content
US7822685B1 (en) 2003-04-09 2010-10-26 Cisco Technology, Inc. Method and system for digital rights management brokering and digital asset security transcoding
KR100568228B1 (en) * 2003-05-20 2006-04-07 삼성전자주식회사 Method for resisting program tampering using serial number and for upgrading obfuscated program, and apparatus for the same
US7493499B1 (en) * 2003-05-22 2009-02-17 Copyright Clearance Center, Inc. Method and apparatus for secure delivery and rights management of digital content
GB0312736D0 (en) * 2003-06-04 2003-07-09 Ibm Method and system for controlling the disclosure time of information
WO2004109682A1 (en) * 2003-06-04 2004-12-16 Matsushita Electric Industrial Co., Ltd. Contents distribution system, recording apparatus, signature apparatus, contents supply apparatus, and contents playback apparatus
EP2280524A3 (en) 2003-06-05 2012-08-08 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
US7324648B1 (en) * 2003-07-08 2008-01-29 Copyright Clearance Center, Inc. Method and apparatus for secure key delivery for decrypting bulk digital content files at an unsecure site
WO2005013133A2 (en) * 2003-07-28 2005-02-10 Sandisk Secure Content Solutions, Inc. System, apparatus and method for controlling a storage device
EP3798874A1 (en) 2003-08-26 2021-03-31 Panasonic Intellectual Property Corporation of America Program execution device
US20050049932A1 (en) * 2003-09-03 2005-03-03 Howell James A. Process for managing subscription service purchases
US7681046B1 (en) 2003-09-26 2010-03-16 Andrew Morgan System with secure cryptographic capabilities using a hardware specific digital secret
US20050071270A1 (en) * 2003-09-26 2005-03-31 Ramirez Christopher W. Process for remote recovery and creation of machine specific authentication keys for systems
US7308530B1 (en) * 2003-10-02 2007-12-11 Marvell International Ltd. Architecture for a data storage device
GB2406922B (en) * 2003-10-09 2005-11-23 Vodafone Plc Data processing
US7406174B2 (en) * 2003-10-21 2008-07-29 Widevine Technologies, Inc. System and method for n-dimensional encryption
US7418512B2 (en) * 2003-10-23 2008-08-26 Microsoft Corporation Securely identifying an executable to a trust-determining entity
US7694151B1 (en) 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
US10013535B2 (en) * 2003-11-21 2018-07-03 Ciena Corporation Software configuration of module dependent on history
EP1550930B1 (en) * 2003-12-15 2007-08-01 Mobile Integrated Solutions Limited A method for restraining the re-distribution of licensed data in a digital mobile environment
US8146141B1 (en) * 2003-12-16 2012-03-27 Citibank Development Center, Inc. Method and system for secure authentication of a user by a host system
US20050193205A1 (en) * 2004-01-09 2005-09-01 Widevine Technologies, Inc. Method and system for session based watermarking of encrypted content
ATE447285T1 (en) * 2004-02-03 2009-11-15 Sandisk Secure Content Solutio PROTECTION OF DIGITAL DATA CONTENT
WO2005078615A1 (en) * 2004-02-12 2005-08-25 Koninklijke Philips Electronics N.V. Method and system for distributing content files
US9020854B2 (en) 2004-03-08 2015-04-28 Proxense, Llc Linked account system using personal digital key (PDK-LAS)
US7836301B2 (en) * 2004-03-10 2010-11-16 Harris Steven M Computer program for securely viewing a file
US20060021037A1 (en) * 2004-06-24 2006-01-26 Widevine Technologies, Inc. Apparatus, system, and method for protecting content using fingerprinting and real-time evidence gathering
US20060021056A1 (en) * 2004-06-30 2006-01-26 Nokia Corporation Digital rights management user data transfer
US20060026431A1 (en) * 2004-07-30 2006-02-02 Hitachi Global Storage Technologies B.V. Cryptographic letterheads
US20060036849A1 (en) * 2004-08-09 2006-02-16 Research In Motion Limited System and method for certificate searching and retrieval
US9094429B2 (en) * 2004-08-10 2015-07-28 Blackberry Limited Server verification of secure electronic messages
DE102004040462A1 (en) * 2004-08-20 2006-02-23 Giesecke & Devrient Gmbh Authenticated secure access to a volume with mass storage and a chip
US7549043B2 (en) * 2004-09-01 2009-06-16 Research In Motion Limited Providing certificate matching in a system and method for searching and retrieving certificates
US7631183B2 (en) 2004-09-01 2009-12-08 Research In Motion Limited System and method for retrieving related certificates
US7640428B2 (en) * 2004-09-02 2009-12-29 Research In Motion Limited System and method for searching and retrieving certificates
US7743069B2 (en) * 2004-09-03 2010-06-22 Sybase, Inc. Database system providing SQL extensions for automated encryption and decryption of column data
US7797342B2 (en) * 2004-09-03 2010-09-14 Sybase, Inc. Database system providing encrypted column support for applications
US9609279B2 (en) 2004-09-24 2017-03-28 Google Inc. Method and system for providing secure CODECS
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US20060122894A1 (en) * 2004-12-03 2006-06-08 Mcgary Jon User configured order status updates
RU2007127725A (en) 2004-12-20 2009-01-27 ПРОКСЕНС, ЭлЭлСи (US) PERSONAL DATA (PDK) AUTHENTICATION BY BIOMETRIC KEY
US20080015999A1 (en) * 2005-02-04 2008-01-17 Widevine Technologies, Inc. Securely ingesting encrypted content into content servers
US8577683B2 (en) * 2008-08-15 2013-11-05 Thomas Majchrowski & Associates, Inc. Multipurpose media players
US20060193462A1 (en) * 2005-02-28 2006-08-31 Gregg Hansen System for optimizing configurable information handling systems
US20060225083A1 (en) * 2005-03-01 2006-10-05 Widevine Technologies, Inc. System and method for motion picture print forensics
US8219823B2 (en) * 2005-03-04 2012-07-10 Carter Ernst B System for and method of managing access to a system using combinations of user information
US8539587B2 (en) 2005-03-22 2013-09-17 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
US7349886B2 (en) * 2005-03-25 2008-03-25 Widevine Technologies, Inc. Securely relaying content using key chains
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US8195789B2 (en) * 2005-04-20 2012-06-05 Oracle International Corporation System, apparatus and method for characterizing messages to discover dependencies of services in service-oriented architectures
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US20060291645A1 (en) * 2005-06-08 2006-12-28 Vasu Mekala Needs based offer
CA2550560C (en) * 2005-06-17 2015-07-21 Kabushiki Kaisha Toshiba Information provision system, provision information copying device, user terminal device and user management device
US8995653B2 (en) * 2005-07-12 2015-03-31 International Business Machines Corporation Generating a secret key from an asymmetric private key
US7623684B2 (en) * 2005-07-19 2009-11-24 Dell Products, L.P. System and method for information handling system software registration code management
US20070033408A1 (en) * 2005-08-08 2007-02-08 Widevine Technologies, Inc. Preventing illegal distribution of copy protected content
US20070050303A1 (en) * 2005-08-24 2007-03-01 Schroeder Dale W Biometric identification device
JP4886428B2 (en) * 2005-09-15 2012-02-29 株式会社東芝 Information providing system, content information copying apparatus, user terminal apparatus, and user management apparatus
US20070067643A1 (en) * 2005-09-21 2007-03-22 Widevine Technologies, Inc. System and method for software tamper detection
WO2007038245A2 (en) 2005-09-23 2007-04-05 Widevine Technologies, Inc. Method for evolving detectors to detect malign behavior in an artificial immune system
US8065733B2 (en) 2005-09-23 2011-11-22 Google, Inc. Method for evolving detectors to detect malign behavior in an artificial immune system
US7817608B2 (en) * 2005-09-23 2010-10-19 Widevine Technologies, Inc. Transitioning to secure IP communications for encoding, encapsulating, and encrypting data
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
EP1803249B1 (en) * 2005-10-14 2010-04-07 Research In Motion Limited System and method for protecting master encryption keys
US9626667B2 (en) * 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
EP2124164A3 (en) 2005-10-18 2010-04-07 Intertrust Technologies Corporation Digital rights management engine system and method
US7555715B2 (en) * 2005-10-25 2009-06-30 Sonic Solutions Methods and systems for use in maintaining media data quality upon conversion to a different data format
US8095960B2 (en) * 2005-11-21 2012-01-10 Novell, Inc. Secure synchronization and sharing of secrets
JP4899442B2 (en) * 2005-11-21 2012-03-21 ソニー株式会社 Information processing apparatus, information recording medium manufacturing apparatus, information recording medium and method, and computer program
JP4687424B2 (en) 2005-11-25 2011-05-25 ソニー株式会社 Information processing apparatus, information recording medium, information processing method, and computer program
US8689016B2 (en) * 2005-12-02 2014-04-01 Google Inc. Tamper prevention and detection for video provided over a network to a client
US7496727B1 (en) 2005-12-06 2009-02-24 Transmeta Corporation Secure memory access system and method
US8078788B2 (en) * 2005-12-08 2011-12-13 Sandisk Technologies Inc. Media card command pass through methods
US7761419B2 (en) * 2005-12-29 2010-07-20 International Business Machines Corporation Protected data replication
US8340672B2 (en) 2006-01-06 2012-12-25 Proxense, Llc Wireless network synchronization of cells and client devices on a network
US11206664B2 (en) 2006-01-06 2021-12-21 Proxense, Llc Wireless network synchronization of cells and client devices on a network
US8526612B2 (en) * 2006-01-06 2013-09-03 Google Inc. Selective and persistent application level encryption for video provided to a client
US20070180231A1 (en) * 2006-01-31 2007-08-02 Widevine Technologies, Inc. Preventing entitlement management message (EMM) filter attacks
US20080019517A1 (en) * 2006-04-06 2008-01-24 Peter Munguia Control work key store for multiple data streams
US8683601B2 (en) 2006-04-14 2014-03-25 Google Inc. Audio/video identification watermarking
US8325920B2 (en) 2006-04-20 2012-12-04 Google Inc. Enabling transferable entitlements between networked devices
US7904718B2 (en) 2006-05-05 2011-03-08 Proxense, Llc Personal digital key differentiation for secure transactions
US20070286420A1 (en) * 2006-06-08 2007-12-13 Widevine Technologies, Inc. Encryption of video content to vod services and networked personal video recorders using unique key placements
US8572751B2 (en) * 2006-06-12 2013-10-29 International Business Machines Corporation Method, system, and program product for preventing unauthorized changes to an electronic document
US7975143B2 (en) * 2006-06-12 2011-07-05 International Business Machines Corporation Method, system, and program product for generating and validating digital signatures
US7995568B2 (en) * 2006-06-12 2011-08-09 International Business Machines Corporation Capturing user interface switch states
US7814161B2 (en) 2006-06-23 2010-10-12 Research In Motion Limited System and method for handling electronic mail mismatches
JP2008065785A (en) * 2006-09-11 2008-03-21 Ricoh Co Ltd Unauthorized use prevention system
US9860274B2 (en) 2006-09-13 2018-01-02 Sophos Limited Policy management
US8839005B2 (en) * 2006-09-13 2014-09-16 Sandisk Technologies Inc. Apparatus for transferring licensed digital content between users
US20080065552A1 (en) * 2006-09-13 2008-03-13 Gidon Elazar Marketplace for Transferring Licensed Digital Content
US8321677B2 (en) * 2006-09-21 2012-11-27 Google Inc. Pre-binding and tight binding of an on-line identity to a digital signature
US7883003B2 (en) 2006-11-13 2011-02-08 Proxense, Llc Tracking system using personal digital key groups
US9269221B2 (en) * 2006-11-13 2016-02-23 John J. Gobbi Configuration of interfaces for a location detection system and application
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US7945052B2 (en) 2007-03-29 2011-05-17 Gary Stephen Shuster Method of distributing a decryption key in fixed-content data
US8621093B2 (en) 2007-05-21 2013-12-31 Google Inc. Non-blocking of head end initiated revocation and delivery of entitlements non-addressable digital media network
JP4349441B2 (en) * 2007-06-12 2009-10-21 ソニー株式会社 Information processing apparatus, information processing method, and computer program
US8209540B2 (en) * 2007-06-28 2012-06-26 Apple Inc. Incremental secure backup and restore of user settings and data
US8243924B2 (en) 2007-06-29 2012-08-14 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
US7660539B2 (en) * 2007-07-11 2010-02-09 Dell Products, L.P. Printer consumable ordering direct from printer
US9158933B2 (en) * 2007-08-17 2015-10-13 Sybase, Inc. Protection of encryption keys in a database
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US8659427B2 (en) 2007-11-09 2014-02-25 Proxense, Llc Proximity-sensor supporting multiple application services
US8171528B1 (en) 2007-12-06 2012-05-01 Proxense, Llc Hybrid device having a personal digital key and receiver-decoder circuit and methods of use
US9032154B2 (en) 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
WO2009079666A1 (en) 2007-12-19 2009-06-25 Proxense, Llc Security system and method for controlling access to computing resources
US8813200B2 (en) * 2007-12-21 2014-08-19 Oracle International Corporation Online password management
US8868464B2 (en) 2008-02-07 2014-10-21 Google Inc. Preventing unauthorized modification or skipping of viewing of advertisements within content
WO2009102979A2 (en) 2008-02-14 2009-08-20 Proxense, Llc Proximity-based healthcare management system with automatic access to private information
US8341715B2 (en) * 2008-02-29 2012-12-25 Research In Motion Limited System and method for shared resource owner based access control
WO2009118800A1 (en) * 2008-03-28 2009-10-01 パナソニック株式会社 Software updating apparatus, software updating system, alteration verification method and alteration verification program
WO2009118801A1 (en) * 2008-03-28 2009-10-01 パナソニック株式会社 Software updating apparatus, software updating system, invalidation method, and invalidation program
WO2009126732A2 (en) 2008-04-08 2009-10-15 Proxense, Llc Automated service-based order processing
US20090259684A1 (en) * 2008-04-09 2009-10-15 Macrovision Corporation Digital content library service
US20090257336A1 (en) * 2008-04-09 2009-10-15 Anthony David Knight Device for marking optical discs in a non-destructive, tamper-proof manner for licensing and other purposes
US8150039B2 (en) * 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US7995196B1 (en) 2008-04-23 2011-08-09 Tracer Detection Technology Corp. Authentication method and system
US20090313171A1 (en) * 2008-06-17 2009-12-17 Microsoft Corporation Electronic transaction verification
US20110004505A1 (en) * 2009-07-01 2011-01-06 Yang Pan Methods of media asset distribution by employing electronic apparatus
EP2449496A1 (en) * 2009-07-03 2012-05-09 Thomson Licensing Method for acquisition of software applications
US8498418B2 (en) * 2009-08-31 2013-07-30 International Business Machines Corporation Conversion of cryptographic key protection
US8826013B1 (en) * 2009-09-23 2014-09-02 Trend Micro Incorporated Protection of customer data in cloud virtual machines using a central management server
US8972745B2 (en) * 2009-12-15 2015-03-03 International Business Machines Corporation Secure data handling in a computer system
US9418205B2 (en) 2010-03-15 2016-08-16 Proxense, Llc Proximity-based system for automatic application or data access and item tracking
US20110246618A1 (en) 2010-04-02 2011-10-06 Apple Inc. Caching multiple views corresponding to multiple aspect ratios
US9922354B2 (en) 2010-04-02 2018-03-20 Apple Inc. In application purchasing
US8417965B1 (en) * 2010-04-07 2013-04-09 Xilinx, Inc. Method and circuit for secure definition and integration of cores
US9110749B2 (en) * 2010-06-01 2015-08-18 Apple Inc. Digital content bundle
EP2593939A1 (en) 2010-07-13 2013-05-22 Rovi Technologies Corporation Systems and methods for electronic sell-through of interactive multimedia content authored for distribution via physical media
US8918854B1 (en) 2010-07-15 2014-12-23 Proxense, Llc Proximity-based system for automatic application initialization
US9437239B2 (en) 2010-12-09 2016-09-06 Solabyte Corporation Electronic system for the protection and control of license transactions associated with the disablement of replicated read only media and its bound licensed content
US9075964B2 (en) 2010-12-09 2015-07-07 Solabyte Corporation Electronic system for the protection and control of license transactions associated with the alteration of replicated read only media and its bound licensed content
US8352749B2 (en) 2010-12-17 2013-01-08 Google Inc. Local trusted services manager for a contactless smart card
US8807440B1 (en) 2010-12-17 2014-08-19 Google Inc. Routing secure element payment requests to an alternate application
US9691055B2 (en) 2010-12-17 2017-06-27 Google Inc. Digital wallet
US8621168B2 (en) 2010-12-17 2013-12-31 Google Inc. Partitioning the namespace of a contactless smart card
US8857716B1 (en) 2011-02-21 2014-10-14 Proxense, Llc Implementation of a proximity-based system for object tracking and automatic application initialization
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
US9589110B2 (en) 2011-04-11 2017-03-07 Intertrust Technologies Corporation Information security systems and methods
US8171525B1 (en) * 2011-09-15 2012-05-01 Google Inc. Enabling users to select between secure service providers using a central trusted service manager
US8255687B1 (en) * 2011-09-15 2012-08-28 Google Inc. Enabling users to select between secure service providers using a key escrow service
US8313036B1 (en) 2011-09-16 2012-11-20 Google Inc. Secure application directory
US8751800B1 (en) 2011-12-12 2014-06-10 Google Inc. DRM provider interoperability
US8385553B1 (en) 2012-02-28 2013-02-26 Google Inc. Portable secure element
US9811827B2 (en) 2012-02-28 2017-11-07 Google Inc. System and method for providing transaction verification
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
US8429409B1 (en) 2012-04-06 2013-04-23 Google Inc. Secure reset of personal and service provider information on mobile devices
US9390280B2 (en) * 2012-09-16 2016-07-12 Angel Secure Networks, Inc. System and method for obtaining keys to access protected information
US20140215211A1 (en) * 2013-01-25 2014-07-31 Dw Associates, Llc Split data exchange protocol
US9405898B2 (en) 2013-05-10 2016-08-02 Proxense, Llc Secure element as a digital pocket
US9197419B1 (en) 2013-10-14 2015-11-24 Trend Micro Incorporated Security system for data stored in the cloud
US9275242B1 (en) 2013-10-14 2016-03-01 Trend Micro Incorporated Security system for cloud-based emails
US9930095B2 (en) * 2014-03-26 2018-03-27 Google Llc System for managing extension modifications to web pages
US9608823B2 (en) * 2014-08-11 2017-03-28 Red Hat, Inc. Secure remote kernel module signing
WO2016040381A1 (en) * 2014-09-08 2016-03-17 Universidad Politecnica De Puerto Rico Process for secure document exchange
US10878110B2 (en) 2017-09-12 2020-12-29 Sophos Limited Dashboard for managing enterprise network traffic
CN108513704B (en) * 2018-04-17 2021-01-19 福建联迪商用设备有限公司 Remote distribution method and system of terminal master key
CN109766731B (en) * 2019-01-11 2021-01-19 深圳忆联信息系统有限公司 Encrypted data processing method and device based on solid state disk and computer equipment
EP3696698A1 (en) * 2019-02-18 2020-08-19 Verimatrix Method of protecting a software program against tampering
CN111178884B (en) * 2019-12-16 2024-04-12 平安壹钱包电子商务有限公司 Information processing method, device, equipment and readable storage medium
US11811668B2 (en) 2021-08-19 2023-11-07 Bank Of America Corporation System for implementing disposition bias for validating network traffic from upstream applications
US20230394460A1 (en) * 2022-06-07 2023-12-07 Rhizomenet Pty. Ltd. Location-based digital asset interaction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4634807A (en) * 1984-08-23 1987-01-06 National Research Development Corp. Software protection device
US4670857A (en) * 1981-10-26 1987-06-02 Rackman Michael I Cartridge-controlled system whose use is limited to authorized cartridges
US5450489A (en) * 1993-10-29 1995-09-12 Time Warner Entertainment Co., L.P. System and method for authenticating software carriers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4670857A (en) * 1981-10-26 1987-06-02 Rackman Michael I Cartridge-controlled system whose use is limited to authorized cartridges
US4634807A (en) * 1984-08-23 1987-01-06 National Research Development Corp. Software protection device
US5450489A (en) * 1993-10-29 1995-09-12 Time Warner Entertainment Co., L.P. System and method for authenticating software carriers

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430668B1 (en) 1999-02-15 2008-09-30 Hewlett-Packard Development Company, L.P. Protection of the configuration of modules in computing apparatus
US9659285B2 (en) 1999-08-27 2017-05-23 Zarbaña Digital Fund Llc Music distribution systems
EP1804506A3 (en) * 1999-08-27 2008-02-06 World Theatre, Inc. Video and music distribution systems
WO2001043336A3 (en) * 1999-12-09 2001-12-27 Music Aliens Ag Method and system for transmitting data and/or information and/or signals, especially of a dynamic content, and the use of said method and said system
WO2001043336A2 (en) * 1999-12-09 2001-06-14 Music-Aliens Ag Method and system for transmitting data and/or information and/or signals, especially of a dynamic content, and the use of said method and said system
GB2366162A (en) * 2000-08-15 2002-02-27 Chargenet Ltd Controlling access to a telecommunicated data file
WO2002014986A3 (en) * 2000-08-15 2002-11-28 Chargenet Ltd Method and apparatus for controlling or monitoring access to the content of a telecommunicable data file
GB2366969A (en) * 2000-09-14 2002-03-20 Phocis Ltd Copyright protection for digital content distributed over a network
US7210039B2 (en) 2000-09-14 2007-04-24 Phocis Limited Digital rights management
GB2377137B (en) * 2001-06-27 2004-10-20 Hewlett Packard Co Network appliances
GB2377137A (en) * 2001-06-27 2002-12-31 Hewlett Packard Co Networked storage device provided with a trusted device for indicating the integrity and/or identity of the storage device
US7441118B2 (en) 2001-06-27 2008-10-21 Hewlett-Packard Development Company, L.P. Network appliance having trusted device for providing verifiable identity and/or integrity information
US7596702B2 (en) 2001-06-27 2009-09-29 Hewlett-Packard Development Company, L.P. Network storage devices
EP1495574A4 (en) * 2002-04-16 2009-03-25 Sony Comp Entertainment Us Method and system for using tamperproof hardware to provide copy protection and online security
EP1495574A1 (en) * 2002-04-16 2005-01-12 Sony Computer Entertainment America Inc. Method and system for using tamperproof hardware to provide copy protection and online security
US7693286B2 (en) 2004-07-14 2010-04-06 Intel Corporation Method of delivering direct proof private keys in signed groups to devices using a distribution CD
US7697691B2 (en) 2004-07-14 2010-04-13 Intel Corporation Method of delivering Direct Proof private keys to devices using an on-line service
US7792303B2 (en) 2004-07-14 2010-09-07 Intel Corporation Method of delivering direct proof private keys to devices using a distribution CD
US8660266B2 (en) 2004-07-14 2014-02-25 Intel Corporation Method of delivering direct proof private keys to devices using an on-line service
DE112005001654B4 (en) * 2004-07-14 2011-07-21 Intel Corp., Calif. Method for transmitting direct-proof private keys to devices by means of a distribution CD
US8326120B2 (en) 2004-07-22 2012-12-04 Panasonic Corporation Playback apparatus for performing application-synchronized playback
US8391676B2 (en) 2004-07-22 2013-03-05 Panasonic Corporation Playback apparatus for performing application-synchronized playback
EP2270806A3 (en) * 2004-07-22 2011-02-09 Panasonic Corporation Playback apparatus for performing application-synchronized playback
US8660406B2 (en) 2004-07-22 2014-02-25 Panasonic Corporation Playback apparatus for performing application-synchronized playback
EP2270805A3 (en) * 2004-07-22 2011-01-26 Panasonic Corporation Playback apparatus for performing application-synchronized playback
CN108985079A (en) * 2018-06-08 2018-12-11 深圳大普微电子科技有限公司 Data verification method and verifying system
CN108985079B (en) * 2018-06-08 2020-09-08 深圳大普微电子科技有限公司 Data verification method and verification system

Also Published As

Publication number Publication date
US5991399A (en) 1999-11-23
AU1820199A (en) 1999-07-05
WO1999031842A8 (en) 1999-10-07

Similar Documents

Publication Publication Date Title
US5991399A (en) Method for securely distributing a conditional use private key to a trusted entity on a remote system
US10263774B2 (en) Ensuring authenticity in a closed content distribution system
US7689827B2 (en) Systems and methods for using cryptography to protect secure and insecure computing environments
US7716487B2 (en) License-based cryptographic technique, particularly suited for use in a digital rights management system, for controlling access and use of bore resistant software objects in a client computer
US6801999B1 (en) Passive and active software objects containing bore resistant watermarking
KR100362219B1 (en) Method and system for distributing programs using tamper resistant processor
US7174320B2 (en) Method of providing adaptive security
US9906509B2 (en) Method for offline DRM authentication and a system thereof
EP1342149B1 (en) Method for protecting information and privacy
US5673316A (en) Creation and distribution of cryptographic envelope
US6108420A (en) Method and system for networked installation of uniquely customized, authenticable, and traceable software application
US7424606B2 (en) System and method for authenticating an operating system
US7181603B2 (en) Method of secure function loading
US7739505B2 (en) Linking Diffie Hellman with HFS authentication by using a seed
KR19980081644A (en) Information processing apparatus, methods and recording media
WO2001010076A2 (en) Systems and methods for protecting secure and insecure computing environments using cryptography
KR20070122502A (en) Hardware functionality scan for device authentication
US20070277037A1 (en) Software component authentication via encrypted embedded self-signatures
KR20090064698A (en) Drm method and drm system using trusted platform module
JPH1131130A (en) Service providing device
US20050060544A1 (en) System and method for digital content management and controlling copyright protection
Nützel et al. Towards trust in digital rights management systems
Kravitz et al. Secure open systems for protecting privacy and digital services

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CU CZ CZ DE DE DK DK EE EE ES FI 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 MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT UA UG US UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SZ UG 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 BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: C1

Designated state(s): AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CU CZ CZ DE DE DK DK EE EE ES FI 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 MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT UA UG US UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: C1

Designated state(s): GH GM KE LS MW SD SZ UG 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 BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

CFP Corrected version of a pamphlet front page

Free format text: REVISED ABSTRACT RECEIVED BY THE INTERNATIONAL BUREAU AFTER COMPLETION OF THE TECHNICAL PREPARATIONS FOR INTERNATIONAL PUBLICATION

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: KR

122 Ep: pct application non-entry in european phase