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

Method for protecting publicly distributed software

Assignee: Cable Television Laboratories Inc
•
Filing: 1995-07-19
•
Granted: 1998-05-19
•
Expires: 2015-07-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for protecting software from copying wherein the software to be protected is placed on the computer system in two parts. A first part is stored in non-volatile storage, such as a hard disk or floppy disk within the computer system, and a second part is stored and executed in a "hardware key", which is attached to the computer system. The second part is stored in volatile RAM and will be erased when electrical power is removed from the hardware key, or when the software stops execution. This requires that the second part of the software be reloaded each time the hardware key is powered up. Typically, the second part of the software will be loaded from a network, or from a cable network, thus reloading of the second part into the hardware key is a trivial matter, so long as the user is an active subscriber to the network or cable network.

Inventors

  • 👤 Thomas H. Williams
  • 👤 Claude T. Baggett

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 16:24
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/10; G06F21/12; G06F21/121; G06F21/123; G06F2211/00; G06F2211/007

Claims Analysis

Total Claims: 47
Claim 1
Independent Claim 148 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software; and a data receiver attached to the computer system and further attached to a transmission facility, the data receiver for receiving the second part of the computer software and storing the second part of the computer software into the hardware key.
Claim 2
Independent Claim 148 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software; and a data receiver attached to the computer system and further attached to a transmission facility, the data receiver for receiving the second part of the computer software and storing the second part of the computer software into the hardware key.
Claim 3
Dependent Claim 35 words
The system of claim 1 further comprising a connection between the hardware key and the data receiver, and wherein the hardware key will only receive the second part of the computer software through the connection.
Claim 4
Dependent Claim 26 words
The system of claim 2 wherein the first part of the computer software causes the data receiver to receive the second part of the computer software.
Claim 5
Independent Claim 131 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software wherein the second part of the computer software is decoded by the hardware key before execution of the second part of the computer software; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 6
Independent Claim 131 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software wherein the second part of the computer software is decoded by the hardware key before execution of the second part of the computer software; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 7
Dependent Claim 44 words
The system of claim 4 wherein the hardware key further comprises a decoding device connected to the hardware key, wherein the decoding device decodes the second part of the computer software before execution of second part of the computer software in the hardware key.
Claim 8
Dependent Claim 18 words
The system of claim 1 wherein the second part of the computer software comprises at least one subroutine.
Claim 9
Independent Claim 142 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software wherein memory within the hardware key comprises only volatile memory for storing the second part of the computer software, wherein contents of the volatile memory are erased upon removing electrical power from the hardware key; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 10
Independent Claim 142 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software wherein memory within the hardware key comprises only volatile memory for storing the second part of the computer software, wherein contents of the volatile memory are erased upon removing electrical power from the hardware key; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 11
Independent Claim 145 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software wherein the second part of the computer software comprises machine instructions for erasing the second part of the computer software when the hardware key has not received communications from the computer system within a predetermined amount of time; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 12
Independent Claim 145 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software wherein the second part of the computer software comprises machine instructions for erasing the second part of the computer software when the hardware key has not received communications from the computer system within a predetermined amount of time; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 13
Independent Claim 130 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software wherein the hardware key further comprises a battery powered portion of volatile memory wherein the battery powered portion of memory contains control software; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 14
Independent Claim 130 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a hardware key attached to the computer system, the hardware key for containing and executing a second part of the computer software wherein the hardware key further comprises a battery powered portion of volatile memory wherein the battery powered portion of memory contains control software; a processor for executing the first part of the computer software and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 15
Independent Claim 140 words
A method for protecting computer software from unauthorized execution within a computer system, the method comprising the steps of: (a) dividing the computer software into two parts; (b) storing a first part of the computer software into a memory within the computer system; (c) receiving a second part of the computer software only from a transmission facility attached to the computer system and storing the second part of the computer software into a hardware key attached to the computer system; (d) executing the first part of the computer software in a processor contained in the computer system, wherein the first part of the computer software communicates to the hardware key to cause execution of the second part of the computer software within the hardware key device to provide results needed for operation of the first part of the computer software.
Claim 16
Independent Claim 140 words
A method for protecting computer software from unauthorized execution within a computer system, the method comprising the steps of: (a) dividing the computer software into two parts; (b) storing a first part of the computer software into a memory within the computer system; (c) receiving a second part of the computer software only from a transmission facility attached to the computer system and storing the second part of the computer software into a hardware key attached to the computer system; (d) executing the first part of the computer software in a processor contained in the computer system, wherein the first part of the computer software communicates to the hardware key to cause execution of the second part of the computer software within the hardware key device to provide results needed for operation of the first part of the computer software.
Claim 17
Dependent Claim 36 words
The method of claim 10 wherein step (c1) further comprises the step of decoding the second part of the computer software before storing the second part of the computer software into the hardware key processor device.
Claim 18
Dependent Claim 24 words
The method of claim 11 further comprising the step of performing the decoding within a decoding device attached to the hardware key processor device.
Claim 19
Dependent Claim 28 words
The method of claim 10 wherein step (c) is performed as a part of step (d) and is performed when the first part of the software is executed.
Claim 20
Independent Claim 157 words
A method for protecting computer software from unauthorized execution within a computer system, the method comprising the steps of: (a) dividing the computer software into two parts; (b storing a first part of the computer software into a memory within the computer system; (c) storing a second part of the computer software into a hardware key attached to the computer system; (d) executing the first part of the computer software in a processor contained in the computer system, wherein the first part of the computer software communicates to the hardware key to cause execution of the second part of the computer software within the hardware key device to provide results needed for operation of the first part of the computer software; and (e) erasing the second part of the computer software when the second part of the computer software has not received communications from the first part of the computer software within a predetermined amount of time.
Claim 21
Independent Claim 157 words
A method for protecting computer software from unauthorized execution within a computer system, the method comprising the steps of: (a) dividing the computer software into two parts; (b storing a first part of the computer software into a memory within the computer system; (c) storing a second part of the computer software into a hardware key attached to the computer system; (d) executing the first part of the computer software in a processor contained in the computer system, wherein the first part of the computer software communicates to the hardware key to cause execution of the second part of the computer software within the hardware key device to provide results needed for operation of the first part of the computer software; and (e) erasing the second part of the computer software when the second part of the computer software has not received communications from the first part of the computer software within a predetermined amount of time.
Claim 22
Independent Claim 143 words
A method for protecting computer software from unauthorized execution within a computer system, the method comprising the steps of: (a) dividing the computer software into two parts; (b) storing a first part of the computer software into a memory within the computer system; (c) storing a second part of the computer software into a hardware key attached to the computer system; (d) executing the first part of the computer software in a processor contained in the computer system, wherein the first part of the computer software communicates to the hardware key to cause execution of the second part of the computer software within the hardware key device to provide results needed for operation of the first part of the computer software; and (e) erasing the second part of the software from the hardware key upon termination of the first part of the software.
Claim 23
Independent Claim 143 words
A method for protecting computer software from unauthorized execution within a computer system, the method comprising the steps of: (a) dividing the computer software into two parts; (b) storing a first part of the computer software into a memory within the computer system; (c) storing a second part of the computer software into a hardware key attached to the computer system; (d) executing the first part of the computer software in a processor contained in the computer system, wherein the first part of the computer software communicates to the hardware key to cause execution of the second part of the computer software within the hardware key device to provide results needed for operation of the first part of the computer software; and (e) erasing the second part of the software from the hardware key upon termination of the first part of the software.
Claim 24
Independent Claim 134 words
A method for protecting computer software from unauthorized execution within a computer system, the method comprising the steps of: (a) dividing the computer software into two parts; (b) receiving a first part of the software from a transmission facility; (c) storing the first part of the computer software into a memory within the computer system; (d) storing a second part of the computer software into a hardware key attached to the computer system; and (e) executing the first part of the computer software in a processor contained in the computer system, wherein the first part of the computer software communicates to the hardware key to cause execution of the second part of the computer software within the hardware key device to provide results needed for operation of the first part of the computer software.
Claim 25
Independent Claim 134 words
A method for protecting computer software from unauthorized execution within a computer system, the method comprising the steps of: (a) dividing the computer software into two parts; (b) receiving a first part of the software from a transmission facility; (c) storing the first part of the computer software into a memory within the computer system; (d) storing a second part of the computer software into a hardware key attached to the computer system; and (e) executing the first part of the computer software in a processor contained in the computer system, wherein the first part of the computer software communicates to the hardware key to cause execution of the second part of the computer software within the hardware key device to provide results needed for operation of the first part of the computer software.
Claim 26
Dependent Claim 39 words
The method of claim 10 wherein the following step (b1) is performed prior to step (b): (b1) copying the first part of the software from a distribution media read by a removable media storage device of the computer system.
Claim 27
Independent Claim 159 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: memory means within the computer system for containing a first part of the computer software; hardware key means attached to the computer system, the hardware key means for containing and executing a second part of the computer software; processor means for executing the first part of the computer software and for communicating to the hardware key means to cause execution of the second part of the computer software within the hardware key means, when the execution of the second part of the computer software is requested by the first part of the computer software; and data receiver means attached to the computer system and further attached to a transmission facility means, the data receiving means for receiving the second part of the computer software from the transmission facility means and storing the second part of the computer software into the hardware key means.
Claim 28
Independent Claim 159 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: memory means within the computer system for containing a first part of the computer software; hardware key means attached to the computer system, the hardware key means for containing and executing a second part of the computer software; processor means for executing the first part of the computer software and for communicating to the hardware key means to cause execution of the second part of the computer software within the hardware key means, when the execution of the second part of the computer software is requested by the first part of the computer software; and data receiver means attached to the computer system and further attached to a transmission facility means, the data receiving means for receiving the second part of the computer software from the transmission facility means and storing the second part of the computer software into the hardware key means.
Claim 29
Dependent Claim 38 words
The system of claim 18 further comprising connection means between the hardware key means and the data receiver means, wherein the hardware key means will only receive the second part of the computer software through the connection means.
Claim 30
Dependent Claim 29 words
The system of claim 19 wherein execution of the first part of the computer software causes the data receiver means to receive the second part of the computer software.
Claim 31
Independent Claim 136 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: memory means within the computer system for containing a first part of the computer software; hardware key means attached to the computer system, the hardware key means for containing and executing a second part of the computer software wherein the second part of the computer software is decoded by the hardware key means before execution of the second part of the computer software; and processor means for executing the first part of the computer software and for communicating to the hardware key means to cause execution of the second part of the computer software within the hardware key means, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 32
Independent Claim 136 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: memory means within the computer system for containing a first part of the computer software; hardware key means attached to the computer system, the hardware key means for containing and executing a second part of the computer software wherein the second part of the computer software is decoded by the hardware key means before execution of the second part of the computer software; and processor means for executing the first part of the computer software and for communicating to the hardware key means to cause execution of the second part of the computer software within the hardware key means, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 33
Dependent Claim 47 words
The system of claim 21 wherein the hardware key means further comprises a decoding means connected to the hardware key means, wherein the decoding means decodes the second part of the computer software before execution of second part of the computer software in the hardware key means.
Claim 34
Dependent Claim 18 words
The system of claim 18 wherein the second part of the computer software comprises at least one subroutine.
Claim 35
Independent Claim 151 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: memory means within the computer system for containing a first part of the computer software; hardware key means attached to the computer system, the hardware key means for containing and executing a second part of the computer software wherein memory means within the hardware key means comprises only volatile memory means for storing the second part of the computer software, wherein contents of the volatile memory means are erased upon removing electrical power from the hardware key means; and processor means for executing the first part of the computer software and for communicating to the hardware key means to cause execution of the second part of the computer software within the hardware key means, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 36
Independent Claim 151 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: memory means within the computer system for containing a first part of the computer software; hardware key means attached to the computer system, the hardware key means for containing and executing a second part of the computer software wherein memory means within the hardware key means comprises only volatile memory means for storing the second part of the computer software, wherein contents of the volatile memory means are erased upon removing electrical power from the hardware key means; and processor means for executing the first part of the computer software and for communicating to the hardware key means to cause execution of the second part of the computer software within the hardware key means, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 37
Independent Claim 157 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: memory means within the computer system for containing a first part of the computer software; hardware key means attached to the computer system, the hardware key means for containing and executing a second part of the computer software wherein the second part of the computer software comprises machine instructions for erasing the second part of the computer software when the second part of the computer software has not received communications from the first part of the computer software within a predetermined amount of time; and processor means for executing the first part of the computer software and for communicating to the hardware key means to cause execution of the second part of the computer software within the hardware key means, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 38
Independent Claim 157 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: memory means within the computer system for containing a first part of the computer software; hardware key means attached to the computer system, the hardware key means for containing and executing a second part of the computer software wherein the second part of the computer software comprises machine instructions for erasing the second part of the computer software when the second part of the computer software has not received communications from the first part of the computer software within a predetermined amount of time; and processor means for executing the first part of the computer software and for communicating to the hardware key means to cause execution of the second part of the computer software within the hardware key means, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 39
Independent Claim 179 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a data receiver attached to the computer system and further attached to a transmission facility; a hardware key attached to the computer system and further attached to the data receiver, the hardware key for receiving a second part of the computer software from the data receiver, containing the second part of the computer software and executing the second part of the computer software, and wherein the second part of the computer software passes from the data receiver to the hardware key without passing through the memory within the computer system; a processor for executing the first part of the computer software contained within the memory and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 40
Independent Claim 179 words
A system for protecting computer software from unauthorized execution within a computer system, the system comprising: a memory within the computer system for containing a first part of the computer software; a data receiver attached to the computer system and further attached to a transmission facility; a hardware key attached to the computer system and further attached to the data receiver, the hardware key for receiving a second part of the computer software from the data receiver, containing the second part of the computer software and executing the second part of the computer software, and wherein the second part of the computer software passes from the data receiver to the hardware key without passing through the memory within the computer system; a processor for executing the first part of the computer software contained within the memory and for communicating to the hardware key to cause execution of the second part of the computer software within the hardware key, when the execution of the second part of the computer software is requested by the first part of the computer software.
Claim 41
Dependent Claim 26 words
The system of claim 26 wherein the first part of the computer software causes the data receiver to receive the second part of the computer software.
Claim 42
Dependent Claim 29 words
The system of claim 26 wherein the second part of the computer software is decoded by the hardware key before execution of the second part of the computer software.
Claim 43
Dependent Claim 44 words
The system of claim 28 wherein the hardware key further comprises a decoding device connected to the hardware key, wherein the decoding device decodes the second part of the computer software before execution of second part of the computer software in the hardware key.
Claim 44
Dependent Claim 18 words
The system of claim 26 wherein the second part of the computer software comprises at least one subroutine.
Claim 45
Dependent Claim 40 words
The system of claim 26 wherein memory within the hardware key comprises only volatile memory for storing the second part of the computer software, wherein contents of the volatile memory are erased upon removing electrical power from the hardware key.
Claim 46
Dependent Claim 43 words
The system of claim 26 wherein the second part of the computer software comprises machine instructions for erasing the second part of the computer software when the hardware key has not received communications from the computer system within a predetermined amount of time.
Claim 47
Dependent Claim 27 words
The system of claim 26 wherein the hardware key further comprises a battery powered portion of memory wherein the battery powered portion of memory contains control software.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-05-18 2001-11-17 2002-05-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-18 2005-11-17 2006-05-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-18 2009-11-17 2010-05-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag