Secure execution of program instructions provided by network...

Electrical computers and digital processing systems: processing – Instruction decoding – Decoding instruction to accommodate plural instruction...

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C712S037000, C712S208000, C712S226000, C712S248000, C713S190000

Reexamination Certificate

active

06308256

ABSTRACT:

FIELD OF THE INVENTION
This invention relates to a system for copy and use protection of information which incorporates computer program instructions. More specifically, it relates to network transfer of program information which is secured for use with selected processors.
BACKGROUND OF THE INVENTION
One problem with the use of public networks for transfer of software is the difficulty in preventing unauthorized use of the software. In cases where the purpose of the software is to provide access to services, there is a strong incentive for adversaries to attempt to enable the software for such unauthorized use.
To protect computer software, there is accordingly often a need to restrict its use. This may be accomplished by end user agreements, wherein the user agrees to only use the software on one or more agreed upon computers. In other cases, the software can be freely copied, so that piracy restrictions are accomplished either by end user agreement or by simple techniques such as the requirement to use a product serial number to enable use of the software. While this may discourage software piracy and copying, it does not completely prevent a determined software pirate from reproducing the program along with one or more enabling serial numbers or keys.
It is possible to specifically identify individual CPUs. In that way, each CPU can be separately identified by a serial number encoded into the CPU. Identification can be accomplished by laser marking of the CPU package with a serial number. Further, it is possible to provide a serial number which can be read out by the end user during execution with appropriate instructions.
It is possible to provide more elaborate protective systems for encoding the software, by use of proprietary hardware components for example, or even by requiring the end user to comply with registration requirements in order to enable software operation. In that respect, the encryption scheme for the program ensures that the program is executable in unencrypted form, at least with respect to the instruction sets provided to the CPU. In other words, the instructions provided to the CPU are in a form that is understandable by the CPU prior to CPU execution. Thus, it is easy for an unauthorized user to determine what is necessary to operate the programs successfully.
It is often desired to provide software and updates of software to end users in such a manner that the software is transferred through public channels, such as the Internet. To provide such software in restricted form, it is desired to provide security to the distributor of the software so that the software is not subject to unauthorized use. In particular, if software is shipped via public or private channels, it is desired that the end user of the software can only use the software on the end user's specified computer, and that the software not be willingly or unwillingly shared by the end user. By computer, it is intended that this includes personal computers, smart cards, work stations, dedicated CPUs embedded in hardware appliances, and any other device in which integrated circuit (IC) microprocessors may be used.
In some programs, the cost of the programs to the end user is such that it becomes economical for third parties to determine what is necessary to circumvent restrictions on use by unauthorized persons. Therefore, it is desired to make the unauthorized duplication or use of a program uneconomical. In order to do that, it is desired to provide an encryption scheme which prevents unauthorized persons from “attacking” the encryption of the software through analysis of the input and output of user commands and instruction sets from the software. It is further desired to provide a software encryption technique in which there are no external indicia of a decryption technique which can be used to analyze the encryption of the software. It is further desired that software be encrypted in such a manner that it is unnecessary to decrypt the software in order to accomplish execution of the software.
SUMMARY OF THE INVENTION
According to the invention, a particularly configurable microprocessor is used for processing computer programs which are selectively operable on that particular processor. The microprocessor includes a storage location for a key, and an instruction decoder which is programmable to decode encrypted instruction op codes when supplied with key information, without decrypting the op codes into standard op codes. Logic circuitry is used to require network handshaking, and the network handshaking is used to provide additional key information for continued operation the microprocessor.
More particularly according to the invention, network handshaking is used in association with computer programs which are selectively operable on a particularly configurable processor. An instruction decoder is programmable so that it decodes encrypted instruction op codes, without decrypting them into standard op codes. Logic circuits establish a requirement for network handshaking, and the network handshaking provides additional key information for continued operation the microprocessor
According to one aspect of the invention, a CPU is provided with an ability to modify its operation in accordance with an encryption key. When a program is compiled, the program is modified in order that execution may be performed with the CPU with its operation modified. As a result, it is unnecessary to decrypt the program into standard op codes prior to execution. The keyed program operation permits secure transfer of program data through open channels such as the Internet. A programmable instruction decoder programmable decodes encrypted instruction op codes, without decrypting them into standard op codes. Logic is used to accomplish network handshaking. The network handshaking further used to provide additional key information for continued operation the microprocessor.
According to a further aspect of the invention, a CPU is provided with an ability to modify its operation in accordance with an encryption key. When a program is compiled, the program is modified in order that execution may be performed with the CPU with its operation modified. As a result, it is unnecessary to decrypt the program into standard op codes prior to execution. The keyed program operation permits secure transfer of program data through open channels such as the Internet. A programmable instruction decoder programmable decodes encrypted instruction op codes, without decrypting them into standard op codes. Logic is used to accomplish network handshaking. The network handshaking further used to provide additional key information for continued operation the microprocessor.
According to the invention, keyed program operation permits secure transfer of program data through open channels such as the Internet. A programmable instruction decoder programmable decodes encrypted instruction op codes, without decrypting them into standard op codes. Logic is used to accomplish network handshaking. The network handshaking further used to provide additional key information for continued operation the microprocessor.
According to a further aspect of the invention, computer programs are compiled for operability on a particular processors. Encrypted instruction op codes are provided for execution by an instruction decoder to decode without decrypting into standard op codes. Additional key information provided through network handshaking is used to permit continued operation the microprocessor.
In one embodiment, a microprocessor uses a programmable instruction decoder to decode encrypted instruction op codes. The decoding is accomplished without decrypting the op codes and the logic gates of the logic circuitry immediately process data upon receipt without prior decryption. The data representation of the op codes is changeable during the execution.
A secure key is used in configuring both the encrypted software with a compiler and the microprocessor system executing the encrypted software so that the instructions provided by the compiler are

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Secure execution of program instructions provided by network... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Secure execution of program instructions provided by network..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Secure execution of program instructions provided by network... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2602797

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.