Patent US5199066A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5199066A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for protecting software

Assignee: LOGAN ANDREW J PO BOX 314 HAVERFORD PA 19041
•
Filing: 1989-04-18
•
Granted: 1993-03-30
•
Expires: 2009-04-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for protecting a software program recorded within a storage medium for use with or transmission to computer or processor based hardware comprises inputting a hardware code uniquely associated with the particular hardware and inputting a first software code uniquely associated with the particular embodiment of the software. A first predetermined operation is performed upon the hardware code and the first software code to produce an intermediate code. A unique activation code obtained from the software supplier is inputted and a second predetermined operation is performed upon the intermediate code and the activation code to produce a second intermediate code. The second intermediate code is compared to a second software code uniquely associated with the particular embodiment of the software and stored in a hidden location within the software. The use of the software is enabled only if the second intermediate code and the second software code are identical.

Inventors

  • 👤 Andrew J. Logan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 22:58
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/10; G06F21/12; G06F21/121; G06F21/101; G06F2211/00; G06F2211/007

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 182 words
A method of protecting a software program recorded within a storage medium for use with or transmission to computer or processor based hardware, the method comprising: inputting a hardware code uniquely associated with the particular hardware with which the software is to be employed; inputting a first software code uniquely associated with the particular embodiment of the software being employed; performing a first predetermined operation upon the hardware code and the first software code to produce a first intermediate code; inputting a unique activation code for the particular embodiment of the software being employed, the activation code being received from a software supplier; performing a second predetermined operation upon the first intermediate code and the activation code to produce a second intermediate code; comparing the second intermediate code with a second software code uniquely associated with the particular embodiment of the software being employed and stored at a hidden location within the software, the second software code not being ascertainable by the user; and enabling the use of the software if the second intermediate code and the second software code are identical.
Claim 2
Independent Claim 182 words
A method of protecting a software program recorded within a storage medium for use with or transmission to computer or processor based hardware, the method comprising: inputting a hardware code uniquely associated with the particular hardware with which the software is to be employed; inputting a first software code uniquely associated with the particular embodiment of the software being employed; performing a first predetermined operation upon the hardware code and the first software code to produce a first intermediate code; inputting a unique activation code for the particular embodiment of the software being employed, the activation code being received from a software supplier; performing a second predetermined operation upon the first intermediate code and the activation code to produce a second intermediate code; comparing the second intermediate code with a second software code uniquely associated with the particular embodiment of the software being employed and stored at a hidden location within the software, the second software code not being ascertainable by the user; and enabling the use of the software if the second intermediate code and the second software code are identical.
Claim 3
Dependent Claim 21 words
The method as recited in claim 1 wherein the hardware code is comprised of the serial number for the particular hardware.
Claim 4
Dependent Claim 22 words
The method as recited in claim 1 wherein the first software code is comprised of the serial number of the particular software.
Claim 5
Dependent Claim 48 words
The method as recited in claim 1 wherein the hardware code and the first software code are numbers and wherein the first predetermined operation comprises a mathematical manipulation of the hardware code and the first software code to produce the first intermediate code, which is also a number.
Claim 6
Dependent Claim 44 words
The method as recited in claim 4 wherein the activation code is a number and wherein the second predetermined operation comprises a mathematical manipulation of the first intermediate code and the activation code to produce the second intermediate code, which is also a number.
Claim 7
Dependent Claim 17 words
The method as recited in claim 5 wherein both the first and second predetermined operations comprise addition.
Claim 8
Dependent Claim 41 words
The method as recited in claim 1 further comprising the step of changing the second software code in a predetermined manner each time the software is copied so that a different activation code is required to enable use of the software.
Claim 9
Dependent Claim 93 words
The method as recited in claim 1 wherein the activation code is generated by the software supplier receiving the hardware code and the first software code from the user and performing the first predetermined operation upon the hardware code and the first software code to produce the first intermediate code, the software supplier obtaining the second software code from its records and performing a third predetermined operation upon the second software code and the first intermediate code to produce the activation code, the third predetermined operation being complementary to the second predetermined operation.
Claim 10
Dependent Claim 50 words
The method as recited in claim 8 wherein prior to the generation of the activation code the software supplier obtains information from the user regarding the copy status of the software and changes the second software code in a predetermined manner in accordance with the copy status of the software.
Claim 11
Independent Claim 233 words
A method of preventing use of an unauthorized copy of a computer software program recorded within a storage medium for use in computer hardware by preventing the software from operating in the absence of a proper activation code, the method comprising: inputting a numeric hardware code uniquely associated with the particular hardware with which the software is to be employed; inputting a first numeric software code uniquely associated with the particular software storage medium; performing a first predetermined mathematical operation upon the hardware code and the first software code to produce a first numeric intermediate code; inputting a numeric activation code received from a software supplier, the activation code being uniquely determined for activation of the software having the particular first software code for use with hardware having the particular hardware code; performing a second predetermined mathematic operation upon the first numeric intermediate code and the numeric activation code to produce a second numeric intermediate code; comparing the second numeric intermediate code with a second numeric software code uniquely associated with the particular storage medium and stored at a hidden location within the software, the second numeric software code not being ascertainable by the user, the second numeric software code being changed in a predetermined manner each time the software is copied; and enabling the use of the software if the second numeric intermediate code and the second numeric software code are identical.
Claim 12
Independent Claim 233 words
A method of preventing use of an unauthorized copy of a computer software program recorded within a storage medium for use in computer hardware by preventing the software from operating in the absence of a proper activation code, the method comprising: inputting a numeric hardware code uniquely associated with the particular hardware with which the software is to be employed; inputting a first numeric software code uniquely associated with the particular software storage medium; performing a first predetermined mathematical operation upon the hardware code and the first software code to produce a first numeric intermediate code; inputting a numeric activation code received from a software supplier, the activation code being uniquely determined for activation of the software having the particular first software code for use with hardware having the particular hardware code; performing a second predetermined mathematic operation upon the first numeric intermediate code and the numeric activation code to produce a second numeric intermediate code; comparing the second numeric intermediate code with a second numeric software code uniquely associated with the particular storage medium and stored at a hidden location within the software, the second numeric software code not being ascertainable by the user, the second numeric software code being changed in a predetermined manner each time the software is copied; and enabling the use of the software if the second numeric intermediate code and the second numeric software code are identical.
Claim 13
Dependent Claim 16 words
The method as recited in claim 10 wherein the hardware code is the hardware serial number.
Claim 14
Dependent Claim 18 words
The method as recited in claim 11 wherein the first numeric software code is the software serial number.
Claim 15
Dependent Claim 17 words
The method as recited in claim 12 wherein the first and second predetermined mathematical operations comprise addition.
Claim 16
Independent Claim 127 words
A method of generating an activation code for enabling the use of a software program with particular computer or processor based hardware, the method comprising: obtaining from the user a hardware code uniquely associated with the particular hardware with which the software is to be employed; obtaining from the user a first software code uniquely associated with the particular embodiment of the software being employed; performing a predetermined operation upon the hardware code and the first software code to produce a first intermediate code; obtaining a second software code uniquely associated with the particular embodiment of the software from stored information corresponding to the first software code; and performing a predetermined operation upon the first intermediate code and the second software code to produce the activation code.
Claim 17
Independent Claim 127 words
A method of generating an activation code for enabling the use of a software program with particular computer or processor based hardware, the method comprising: obtaining from the user a hardware code uniquely associated with the particular hardware with which the software is to be employed; obtaining from the user a first software code uniquely associated with the particular embodiment of the software being employed; performing a predetermined operation upon the hardware code and the first software code to produce a first intermediate code; obtaining a second software code uniquely associated with the particular embodiment of the software from stored information corresponding to the first software code; and performing a predetermined operation upon the first intermediate code and the second software code to produce the activation code.
Claim 18
Independent Claim 197 words
A system for protecting a software program recorded within a storage medium for use with, or transmission to, computer or processor based hardware, the system comprising: means for inputting a hardware code uniquely associated with the particular hardware with which the software is to be employed; means for inputting a first software code uniquely associated with the particular embodiment of the software being employed; computer means for performing a first predetermined operation upon the hardware code and the first software code to produce a first intermediate code; means for inputting a unique activation code for the particular embodiment of the software being employed, the activation code being received from a software supplier; computer means for performing a second predetermined operation upon the first intermediate code and the activation code to produce a second intermediate code; computer means for comparing the second intermediate code with a second software code uniquely associated with the particular embodiment of the software and stored at a hidden location within the software, the second software code not being ascertainable by the user; and means for enabling the use of the software if the second intermediate code and the second software code are identical.
Claim 19
Independent Claim 197 words
A system for protecting a software program recorded within a storage medium for use with, or transmission to, computer or processor based hardware, the system comprising: means for inputting a hardware code uniquely associated with the particular hardware with which the software is to be employed; means for inputting a first software code uniquely associated with the particular embodiment of the software being employed; computer means for performing a first predetermined operation upon the hardware code and the first software code to produce a first intermediate code; means for inputting a unique activation code for the particular embodiment of the software being employed, the activation code being received from a software supplier; computer means for performing a second predetermined operation upon the first intermediate code and the activation code to produce a second intermediate code; computer means for comparing the second intermediate code with a second software code uniquely associated with the particular embodiment of the software and stored at a hidden location within the software, the second software code not being ascertainable by the user; and means for enabling the use of the software if the second intermediate code and the second software code are identical.
Claim 20
Dependent Claim 21 words
The system as recited in claim 15 wherein the hardware code is comprised of the serial number for the particular hardware.
Claim 21
Dependent Claim 22 words
The system as recited in claim 15 wherein the first software code is comprised of the serial number of the particular software.
Claim 22
Dependent Claim 48 words
The system as recited in claim 15 wherein the hardware code and the first software code are numbers and wherein the first predetermined operation comprises a mathematical manipulation of the hardware code and the first software code to produce the first intermediate code, which is also a number.
Claim 23
Dependent Claim 44 words
The system as recited in claim 18 wherein the activation code is a number and wherein the second predetermined operation comprises a mathematical manipulation of the first intermediate code and the activation code to produce the second intermediate code, which is also a number.
Claim 24
Dependent Claim 40 words
The system as recited in claim 15 further including means for changing the second software code in a predetermined manner each time the software is copied so that a new activation code is required to enable use of the software.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-03-29 1996-09-28 1997-03-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-03-29 2000-09-28 2001-03-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-03-29 2004-09-28 2005-03-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag