← Back to Patent Explorer
US5416840A Expired / Lapsed US ⏱️ 0.0 years remaining

Software catalog encoding method and system

Assignee: Kinglite Holdings Inc
•
Filing: 1993-07-06
•
Granted: 1995-05-16
•
Expires: 2013-07-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for protecting computer program distribution within a broadcast medium involves encrypting at least a portion of the computer program S i using an encryption scheme keyed to both an encryption key SK i and a program identifier i. Each decryption device (PCDD) also has an associated identifier j. Two tables are generated and stored in a memory device: a first table, including correlations between the encryption key SK i and the program identifier i; and a second table, including correlations between the password key PK j and the hardware identifier j. A password P ij is generated based on both the encryption key SK i and a password key PK i is retrieved from these tables. The password P ij is transmitted to the user for subsequent use in decrypting the subject software program contained on the medium.

Inventors

  • 👤 David A. Cane
  • 👤 David S. Hirschman

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 00:28
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/10; G06F21/12; G06F21/121; G06F21/123; G06F2211/00; G06F2211/007; G06F2221/00; G06F2221/21; G06F2221/2107

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 197 words
A method for protecting computer program distribution within a broadcast medium that is operable on a computer using a decryption device having a unique hardware identifier j, comprising the steps of: A. encrypting at least a portion of the computer program S i , the program having an associated computer program identifier i, in accordance with the formula: S.sub.i.sup.E =E(S.sub.i, SK.sub.i) wherein E is an encryption algorithm and Sk i is a software encryption key; B. securing the software encryption key SK i against unauthorized access; C. generating a first table representative of correspondences between the software encryption key SK i and the computer program identifier i; D. generating a second table representative of correspondences between the hardware identifier j and a password key PK j ; E. selecting from the first and second tables the password key PK j and software encryption key SK i responsive to receipt of the hardware identifier j and computer program identifier i; F. generating a password P ij in accordance with the formula: P.sub.ij =F(SK.sub.i, PK.sub.j) wherein F is a reversible function; and G. issuing the password P ij to enable operation of the encrypted portion of the computer program.
Claim 2
Independent Claim 197 words
A method for protecting computer program distribution within a broadcast medium that is operable on a computer using a decryption device having a unique hardware identifier j, comprising the steps of: A. encrypting at least a portion of the computer program S i , the program having an associated computer program identifier i, in accordance with the formula: S.sub.i.sup.E =E(S.sub.i, SK.sub.i) wherein E is an encryption algorithm and Sk i is a software encryption key; B. securing the software encryption key SK i against unauthorized access; C. generating a first table representative of correspondences between the software encryption key SK i and the computer program identifier i; D. generating a second table representative of correspondences between the hardware identifier j and a password key PK j ; E. selecting from the first and second tables the password key PK j and software encryption key SK i responsive to receipt of the hardware identifier j and computer program identifier i; F. generating a password P ij in accordance with the formula: P.sub.ij =F(SK.sub.i, PK.sub.j) wherein F is a reversible function; and G. issuing the password P ij to enable operation of the encrypted portion of the computer program.
Claim 3
Dependent Claim 55 words
The method of claim 1, wherein Step D comprises the steps of: using the program identifier i as an index to the first table to determine the corresponding encryption key SK i ; and using the hardware identifier j as an index to the second table to determine the corresponding password key PK j .
Claim 4
Dependent Claim 15 words
The method of claim 1, further comprising randomly generating the password key PK j .
Claim 5
Dependent Claim 24 words
The method of claim 1, further comprising the step of, after Step A, storing the computer program S i E on the broadcast medium.
Claim 6
Dependent Claim 24 words
The method of claim 4, further comprising the step of storing a catalog file, including a list of stored programs, on the broadcast medium.
Claim 7
Dependent Claim 165 words
The method of claim 1, further comprising: (i) generating an encrypted authorization code A i E using an algorithm related to the hardware identifier j, and storing the authorization code A i E in a storage medium; (ii) generating a unique identifier RN associated with the software S i , the computer program S i including an associated authorization code A i '; (iii) decrypting the stored authorization code using the password key PK j to generate a decrypted authorization code A i ; (iv) generating a first message digest MD using the unique identifier RN and the decrypted authorization code A i ; (v) generating a second message digest MD', associated with the computer program S i , using the unique identifier RN and the authorization code A i '; (vi) comparing MD and MD' to identify a positive correlation between MD and MD'; and (vii) enabling operation of the computer program S i in response to a positive correlation between MD and MD'.
Claim 8
Dependent Claim 225 words
A computer-implemented method for providing authorization to a user at a first location from a second location for access to an application program S i , having an associated program identifier i, stored on a broadcast medium, wherein the first location includes a decryption device, having an associated hardware identifier j, for decrypting the application program S i from the broadcast medium, the method comprising: A. transmitting the hardware identifier j, the program identifier i, and a payment authorization from the first location to the second location; B. generating a program identifier-program encryption key table for storage at the second location; C. generating a hardware identifier-password key table for storage at the second location; D. responsive to receipt of a program identifier at the second location, retrieving a program encryption key SK i associated with the identifier and secured against unauthorized access, from the program identifier-program encryption key table; E. responsive to receipt at the second location of a hardware identifier, retrieving a password key PK j associated with the hardware identifier from the hardware identifier-password key table; F. generating a password P ij by encrypting the software encryption key SK i with an encryption algorithm E; G. transmitting the password P ij to the first location; and H. decrypting the application program S i using the password P ij to activate the decryption device.
Claim 9
Dependent Claim 225 words
A computer-implemented method for providing authorization to a user at a first location from a second location for access to an application program S i , having an associated program identifier i, stored on a broadcast medium, wherein the first location includes a decryption device, having an associated hardware identifier j, for decrypting the application program S i from the broadcast medium, the method comprising: A. transmitting the hardware identifier j, the program identifier i, and a payment authorization from the first location to the second location; B. generating a program identifier-program encryption key table for storage at the second location; C. generating a hardware identifier-password key table for storage at the second location; D. responsive to receipt of a program identifier at the second location, retrieving a program encryption key SK i associated with the identifier and secured against unauthorized access, from the program identifier-program encryption key table; E. responsive to receipt at the second location of a hardware identifier, retrieving a password key PK j associated with the hardware identifier from the hardware identifier-password key table; F. generating a password P ij by encrypting the software encryption key SK i with an encryption algorithm E; G. transmitting the password P ij to the first location; and H. decrypting the application program S i using the password P ij to activate the decryption device.
Claim 10
Dependent Claim 25 words
The method of claim 7, wherein Step C further comprises, using the program identifier i as an index to the program identifier-program encryption key table.
Claim 11
Dependent Claim 24 words
The method of claim 7, wherein Step E further comprises, using the hardware identifier j as an index to the hardware identifier-password key table.
Claim 12
Dependent Claim 120 words
Apparatus for controllably decrypting software distributed within a broadcast medium, including: software encrypted using a software encryption algorithm related to a software encryption key SK i and a program identifier i, the apparatus comprising: A. a first storage means for storing a password key PK j ; B. a first decryption block for generating the software encryption key SK i using the password key PK j retrieved from the first storage means; C. a second decryption block for decrypting the software retrieved from the broadcast medium using the software encryption key SK i retrieved from the first decryption block; and D. means, in communication with the first decryption block, for securing the software encryption key SK i against unauthorized access.
Claim 13
Dependent Claim 120 words
Apparatus for controllably decrypting software distributed within a broadcast medium, including: software encrypted using a software encryption algorithm related to a software encryption key SK i and a program identifier i, the apparatus comprising: A. a first storage means for storing a password key PK j ; B. a first decryption block for generating the software encryption key SK i using the password key PK j retrieved from the first storage means; C. a second decryption block for decrypting the software retrieved from the broadcast medium using the software encryption key SK i retrieved from the first decryption block; and D. means, in communication with the first decryption block, for securing the software encryption key SK i against unauthorized access.
Claim 14
Dependent Claim 38 words
The apparatus of claim 10, wherein the password key PK j includes a hardware identifier j component, the system further comprising means for preventing arithmetic computation of the password key PK j based on the hardware identifier j.
Claim 15
Independent Claim 210 words
A system for controllably authorizing access to distributed software, including: a decryption device having an associated unique hardware identifier j, the system comprising: A. first storage means for storing an encrypted authorization code A i E encrypted using an encryption algorithm related to the hardware identifier j; B. a number generator, in communication with the software, for generating a unique identifier RN associated with the software; C. second storage means in communication with the software, for storing an authorization code A i '; D. third storage means for storing a password key PK j ; E. a first decryption block for decrypting the authorization code A i E using the password key PK j retrieved from the third storage means; F. a challenge block for generating a first message digest MD using the unique identifier RN retrieved from the number generator and the decrypted authorization code retrieved from the first decryption block; G. means for generating a second message digest MD' using the unique identifier RN retrieved from the number generator and the authorization code A i ' retrieved from the first storage means; and H. means for authorizing access to the software based on a positive correlation between the first message digest MD and the second message digest MD'.
Claim 16
Independent Claim 210 words
A system for controllably authorizing access to distributed software, including: a decryption device having an associated unique hardware identifier j, the system comprising: A. first storage means for storing an encrypted authorization code A i E encrypted using an encryption algorithm related to the hardware identifier j; B. a number generator, in communication with the software, for generating a unique identifier RN associated with the software; C. second storage means in communication with the software, for storing an authorization code A i '; D. third storage means for storing a password key PK j ; E. a first decryption block for decrypting the authorization code A i E using the password key PK j retrieved from the third storage means; F. a challenge block for generating a first message digest MD using the unique identifier RN retrieved from the number generator and the decrypted authorization code retrieved from the first decryption block; G. means for generating a second message digest MD' using the unique identifier RN retrieved from the number generator and the authorization code A i ' retrieved from the first storage means; and H. means for authorizing access to the software based on a positive correlation between the first message digest MD and the second message digest MD'.
Claim 17
Dependent Claim 13 words
The system of claim 12, wherein the number generator generates a random number.
Claim 18
Dependent Claim 21 words
The system of claim 12, wherein the means for generating a second message digest MD' is in communication with the software.
Claim 19
Dependent Claim 35 words
The system of claim 12, wherein the challenge block comprises means for generating the first message digest MD using a non-reversible function applied to the unique identifier and the decrypted authorization code A i .
Claim 20
Dependent Claim 118 words
The system of claim 12, wherein the software is encrypted using a software encryption algorithm related to a software encryption key SK i and a program identifier i, the system further comprising: (i) a first storage means for storing a password key PK j ; (ii) a first decryption block for generating the software encryption key SK i using the password key PK j retrieved from the first storage means; (iii) a second decryption block for decrypting the software retrieved from the broadcast medium using the software encryption key SK i retrieved from the first decryption block; and (iv) means, in communication with the first decryption block, for securing the software encryption key SK i against unauthorized access.
Claim 21
Dependent Claim 38 words
The system of claim 16, wherein the password key PK j includes a hardware identifier j component, the system further comprising means for preventing arithmetic computation of the password key PK j based on the hardware identifier j.
Claim 22
Independent Claim 98 words
A system for controllably decrypting software distributed within a broadcast medium, including: (i) a first storage means for storing a password key PK j ; (ii) a first decryption block for generating a software encryption key SK i using the password key PK j retrieved from the first storage means; (iii) a second decryption block for decrypting the software retrieved from the broadcast medium using the software encryption key SK i retrieved from the first decryption block; and (iv) means, in communication with the first decryption block, for securing the software encryption key SK i against unauthorized access.
Claim 23
Independent Claim 98 words
A system for controllably decrypting software distributed within a broadcast medium, including: (i) a first storage means for storing a password key PK j ; (ii) a first decryption block for generating a software encryption key SK i using the password key PK j retrieved from the first storage means; (iii) a second decryption block for decrypting the software retrieved from the broadcast medium using the software encryption key SK i retrieved from the first decryption block; and (iv) means, in communication with the first decryption block, for securing the software encryption key SK i against unauthorized access.
Claim 24
Dependent Claim 216 words
The system of claim 18, including a decryption device having an associated unique hardware identifier j, wherein the means for securing the software encryption key SK i further comprises: A. first storage means for storing an encrypted authorization code A ij E encrypted using an encryption algorithm related to the hardware identifier j; B. a number generator, in communication with the software, for generating a unique identifier RN associated with the software; C. second storage means in communication with the software, for storing an authorization code A i '; D. third storage means for storing a password key PK j ; E. a first decryption block for decrypting the authorization code A i E using the password key PK j retrieved from the third storage means; F. a challenge block for generating a first message digest MD using the unique identifier RN retrieved from the number generator and the decrypted authorization code retrieved from the first decryption block; G. means for generating a second message digest MD' using the unique identifier RN retrieved from the number generator and the authorization code A i ' retrieved from the first storage means; and H. means for authorizing access to the software based on a positive correlation between the first message digest MD and the second message digest MD'.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-05-15 1998-11-14 1999-05-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-05-15 2002-11-14 2003-05-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-05-15 2006-11-14 2007-05-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag