Method for protecting publicly distributed software
First Claim
1. 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.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
33 Claims
-
1. 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. - View Dependent Claims (2, 3, 6)
-
-
4. 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. - View Dependent Claims (5)
-
-
7. 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.
-
-
8. 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.
-
-
9. 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.
-
-
10. 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. - View Dependent Claims (11, 12, 13, 17)
-
-
14. 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.
-
-
15. 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.
-
-
16. 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.
-
-
18. 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. - View Dependent Claims (19, 20, 23)
-
-
21. 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. - View Dependent Claims (22)
-
-
24. 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.
-
-
25. 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.
-
-
26. 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. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
-
Specification