|
Claims  |
|
|
What is claimed is:
1. A method for securely distributing a plurality of software files from a
software distribution processor to a user processor, and selectively
enabling the user processor to use a subset of a lesser plurality of said
plurality of software files, comprising the steps of:
storing in said software distribution processor a plurality of software
files including an ith software file;
storing in said software distribution processor a plurality of file
encryption keys including an ith file encryption key;
encrypting in said software distribution processor said plurality of said
software files, using corresponding ones of said plurality of file
encryption keys, including encrypting said ith file using said ith file
encryption key, producing a plurality of encrypted files which includes an
ith encrypted file which is said ith file encrypted under said ith file
encryption key;
transmitting from said software distribution processor to a user processor
at least a portion of said plurality of encrypted files;
storing in said software distribution processor, a first customer key which
includes a clear customer number and a second portion;
transforming in said software distribution center, said first customer key
with a transformation function producing a second customer key;
encrypting said ith file encryption key with said second customer key,
producing an encrypted ith file encryption key;
transmitting from said software distribution processor to a user processor,
said first customer key;
transmitting from said software distribution processor to said user
processor, said encrypted ith file encryption key;
transforming at said user processor said first customer key using said
transformed function, producing said second customer key;
decrypting said ith file encryption key received at said user processor
using said second customer key, recovering said ith file encryption key;
decrypting said ith encrypted file received at said user processor, using
said recovered ith file encryption key, producing said ith software file;
whereby the user processor is enabled to use said ith software file.
2. The method of claim 1 which further comprises said first customer key
including a customer number and an authentication code.
3. The method of claim 2 wherein said second portion of said first customer
key includes an encrypted expression of said customer number.
4. The method of claim 1 wherein said second portion of said first customer
key includes an encrypted expression of said customer number.
5. The method of claim 1 wherein said second portion of said first customer
key includes an encrypted expression of said customer number, encrypted
under a key encrypting key and a counter value.
6. The method of claim 5 wherein said encrypted expression is a 64-bit DES
key, and every eighth parity bit has substituted for it a corresponding
authorization bit derived from said customer number.
7. The method of claim 1 wherein said plurality of encrypted files are
stored on a CD ROM storage device which is transported from said software
distribution processor to said user processor.
8. The method of claim 1 wherein said plurality of encrypted files are
stored in a bulk storage at said software distribution processor and are
distributed to said user processor over a data communications network.
9. Said method of claim 1 wherein said second portion of said first
customer key is an encrypted expression derived from said customer number
and a counter value encrypted under a key encrypting key;
said counter value representing a sublicensed customer number.
10. The method of claim 1 wherein a request is transmitted from said user
processor to said software distribution processor for said ith file, and
in response thereto said ith file encryption key is encrypted and
transmitted from said software distribution processor to said user
processor.
11. A system for securely distributing a plurality of software files from a
software distribution processor to a user processor, and selectively
enabling the user processor to use a subset of a lesser plurality of said
plurality of software files, comprising:
means for storing in said software distribution processor a plurality of
software files including an ith software file;
means for storing in said software distribution processor a plurality of
file encryption keys including an ith file encryption key;
means for encrypting in said software distribution processor said plurality
of said software files, using corresponding ones of said plurality of file
encryption keys, including encrypting said ith file using said ith file
encryption key, producing a plurality of encrypted files which includes an
ith encrypted file which is said ith file encrypted under said ith file
encryption key;
means for transmitting from said software distribution processor to a user
processor at least a portion of said plurality of encrypted files;
means for storing in said software distribution processor, a first customer
key which includes a clear customer number and a second portion;
means for transforming in said software distribution center, said first
customer key with a transformation function producing a second customer
key;
means for encrypting said ith file encryption key with said second customer
key, producing an encrypted ith file encryption key;
means for transmitting from said software distribution processor to a user
processor, said first customer key;
means for transmitting from said software distribution processor to said
user processor, said encrypted ith file encryption key;
means for transforming at said user processor said first customer key using
said transformed function, producing said second customer key;
means for decrypting said ith file encryption key received at said user
processor using said second customer key, recovering said ith file
encryption key;
means for decrypting said ith encrypted file received at said user
processor, using said recovered ith file encryption key, producing said
ith software file;
whereby the user processor is enabled to use said ith software file.
12. The system of claim 11 which further comprises said first customer key
including a customer number and an authentication code.
13. The system of claim 12 wherein said second portion of said first
customer key includes an encrypted expression of said customer number.
14. The system of claim 11 wherein said second portion of said first
customer key includes an encrypted expression of said customer number.
15. The system of claim 11 wherein said second portion of said first
customer key includes an encrypted expression of said customer number,
encrypted under a key encrypting key and a counter value.
16. The system of claim 15 wherein said encrypted expression is a 64-bit
DES key, and every eighth parity bit has substituted for it a
corresponding authorization bit derived from said customer number.
17. The system of claim 11 wherein said plurality of encrypted files are
stored on a CD ROM storage device which is transported from said software
distribution processor to said user processor.
18. The system of claim 11 wherein said plurality of encrypted files are
stored in a bulk storage at said software distribution processor and are
distributed to said user processor over a data communications network.
19. Said system of claim 11 wherein said second portion of said first
customer key is an encrypted expression derived from said customer number
and a counter value encrypted under a key encrypting key;
said counter value representing a sublicensed customer number.
20. The system of claim 11 wherein a request is transmitted from said user
processor to said software distribution processor for said ith file, and
in response thereto said ith file encryption key is encrypted and
transmitted from said software distribution processor to said user
processor.
21. A method for securely distributing a plurality of multimedia files from
a multimedia distribution processor to a user processor, and selectively
enabling the user processor to use a subset of a lesser plurality of said
plurality of multimedia files, comprising the steps of:
storing in said multimedia distribution processor a plurality of multimedia
files including an ith multimedia file;
storing in said multimedia distribution processor a plurality of file
encryption keys including an ith file encryption key;
encrypting in said multimedia distribution processor said plurality of said
multimedia files, using corresponding ones of said plurality of file
encryption keys, including encrypting said ith file using said ith file
encryption key, producing a plurality of encrypted files which includes an
ith encrypted file which is said ith file encrypted under said ith file
encryption key;
transmitting from said multimedia distribution processor to a user
processor at least a portion of said plurality of encrypted files;
storing in said multimedia distribution processor, a first customer key
which includes a clear customer number and a second portion;
transforming in said multimedia distribution center, said first customer
key with a transformation function producing a second customer key;
encrypting said ith file encryption key with said second customer key,
producing an encrypted ith file encryption key;
transmitting from said multimedia distribution processor to a user
processor, said first customer key;
transmitting from said multimedia distribution processor to said user
processor, said encrypted ith file encryption key;
transforming at said user processor said first customer key using said
transformed function, producing said second customer key;
decrypting said ith file encryption key received at said user processor
using said second customer key, recovering said ith file encryption key;
decrypting said ith encrypted file received at said user processor, using
said recovered ith file encryption key, producing said ith multimedia
file;
whereby the user processor is enabled to use said ith multimedia file. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
DESCRIPTION
1. Technical Field
The invention disclosed broadly relates to data processing systems and
methods and more particularly relates to cryptographic systems and methods
for use in data processing systems to enhance security.
2. Background Art
The following patents and patent applications are related to this invention
and are incorporated herein by reference:
W. F. Ehrsam, et al., "Cryptographic Communication and File Security Using
Terminals," U.S. Pat. No. 4,386,234, issued May 31, 1983, assigned to IBM
Corporation and incorporated herein by reference.
W. F. Ehrsam, et al., "Cryptographic File Security For Single Domain
Networks," U.S. Pat. No. 4,238,854, issued Dec. 9, 1980, assigned to IBM
Corporation and incorporated herein by reference.
W. F. Ehrsam, et al., "Cryptographic File Security For Multiple Domain
Networks," U.S. Pat. No. 4,203,166, issued May 13, 1980, assigned to IBM
Corporation and incorporated herein by reference.
R. M. Best, "Cryptographic Decoder for Computer Programs," U.S. Pat. No.
4,433,207, issued Feb. 21, 1984.
R. M. Best, "Crypto Microprocessor that Executes Enciphered Programs," U.S.
Pat. No. 4,465,901, issued Aug. 14, 1984.
Richard Johnstone., "Computer Software Security System," U.S. Pat. No.
4,120,030, issued Oct. 10, 1978.
S. M. Matyas, et al., "Code Protection Using Cryptography," U.S. Pat. No.
4,757,534, issued Jul. 12, 1988, assigned to IBM Corporation and
incorporated herein by reference.
B. Brachtl, et al., "Controlled Use of Cryptographic Keys Via Generating
Stations Established Control Values," U.S. Pat. No. 4,850,017, issued Jul.
18, 1989, assigned to IBM Corporation and incorporated herein by
reference.
S. M. Matyas, et al., "Secure Management of Keys Using Control Vectors,"
U.S. Pat. No. 4,941,176, issued Jul. 10, 1990, assigned to IBM Corporation
and incorporated herein by reference.
S. M. Matyas, et al., "Data Cryptography Operations Using Control Vectors,"
U.S. Pat. No. 4,918,728, issued Apr. 17, 1990, assigned to IBM Corporation
and incorporated herein by reference.
B. Brachtl, et al., "Data Authentication Using Modification Detection Codes
Based on a Public One Way Encryption Function," U.S. Pat. No. 4,908,861,
issued Mar. 13, 1990, assigned to IBM Corporation and incorporated herein
by reference.
A. S. Cutlip-Cohen, et al., "Data processing method to provide a
generalized link from a reference point in an on-line book to an arbitrary
multimedia object which can be dynamically updated", Ser. No. 07/755,709,
Sep. 6, 1991, assigned to IBM Corporation and incorporated herein by
reference.
A digital data processing system contains three basic elements: a processor
element, a memory element, and an input/output element. The memory element
contains addressable software programs and data. The processor element
fetches and processes information stored in the memory element. The
input/output element, under control of the processor element, communicates
with the memory element, storing and retrieving information from the
memory element. The input/output element itself can consist of several
different types of units capable of supporting multimedia applications,
including a video display, light pen, sound synthesizer, microphone,
keyboard, mouse, printer, and communication adapter enabling networking
communications to take place.
Generation and sales of multimedia programs and data represents a
significant business opportunity for companies who sell computing
equipment and for companies who sell multimedia programs and data alone. A
multimedia application can consist of a multimedia handler program that
supports the presentation of one or more multimedia objects, where each
multimedia object may be a separate multimedia data file. Many different
multimedia objects, or data files, can be linked into a single multimedia
presentation, including both text and non-text objects. Non-text objects
includes image objects, graphics objects, formatted data objects, font
objects, voice objects, video objects, and animation objects. The
multimedia handler program provides generalized links to arbitrary
multimedia objects, such that the multimedia objects or data files can be
updated dynamically. Such dynamic update capability simplifies the
creation of a new version or edition of the multimedia presentation. The
concept of a generalize link is described in IBM patent application Ser.
No. 07/755,709.
Delivery of multimedia programs and data files (termed "software") can be
done in several ways. The software can be bundled and sold with the
hardware. It can be sold as a separately-priced package, i.e., the
software is distributed on a physical medium such as a diskette or tape.
It can also be distributed to each customer or user processor from a
central software distribution processor via telephone lines, TV-cable,
satellite or radio broadcast. More recently, software vendors have
expressed an interest in distributing software by using a stamped medium
such as a Compact Disk Read Only Memory (CD-ROM) or an Optical Read Only
Memory (OROM). A CD-ROM can hold about 600 megabytes of data -- enough
storage to hold several hundred program or data files. Such a distribution
mechanism is particularly attractive, since production costs decrease
significantly with higher volumes. However, when software is distributed
over an open channel (e.g., telephone lines, TV-cable, satellite or radio
broadcast) or via a high-density stamped medium (e.g., CD-ROM or OROM),
much software is literally "put into the hands" of tens or hundreds of
thousands of others who did not request the software and who have no need
or wish to see the software, but who now have easy access to the software
and who may be tempted to violate licence and copyright restrictions. The
net expected result of such violations is a loss of revenues to software
authors, publishers, and vendors. Thus, the distribution of software over
an open channel or via a high-density stamped medium creates a problem
quite unique and different from the more traditional problem of
unauthorized copying and use of software. Although this is not the problem
addressed by the present invention, it is nevertheless described herein in
order to contrast the present invention with more traditional software
protection methods existing in the prior art.
The prior art describes various systems for enciphering digital information
to improve the security and privacy of data transmitted over
communications networks. Such data may be messages transmitted during a
communication session between two encryption processors or it may be data
contained in a data file transmitted from a sending processor to a
receiving processor. Such data files can contain executable programs as
well as pure data. Examples of file encryption systems can be found in
U.S. Pat. Nos. 4,386,234, 4,238,854, and 4,203,166 to Ehrsam et al. In all
cases, once an encrypted file is decrypted the programs or data contained
in the file must be protected using more traditional access control
methods. However, such access control methods do not prevent one user from
sharing decrypted programs and data with other users.
The problem of unauthorized copying and use of programs has been addressed
by the prior art. U.S. Pat. No. 4,120,030 to Johnstone discloses a
computer software security system wherein the data address portions of a
set of computer instructions are scrambled in accordance with a
predetermined cipher key before the instructions are loaded into an
instruction memory. The data involved in the program is loaded into a
separate data memory at the addresses specified in the original,
unscrambled program. An unscrambler circuit, which operates in accordance
with the cipher key, is coupled in series with the data memory address
input conductors.
U.S. Pat. No. 4,168,396 to Best discloses a microprocessor for executing
computer programs which have been enciphered during manufacture to deter
the execution of the programs in unauthorized computers. U.S. Pat. No.
4,278,837 to Best discloses a crypto-microprocessor chip that uses a
unique cipher key or tables for deciphering a program so that a program
that can be executed in one chip cannot be run in any other
microprocessor. U.S. Pat. No. 4,433,207 to Best discloses an integrated
circuit decoder for providing micro computer users with access to several
proprietary programs that have been distributed to users in cipher. The
decoder chip can decipher a program when an enciphered key called a
"permit code" is presented to the decoder chip.
U.S. Pat. No. 4,446,519 to Thomas discloses a method for providing security
for computer software by providing each purchaser of a software package
with an electronic security device which must be operatively connected to
the purchaser's computer. The software sends coded interrogation signals
to the electronic security device which processes the interrogation
signals and transmits coded response signals to the software. The programs
will not be executed unless the software recognizes the response signals
according to preselected security criteria.
U.S. Pat. No. 4,757,534 to Matyas, et al., discloses a cryptographic method
for discouraging the copying and sharing of purchased software programs
while allowing an encrypted program to be run on only a designated
computer or, alternatively, to be run on any computer but only by the user
possessing a designated smart card. Each program offering sold by the
software vendor is encrypted with a unique file key and then written on a
diskette. A user who purchases a diskette having written thereon an
encrypted program must first obtain a secret password from the software
vendor. This password will allow the encrypted program to be recovered at
a prescribed, designated computer having a properly implemented and
initialized encryption feature. The encryption feature decrypts the file
key of the program from the password, and when the encrypted program is
loaded at the proper computer, the program or a portion of it is
automatically decrypted and written into a protected memory from which it
can only be executed and not accessed for non-execution purposes.
As the reader will see from the cited prior art, the traditional problem of
unauthorized copying and use of programs has been to make it hard, or in
some cases difficult, to copy part or all of the program once it has been
decrypted within the secure cryptographic processor. This can be done by
executing the program on the decryption chip itself or by transferring the
decrypted program, or a designated portion of the decrypted program, from
the secure cryptographic processor to a protected memory it is executed.
Problems associated with software distribution over an open channel or
using high-density stamped media are overlooked or neglected.
OBJECTS OF THE INVENTION
It is therefore an object of the invention to provide an improved method of
multimedia software distribution over an open channel or using
high-density stamped media.
It is another object of the invention to provide a cryptographic method for
the protection of multimedia program and data files distributed over an
open channel or using high-density stamped media.
It is another object of the invention to provide a means for controlling
access to multimedia programs and data files distributed over an open
channel or using high-density stamped media so that an authorized user can
access (i.e., decrypt and recover) files he/she has purchased and licensed
but an unauthorized user cannot access (i.e., decrypt and recover) files
he/she has not purchased and licensed.
It is another object of the invention to provide a means for using
cryptographic keys -- consisting of customer and data keys -- to control
access to encrypted multimedia files.
It is another object of the invention to provide a means for associating
and tracing a customer key to a particular customer or user, thereby
discouraging users from sharing keys or posting them on a computer
bulletin board.
It is another object of the invention to provide a means for tracing
customer keys to customers by assigning a unique customer number to each
customer and by making the customer number a sub-portion of the clear
customer key.
It is another object of the invention to provide a means whereby encrypted
multimedia files cannot be decrypted except at a user processor with a
capability for multimedia file recovery, as specified by the invention.
That is, an encrypted file and the keys needed for decrypting the file are
not, by themselves, enough to decrypt the file.
It is another object of the invention to provide a multimedia file recovery
procedure that makes use of a copyright-protected function which is new
and unique to the file recovery procedure (i.e., the function does not
exist in any book or printed literature to which a user can easily be
directed), which is complex (i.e., one cannot easily provide a written
description of the function except by directly copying it), and which is
of modest size (i.e., if the function is copied, and possibly posted on a
computer bulletin board, it will be conspicuous because of its size).
It is another object of the invention to provide a means for cryptographic
keys to be self-authenticating based on authentication information stored
within the keys themselves. This will help to minimize cases of
incorrectly initialized keys and incorrectly decrypted files.
It is another object of the invention to provide a key management scheme
that supports software distribution from both a central software
distribution facility and from merchants who contract with the software
vendor and receive the necessary pre-calculated keys to be given to
customers who purchase multimedia software.
SUMMARY OF THE INVENTION
These and other objects, features, and advantages are accomplished by the
invention disclosed herein.
Unlike much of the prior art, the present invention does not solve, or
attempt to solve, the traditional problem of unauthorized copying and use
of programs. That is, the invention does not solve the problem of copying
software once it has been received and decrypted at a user processor. An
assumption is made that ordinary software licences and copyright
protection law are sufficient to deter such unauthorized copying and use
of programs once they have been received and decrypted.
Instead, the invention describes a cryptographic means for protecting
software distributed over an open channel or via a high-density stamped
medium. For software files purchased by a user, the method provides an
easy means to decrypt and recover the software files at a user processor.
The method is based on the use of encryption keys issued to the user by
the software distribution processor. These encryption keys, when
initialized in the user processor, enable file recovery to take place. The
method is also such that it is difficult for a user to circumvent security
and decrypt an encrypted file without possessing a customer-unique key
(called a customer key) and without possessing the correct encrypted file
key needed to "unlock" or decrypt the encrypted file.
Each multimedia file is encrypted with a secret data key (KD). The same
data key can encrypt multiple files if there is some logical association
of the files (e.g., files are grouped and sold as a unit).
The encrypted files are distributed over an open channel or via
high-density stamped media. Those skilled in the art will recognize that
the invention is not limited to only these two methods of software
distribution, but that the invention is aimed at solving a problem
particular to these two methods of software distribution.
Each customer who purchases multimedia software is given a unique customer
key. The customer key contains a customer-unique customer number, which is
assigned and provided to the customer using means outside the scope of the
present invention. The invention permits multiple customer numbers and
customer keys to be provided to a single customer. For example, a large
customer like General Motors may have many customer numbers, so that
software orders can be placed by many groups or areas within a single
large corporation or business.
When a customer purchases multimedia software from a software distribution
facility, the customer provides his/her customer number. The customer key
is produced from a set of variables consisting of an assigned customer
number, a counter (arbitrarily set to zero), and a secret key-generating
key (KGK) known only to the software distribution center. A special
copyright-protected function (f) is then used to derive a variant customer
key (KC') from the customer key. The data key(s) associated with the
multimedia file(s) purchased by the customer are then encrypted with the
variant customer key. The clear customer key and the encrypted file key(s)
are provided to the customer (e.g., transmitted electronically from the
software distribution processor to the user processor, written on a
diskette and mailed to the customer, or orally transmitted over a
telephone). At the user processor, the keys and encrypted file(s) are
initialized and made available to the file recovery program. The file
recovery program decrypts and recovers the file(s). When a customer
purchases additional software, he/she will receive one or more encrypted
data keys to permit the encrypted files to be recovered. As the clear
customer key will be the same as before, a clear customer key may or may
not be provided. The system will be able to recover the previously entered
customer key to avoid having the user being required to re-enter it.
Alternately, the user can enter it, as desired.
When software is purchased from an independent merchant, the customer will
receive a pre-generated customer key issued in advance to the merchant.
The pre-generated customer keys are supplied to the merchant by the
software distribution center (e.g., IBM software distribution center). For
example, a merchant who orders 200 OS/2 licenses would receive 200 CD-ROMs
and 200 shrink-wrapped license packets. Each license packet would have a
sheet of paper with a customer key printed on it. The customer keys given
to each merchant are produced from a set of variables consisting of an
assigned customer number given to the merchant, an incrementing counter
associated with the merchant, and a secret key-generating key. When the
keys are generated for a merchant, the counter is incremented for each
license issued and thus, the merchant would receive 200 different customer
keys. In this case, the software distribution center must only keep track
of the number of keys issued to each merchant. The merchant's customer
number, at the front of the customer key, would be the same for each
generated key.
BRIEF DESCRIPTION OF THE DRAWINGS
These and other objects, features, and advantages of the invention will be
more fully appreciated with reference to the accompanying figures.
FIG. 1 is a block diagram illustrating multimedia software distribution
from a software distribution processor to a user processor.
FIG. 2 is a block diagram illustrating multimedia software distribution
from a software distribution processor to a merchant processor and from
the merchant processor to a user processor.
FIG. 3 is a block diagram further amplifying and illustrating multimedia
software distribution from a software distribution processor belonging to
a software vendor to a user processor belonging to a user.
FIG. 4 is a block diagram illustration of cryptographic subsystem 100 at
software distribution processor 10.
FIG. 5 is a block diagram illustration of the method for encrypting a
key-generating key using a variant key produced from the master key KM and
a control vector associated with the key-generating key.
FIG. 6 contains a specification for the control vectors KGKLCV and KGKRCV
associated with the left and right 64-bit parts of key-generating key KGK.
FIG. 7 is a block diagram illustration of a KGK record.
FIG. 8 is a block diagram illustration of the method for encrypting a data
key using a variant key produced from the master key KM and a control
vector associated with the data key.
FIG. 9 is a block diagram illustration of a KD-record.
FIG. 10 is a block diagram illustration of the method for encrypting a data
key with a variant customer key KC'.
FIG. 11 is a block diagram illustration of cryptographic subsystem 200 at
user processor 20.
FIG. 12 is a block diagram illustration of the sequence of API-callable
services that must be performed to accomplish software distribution from
software distribution center 10 to user processor 20.
FIG. 13 is a block diagram illustration of the process for producing a
customer key with the Generate Customer Key (GCK) internal function 113
available in cryptographic subsystem 100 of software distribution
processor 10, as shown in FIG. 4.
FIG. 14 is a block diagram illustration of software distribution from a
software distribution processor 10 to a user processor 20.
FIG. 15 is an example list of software to be purchased from a software
vendor.
FIG. 16 is an illustration of a shrink wrapped package containing a stamped
medium and a piece of paper on which is printed a clear customer key KC
and an encrypted ith file key e*KC'(KDi), where KC' is the variant
customer key produced from KC.
DESCRIPTION OF THE BEST MODE FOR CARRYING OUT THE INVENTION
The invention describes a method for multimedia software distribution in
situations where a user purchases software directly from a software vendor
or where a user purchases software from an independent merchant who
purchases the software from a software vendor.
FIG. 1 is a block diagram illustrating multimedia software distribution
from a software distribution processor 10 belonging to a software vendor
such as IBM to a user processor 20 belonging to a user. The
purchased/licensed multimedia software is distributed as one or more
encrypted multimedia files and a set of cryptographic keys that permit the
encrypted multimedia files to be decrypted and recovered at the user
processor.
FIG. 2 is a block diagram illustrating multimedia software distribution
from a software distribution processor 10 belonging to a software vendor
to a third party merchant 15 and thence from the third party merchant 15
to a user processor 20 belonging to a user. In this case, the merchant
purchases software from the software vendor at a wholesale price for
subsequent re-sale to users at a retail price. The merchant is a customer
of the software vendor and the user is a customer of the merchant.
FIG. 3 is a block diagram further amplifying and illustrating multimedia
software distribution from a software distribution processor 10 belonging
to a software vendor (e.g., IBM) to a user processor 20 belonging to a
user. The multimedia programs and files distributed via this method shall
be referred to as files or multimedia files. Software distribution
processor 10 contains a cryptographic subsystem 100 for performing data
encryption and other key management services, a key generation means 150
for generating keys, an encrypted file generation means 160 for encrypting
files, an encrypted file distribution means 170 for packaging and
transmitting encrypted files, and a key distribution means 180 for
packaging and transmitting keys. Keys generation means 150 invokes
cryptographic subsystem 100 to execute key management services. File
encryption means 160 invokes cryptographic subsystem 100 to encrypt files.
User processor 20 contains a comparable cryptographic subsystem 200 for
performing data decryption and other key management services, a key
recovery means 250 for validating and decrypting keys, and a file recovery
means 260 for decrypting encrypted files. Key recovery means 250 invokes
cryptographic subsystem 200 to execute key management services. File
recovery means 260 invokes cryptographic subsystem 200 to decrypt files.
Encrypted files are distributed from software distribution processor 10 to
user processor 20 using an encrypted file distribution medium 30.
Cryptographic keys are distributed from software distribution processor 10
to user processor 20 using a key distribution medium 31.
Referring again to FIG. 3, a file is encrypted at software distribution
processor 10 by first requesting a data key from key generation means 150.
A data key is generated by invoking a cryptographic service provided by
cryptographic subsystem 100. In response, key generation means 150
generates a data key -- a copy of which is delivered to encrypted file
generation means 160 and a copy of which is saved within key generation
means 150 for subsequent use by key distribution means 180. The
so-generated data key is next used by encrypted file generation means 160
to encrypt the specified file, which is saved within encrypted file
generation means 160 for subsequent use by encrypted file distribution
means 170. Data is encrypted by invoking a cryptographic service provided
by cryptographic subsystem 100. If encrypted file distribution medium 30
is a high-density stamped medium such a CD-ROM, then encrypted file
distribution means 170 includes methods for the production and
distribution of CD-ROMs. For example, CD-ROM production would include the
steps of selecting a set of files, causing the files to be encrypted using
encrypted file generation means 160, and manufacturing CD-ROM copies for
distribution. CD-ROMs can be distributed using the U.S. postal service or
similar delivery service such as Federal Express, or they can be shipped
to selected distribution points where they are picked up by customers. If
encrypted file distribution medium 30 is an open channel, the encrypted
file distribution means 170 transmits the so-produced encrypted files via
the open channel (telephone lines, TV-cable, satellite or radio broadcast)
according to a pre-arranged schedule prepared by the software vendor. In
any case, encrypted file distribution means 170 ensures that encrypted
files are distributed to customers in an efficient and timely manner.
In response to a customer order for multimedia software (consisting of one
or more multimedia files) key generation means 150 produces a unique
customer key from information including a unique customer number supplied
by the customer. A customer key is generated by invoking a cryptographic
service provided by cryptographic subsystem 100. Key generation means 150
next produces a variant customer key from the so-produced customer key.
The so-produced variant customer key is then used to encrypt one or more
data keys. A data key is encrypted with a system-generated variant
customer k | | |