Patent US4114850A successfully refreshed from Google Patents.
Patent EP0191162A2 successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0191162A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Method of software protection

Assignee: International Business Machines Corp
•
Filing: 1985-11-29
•
Granted: —
•
Expires: 2005-11-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cryptographic method for discouraging the copying and sharing of purchased software programs allows 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 initialised 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. In alternative embodiments, the user is not con- ; fined to a prescribed, designated computer but may use the program on other, different computers with a smart card provided the computers have a properly implemented and initialised encryption feature that accepts the smart card. As a further modification, the cryptographic facility may support operations that enable the user to encrypt and decrypt user generated files and/or user generated programs.

Inventors

  • 👤 Stephen Michael Matyas
  • 👤 Jonathan Oseas

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-10-31 11:27
CPC Classifications
G; G07; G07F; G07F7/00; G07F7/08; G07F7/10; G07F7/1008; G06; G06F; G06F12/00; G06F12/14; G06F12/1408; G06F21/00; G06F21/10; G06F21/12; G06F21/121; G06F21/123; G06Q; G06Q20/00; G06Q20/30; G06Q20/34; G06Q20/341; G06Q20/38; G06Q20/40; G06Q20/409; G06Q20/4097; G06Q20/40975; G07F17/00; G07F17/0014

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 127 words
A method of software protection comprising the steps of encrypting each protected program of a program offering for sale or lease with a unique file key and writing the encrypted program on a storage medium as a program file, providing a computer having a protected memory and a cryptographic facility, with a secret unique cryptographic key identifier, providing a purchaser/lessee (hereinafter, simply purchaser) of the storage medium containing the encrypted program with a secret password unique to the particular program and said cryptographic key identifier, whereby, when said medium is loaded into said computer and said secret password is entered thereinto, said program becomes executable after at least a portion of the program has been decrypted in said cryptographic facility as a function of said secret password.
Claim 2
Independent Claim 127 words
A method of software protection comprising the steps of encrypting each protected program of a program offering for sale or lease with a unique file key and writing the encrypted program on a storage medium as a program file, providing a computer having a protected memory and a cryptographic facility, with a secret unique cryptographic key identifier, providing a purchaser/lessee (hereinafter, simply purchaser) of the storage medium containing the encrypted program with a secret password unique to the particular program and said cryptographic key identifier, whereby, when said medium is loaded into said computer and said secret password is entered thereinto, said program becomes executable after at least a portion of the program has been decrypted in said cryptographic facility as a function of said secret password.
Claim 3
Dependent Claim 54 words
A method as claimed in claim 1 , wherein, only when the program is first loaded in said computer, performing the steps of prompting the user for the secret password, and in response to the input of the secret password by the user, writing the password in the header record of the program file.
Claim 4
Dependent Claim 30 words
A method as claimed in claim 1 or claim 2, further comprising the step of writing the decrypted program into said protected memory from which it can only be executed.
Claim 5
Dependent Claim 194 words
4 . A method as claimed in any preceding claim wherein the step of providing the secret password is performed by providing the purchaser of the storage medium containing the encrypted program with an authorisation number and identifying the encrypted program with a program number and the storage medium with a storage medium number, requesting the purchaser to input the authorisation number, the program number, the storage medium number and a number identifying said cryptographic key identifier, computing from the inputted program number and storage medium number an authorisation number, comparing the computer authorisation number with the inputted authorisation number, providing a key distribution centre with the inputted program number, storage medium number and the number identifying said cryptographic key identifier if the computed and inputted authorisation numbers are the same, otherwise rejecting a password request by the purchaser, generating a first key as a function of said cryptographic key identifier and then encrypting the program number and storage medium number concatenated together with said first key to produce a second key at the key distribution centre, and encrypting the secret file key of the program with said second key to produce said password.
Claim 6
Dependent Claim 50 words
A method as claimed in claim 4 further comprising the step of determining if the computer authorisation number has been used before, and if it has not, then performing the step of comparing the computed authorisation number with the inputted authorisation number, otherwise rejecting a password request by the purchaser.
Claim 7
Dependent Claim 104 words
A method as claimed in claim 4 or claim 5 wherein the step of decrypting at least a portion of the program is performed by the steps of reading said password, program number and storage medium number from said header record, encrypting said program number and storage medium number from said header record, encrypting said program number and storage medium number concatenated together with a key which is a function of said secret unique cryptographic key identifier to produce a decryption key, decrypting said password with said decryption key to produce said secret file key, and decrypting the program using said secret file key.
Claim 8
Dependent Claim 53 words
A method as claimed in claim 1 or claim 2, wherein the step of providing a computer with a secret unique cryptographic key identifier is performed by the software or computer vendor issuing to the purchaser a smart card having said secret unique cryptographic key identifier, said smart card interfacing with said computer.
Claim 9
Dependent Claim 200 words
A method as claimed in claim 7 wherein the step of providing the secret password is performed by the steps of providing the purchaser of the storage medium containing the encrypted program with an authorisation number and identifying the encrypted program with a program number and the storage medium with a storage medium number, requesting the purchaser to input the authorisation number, a number of the smart card,, the program number and the storage medium number, computing an authorisation number from the inputted program number and storage medium number, comparing the computed authorisation number with the inputted authorisation number, and if the computed and inputted authorisation numbers are the same, providing a key distribution centre with the inputted number of the smart card, the program number and the storage medium number, otherwise rejecting a password request by the purchaser, generating a card key corresponding to the inputted card number and then encrypting the program number and storage medium number concatenated together with said card key to produce an encryption key at the key distribution centre, generating a secret file key corresponding to the inputted program number, and encrypting said secret file key with said encryption key to produce said password.
Claim 10
Dependent Claim 99 words
9 . A method as claimed in claim 7 or claim 8, wherein the step of decrypting at least a portion of the program is performed by the steps of supplying the smart card with the password, program number and storage medium number, encrypting in the smart card the program number and storage medium number concatenated together with the key of the smart card to produce a decryption key, decrypting the password with said decryption key to produce the secret file key, and decrypting in the computer at least said portion of the program using the secret file key.
Claim 11
Dependent Claim 124 words
1 0. A method as claimed in claim 9 further comprising the steps of supplying the smart card with a number identifying said cryptographic facility, encrypting in the smart card the number identifying said cryptographic facility with a universal key to produce a computer encryption key, generating in the computer a random number and supplying the random number to the smart card, exclusive ORing in the smart card the secret file key with the random number and encrypting the result with said computer encryption key to produce an encrypted exclusive ORed output, decrypting in the computer the encrypted exclusive ORed output with the computer encryption key, and exclusive ORing the decrypted exclusive ORed output with said random number to produce the secret file key.
Claim 12
Dependent Claim 29 words
1 1. A method as claimed in claim 10 wherein the steps of encryption in the smart card and decryption in the computer are performed using the DES algorithm.
Claim 13
Dependent Claim 154 words
A method as claimed in claim 9 further comprising the steps providing the computer with a public key, PKt, decrypted under the secret key of a public registry, and also providing said cryptographic facility with a corresponding secret key, SKt, providing said smart card with a public key, PKu, encrypting in the smart card the computer public key decrypted under the secret key of the public registry with the card's public key PKu to produce said key PKt, generating in the computer a random number and supplying the random number to the smart card, exclusive ORing in the smart card the secret file key with the random number and encrypting the result with said key PKt to produce an encrypted exclusive ORed output, decrypting in the computer the encrypted exclusive ORed output with the key SKt, and exclusive ORing the decrypted exclusive ORed output with said random number to produce the secret file key.
Claim 14
Dependent Claim 34 words
A method as claimed in claim 12 wherein the steps of encryption and decryption in the smart card and the computer are performed by selectively using the DES algorithm and a public key algorithm.
Claim 15
Dependent Claim 61 words
A method as claimed in claim 1 wherein said cryptographic facility supports encryption and decryption of user generated data comprising the steps of accepting a user input parameter, and decrypting said user input parameter under a key which is a function of said secret unique cryptographic key identifier to generate a file key for encrypting and decrypting said user generated data.
Claim 16
Dependent Claim 75 words
A method as claimed in claim 14 wherein said input parameter is input as a first parameter and a second parameter, said step of decrypting comprises the steps of encrypting said second parameter under said key which which is a function of said secret unique cryptographic key identifier to produce a first cipher text, and decrypting said first parameter using said first cipher text to produce a second cipher text corresponding to a key KF.
Claim 17
Dependent Claim 40 words
A method as claimed in claim 14 further comprising the step of exclusive ORing said key KF with a constant to produce a key KF1 which is used as a file key for encrypting and decrypting said user generated data
Claim 18
Dependent Claim 57 words
A method as claimed in claim 14 further comprising the steps of generating a random number, and exclusive ORing said random number with the decrypted user input parameter to produce a key KF and exclusive ORing said key KF with a constant to produce a key KF1 which is used for encrypting and decrypting user generated data.
Claim 19
Dependent Claim 104 words
A method as claimed in claim 14 wherein said cryptographic facility supports encryption of user generated data comprising the steps of encrypting user generated data under said file key, decrypting user generated data by the steps of accepting the user input parameter in the form of a first parameter and a second parameter, encrypting said second parameter with said key which is a function of said secret unique cryptographic key identifier to produce a decryption key, decrypting said first parameter with said decryption key to produce a key KF related to said file key, and decrypting said user generated data using said file key.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag