Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

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.

InventorsThomas H. Williams, Claude T. Baggett
Original AssigneeCable Television Laboratories, Inc.
Current U.S. Classification705/55; 705/57
International Classification: H04L 932

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US4578531Jun 9, 1982Mar 25, 1986AT&T Bell LaboratoriesEncryption system key distribution method and apparatus
US4683553Feb 5, 1986Jul 28, 1987Cii Honeywell Bull (Societe Anonyme)Method and device for protecting software delivered to a user by a supplier
US4819267Jun 9, 1987Apr 4, 1989Thumbscan, Inc.Solid state key for controlling access to computer systems and to computer software and/or for secure communications
US4944008Feb 18, 1988Jul 24, 1990Motorola, Inc.Electronic keying scheme for locking data
US4959861Jul 13, 1988Sep 25, 1990Security system for computer software
US5083309Nov 16, 1990Jan 21, 1992Schlumberger IndustriesMethod and a system enabling software to be run securely
US5166886Feb 12, 1992Nov 24, 1992System to demonstrate and sell computer programs
US5212729Jan 22, 1992May 18, 1993Computer data security device and method
US5222133Oct 17, 1991Jun 22, 1993Wayne W. Chou
Richard Erett
Method of protecting computer software from unauthorized execution using multiple keys
US5222134Apr 9, 1991Jun 22, 1993Tau Systems CorporationSecure system for activating personal computer software at remote locations
US5276735Apr 17, 1992Jan 4, 1994Secure Computing CorporationData enclave and trusted path system
US5343524Jun 21, 1991Aug 30, 1994Intelligent security device
US5379342Jan 7, 1993Jan 3, 1995International Business Machines Corp.Method and apparatus for providing enhanced data verification in a computer system
US5400403Aug 16, 1993Mar 21, 1995RSA Data Security, Inc.Abuse-resistant object distribution system and method

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US5940506Dec 11, 1997Aug 17, 1999Inventec CorporationMethod of using a hand-held device to protect information stored in a computer system
US6009543Feb 20, 1997Dec 28, 1999Massachusetts Institute of TechnologySecure software system and related techniques
US6070171May 15, 1998May 30, 2000Palantir Software, Inc.
MicroMind, Inc.
Method and system for copy-tracking distributed software featuring tokens containing a key field and a usage field
US6289450May 28, 1999Sep 11, 2001Authentica, Inc.Information security architecture for encrypting documents for remote access while maintaining access control
US6304972Jan 3, 2000Oct 16, 2001Massachusetts Institute of TechnologySecure software system and related techniques
US6339825Jul 18, 2001Jan 15, 2002Authentica, Inc.Method of encrypting information for remote access while maintaining access control
US6343280Dec 15, 1998Jan 29, 2002Distributed execution software license server
US6449721Nov 1, 2001Sep 10, 2002Authentica Security Technologies, Inc.Method of encrypting information for remote access while maintaining access control
US6523119Dec 4, 1996Feb 18, 2003Rainbow Technologies, Inc.Software protection device and method
US6681212Apr 21, 2000Jan 20, 2004Internet-based automated system and a method for software copyright protection and sales
US6704872Apr 28, 1999Mar 9, 2004International Business Machines CorporationProcessor with a function to prevent illegal execution of a program, an instruction executed by a processor and a method of preventing illegal execution of a program
US6721891Mar 29, 1999Apr 13, 2004Activcard Ireland LimitedMethod of distributing piracy protected computer software
US6978376Dec 15, 2000Dec 20, 2005Authentica, Inc.Information security architecture for encrypting documents for remote access while maintaining access control
US7024564Nov 22, 2002Apr 4, 2006SafeNet, Inc.Software protection device and method
US7032113Apr 27, 2001Apr 18, 2006Moldflow Ireland, Ltd.Network enabled application software system and method
US7058597Aug 11, 1999Jun 6, 2006Digital River, Inc.Apparatus and method for adaptive fraud screening for electronic commerce transactions
US7062584Jul 12, 2000Jun 13, 2006Thomson LicensingMethod and apparatus for supporting two different types of integrated circuit cards with a single connector
US7165051Feb 22, 2005Jan 16, 2007Digital River, Inc.Electronic commerce system and method for detecting fraud
US7174466Jun 25, 2002Feb 6, 2007Sas ValidyMethod to protect software against unwanted use with a “detection and coercion” principle
US7181758Dec 19, 2002Feb 20, 2007Data Innovation, L.L.C.Information distribution and processing system
US7269740Jun 25, 2002Sep 11, 2007SAS ValidyMethod to protect software against unwanted use with a “variable principle”
US7272725Jun 25, 2002Sep 18, 2007SAS ValidyMethod to protect software against unwanted use with a “temporal dissociation” principle
US7343494Jun 25, 2002Mar 11, 2008SAS ValidyMethod to protect software against unwanted use with a “renaming” principle
US7360252Mar 9, 2000Apr 15, 2008Macrovision CorporationMethod and apparatus for secure distribution of software
US7396257May 26, 2005Jul 8, 2008ITT Manufacturing Enterprises, Inc.Computer input/output (I/O) connector assembly having a security circuit disposed therein
US7433685Feb 25, 2002Oct 7, 2008Swisscom Mobile AGOrder method
US7434064Jun 25, 2002Oct 7, 2008Sas ValidyMethod to protect software against unwanted use with a “elementary functions” principle
US7458100Jan 14, 2004Nov 25, 2008Aladdin Europe GmbHAdding copy protection to a computer program
US7458102Aug 17, 2004Nov 25, 2008EMC CorporationInformation security architecture for remote access control using non-bidirectional protocols
US7487129Sep 22, 2005Feb 3, 2009Method and apparatus for the distribution of digitised information on demand
US7502940Jun 25, 2002Mar 10, 2009SAS ValidyMethod to protect software against unwanted use with a “conditional branch” principle
US7508789Jul 9, 2007Mar 24, 2009Data Innovation LLCInformation distribution and processing system
US7522554Jul 9, 2007Apr 21, 2009Data Innovation LLCInformation distribution and processing system
US7617124Jan 27, 2000Nov 10, 2009Digital River, Inc.Apparatus and method for secure downloading of files
US7627750Sep 2, 2004Dec 1, 2009Data Innovation, LLCInformation distribution and processing system
US7830830Jul 9, 2007Nov 9, 2010Data Innovation LLCInformation distribution and processing system
US7836301Mar 10, 2004Nov 16, 2010Computer program for securely viewing a file
US7840176Dec 22, 2006Nov 23, 2010Email Link CorporationInformation distribution and processing system
US7881972Oct 12, 2006Feb 1, 2011Digital River, Inc.Electronic commerce system and method for detecting fraud
US7991347Feb 9, 2002Aug 2, 2011Data Innovation LLCSystem and method for accessing set of digital data at a remote site
US8050980Sep 29, 2009Nov 1, 2011Digital River, Inc.Secure downloading of a file from a network system and method
USRE41186Sep 9, 2004Mar 30, 2010EMC CorporationMethod of encrypting information for remote access while maintaining access control
USRE42861Apr 7, 2006Oct 18, 2011Activcard Ireland, Ltd.Method of distributing piracy protected computer software

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.

2. 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.

3. 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.

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.

5. 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.

6. The system of claim 1 wherein the second part of the computer software comprises at least one subroutine.

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.

11. 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.

12. The method of claim 11 further comprising the step of performing the decoding within a decoding device attached to the hardware key processor device.

13. 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.

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.

17. 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.

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.

19. 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.

20. 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.

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.

22. 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.

23. The system of claim 18 wherein the second part of the computer software comprises at least one subroutine.

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.

27. 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.

28. 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.

29. 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.

30. The system of claim 26 wherein the second part of the computer software comprises at least one subroutine.

31. 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.

32. 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.

33. 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.