Method to prevent use of incorrect program version in a computer system
First Claim
1. A method of preventing an incorrect program from executing in a computer system, said method using a single processor of said system and said method assuming the one seeking to execute said program is authorized to execute said program, said method comprising the steps of:
- (a) encrypting with a linking means a load module, containing a correct program version to be protected and a respective synchronization key, with the synchronization key when one wishes to store the correct program version for future execution;
(b) storing with a linking means the respective synchronization key and the name of the load module in a table of a secure memory when one wishes to store the correct program version as in step (a);
(c) obtaining with a decryption facility a synchronization key corresponding to the name of a requested program to be executed from the table in the secure memory if one wishes to execute the requested program, which requested program was stored in the same manner as provided for in steps (a) and (b);
(d) decrypting with a decryption facility the load module putatively containing the requested program with the synchronization key obtained in step (c) if one wishes to execute the requested program, the load module in this step being encrypted as in step (a) before being decrypted as in this step;
(e) extracting with a decryption facility the synchronization key in the decrypted load module of step (d) if one wishes to execute the requested program;
(f) comparing with a decryption facility the synchronization key obtained in step (c) with the synchronization key extracted in step (e) if one wishes to execute the requested program; and
(g) allowing with a decryption facility the requested program, which was decrypted in step (d), to be loaded into main memory and executed if the synchronization keys compared in step (f) are found to have some predetermined relationship.
1 Assignment
0 Petitions
Accused Products
Abstract
A method prevents an incorrect program version from being executed by a computer system. More specifically, a synchronization key is contained in a load module and is used to encrypt that load module which also contains a protected program. The encrypted load module with the protected program and synchronization key therein is stored in auxiliary storage. The synchronization key and program name are then placed in a table in a secure memory. When the program is requested for execution, the synchronization key in the protected table corresponding to the program name is used to decrypt the load module. The synchronization key in the load module is then extracted and compared with the synchronization key which is stored in a protected table and associated with the protected program. If the two synchronization keys are the same, then the decrypted protected program is loaded into the main memory for execution.
230 Citations
4 Claims
-
1. A method of preventing an incorrect program from executing in a computer system, said method using a single processor of said system and said method assuming the one seeking to execute said program is authorized to execute said program, said method comprising the steps of:
-
(a) encrypting with a linking means a load module, containing a correct program version to be protected and a respective synchronization key, with the synchronization key when one wishes to store the correct program version for future execution; (b) storing with a linking means the respective synchronization key and the name of the load module in a table of a secure memory when one wishes to store the correct program version as in step (a); (c) obtaining with a decryption facility a synchronization key corresponding to the name of a requested program to be executed from the table in the secure memory if one wishes to execute the requested program, which requested program was stored in the same manner as provided for in steps (a) and (b); (d) decrypting with a decryption facility the load module putatively containing the requested program with the synchronization key obtained in step (c) if one wishes to execute the requested program, the load module in this step being encrypted as in step (a) before being decrypted as in this step; (e) extracting with a decryption facility the synchronization key in the decrypted load module of step (d) if one wishes to execute the requested program; (f) comparing with a decryption facility the synchronization key obtained in step (c) with the synchronization key extracted in step (e) if one wishes to execute the requested program; and (g) allowing with a decryption facility the requested program, which was decrypted in step (d), to be loaded into main memory and executed if the synchronization keys compared in step (f) are found to have some predetermined relationship. - View Dependent Claims (2, 3)
-
-
4. A method of preventing an incorrect program from executing in a computer system, said method using a single processor of said system and said method assuming the one seeking to execute said program is authorized to execute said program, said method comprising the steps of:
-
(a) encrypting a load module with a linking means, containing a correct program version to be protected and a respective synchronization key, with the synchronization key when one wishes to store the correct program version for future execution; (b) storing with a linking means the respective synchronization key and the name of the load module in a table of a secure memory when one wishes to store the correct program version as in step (a); (c) obtaining a with a decryption facility synchronization key corresponding to the name of a requested program to be executed from the table in the secure memory if one wishes to execute the requested program, which requested program was stored in the same manner as provided for in steps (a) and (b); (d) decrypting with a decryption facility the load module putatively containing the requested program with the synchronization key obtained in step (c) if one wishes to execute the requested program, the load module in this step being encrypted as in step (a) before being decrypted as in this step; (e) extracting with a decryption facility the synchronization key in the decrypted load module of step (d) if one wishes to execute the requested program; (f) comparing with a decryption facility the synchronization key obtained in step (c) with the synchronization key extracted in step (e) if one wishes to execute the requested program; and (g) loading the requested program, which was decrypted in step (d), in a main memory of the computer system for execution thereof, if the synchronization keys compared in step (f) are found to be the same.
-
Specification