Securing digital content system and method
Claim Score by NHIP
Abstract
A system and method of encrypting digital content in a digital container and securely locking the encrypted content to a particular user and/or computer or other computing device is provided. The system uses a token-based authentication and authorization procedure and involves the use of an authentication/authorization server. This system provides a high level of encryption security equivalent to that provided by public key/asymmetric cryptography without the complexity and expense of the associated PKI infrastructure. The system enjoys the simplicity and ease of use of single key/symmetric cryptography without the risk inherent in passing unsecured hidden keys. The secured digital container when locked to a user or user's device may not open or permit access to the contents if the digital container is transferred to another user's device. The digital container provides a secure technique of distributing electronic content such as videos, text, data, photos, financial data, sales solicitations, or the like.
Term
Term ended
Expired 20 October 2024, 1.9 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
16 claims: 2 independent, 14 dependent
- 1Broadest claimClaim Score 53, average(NHIP)A computer-implemented method for protecting electronic content, the method comprising the steps of:storing an asymmetric decryption key that is associated with a digital electronic container;receiving client device footprint data from a client device;creating a re-key value using both the client device footprint data and the stored an asymmetric decryption key that is associated with a digital electronic container ;and providing the re-key value to the client device for re-keying content data provided by of the electronic digital container at the client device wherein a predetermined data block of the content data stores contains a symmetric decryption key, the predetermined data block and stored the symmetric decryption key being previously encrypted using an asymmetric key technique, and wherein the content data is arranged into data blocks including the predetermined data block.
- 10A computer program product comprising computer executable instructions embodied on a non-transitory computer readable storage medium that when read and executed by a computer processor executes the following steps:storing an asymmetric decryption key that is associated with a digital electronic container;receiving client device footprint data from a client device;creating a re-key value using both the client device footprint data and the stored an asymmetric decryption key that is associated with a digital electronic container ;and providing the re-key value to the client device for re-keying content data provided by the digital electronic container to the client device wherein a predetermined data block of the content data stores contains a symmetric decryption key, the predetermined data block and stored the symmetric decryption key being previously encrypted using an asymmetric key technique, and wherein the content data is arranged into data blocks including the predetermined data block.
Independent claims2
98 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
0001ThisThe present application is a reissue application of U.S. Pat. No. 9,191,376 issued Nov. 17, 2015 from application Ser. No. 14/553,209, filed Nov. 25, 2014. Application Ser. No. 14/553,209 is a continuation application of co-pending U.S. non-provisional application Ser. No. 13/762,113 filed Feb. 7, 2013 now U.S. Pat. No. 8,930,697 which is a continuation of U.S. non-provisional application Ser. No. 13/157,993 filed Jun. 10, 2011 now U.S. Pat. No. 8,402,558 which is a continuation of U.S. non-provisional application Ser. No. 12/181,442 now U.S. Pat. No. 7,979,697 which is a continuation of prior U.S. non-provisional application Ser. No. 10/576,303, filed Apr. 19, 2006 now U.S. Pat. No. 7,421,741, which is the National Stage Application of International Patent Application PCT/US2004/034494 filed Oct. 20, 2004, and claims priority to and the benefit of U.S. Provisional Application 60/512,091 filed on Oct. 20, 2003, the disclosures of which are all hereby incorporated by reference in their entirety.
BACKGROUND OF THE INVENTION
00021. Field of the Invention
0003The invention generally relates to encrypting digital content, and more specifically, to securely locking encrypted digital media to a particular user, computer or other computing device.
00042. Background Description
0005Any owner or distributor of secure or copyrighted digital content, i.e., electronic data in any form, may face several problems concerning the encryption of the data and the method of access that is provided to an end user. The owner or distributor typically is compelled to provide a robust method of encryption while remaining within a system that is relatively easy and simple for users to operate. In order to be relatively effective and/or easy to use, the system provided by owners or distributors must typically allow users to repeatedly access the material while requiring that they undergo an authentication, approval or payment process under a set of rules determined by the content owner. For example, the user may access the content an unlimited number of times after approval, or the user may have to regain approval after a certain number of accesses and/or after a certain amount of time has passed. Normally, content owners require substantial confidence and assurance that once approved for access by a particular user on a particular device the content cannot be freely accessed by another user especially if the content is transmitted to another machine or device.
0006Currently, most content originators and distributors utilize a Public Key Infrastructure, or PKI system, to accomplish these functions. The PKI system utilizes public key or asymmetric cryptography in which a public key and a private key are produced at the time that the content file is encrypted. This PKI system typically has the following properties or requires the use of: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0007">(i) A certificate authority that issues and verifies a digital certificate. A digital certificate includes the public key, information about the public key or other licensing information.</li><li id="ul0002-0002" num="0008">(ii) A registration authority that acts as the verifier for the certificate authority before a digital certificate is issued to a requestor.</li><li id="ul0002-0003" num="0009">(iii) One or more directories where the certificates (with their public keys) are held.</li><li id="ul0002-0004" num="0010">(iv) A certificate management system. <br /> This PKI system is quite complex and very often is an operational and financial burden for content originators, distributors and users. </li></ul></li></ul>
0011An alternative encryption system is symmetric cryptography. A symmetric system utilizes a secret or hidden key that is shared by both the sender and recipient of the encrypted data. While much simpler to use and substantially less costly to implement, a common drawback may be that if the secret key is discovered or intercepted, the encrypted data can easily be decrypted and stolen. However, if a method and system for protecting the secret key, itself, can be provided so that the secret key is not exposed to discovery or interception, including an end user, then a very reliable and effective procedure and system for securely delivering electronic content is possible while avoiding the significant burdens of a PKI infrastructure.
SUMMARY OF THE INVENTION
0012An aspect of the invention provides a method for creating a digital container and encrypting the contents of the digital container with a symmetric encryption technique. The method also provides for protecting the symmetric decryption keys by inserting the symmetric decryption keys into header associated with a data block in the digital container and encrypting the header using an asymmetric encryption algorithm. Upon an attempted access of the container by a user, the header is re-encrypted using data from the user's device and/or the user so that the contents of the digital container are now locked to the user's device or to the user. Transaction data such as credit card information or account information may also be obtained from the user, perhaps for paying for the contents of the container or other service, which may be verified and used to gain access to the contents. Once the container has been locked to the user's device or user, the container may only be opened and accessed on that device or by that user. If the digital container were to be transmitted to another device, the digital container recognizes that the footprint of the device has changed or the user is different and may not open until a re-authorization has been performed which may involve a financial transaction.
0013A further aspect of the invention includes a system for creating a digital container and encrypting the contents of the digital container with a symmetric encryption technique. The system also provides for protecting the summetric decryption keys by inserting the symmetric decryption keys into header associated with a data block in the digital container and encrypting the header using an asymmetric encryption algorithm. Upon an attempted access of the container by a user, the system re-encrypts the header using data from the user's device such as a machine footprint and/or the user such as a client fingerprint so that the contents of the digital container are now locked to the user's device or to the user. The system may also acquire transaction data such as credit card information or account information from the user, perhaps for paying for the contents of the container or other service, which may be verified and used to gain access to the contents. Once the container has been locked to the user's device or user, the system provides that the container may only be opened and accessed on that device or by that user. If the digital container were to be transmitted to another device, the system recognizes that the footprint of the device has changed or the user is different and may not open until a re-authorization has been performed which may involve a financial transaction.
0014In another aspect of the invention, a computer program product comprising a computer usable medium having readable program code embodied in the medium is provided. The computer program product includes at least one component to create a digital container and to encrypt the contents of the digital container with a symmetric encryption technique. The at least one component also protects the symmetric decryption keys by inserting the symmetric decryption keys into header associated with a data block in the digital container and encrypting the header using an asymmetric encryption algorithm. Upon an attempted access of the container by a user, the at least one component re-encrypts the header using data from the user's device and/or the user so that the contents of the digital container are now locked to the user's device or to the user. The at least one component may also obtain transaction data such as credit card information or account information from the user, perhaps for paying for the contents of the container or other service, which may be verified and used to gain access to the contents. Once the container has been locked to the user's device or user, the container may only be opened and accessed on that device or by that user.
0015In another aspect, a method of securely delivering data is provided. The method includes creating a container having electronic content and a container identifier, encrypting at least one data block of the electronic content using a symmetric encryption technique and encrypting a header associated with a first data block of the electronic content using an asymmetric encryption technique, the header including a symmetric decryption key, and re-keying the header using data associated with a user or a user's device to lock at least a portion of the electronic content to the user or the user's device, wherein the locked at least a portion of the electronic content can only be decrypted and accessed by the user or on the user's device when the user or user's device has been authenticated against at least the container identifier.
0016In another aspect, a computer program product comprising a computer usable medium having readable program code embodied in the medium is provided. The computer program product includes at least one component to create a container having electronic content and a container identifier, determine at least one data block for partitioning the electronic content, encrypt the at least one data block of the electronic content using a symmetric encryption technique and to encrypt a header associated with a first data block of the electronic content using an asymmetric encryption technique, the header including a symmetric decryption key, re-key the header using data associated with a user or a user's device to lock at least a portion of the electronic content to the user or the user's device, wherein the locked at least a portion of the electronic content can only be decrypted and accessed by the user or on the user's device when the user or user's device has been authenticated against at least the container identifier, and decrypt the locked portion of the electronic content when the user or user's device has been authenticated.
0017In another aspect, a computer-implemented method of securely delivering data is provided. The computer-implemented method includes creating a container having electronic content and a container identifier, encrypting at least one data block of the electronic content using a symmetric encryption technique and encrypting a header associated with a first data block of the electronic content using an asymmetric encryption technique, the header including a symmetric decryption key, and re-keying the header using at least a portion of the container identifier and data associated with a user or a user's device to lock at least a portion of the electronic content to the user or the user's device, wherein the locked at least a portion of the electronic content can only be decrypted and accessed by the user or on the user's device when the user or user's device has been authenticated against at least the container identifier, and wherein the step for re-keying creates a unique value for the header for every different container delivered to the user's device.
0018In another aspect, a computer-based method for accessing content is provided. The method includes transmitting an electronic container having files of electronic content and a container identifier, wherein at least one data block of the electronic content is encrypted using a symmetric encryption technique and a header associated with a first data block of the electronic content is encrypted using an asymmetric encryption technique, the header including a symmetric decryption key, and transmitting a permission token based on an attempt to access the electronic content to grant access to the electronic content, wherein at least the symmetric decryption key is re-encrypted for each occurrence of transmitting the permission.
BRIEF DESCRIPTION OF THE DRAWINGS
0019<figref idref="DRAWINGS">FIG. 1</figref> is a functional block diagram of an embodiment of the system of the invention;
0020<figref idref="DRAWINGS">FIG. 2</figref> is a functional block of an embodiment showing registration and encryption of a secure digital container (SDC), according to the invention;
0021<figref idref="DRAWINGS">FIG. 3</figref> is a functional block diagram of a user's device, according to the invention;
0022<figref idref="DRAWINGS">FIG. 4</figref> is an illustrative embodiment of a Graphical User Interface (GUI), according to the invention;
0023<figref idref="DRAWINGS">FIG. 5</figref> is a functional block diagram of an embodiment of a container authentication and permission token generation process, according to the invention;
0024<figref idref="DRAWINGS">FIG. 6</figref> is an illustration of an embodiment of a permission token, according to the invention;
0025<figref idref="DRAWINGS">FIG. 7</figref> is a functional block diagram of an embodiment of a decryption process, according to the invention;
0026<figref idref="DRAWINGS">FIGS. 8A and 8B</figref> are flow diagrams of an embodiment showing steps of using the invention; and
0027<figref idref="DRAWINGS">FIG. 9</figref> is a flow diagram of an embodiment showing steps of using the invention.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
0028The invention provides a system and method of encrypting electronic content using symmetric encryption without exposing the decryption key to discovery or interception. In embodiments, delivery of the electronic content from a creator to an end user may be accomplished by digital containers that employ protected key symmetric encryption. The invention combines the robustness equivalent to PKI encryption but with the simplicity and cost effectiveness of symmetric/secret key cryptography. U.S. Provisional Application Ser. No. 0/512,091, filed Oct. 20, 2003 is incorporated by reference herein in its entirety.
0029An aspect of the invention involves a unique process that is used to “re-key” the “hidden” keys sent with the electronic content, often in digital containers, with a value that contains data specific to the user and/or the user's device. This “re-keying” (i.e., re-encrypting) is typically performed on the user's device without ever exposing the content in an unencrypted form, thus the keys themselves are maintained securely and eliminates the potential for compromising the electronic data and/or the keys. During “re-keying”, the “re-keyed” keys may also be associated with the original user's device in such a way as to effectively inhibit any unauthorized access to the electronic content. This is especially useful, if and when, the electronic content might be further propagated to other user's devices, such as by email, copied disks, or peer-to-peer communications, for example. These other users are effectively denied access to the electronic content since the electronic content has been re-keyed and associated with the original user and/or original user's device. After the “re-keying” process executes, the content inside the container is “locked” to a particular device and/or a particular user.
0030<figref idref="DRAWINGS">FIG. 1</figref> is a functional block diagram of an embodiment of the system of the invention, generally denoted by reference numeral <b>100</b>. <figref idref="DRAWINGS">FIG. 1</figref> also illustrates several steps associated with processes of the invention. The system <b>100</b> includes a content originator device <b>105</b> which includes a container creation application <b>110</b> (which may alternatively execute on a server or separate container creation computer) and content file or files <b>115</b> such as video, text, streaming media, audio, animation, music, financial transaction data, or any other type of data for inclusion in the production of a secure digital container (SDC) <b>120</b>. The container creation application <b>110</b> also provides for encrypting electronic content such as the content files <b>115</b>.
0031Further included in the system <b>100</b> is a user's device <b>125</b> (e.g., a computer controlled device such as a personal computer, a cable receiver box, compact disk (CD) player, television, digital video disk (DVD) player, satellite receiver, personal digital assistant (PDA), or the like) that may receive the electronic content <b>115</b>, typically via a SDC <b>120</b>. In embodiments, the SDC <b>120</b> may be delivered to a user's computer via a CD or DVD. The user's device <b>125</b> may be interconnected via a network <b>150</b>, such as the Internet, for transmission of the SDC <b>120</b> to the user's device <b>125</b>. The network may be any type of network such as wired, wireless, phone system, or the like. The SDC <b>120</b> may be delivered via any number of various known techniques including website download, peer-to-peer download, email, instant messaging (IM), file transfer protocols, or the like. (For clarity, once the SDC <b>120</b> has been transmitted or is otherwise present on the user's device, the SDC on the user's device is denoted by reference numeral <b>120</b>′)
0032The user's device <b>125</b> also includes memory <b>130</b> for storing various data items such as digital rights management (DRM) data and a Client Fingerprint Mode Flag (CFMF), also described in more detail below. The user's device <b>125</b> may also include a hard drive, compact disk (CD) drives or a digital video disk (DVD) drive, generally denoted by reference numeral <b>135</b>. The user's device <b>125</b> may also include an external hardware identification device <b>140</b> for providing input for authenticating a user such as a biometric authentication device or card reader, for example.
0033The system <b>100</b> may also include a container authentication server <b>160</b> (also referred to as a container verification server), which in embodiments, may oversee operations of a container registration database <b>165</b>. In embodiments, database <b>165</b> may be distributed. The container authentication server also manages attempts to open the container by a user and coordinates permissions, authentications and portions of the re-keying sequences of a digital container using the container ID and container registration database <b>165</b>. This may also include managing financial transactions associated with the container assess. Also included in the system <b>100</b> may be a transaction server <b>180</b> (e.g., an IPayment, Inc. Gateway server) for receiving financial transaction requests such as credit card or debit transactions when a user chooses to purchase a service or item controlled by the SDC <b>120</b>′, and for providing a response to the request which validates a purchase, as described more fully below.
0034In one application, the container creation application <b>110</b> encrypts the one or more content files <b>115</b> (or any subset of the content files) and incorporates the one or more content files <b>115</b> into the secure digital container <b>120</b>. Once the SDC <b>120</b> has been constructed, usage rights parameters as selected by the content originator, along with other SDC registration data, may be stored in the container registration database <b>165</b>, as denoted by reference numeral <b>170</b>. The usage rights may include, but not limited to, limiting accesses to the content files to a certain number of occurrences, limiting access to a period of time, limiting copying of the content files (or portions thereof), limiting the copying to a secondary device, limiting the burning of the content file to storage media such as CD or DVD or controlling printing, to name a few.
0035Once the SDC <b>120</b> is transmitted or released to a user (or users), or perhaps to an Internet site to be discovered and downloaded by users or potential customers of the electronic content, a user may attempt to open the SDC <b>120</b>′ on their device <b>125</b> (or attempts to open portions of the SDC <b>120</b>′). When the attempt to access or open the SDC <b>120</b>′ occurs, executable code either in the SDC <b>120</b>′ or already on the user's device opens a secure link to the container verification server <b>160</b> and sends an authorization request message <b>190</b>. This authorization request message <b>190</b> includes data specific to the user or the user's device.
0036This authorization request message <b>190</b> may also include financial transaction information, such as credit/debit card data or user identification data (e.g., account numbers, social security numbers, telephone numbers, alias names, or the like) perhaps for Internet payment services such as online payment services provided by PayPal™, Inc, or the like. If a financial transaction is involved, then this data may be sent to the transaction server <b>180</b> (e.g., an iPayment, Inc. Gateway server, or the like) in a financial transaction request message <b>192</b>. Once this request is processed, transaction approval or denial data may be returned to the container authentication server <b>160</b> in a financial transaction response message <b>194</b>.
0037After receiving the financial transaction response message <b>194</b>, the container authentication server <b>160</b> may create an authentication request response called a permission token message, as denoted by reference numeral <b>196</b>. This permission token message contains a permission token that is typically a relatively small bit string that includes the financial transaction approval or denial data, the contents usage rights data, permission flags and re-encryption data that is now unique to both the SDC <b>120</b>′ and the user and/or the user's device, as explained more fully below.
0038When the permission token <b>196</b> is returned to the SDC <b>120</b>′ on the user's device <b>125</b>, the container executable code may read the token bit string and may write the usage rights data and a permission flag called a client fingerprint mode flag (CFMF) to a confidential (e.g., unpublished or hidden) location such as memory <b>130</b> on the user's device <b>125</b>. Alternatively, this confidential location may be a storage device such as a disk, DVD, or external storage device.
0039Once this CFMF and usage rights data have been stored, any future or subsequent attempt to re-open the container causes the container executable code to detect the stored CFMF resulting in the SDC <b>120</b>′ opening, potentially limited by the usage rights data, without having to repeat the authentication process. The function of the CFMF and the usage rights data will be discussed in greater detail below.
0040Also, when the container executable code receives the re-encryption data, the container executable code uses the re-encryption data (i.e., returned with the permission token) to re-encrypt a core or selected part of the encrypted content file(s). This re-encryption process (described more fully below) provides unique aspects to controlling and shielding the electronic content and encryption/decryption process when the selected segment of the content file(s) is re-encrypted with a value that contains data specific to the SDC <b>120</b>′ and the user and/or the user's device <b>125</b>. This re-encryption process is performed on the user's device without ever exposing the contents in an unencrypted form and shields the contents and the encryption keys from piracy, unauthorized access, theft or intrusion with a high degree of confidence. Since all user devices are considered to be insecure environments, it may be said that this process re-encrypts the data in a secure way in an insecure environment. After this process is executed, the content inside the SDC <b>120</b>′ is “locked” to a particular device (e.g., device <b>125</b>) and/or a particular user. Thereafter, the SDC <b>120</b>′ can never be sent (perhaps by email, physical delivery, or other electronic delivery) to a different user and/or another user device and opened successfully without undergoing a new authentication process.
0041<figref idref="DRAWINGS">FIG. 2</figref> is a functional block diagram of an embodiment showing registration and encryption of a SDC, according to the invention, generally denoted by reference numeral <b>200</b>. <figref idref="DRAWINGS">FIG. 2</figref> also illustrates certain steps of the registration and encryption process, according to the invention. The container creation application <b>110</b> evaluates the content file(s) <b>115</b> as selected or composed by a container creator and determines an appropriate number of data blocks for partitioning the content files and to be used to encrypt these files. The number of data blocks to be encrypted may be related to the type of device being targeted (e.g., a cable box, personal computer, or other type of device), number of files being encrypted, or overall amount of data being encrypted, or as requested by a container creator, for example. The data block concept typically increases speed and efficiency of the decryption process. Also, the data block concept provides an ability to encrypt only parts of the electronic content instead of the entirety and also permits portions of the content to be optionally accessed by a user prior to any decryption. For example, if a large media file, such as a feature length motion picture is being decrypted, the user may be able to use a media player to jump to any point in the film and begin to view it without waiting for the entire file to be decrypted. Another example may be when advertisement segments, such as previews, are presented to a user prior to decryption. It should be clear by these examples that essentially any portion of the electronic material may be selected by the container creator and marked as “unencrypted,” as appropriate.
0042Once the content file or files <b>115</b> are divided into data blocks, a symmetric encryption algorithm <b>112</b> may be used to encrypt each individual data block resulting in one or more encrypted data blocks 1-N, <b>230</b>a-<b>230</b>c. The encryption process and insertion into the SDC <b>120</b> for each encrypted data block <b>230</b>a-<b>230</b>c is represented by reference numerals <b>245</b>a-<b>245</b>c, respectively. Commercially available symmetric encryption algorithms such as, for example, Blowfish™, Twofish™, Rijndael™, Serpent™ or Triple DES™ may be used. The container creation application <b>110</b> may be designed in a modular fashion, so that the encryption algorithm modules can be upgraded as new encryption technology becomes available.
0043As part of the symmetric encryption process, the symmetric key used to encrypt the data blocks <b>230</b>a-<b>230</b>c, and which subsequently is to be used to decrypt these data blocks, is then inserted or “hidden” in the header of the first data block <b>230</b>a, as denoted by reference numeral <b>240</b>. In embodiments, this convention might include using another data block other than the first data block. After the data block(s) encryption is completed, an asymmetric encryption algorithm <b>205</b> is used to encrypt the header <b>231</b> of the first data block and render the hidden symmetric key inaccessible and secure during transmission, delivery or use. This process is denoted by reference numeral <b>235</b>. Any secure asymmetric encryption algorithm, such as ElGamal, may be used for this function.
0044The asymmetric encryption algorithm <b>205</b> generates two decryption keys, called the primary and secondary keys <b>250</b> and <b>252</b>, respectively, and are stored in a record <b>225</b> in the container registration database <b>165</b> on the container verification server <b>160</b>. The primary <b>250</b> and secondary key <b>252</b> are associated with the corresponding unique SDC <b>120</b> via digital container ID <b>210</b> (also referred to as unique container ID) (e.g., 12345). Reference numeral <b>220</b> denotes the logical association of the digital container ID <b>210</b>, the primary key <b>250</b> and the secondary key <b>252</b> for each unique record in the container registration database <b>165</b>.
0045There may be a plurality of entries in the container registration database for many different digital containers and associated keys, as one of ordinary skill in the art would recognize. This illustration shows but one example. These keys may be produced based on data, in whole or in part, from the particular container ID <b>210</b>. In this way, these decryption keys are made unique to that particular container. The digital container ID may be of various lengths such as, for example, 32-64 bytes, but any appropriate length may be used depending on anticipated total numbers of digital containers that may be created overall. The digital container ID may also be organized by series such that different producers of digital containers may acquire or purchase unique series (or a range) of digital container IDs, thus avoiding potential conflicts in digital container IDs.
0046In embodiments, the data block concept might be modified to insert different symmetric keys into the encrypted headers of multiple data blocks. For example, the data blocks may be divided into uniquely encrypted sets. Each set would be encrypted with a symmetric key unique to that set. A number of data blocks equal to the number of uniquely encrypted data block sets may then be used to store these unique symmetric keys in their header. These headers may, in turn, be encrypted with a similar number of asymmetric encryption keys sets. These keys sets may all be stored in the container registration database record for the container in question. As a result, a similar number of fingerprint keys may be created for the token assembly and eventual decryption process. Hence, this technique may be used to effectively eliminate reverse engineering and/or “hacking.” This technique may also be used to allow various content files to be decrypted independently of the other content files in the container such that this scheme may be used to limit access to various independent content files within a container according to date, sequence, user or any combination of these factors.
0047<figref idref="DRAWINGS">FIG. 3</figref> is a functional block diagram of a user's device, according to the invention, generally denoted by reference numeral <b>125</b>. <figref idref="DRAWINGS">FIG. 3</figref> is also discussed in relation to <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. The user's device <b>125</b> may include a SDC <b>120</b>′ (which may have been received via a transmission, for example) having a digital container ID <b>210</b> and may also include a container code module <b>302</b> (i.e., executable code). The user device <b>125</b> also includes appropriate system hardware <b>310</b> such as a central processing unit (CPU), network interface, power, etc. for general operations.
0048Also included in the user's device <b>125</b> may be an operating system (OS) <b>315</b> suitable for the type of user device, a special security chipset <b>320</b> for securely storing keys, a smart card <b>305</b> and smart card reader <b>306</b> for alternatively providing user identification data, a memory <b>130</b> for storage of encrypted usage rules <b>325</b> and the CFMF <b>330</b>. The memory <b>130</b> may be logically segregated or unique to the user device <b>125</b> and may or may not be under control of the OS <b>315</b>, depending on the device type and OS type.
0049When the digital container <b>120</b>′ is received at a user's computer or device <b>125</b> and the user attempts to access the protected content of the SDC <b>120</b>′, executable instructions <b>302</b> resident in the SDC (or perhaps already present on the user's device) searches for the CFMF <b>330</b>. The CFMF <b>330</b> may already be present if the container had been previously approved to be opened on the device <b>125</b>. If the SDC <b>120</b>′ has not been approved previously, the CFMF <b>330</b> is not found and the container code module <b>302</b> begins an approval process. In embodiments, the user might also be prompted to input various biometric measurement parameters such as fingerprints and/or retina scans in place of or in addition to the manual data input via a biometric measurement device <b>140</b>. In this fashion, a variety of multi-factor authentication modes is possible for increasing the security of the authentication process
0050The executable instructions of the container code module <b>302</b> may also read data from the user's device <b>125</b> to create a machine footprint <b>335</b>. The machine footprint <b>335</b> is derived from sources on the user's computer or device such as, but not limited to, the following:
0051Bios version
0052OS version
0053Network Interface Card (NIC) ID
0054System Name
0055System Manufacturer
0056System Model
0057Processor Name or ID number
0058User Name
0059Physical memory identification data
0060Disk drive model name or ID
0061Display name
0062In embodiments, unique user identification data may also be read from an “smart” card <b>305</b> that is inserted into the user's CD-ROM drive or other external memory reading device <b>306</b>. This card <b>305</b> has a read/write memory capacity and may be used to store user identification data and secure financial transaction data. The container code module <b>302</b> may be programmed to read data from this card <b>305</b> and include this information in the machine footprint <b>335</b>, if the card <b>305</b> is available. Data from this card <b>305</b> may be used to lock the contents of the SDC <b>120</b>′ to a particular user instead of a particular device. In this manner the user may securely pay for and access protected contents on any machine such as a device made available for multiple users or public use.
0063In another version of the invention, the container code module <b>302</b> may be programmed to read unique identification data from specialized security chipset <b>320</b> on the user's device <b>125</b>. This unique identification data may be written to a protected area of the chipset <b>320</b> which cannot be accessed or altered by the user. This kind of protected identification data may be included in the machine footprint <b>335</b> and may be used to maximize security. An example of this type of application may be the secure distribution of data to a predetermined set of recipients. Each of these recipients might be furnished with a device that utilizes a specialized chipset <b>320</b> containing protected identification data so that when the machine footprint <b>335</b>, computed during an authenticating phase, does not reflect the special identification data read from these protected chips, access to the contents is denied or restricted. User data may also be used to capture user data via a data input screen (e.g., GUI) <b>400</b> to create secure user input data <b>345</b>. An example of GUI <b>400</b> is described below in reference to <figref idref="DRAWINGS">FIG. 4</figref>.
0064Once the appropriate machine footprint data has been selected and read, the executable instructions of the container code module <b>302</b> creates the “client fingerprint” <b>340</b>. The client fingerprint <b>340</b> includes the machine footprint data <b>335</b> and the unique container ID <b>210</b>.
0065<figref idref="DRAWINGS">FIG. 4</figref> is an illustrative embodiment of a Graphical User Interface (GUI), according to the invention, generally denoted by reference numeral <b>400</b>. The approval process may include displaying the data input/e-commerce GUI <b>400</b> to the user. This GUI <b>400</b> may be tailored according to particular targeted users or applications and may include prompts for user input data <b>405</b> such as credit/debit card numbers, expiration dates, name, address, email address or other identifying information, as appropriate. The user may also be prompted to enter demographic data or financial transaction data, such as account numbers, that may be used to purchase the contents of the container and/or products/services represented by the contents of the SDC <b>120</b>′.
0066When the user has completed entering the form data <b>405</b> in the data input/e-commerce screen (e.g., GUI <b>400</b>) and presses the “Send” button <b>410</b> on the GUI <b>400</b>, the SDC <b>120</b>′ opens up a secure SSL link <b>350</b> to the container authentication server <b>160</b> and transmits the client fingerprint <b>340</b> and the secure user input data <b>345</b> (i.e., from user input data <b>405</b>) as part of the authorization request <b>190</b>. In embodiments, the user input data <b>405</b> is never stored on the user's device and is therefore securely protected throughout processing. In other SDC embodiments, user data input is not required and the process is initiated when the user attempt to open the container, bypassing prompting for user input. In this case, no user input data is sent to the container authentication server <b>160</b> with the client fingerprint <b>340</b>.
0067<figref idref="DRAWINGS">FIG. 5</figref> is a functional block diagram of an embodiment of a container authentication and permission token generation process, according to the invention, generally denoted by reference numeral <b>500</b>. <figref idref="DRAWINGS">FIG. 5</figref> also shows certain steps of the process, which may be considered in view of <figref idref="DRAWINGS">FIGS. 1-4</figref>. When the container verification server receives the authorization request, any secure user input data <b>345</b> (e.g., financial transaction data) that may be included is sent to a transaction processing module <b>555</b>. This transaction processing module <b>555</b> assembles a financial transaction request, if appropriate, and securely transmits it to the transaction server for transaction processing, as represented by reference numeral <b>192</b>.
0068The container authentication server also reads the client fingerprint data <b>340</b> as received from the SDC executable code and sends it to a CFMF algorithm module <b>550</b>. This CFMF algorithm module randomly selects a portion of the machine footprint data creating a machine footprint subset <b>335</b>′, and separately creates a CFMF <b>330</b>. The CFMF <b>330</b> value may be made unique by using the container ID read from the client fingerprint <b>340</b> via a randomizing function.
0069The CFMF <b>330</b> is then processed by a fingerprint key algorithm module <b>560</b>. This module <b>560</b> first concatenates the CFMF <b>330</b> value, the machine footprint subset <b>335</b>′ data and the container ID <b>210</b> into a single value. This value may be processed by a cryptographic one-way hashing function to create a fingerprint key <b>565</b>. Examples of suitable hashing functions include Secure Hash Algorithm (SHA-1) and Message-Digest algorithm (MD5), as generally known by a skilled artisan.
0070The primary and secondary decryption keys, respectively, for the encrypted first data block <b>230</b>a of the SDC <b>120</b> are then retrieved from the container registration database that were previously stored during the container registration process. An atomic proxy encryption algorithm <b>570</b>, a generally known technique, combines these keys (e.g., <b>250</b>, <b>252</b>) with the fingerprint key <b>565</b> to produce an atomic proxy re-key value <b>580</b>. An atomic proxy algorithm is typically an encryption function that can re-encrypt data on any insecure machine in a secure manner. Thus, the encrypted data (e.g., data blocks <b>230</b>a-<b>230</b>c) may be re-encrypted while data remains secure at all times. The data is never left unprotected or exposed.
0071Further, the usage rights parameters for the container may be read from the container registration database <b>165</b>. These parameters describe usage rules such as the number of times the user may access the contents, a period of time in which the user may access the contents, as applied to portions or the entire contents. The usage parameters may also include any subscription data that might allow the user to access other containers involved in a subscription grouping. This may be accomplished by grouping ranges of containers in to a series.
0072These usage rights parameters may be encrypted by a symmetric encryption algorithm <b>575</b>. The previously created fingerprint key <b>565</b> may be used as the encryption key for this process. The resulting encrypted usage rules <b>585</b> data may then be provided to the token assembler <b>590</b>. The previously created atomic proxy re-key value <b>580</b> may also be sent to the token assembler <b>590</b> along with a permission flag data string <b>594</b> (also known as an installation flag) and any encrypted financial transaction response <b>194</b> data <b>596</b>, previously created by the transaction server <b>180</b>.
0073The permission flag data string <b>594</b> determines whether the container code module (i.e., executable code) grants or denies access to the protected container (e.g., SDC <b>120</b>′) contents. Other functions might include determining what approval, denial or error message may be presented to the user. The financial transaction response data provides data that might be displayed in transaction approval or denial message when presented to the user. This financial transaction response data may include credit/debit card acceptance or rejection codes as well as purchase confirmation data.
0074The token assembler <b>590</b> also constructs a permission token <b>600</b>. The permission token is typically a string of bytes that may include, but is not limited to: <ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0000"><ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0075">i) header bytes that identify the start of the permission token data string and perform a handshake function.</li><li id="ul0004-0002" num="0076">ii) the installation permission flag.</li><li id="ul0004-0003" num="0077">iii) the atomic proxy re-key value.</li><li id="ul0004-0004" num="0078">iv) the Client Fingerprint Mode Flag.</li><li id="ul0004-0005" num="0079">v) the encrypted usage rights data.</li><li id="ul0004-0006" num="0080">vi) the encrypted financial transaction response data.</li><li id="ul0004-0007" num="0081">vii) trailer bytes that identify the end of the permission token data string.</li></ul></li></ul>
0082<figref idref="DRAWINGS">FIG. 6</figref> is an illustration of an embodiment of a permission token, according to the invention, generally denoted by reference numeral <b>600</b>. The exemplary permission token <b>600</b> includes fields for a header <b>605</b> to indicate the beginning of the token, an installation permission flag <b>610</b>, an atomic proxy re-key value <b>615</b>, a client fingerprint mode flag <b>620</b>, digital rights management usage rules data <b>625</b>, a financial transaction response data <b>630</b>, and a trailer <b>635</b> to indicate the end of the token. These fields of the permission token <b>600</b> are built by the token assembler <b>590</b>, previously described, for transmission in a message to the SDC on the user's device. The use of these fields at the user's device is described in relation to <figref idref="DRAWINGS">FIG. 7</figref>.
0083<figref idref="DRAWINGS">FIG. 7</figref> is a functional block diagram of an embodiment of a decryption process, according to the invention. <figref idref="DRAWINGS">FIG. 7</figref> also shows certain steps of the decryption process. The permission token <b>600</b> is returned to the user's device via a permission token message (e.g., message <b>196</b> of <figref idref="DRAWINGS">FIG. 1</figref>) and read by the container executable instructions. The encrypted usage rules data <b>625</b> and the CFMF <b>620</b> are then stored in a confidential or “hidden” location <b>130</b> located on or associated with the user's device <b>125</b> as encrypted usage rules data <b>585</b> and CFMF <b>330</b>, respectively.
0084The executable instructions of the container code module may read the atomic proxy re-key value <b>615</b> from the token <b>600</b>. An atomic proxy algorithm <b>705</b> uses this re-key value <b>615</b>, along with the unique container ID <b>210</b> read from the container, to securely re-encrypt the encrypted header of data block 1, as denoted by reference numeral <b>715</b>. This one-time operation locks the encrypted content data to the user and/or the user's device <b>125</b> and takes place without ever exposing the content data in unencrypted form.
0085The executable instructions employ a machine footprint module <b>720</b> that uses the CFMF <b>330</b> value to determine what subset <b>722</b> of the original machine footprint sources <b>725</b> is used to create the machine footprint subset <b>720</b> that matches the similar subset created on the container authentication server <b>160</b> during the token assembly process. Once the machine footprint subset <b>722</b> is determined, it is used by the machine footprint module <b>720</b> to create the fingerprint key <b>730</b>.
0086The fingerprint key <b>730</b> is used by an asymmetric decryption algorithm <b>735</b> to decrypt the re-encrypted header of the first content data block <b>231</b>. Once the header decryption process is completed, the fingerprint key <b>730</b> may be discarded and therefore no decryption key is stored on the user's machine and available for hacking or reverse engineering. Throughout this process, the container and its content(s) are securely locked to the user's machine <b>125</b>. Since the fingerprint key <b>730</b> is not stored on the user's device <b>125</b>, it is re-created every time the user attempts to open the container.
0087When the header <b>231</b> is decrypted, the symmetric key hidden in the header is extracted as denoted by reference numeral <b>740</b> and used by a symmetric decryption algorithm <b>750</b> to decrypt the encrypted content data blocks <b>230</b>a-<b>230</b>c. Once these data blocks are decrypted, the user may access, view, or otherwise use the content based on usage rights. The symmetric decryption algorithm <b>750</b> may be resident with the executable instruction set (i.e., container code module <b>302</b>) that resides in the SDC <b>120</b>′ or may already be present on the user's device. This algorithm may be upgraded as new technology becomes available.
0088Moreover, when the user attempts to access the encrypted data in the SDC <b>120</b>′ at a later time, the executable instructions of the container code module <b>302</b> can locate the CFMF that was written to a hidden or confidential location during the first decryption effort. If this flag is found, the process used to create the fingerprint key <b>730</b> is repeated and this key is used to decrypt the usage rules data <b>130</b> to determine if the usage rules allow further access to the protected contents.
0089In this way, the user may access the content without having to repeat the over container authorization process. If the CFMF <b>330</b> is not found or if the usage rules contained in the usage rights data <b>130</b> prohibit access to the protected contents, then the executable instructions will prompt the user to repeat the authorization procedure.
0090Depending on what elements of the user's device or user input that were used to create the original machine footprint <b>335</b>, the user may be prompted to recreate certain conditions that were in effect when the original machine foot print was created. For example, the user may be prompted to re-enter certain security codes or biometric measurements. If the Smart Card scenario was being used, the user may be prompted to re-insert this card in order to successfully reopen the container.
0091The machine footprint module <b>720</b> that re-creates the machine footprint subset <b>722</b> may be programmed with a variable tolerance which permits some degree of flexibility if changes in the machine footprint of the user's device occur. For example, if the machine footprint subset was created by reading eight pieces of data from the user's device, the machine footprint module <b>720</b> may be programmed to ignore changes in three of the pieces of data and still recreate the fingerprint key <b>730</b> used to decrypt the container contents.
0092As a result of the re-encryption technique, if the digital container is ever transmitted to a different computer or device, the executable instructions will fail to locate the CFMF when the new user attempts to access the content. If this condition is detected, the authorization process re-initiates so that the container might be associated with another user.
0093<figref idref="DRAWINGS">FIGS. 8A and 8B</figref> are flow diagrams of an embodiment showing steps of using the invention, starting at step <b>800</b>. <figref idref="DRAWINGS">FIGS. 8A, 8B and 9</figref> may equally represent a high-level block diagram of components of the invention implementing the steps thereof. The steps of <figref idref="DRAWINGS">FIGS. 8A, 8B and 9</figref> (and other block diagrams) may be implemented on computer program code in combination with the appropriate hardware. This computer program code may be stored on storage media such as a diskette, hard disk, CD-ROM, DVD-ROM or tape, as well as a memory storage device or collection of memory storage devices such as read-only memory (ROM) or random access memory (RAM). Additionally, the computer program code can be transferred to a workstation over the Internet or some other type of network. The steps of the flow diagrams may be implemented on the system of <figref idref="DRAWINGS">FIG. 1</figref>.
0094Continuing with <figref idref="DRAWINGS">FIGS. 8A and 8B</figref>, at step <b>805</b> a digital container creator or originator selects one or more files to be placed in a digital container and chooses which files are to be encrypted. At step <b>810</b>, content data is analyzed for data block sizing and those chosen files are encrypted by corresponding data blocks. At step <b>815</b>, symmetric encryption algorithm encrypts data blocks. The symmetric decryption key may be stored or “hidden” in the header of the first data block (alternatively, in embodiments other blocks may be used).
0095At step <b>820</b>, an asymmetric encryption algorithm may be used to encrypt the header of the first data block. At step <b>825</b>, the primary and secondary asymmetric keys for the first data block may be stored in a container verification server. At step <b>830</b>, the newly constructed digital container is transmitted or otherwise made available to a user's device. At step <b>835</b>, a user attempts to open the container and/or access the encrypted files. At step <b>840</b>, the container attempts to locate and read a CFMF on the user's device. At step <b>845</b>, a check is made if the CFMF has been located. If so, then processing continues at step <b>872</b>. Otherwise, if not, then at step <b>850</b>, a machine footprint may be created by reading data from various sources associated with the user and/or the user's device.
0096At step <b>852</b>, the machine footprint data is combined (e.g., by hashing) with the digital container ID to form a client footprint. At step <b>854</b>, a check is made whether user input is required as determined by the digital container executable instructions. If not, then processing continues at step <b>856</b>. However, if yes, then at step <b>855</b>, the user may be prompted for financial transaction data, a password, an account number, or other unique access permission information. At step <b>856</b>, the client footprint and user input data, if any, may be securely transmitted to a container verification server.
0097At step <b>858</b>, the container verification server reads the client footprint and creates an atomic proxy re-key value, encrypted usage rights data, permission flag and CFMF. At step <b>860</b>, a check is made whether a financial transaction is involved with container access. If not, processing continues at step <b>864</b>. If yes, then at step <b>862</b>, the container verification server transmits financial data to a transaction server for authenticating or processing financial data and a transaction response is generated by the transaction server to the container verification server. At step <b>864</b>, a permission token may be assembled with the permission flag, atomic proxy re-key value, CFMF, encrypted usage rule (or rights) data and any available transaction response data. At step <b>866</b>, the container verification server securely returns the permission token to the digital container on the user's device.
0098At step <b>868</b>, the digital container reads the permission token and stores encrypted usage rule (i.e., rights) data and CFMF in a confidential location on the user's device or associated storage. At step <b>870</b>, an atomic proxy algorithm uses the atomic proxy re-key value to securely re-encrypt the first data block header which locks the digital content to the user or user's device. At step <b>872</b>, the digital container executable instructions uses the CFMF to read appropriate machine footprint data and construct a fingerprint key. At step <b>874</b>, the symmetric decryption algorithm uses the fingerprint key to decrypt usage rules data.
0099At step <b>876</b>, a check is made whether the usage rules allow access to the digital contents or portions of the digital content. If access is not permitted, processing continues at step <b>850</b>, where it may be assumed that the digital container is now present on another or different device from the original device from which the client footprint was initially created and for which a re-keying (i.e., re-encrypting) under proper validations and approval (perhaps including a financial transaction) may occur for establishing the new device or user. Alternatively, processing may also terminate.
0100However, if access is permitted at step <b>876</b>, then at step <b>878</b>, an asymmetric decryption algorithm uses the fingerprint key to decrypt the first data block header and extract the “hidden” symmetric key. At step <b>880</b>, a symmetric decryption algorithm uses the symmetric key to decrypt all the encrypted data blocks. At step <b>882</b>, the contents of the container may be accessed by a user according to usage rules such as one-time access, execute only, print prohibited, copy prohibited, print prohibited, time-limited access, access count, or the like. At step <b>884</b>, the user may close the container to end the session and all decrypted contents are deleted by the container executable instructions. The process may resume at step <b>835</b>, if the user attempts to access or open the digital container.
0101<figref idref="DRAWINGS">FIG. 9</figref> is a flow diagram of an embodiment showing steps of using the invention, starting at step <b>900</b>. At step <b>905</b>, a new container may be created and the contents (e.g., files) partitioned (e.g., organized into data blocks). Each data block (or each data block of a subset of the total number of data blocks) may be encrypted using a symmetric encryption algorithm. At step <b>910</b>, a content decryption key may be hidden in the header of the first data block.
0102At step <b>915</b>, an asymmetric encryption algorithm may be used to encrypt the first data block header. The asymmetric keys (e.g., primary and secondary keys) may be stored in a container registration database for later recall. Typically the database would be an independently maintained facility and securely protected. At step <b>920</b>, the digital container is sent, delivered, or otherwise made available to a user's device such as a phone, personal digital assistant (PDA), PC, cable box, or other computer controller device. At step <b>925</b>, a user may attempt to open and/or access the digital container and its contents.
0103At step <b>930</b>, machine footprint data and, optionally, user input data (such as, for example, financial data, account data, credit data, a social security number, or other identifying data) may be sent to a container authentication server along with the digital container ID, typically accomplished using a secure network connection. At step <b>935</b>, the container authentication server combines data from the user, user's device and digital container ID, as available, to produce a fingerprint key.
0104At step <b>940</b>, the container authentication server uses an atomic proxy algorithm to combine the fingerprint key with the encryption keys previously stored in the container registration database for the digital container ID to create an atomic proxy re-key value. At step <b>945</b>, the fingerprint key and atomic proxy re-key value may be inserted into a permission token and sent as a message to the digital container. At step <b>950</b>, the atomic proxy algorithm uses the re-key value from the toke to re-encrypt the first data block header. The content of the container is now locked to the user's device and/or user.
0105At step <b>955</b>, executable instructions associated with the digital container combines the data from the original machine footprint sources and data from the permission token to re-create the fingerprint key. At step <b>960</b>, an asymmetric decryption function uses the fingerprint key to decrypt the first data block header of the digital container. Once this occurs, the fingerprint key is discarded or purged to prevent unauthorized acquisition of the fingerprint key.
0106At step <b>965</b>, the symmetric decryption function may use the key retrieved from the decrypted header to decrypt any encrypted content data blocks. The digital container may also include non-encrypted data blocks as constructed originally by the container creator which would, of course, not required any decryption when accessed by a user. At step <b>970</b>, the user may access the contents of the container as regulated by the usage rules. The user may also be prevented from accessing certain or all parts of the content based on the usage rules, or if the fingerprints do not support decryption on the user's device. At step <b>980</b>, the process ends.
Environments and Examples of Using the Invention
0107This product brings unique capabilities to a number of digital goods distribution, e-commerce and rights management markets. These markets include, but are not limited to: <ul id="ul0005" list-style="none"><li id="ul0005-0001" num="0000"><ul id="ul0006" list-style="none"><li id="ul0006-0001" num="0108">i) The secure distribution of digital entertainment goods to the general consumer market. Since the digital container and the related encryption function described by this invention are designed to operate in a variety of device and operating system environments, the product is well suited to this market. The container may be used distribute and sell such products as movies and videos, games, software, books (including audio books) periodical or the like. These items may be securely distributed to cable television set-top boxes, personal computers, tablet computers, handheld computing devices and mobile phones, just to name a few.</li><li id="ul0006-0002" num="0109">ii) The legal distribution of digital goods in a Peer-To-Peer (P2P) environment. The on-board e-commerce and access tracking features of the product make it especially useful in the P2P marketplace.</li><li id="ul0006-0003" num="0110">iii) The self publishing marketplace. The digital container product allows users to create and e-commerce-enable their own publishing and media distribution objects. Authors can publish and sell their own books, stories and articles at a fraction of the price of current publishing requirements. Musicians can create multimedia containers which promote and sell their music without having to deal with any expensive record labels.</li><li id="ul0006-0004" num="0111">iv) The personal records privacy and regulations compliance marketplace. Hospitals, private doctors and law firms can containerize and store the private records of patients and clients. These records may be retrieved and securely transmitted to authorized recipients such as government agencies or insurance firms as needed.</li><li id="ul0006-0005" num="0112">v) The secure distribution of documents and files for corporations and government agencies. The pre-registration of distribution lists on the Container Authentication Server combined with the multi-factor authentication features of this invention provide for an extremely effective method of secure document distribution. The containerization concept allows this secure distribution to take place outside of corporate LANs and across multiple devices and operating systems.</li><li id="ul0006-0006" num="0113">vi) Secure financial transactions using the Smart Card concept. The Smart Card is an intelligent card that may be inserted into a non-specialized reader device such as a CD-ROM drive. The card is designed to hold secure personal identification data along with financial account data. Customers may use ATMs to deposit money onto the card and it can be used to purchase items in brick and mortar establishments like any bank debit card. But it could also be inserted into a computing device to execute secure purchases of containerized digital goods. Identification data from the card may be used in the authentication process described by the invention to lock digital goods to a user and not just to a device. In this way, a customer may access secure containerized files on any device, such as work computers setup for multiple users or public use devices such as computers at public libraries. In this manner a Personal Media Virtual Library concept can be created. The Smart Card can be used to purchase containerized digital goods which are then stored in an individualized “virtual library.” This library would consist of storage space purchased from an internet vendor. The Smart Card would contain the secure URL of this individualized library which would allow the user to access previously purchased containers from any device in any location.</li></ul></li></ul>
0114While the invention has been described in terms of embodiments, those skilled in the art will recognize that the invention can be practiced with modifications and in the spirit and scope of the appended claims.
Contents5
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO0201330A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0201335A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| EP0717338A1 | Cites | European Patent Office (EPO) | Applicant |
| JP2001175606A | Cites | Japan | Applicant |
| JP2001197055A | Cites | Japan | Applicant |
| JP2001209309A | Cites | Japan | Applicant |
| JP2001332019A | Cites | Japan | Applicant |
| JP2001357008A | Cites | Japan | Applicant |
| JP2002111613A | Cites | Japan | Applicant |
| US2002161709A1 | Cites | United States of America | Applicant |
| US2002194485A1 | Cites | United States of America | Applicant |
| US2003046238A1 | Cites | United States of America | Applicant |
| US2003046274A1 | Cites | United States of America | Applicant |
| US2003079133A1 | Cites | United States of America | Applicant |
| US2003120928A1 | Cites | United States of America | Applicant |
| US2003163431A1 | Cites | United States of America | Applicant |
| US2003236906A1 | Cites | United States of America | Applicant |
| JP2004054930A | Cites | Japan | Applicant |
| US2004117500A1 | Cites | United States of America | Applicant |
| US2004125957A1 | Cites | United States of America | Applicant |
| US2004153451A1 | Cites | United States of America | Applicant |
| US2005004978A1 | Cites | United States of America | Applicant |
| US2005021477A1 | Cites | United States of America | Applicant |
| US2005021633A1 | Cites | United States of America | Applicant |
| US2005049002A1 | Cites | United States of America | Applicant |
| US2006129847A1 | Cites | United States of America | Applicant |
| US2006179489A1 | Cites | United States of America | Applicant |
| US2006195400A1 | Cites | United States of America | Applicant |
| US2009100268A1 | Cites | United States of America | Applicant |
| US2009259727A1 | Cites | United States of America | Applicant |
| CA2220457A1 | Cites | Canada | Applicant |
| US4471163A | Cites | United States of America | Applicant |
| US4528643A | Cites | United States of America | Applicant |
| US4558176A | Cites | United States of America | Applicant |
| US4658093A | Cites | United States of America | Applicant |
| US4683553A | Cites | United States of America | Applicant |
| US4796220A | Cites | United States of America | Applicant |
| US4999806A | Cites | United States of America | Applicant |
| US5023907A | Cites | United States of America | Applicant |
| US5033084A | Cites | United States of America | Applicant |
| US5057935A | Cites | United States of America | Applicant |
| US5191611A | Cites | United States of America | Applicant |
| US5319705A | Cites | United States of America | Applicant |
| US5337357A | Cites | United States of America | Applicant |
| US5457746A | Cites | United States of America | Applicant |
| US5490216A | Cites | United States of America | Applicant |
| US5509070A | Cites | United States of America | Applicant |
| US5615264A | Cites | United States of America | Applicant |
| US5629980A | Cites | United States of America | Applicant |
| US5671276A | Cites | United States of America | Applicant |
| US5671279A | Cites | United States of America | Applicant |
| US5673316A | Cites | United States of America | Applicant |
| US5677953A | Cites | United States of America | Applicant |
| US5703279A | Cites | United States of America | Applicant |
| US5703951A | Cites | United States of America | Applicant |
| US5708709A | Cites | United States of America | Applicant |
| US5708780A | Cites | United States of America | Applicant |
| US5715314A | Cites | United States of America | Applicant |
| US5724424A | Cites | United States of America | Applicant |
| US5734822A | Cites | United States of America | Applicant |
| US5757907A | Cites | United States of America | Applicant |
| US5765152A | Cites | United States of America | Applicant |
| US5778173A | Cites | United States of America | Applicant |
| US5778367A | Cites | United States of America | Applicant |
| US5784460A | Cites | United States of America | Applicant |
| US5790664A | Cites | United States of America | Applicant |
| US5790790A | Cites | United States of America | Applicant |
| US5794207A | Cites | United States of America | Applicant |
| US5796952A | Cites | United States of America | Applicant |
| US5809145A | Cites | United States of America | Applicant |
| US5845281A | Cites | United States of America | Applicant |
| US5889943A | Cites | United States of America | Applicant |
| US5892825A | Cites | United States of America | Applicant |
| US5892900A | Cites | United States of America | Applicant |
| US5898777A | Cites | United States of America | Applicant |
| US5905860A | Cites | United States of America | Applicant |
| US5940504A | Cites | United States of America | Applicant |
| US5949875A | Cites | United States of America | Applicant |
| US5956505A | Cites | United States of America | Applicant |
| US5958005A | Cites | United States of America | Applicant |
| US5958051A | Cites | United States of America | Applicant |
| US5963915A | Cites | United States of America | Applicant |
| US6014688A | Cites | United States of America | Applicant |
| US6021491A | Cites | United States of America | Applicant |
| US6035329A | Cites | United States of America | Applicant |
| US6055570A | Cites | United States of America | Applicant |
| US6067526A | Cites | United States of America | Applicant |
| US6067531A | Cites | United States of America | Applicant |
| US6073124A | Cites | United States of America | Applicant |
| US6073256A | Cites | United States of America | Applicant |
| US6075862A | Cites | United States of America | Applicant |
| US6098056A | Cites | United States of America | Applicant |
| US6108637A | Cites | United States of America | Applicant |
| US6134592A | Cites | United States of America | Applicant |
| US6135646A | Cites | United States of America | Applicant |
| US6138149A | Cites | United States of America | Applicant |
| US6144942A | Cites | United States of America | Applicant |
| US6178442B1 | Cites | United States of America | Applicant |
| US6192396B1 | Cites | United States of America | Applicant |
| US6205485B1 | Cites | United States of America | Applicant |
12 members in 2 offices
Priority claims30
| Document | Office | Kind | Date |
|---|---|---|---|
| 51209103 | United States of America | P | |
| 51209103 | United States of America | P | |
| 2004034494 | United States of America | W | |
| 2004034494 | United States of America | W | |
| 57630306 | United States of America | A | |
| 57630306 | United States of America | A | |
| 18144208 | United States of America | A | |
| 18144208 | United States of America | A | |
| 201113157993 | United States of America | A | |
| 201113157993 | United States of America | A | |
| 201313762113 | United States of America | A | |
| 201313762113 | United States of America | A | |
| 201414553209 | United States of America | A | |
| 201414553209 | United States of America | A | |
| 201715815505 | United States of America | A | |
| 10576303 | – | – | – |
| 12181442 | – | – | – |
| 13157993 | – | – | – |
| 13762113 | – | – | – |
| 14553209 | – | – | – |
| 60512091 | – | – | – |
| PCTUS2004034494 | – | – | – |
| US20030512091P | – | – | – |
| US20060576303 | – | – | – |
| US20080181442 | – | – | – |
| US201113157993 | – | – | – |
| US201313762113 | – | – | – |
| US201414553209 | – | – | – |
| US201715815505 | – | – | – |
| WO2004US34494 | – | – | – |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| WO2005043802A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US2007033397A1 | United States of America | A1 | |
| US7421741B2 | United States of America | B2 | |
| US2008310623A1 | United States of America | A1 | |
| US7979697B2 | United States of America | B2 | |
| US2011246774A1 | United States of America | A1 | |
| US8402558B2 | United States of America | B2 | |
| US2013159701A1 | United States of America | A1 | |
| US8930697B2 | United States of America | B2 | |
| US2015082028A1 | United States of America | A1 | |
| US9191376B2 | United States of America | B2 | |
| USRE47313EThis record | United States of America | E |
45 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Terminal Disclaimer FiledDIST | DIST | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Paralegal TD Not acceptedP575 | P575 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Notice of Reissue Published in Official GazetteNRE. | NRE. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Application Dispatched from OIPEOIPE | OIPE | |
| FITF set to NO - revise initial settingFTFI | FTFI | |
| Cleared by OIPE CSRL194 | L194 | |
| Cleared by OIPE CSRL194 | L194 | |
| Cleared by OIPE CSRL194 | L194 | |
| Terminal Disclaimer FiledDIST | DIST | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee payment procedureENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP |
Numbers
- Publication
- RE047313
- Publication, DOCDB
- RE47313
- Publication, EPODOC
- USRE47313E
- Application
- 15815505
- Application, DOCDB
- 201715815505
- Application, EPODOC
- US201715815505
Titles
- English
- Securing digital content system and method
Classification
- CPC, 13
- H04L63/045
- H04L63/0442
- G06F21/602
- H04L63/0807
- G06F21/6245
- H04L2463/101
- H04L9/0825
- H04L9/0866
- H04L9/3213
- H04L9/3271
- H04L2209/56
- H04L63/061
- H04L2209/603
- IPC, 6
- H04L29 06
- G06F21 60
- H04L9 08
- H04L9 32
- G06F21 62
- H04L9 30