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

Apparatus and method for serializing and validating copies of computer software

Assignee: Autodesk Inc
•
Filing: 1992-08-31
•
Granted: 1994-02-15
•
Expires: 2012-08-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus and method of disabling an unauthorized copy of a computer program. A set of numbers having an uncommon mathematical property is defined. For authorized copies, one of these numbers is written to a pre-determined location in the computer program. Whenever a copy of the computer program is attempted to be run, the computer system is instructed by the computer program to check the number at that pre-determined location. A determination is then made as to whether that number has the uncommon mathematical property. The computer program is disabled if its number at that location does not have the uncommon mathematical property.

Inventors

  • 👤 Peter R. Samson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-27 06:11
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/10; G06F21/16; G06F21/12; G06F21/121; G06F21/125; G06F2211/00; G06F2211/007; G06F2221/00; G06F2221/21; G06F2221/2139

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 103 words
A method of disabling an unauthorized copy of a computer program comprising the steps of: defining a set of numbers which are generated according to a first mathematical function and which can be validated by a second mathematical function; specifying a location of said computer program wherein one number of said set of numbers is written to said location in an authorized copy of said computer program; reading a number from a copy of said computer program at said location; determining whether said read number is valid according to said second mathematical function; disabling said copy if said read number is not valid.
Claim 2
Independent Claim 103 words
A method of disabling an unauthorized copy of a computer program comprising the steps of: defining a set of numbers which are generated according to a first mathematical function and which can be validated by a second mathematical function; specifying a location of said computer program wherein one number of said set of numbers is written to said location in an authorized copy of said computer program; reading a number from a copy of said computer program at said location; determining whether said read number is valid according to said second mathematical function; disabling said copy if said read number is not valid.
Claim 3
Dependent Claim 93 words
The method of claim 1, wherein one of said set of numbers is generated comprising the steps of: selecting a prime number, q, and three numbers a, b, and x which are less than q; selecting a number, k, which is less than q, wherein the greatest common divisor of k and (q-1) equals 1; selecting a serial number, i; computing a value of m=(i*b) mod q, a value of r=a k mod q, and a value of s=(m-x*r)*k -1 mod (q-1); outputting a number comprising said values of m, r, and s.
Claim 4
Dependent Claim 26 words
The method of claim 2, wherein a sentinel in said programming means specifies said location to be written in said authorized copy of said computer program.
Claim 5
Dependent Claim 26 words
The method of claim 3, wherein said determining step is comprised of determining whether m≠(i*b) mod q and a m ≠y r *r s mod q.
Claim 6
Dependent Claim 20 words
The method of claim 4, wherein said reading, determining, and disabling steps are performed when said computer program is initialized.
Claim 7
Dependent Claim 45 words
The method of claim 3 further comprising the steps of: specifying a second location of said computer program where a second number, bearing a specified mathematical relationship to said first number, is written to said second location in said authorized copy of said computer program.
Claim 8
Dependent Claim 21 words
The method of claim 4, wherein said reading, determining, and disabling steps are performed in a subroutine of said computer program.
Claim 9
Dependent Claim 21 words
The method of claim 6 further comprising the step of storing data identifying a party making copies of said computer program.
Claim 10
Dependent Claim 80 words
The method of claim 4, wherein in a computer network, said method is further comprised of the steps of: determining whether said computer network is running a second copy of said computer program; comparing said read number against a number at said location in said second copy, if said computer network is running said second copy of said computer program; generating an error signal if said read number is identical to said number at said location in said second copy.
Claim 11
Dependent Claim 38 words
The method of claim 9 further comprising the step of writing a plurality of different numbers to said computer program to allow a plurality of instances of said computer program to be run simultaneously on said computer network.
Claim 12
Independent Claim 96 words
An apparatus for disabling an unauthorized copy of a computer program comprising: a means for generating a number according to a first mathematical algorithm; a means for writing said number to an authorized copy of said computer program at a specified location; a means for reading a number at said location from a copy of said computer program; a testing means for determining whether said read number from said copy is valid according to a second mathematical algorithm; a means for disabling said computer program if said read number does not have said uncommon mathematical property.
Claim 13
Independent Claim 96 words
An apparatus for disabling an unauthorized copy of a computer program comprising: a means for generating a number according to a first mathematical algorithm; a means for writing said number to an authorized copy of said computer program at a specified location; a means for reading a number at said location from a copy of said computer program; a testing means for determining whether said read number from said copy is valid according to a second mathematical algorithm; a means for disabling said computer program if said read number does not have said uncommon mathematical property.
Claim 14
Dependent Claim 37 words
The apparatus of claim 11 further comprising a means for locating a sentinel used to mark a specific location in said computer program and overwriting a location bearing a fixed relation to said sentinel with said number.
Claim 15
Dependent Claim 13 words
The apparatus of claim 12, wherein said computer program includes said testing means.
Claim 16
Dependent Claim 17 words
The apparatus of claim 13, wherein said testing means is activated when said computer program is initiated.
Claim 17
Dependent Claim 22 words
The apparatus of claim 14 further comprising a storage means for storing information regarding who is making copies of said computer program.
Claim 18
Dependent Claim 29 words
The apparatus of claim 14, wherein said writing means writes a second number to said computer program, said second number bearing a specified mathematical relationship to said first number.
Claim 19
Dependent Claim 17 words
The apparatus of claim 16, wherein said generating means is based on Fermat's equation: m=xr+ks mod (q-1).
Claim 20
Dependent Claim 18 words
The apparatus of claim 13, wherein said testing means comprises part of a subroutine in said computer program.
Claim 21
Dependent Claim 24 words
The apparatus of claim 13 further comprising a means for said computer program to communicate with a plurality of computers in a computer network.
Claim 22
Dependent Claim 84 words
The apparatus of claim 19, wherein said testing means is further comprised of: a means for determining whether a second copy of said computer program is being run in said computer network; a means for reading a second number from said second copy; a means for comparing said number read from said first copy with said second number read from said second copy; a means for disabling said computer program of said first copy if said first number and said second number are identical.
Claim 23
Dependent Claim 32 words
The apparatus of claim 20, wherein said writing means writes a plurality of numbers to said computer program, each of said plurality of numbers being generated according to said first mathematical algorithm.
Claim 24
Independent Claim 65 words
An apparatus for disabling an unauthorized copy of a computer program comprising: a means for generating a number according to a first mathematical function; a means for embedding said number in a physical device; a means for disabling said computer program if, upon installation of said computer program onto a computer system, said physical device having said number is not coupled to said computer system.
Claim 25
Independent Claim 65 words
An apparatus for disabling an unauthorized copy of a computer program comprising: a means for generating a number according to a first mathematical function; a means for embedding said number in a physical device; a means for disabling said computer program if, upon installation of said computer program onto a computer system, said physical device having said number is not coupled to said computer system.
Claim 26
Dependent Claim 12 words
The apparatus of claim 22, wherein said physical device is an EPROM.

References Cited (Backward Citations)

US4652990A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-02-14 1997-08-16 1998-02-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-02-14 2001-08-16 2002-02-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-02-14 2005-08-16 2006-02-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag