← Back to Patent Explorer
EP0297347A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Method to prevent use of incorrect program version in a computer system

Assignee: International Business Machines Corp
•
Filing: 1988-06-14
•
Granted: —
•
Expires: 2008-06-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method to prevent an incorrect program version from being executed by a computer system. More specifically, a synchronization key (29) is contained in a load module (11) and is used to encrypt that load module which also contains a protected program. The encrypted load module with the protected program and synchroniza­tion key (29) therein is stored in auxiliary storage. The synchronization key and program name are then placed in a table (15) 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 synchroni­zation 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.

Inventors

  • 👤 Vincent Joseph Cina

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-08 04:21
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/50; G06F21/51; G06F2221/00; G06F2221/21; G06F2221/2107

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 262 words
A method of preventing an incorrect program version from executing in a computer system, comprising the steps of: a) encrypting a load module (11), containing a correct program version to be protected and a respective synchronization key (29), with the synchronization key (29) when one wishes to store the correct program version for future execution; b) storing the respective synchronization key (29) and the name of the load module (11) in a table (15) of a secure memory when one wishes to store the correct program version as in step (a); c) obtaining a synchronization key (29) corres­ponding to the name of a requested program to be executed from the table (15) 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 the load module putatively con­taining 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 the synchronization key in the decrypted load module of step (d) if one wishes to execute the requested program; f) comparing the synchronization key obtained in step (c) with the synchronization key ex­tracted in step (e) if one wishes to execute the requested program; and g) allowing the requested program, which was decrypted in step (d), to be executed if the synchronization keys compared in step (f) are found to have some predetermined relation­ship.
Claim 2
Independent Claim 262 words
A method of preventing an incorrect program version from executing in a computer system, comprising the steps of: a) encrypting a load module (11), containing a correct program version to be protected and a respective synchronization key (29), with the synchronization key (29) when one wishes to store the correct program version for future execution; b) storing the respective synchronization key (29) and the name of the load module (11) in a table (15) of a secure memory when one wishes to store the correct program version as in step (a); c) obtaining a synchronization key (29) corres­ponding to the name of a requested program to be executed from the table (15) 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 the load module putatively con­taining 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 the synchronization key in the decrypted load module of step (d) if one wishes to execute the requested program; f) comparing the synchronization key obtained in step (c) with the synchronization key ex­tracted in step (e) if one wishes to execute the requested program; and g) allowing the requested program, which was decrypted in step (d), to be executed if the synchronization keys compared in step (f) are found to have some predetermined relation­ship.
Claim 3
Dependent Claim 19 words
2) A method as recited in claim 1, wherein the load module is stored in a load library (14).
Claim 4
Dependent Claim 40 words
3) A method as recited in claim 2, wherein the load library (14) comprises a partitioned data set directory with each entry of the directory having an attribute field (42) to indicate whether a corresponding program is a protected program.
Claim 5
Dependent Claim 26 words
4) A method as recited in claim 1, wherein the synchronization key (29) is developed from a random number (17) generated internally by the computer system.
Claim 6
Dependent Claim 41 words
5) A method as recited in claim 1, wherein the synchronization key (29) corresponding to the requested program is obtained by accessing the protected table (15) by using a table look up search algorithm using program name columns as key fields.
Claim 7
Dependent Claim 270 words
6) A method of preventing an incorrect program from executing in a computer system, comprising the steps of: a) encrypting a load module (11), containing a correct program version (26) to be protected and a respective synchronization key (29), with the synchronization key (29) when one wishes to store the correct program version for future execution; b) storing the respective synchronization key (29) and the name of the load module (11) in a table (15) of a secure memory when one wishes to store the correct program version as in step (a); c) obtaining a synchronization key (29) corres­ponding to the name of a requested program to be executed from the table (15) 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 the load module putatively con­taining 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 the synchronization key in the decrypted load module of step (d) if one wishes to execute the requested program; f) comparing the synchronization key obtained in step (c) with the synchronization key ex­tracted in step (e) if one wishes to execute the requested program; and g) loading the requested program, which was decrypted in step (d), in the main memory of the computer system for execution thereof, if the synchronization keys compared in step (f) are found to be the same.
Claim 8
Dependent Claim 270 words
6) A method of preventing an incorrect program from executing in a computer system, comprising the steps of: a) encrypting a load module (11), containing a correct program version (26) to be protected and a respective synchronization key (29), with the synchronization key (29) when one wishes to store the correct program version for future execution; b) storing the respective synchronization key (29) and the name of the load module (11) in a table (15) of a secure memory when one wishes to store the correct program version as in step (a); c) obtaining a synchronization key (29) corres­ponding to the name of a requested program to be executed from the table (15) 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 the load module putatively con­taining 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 the synchronization key in the decrypted load module of step (d) if one wishes to execute the requested program; f) comparing the synchronization key obtained in step (c) with the synchronization key ex­tracted in step (e) if one wishes to execute the requested program; and g) loading the requested program, which was decrypted in step (d), in the main memory of the computer system for execution thereof, if the synchronization keys compared in step (f) are found to be the same.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag