Method and apparatus for remotely controlling and monitoring the use of computer software
First Claim
1. A method of protecting the security of a computer program comprising the steps of:
- selecting at least one portion of said computer program essential to the correct operation of the computer program, said computer program not operable without said portion;
encrypting said portion with a first encryption key utilized by an encryption means;
adding a decryption program to the operating system of a computer in which said computer program is to be run, said decryption program including a procedure for initiating the decryption of said portion of said computer program;
fetching the encrypted version of said portion of said computer program;
sending the encrypted version of said portion of said computer program to a decryption means associated with said computer in which said computer program is to be run;
decrypting said encrypted portion under the control of said decryption program to form a decrypted module, utilizing said first encryption key in said decryption means of said computer on which said computer program is to be run;
transferring said decrypted module from said decryption means to said computer for execution along with said computer program; and
deleting said decrypted module from said computer when execution of said computer program is complete, said decryption program initiating said deletion of said decrypted module.
0 Assignments
0 Petitions
Accused Products
Abstract
Remote control of the use of computer data is described in a system for renting computer software which derives use and billing information, prevents unauthorized use, maintains integrity of the software and controls related intercomputer communications. A user at a target computer "downloads" programs or data, via a telephone line and remote control modules, from a host computer. Usage of the programs or data by the target computer or other accounting data are recorded and stored and, at predetermined times, the host computer "uploads" the usage data for processing. Other features include: (1) software and usage security for rental programs; (2) a polynomial generator/checker for generating block check characters for assuring integrity of data transmitted and received; (3) a voice-data switch for switching between data communication and normal telephone communication; and (4) an audio amplifier and speaker for monitoring of activity on the communication line during data transfers.
-
Citations
32 Claims
-
1. A method of protecting the security of a computer program comprising the steps of:
-
selecting at least one portion of said computer program essential to the correct operation of the computer program, said computer program not operable without said portion; encrypting said portion with a first encryption key utilized by an encryption means; adding a decryption program to the operating system of a computer in which said computer program is to be run, said decryption program including a procedure for initiating the decryption of said portion of said computer program; fetching the encrypted version of said portion of said computer program; sending the encrypted version of said portion of said computer program to a decryption means associated with said computer in which said computer program is to be run; decrypting said encrypted portion under the control of said decryption program to form a decrypted module, utilizing said first encryption key in said decryption means of said computer on which said computer program is to be run; transferring said decrypted module from said decryption means to said computer for execution along with said computer program; and deleting said decrypted module from said computer when execution of said computer program is complete, said decryption program initiating said deletion of said decrypted module. - View Dependent Claims (2, 3, 4, 5, 6, 8)
-
-
9. A method of providing computer programs to authorized users on a rental basis, said method comprising the steps of:
-
storing in a host computer a plurality of computer programs available to be selected by authorized users at a target computer; establishing a telephone connection between said host computer and said target computer via a host remote control module and a target remote control module; selecting a computer program to be used on a rental basis at said target computer; selecting a key module of said selected computer program that is essential to the operation of said selected computer program, said selected computer program not operable without said key module; encrypting said key module in said host remote control module with a first encryption key; encrypting said first encryption key and transmitting said first encryption key to said target computer separately; downloading said selected computer program, including said encrypted key module, to said target remote control module along with an operating system modification routine; checking errors in said selected computer program and said operating system modification routine as received at said target remote controlmodule; retransmitting portions of said selected computer program and portions of said operating system modification routine if errors are detected; modifying the operating system of said target computer utilizing said operating system modification routine, said operating system modification routine including a procedure for initiating the decryption of said key module; disconnecting said telephone connection between said host computer and said target computer; decrypting said first decryption key at said target computer; fetching said encrypted key module of said computer program; sending said encrypted key module of said computer program to a decryption means associated with said target computer; decrypting said encrypted key module under the control of said operating system modification routine to form a decrypted key module, utilizing said first encryption key in said decryption means associated with said target computer; transferring said decrypted key module from said decryption means to said target computer for execution as part of said computer program; and deleting said decrypted key module from said target computer when execution of said computer program is complete, said operating system modification routine initiating said deletion of said decrypted key module.
-
-
10. Apparatus for remotely controlling and monitoring the use of computer programs comprising:
-
a host computer having means for storage of a plurality of computer programs, and having communicating means for communicating simultaneously with a plurality of target computers for downloading said computer programs to said target computers and for monitoring the use of said computer programs by said target computers, said host computer remotely controlling said target computers to transmit at predetermined times data indicating elapsed time of use of downloaded computer programs; said communicating means including a telephone network, a host remote control module, and a target remote control module, said telephone network being accessible by a dial-up means at said host computer and by a dial-up means at said target computer; said target remote control module having a connection to a power source so that power to said target computer may be remotely controlled by said host computer; a telephone connected to said target remote control module and being usable for telephone communications when said telephone network is not in use; said target remote control module being provided with an audio amplifier and speaker for connection to said telephone network; said target remote control module being provided with means connected to said telephone network for switching between voice and data modes of communication capability; said host remote control module and said target remote control module including a microprocessor for control thereof, a program memory for storage of a program executed by said microprocessor in control of said remote control module, a read/write memory, a real time clock for enabling the remote control module to provide elapsed time of use of downloaded computer programs, a priority interrupt control circuit coupled to said microprocessor, a plurality of light emitting diodes for indicating status conditions within said remote control module, a modem for sending and receiving data over said telephone network; said host remote control module and said target remote control module including a data encryption/decryption module for permitting transmission of computer programs and billing information in encrypted form over said telephone network; said host remote control module and said target remote control module including a polynomial generator/checker that generates block check characters for each block of data transmitted over said telephone network to detect errors in transmission, said remote control modules including means for retransmission of data blocks upon detection of errors; said host remote control module and said target remote control module including means for automatically downloading computer programs from said host computer to said target computer over said telephone network during off-peak hours, and for uploading elapsed time of use of downloaded computer programs from said target computer to said host computer over said telephone network during off-peak hours; and said target remote control unit including security means for monitoring execution of downloaded computer programs and destroying a decryption key under predetermined conditions.
-
-
11. Apparatus for controlling and monitoring the use of a computer program comprising:
-
a host computer having means for storage of computer programs, and having communicating means for communicating simultaneously with a plurality of target computers for downloading said computer programs to said target computers and for monitoring the use of said computer programs by said target computers, said host computer controlling said target computers to transmit at predetermined times data indicating elapsed time of use of downloaded computer programs; said communicating means including a host remote control module and a target remote control module; said target remote control module having a connection to a power source so that power to said target computer may be controlled by said host computer; said host remote control module and said target remote control module including a microprocessor for control thereof, a program memory for storage of a program executed by said microprocessor in control of said remote control module, a read/write memory, a real time clock for enabling the remote control module to provide elapsed time of use of downloaded computer programs, a priority interrupt control circuit coupled to said microprocessor, a modem for sending and receiving data over said communicating means; said host remote control module and said target remote control module including a data encryption/decryption module for permitting transmission of computer programs and billing information in encrypted form over said communicating means; said host remote control module and said target remote control module including a polynomial generator/checker that generates block check characters for each block of data transmitted over said communicating means to detect errors in transmission, said remote control modules including means for retransmission of data blocks upon detection of errors; said host remote control module and said target remote control module including means for automatically downloading computer programs from said host computer to said target computer over said communicating means during off-peak hours, and for uploading elapsed time of use of downloaded computer programs from said target computer to said host computer over said communicating means during off-peak hours; and said target remote control unit including security means for monitoring execution of downloaded computer programs and destroying a decryption key under predetermined conditions.
-
-
12. Apparatus for remotely controlling and monitoring the use of a computer program comprising:
-
first and second computers, said first computer having means for storage of a plurality of computer programs, and having communicating means for communicating with said second computer for downloading said computer programs to said second computer and for monitoring the use of said computer programs by said second computer, said first computer remotely controlling said second computer to transmit at predetermined times data indicating elapsed time of use of said downloaded computer programs; said communicating means including a first transmitting and receiving means at said first computer, and a second transmitting and receiving means at said second computer; said first transmitting and receiving means and said second transmitting and receiving means including a microprocessor for control thereof, a program memory for storage of a program executed by said microprocessor, a read/write memory, a real time clock for enabling measurement of elapsed time of use of said downloaded computer programs, a priority interrupt control circuit coupled to said microprocessor, means for indicating status conditions of said communicating means, and a modem for sending and receiving data; said first transmitting and receiving means coupled to said first computer for transmitting a program and associated program information from said first computer and for receiving said data indicating elapsed time of use to be supplied to said first computer; said second transmitting and receiving means coupled to said first transmitting and receiving means and to said second computer for receiving the program and associated program information transmitted from said first transmitting and receiving means and for transmitting said data indicating elapsed time of use to said first transmitting and receiving means; encryption means coupled to said first computer and to said first transmitting and receiving means for encrypting at least one preselected portion of the program and associated program information to be transmitted from said first transmitting and receiving means to form an encrypted information module, said encryption means including a first encryption key for encrypting said encrypted information module, said preselected portion including at least one portion of a computer program essential to the correct execution thereof; decryption means coupled to said second transmitting and receiving means for decrypting said encrypted information module to form a decrypted information module, said decryption means including a copy of said first encryption key for decrypting said encrypted information module; and transfer means for transferring said decrypted information module to said second computer for execution by said second computer and for deleting said decrypted information module from said second computer when execution by said second computer of the received program and program information is entirely completed. - View Dependent Claims (7, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. In a system having a central means for storage of a plurality of computer programs, and having communicating means for communicating with a computer for downloading said computer programs to said computer and for monitoring the use of said computer programs by said computer, said computer being controlled to transmit at predetermined times data indicating elapsed time of use of downloaded computer programs, a remote control device for controlling and monitoring the use of said downloaded computer programs that include encrypted portions in said computer, said remote control device comprising:
-
a microprocessor for control thereof, a program memory for storage of a program executed by said microprocessor in control of said remote control device, a read/write memory, a real time clock for enabling said remote control device to provide elapsed time of use of said downloaded computer programs, a priority interrupt control circuit coupled to said microprocessor, means for indicating status conditions within said remote control device, and a modem for sending and receiving data; first coupling means coupling said remote control device to said computer for transferring preselected portions of said computer programs that include encrypted portions between said remote control device and said computer; monitoring means coupled to said first coupling means for monitoring usage of said computer programs in said computer and for developing time accounting data relative to said usage; and decryption means coupled to said first coupling means for decrypting preselected encrypted portions of said computer programs, said decryption means including a first encryption key for use by the decryption means in decrypting said preselected encrypted portions of said computer programs, said first coupling means transferring said preselected encrypted portions of said computer programs from said computer to said decryption means when said computer programs are loaded into said computer, said decryption means decrypting said preselected encrypted portions of said computer programs, said first coupling means transferring said decrypted preselected portions of said computer programs from said decryption means to said computer for execution, said monitoring means monitoring the usage of said computer programs from the point in time of the transfer of said decrypted preselected portions of said computer programs from said decryption means to said computer. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification