Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
268 words
A processing system for executing a computer program with a first portion of the computer program executing in a first processor located at a first processing site and a second portion of the computer program executing in a second different processor located at a second different processing site wherein the first and second processing sites are physically separate and adapted to communicate over a network, the second processor at the second processing site comprising: (a) a code extraction processor to receive an original software program and to parse the original software program to provide a first program and a second program wherein said code extraction processor further comprises: (1) means for selecting a subset of inputs to the original program wherein said means for selecting a subset of inputs further comprises: means for identifying a plurality of execution paths in the original software program; means for identifying at least one input in each of the execution paths; and means for selecting predetermined ones of said at least one identified input in accordance with a predetermined criteria; and (2) means for identifying ones of a plurality of statements in the original software program influenced by the subset of inputs selected by said means for selecting; (b) a first storage device having the first program stored therein; (c) a second storage device having stored therein a server program which utilizes the second program; (d) an execution processor, coupled to said first and second storage devices, to execute the server program and the second program at the second processing site; and (e) means for transmitting the first program over a network.
Claim 2
Dependent Claim
268 words
A processing system for executing a computer program with a first portion of the computer program executing in a first processor located at a first processing site and a second portion of the computer program executing in a second different processor located at a second different processing site wherein the first and second processing sites are physically separate and adapted to communicate over a network, the second processor at the second processing site comprising: (a) a code extraction processor to receive an original software program and to parse the original software program to provide a first program and a second program wherein said code extraction processor further comprises: (1) means for selecting a subset of inputs to the original program wherein said means for selecting a subset of inputs further comprises: means for identifying a plurality of execution paths in the original software program; means for identifying at least one input in each of the execution paths; and means for selecting predetermined ones of said at least one identified input in accordance with a predetermined criteria; and (2) means for identifying ones of a plurality of statements in the original software program influenced by the subset of inputs selected by said means for selecting; (b) a first storage device having the first program stored therein; (c) a second storage device having stored therein a server program which utilizes the second program; (d) an execution processor, coupled to said first and second storage devices, to execute the server program and the second program at the second processing site; and (e) means for transmitting the first program over a network.
Claim 3
Dependent Claim
251 words
A processing system for executing a computer program with a first portion of the computer program executing in a first processor located at a first processing site and a second portion of the computer program executing in a second different processor located at a second different processing site wherein the first and second processing sites are physically separate and adapted to communicate over a network, the second processor at the second processing site comprising: (a) a code extraction processor to receive an original software program and to parse the original software program to provide a first program and a second program, said code extraction processor comprising: (1) means for selecting a subset of inputs to the original program; and (2) means for identifying ones of a plurality of statements in the original software program influenced by the subset of inputs selected by said means for selecting; (b) a first storage device having the first program stored therein; (c) a second storage device having stored therein a server program which utilizes the second program; (d) an execution processor, coupled to said first and second storage devices, to execute the server program and the second program at the second processing site; and (e) a code modification processor coupled to an input of said code extraction processor for receiving the original program and for modifying program code of the original program and for providing the modified original program to said code extraction processor; and (f) means for transmitting the first program over a network.
Claim 4
Dependent Claim
251 words
A processing system for executing a computer program with a first portion of the computer program executing in a first processor located at a first processing site and a second portion of the computer program executing in a second different processor located at a second different processing site wherein the first and second processing sites are physically separate and adapted to communicate over a network, the second processor at the second processing site comprising: (a) a code extraction processor to receive an original software program and to parse the original software program to provide a first program and a second program, said code extraction processor comprising: (1) means for selecting a subset of inputs to the original program; and (2) means for identifying ones of a plurality of statements in the original software program influenced by the subset of inputs selected by said means for selecting; (b) a first storage device having the first program stored therein; (c) a second storage device having stored therein a server program which utilizes the second program; (d) an execution processor, coupled to said first and second storage devices, to execute the server program and the second program at the second processing site; and (e) a code modification processor coupled to an input of said code extraction processor for receiving the original program and for modifying program code of the original program and for providing the modified original program to said code extraction processor; and (f) means for transmitting the first program over a network.
Claim 5
Dependent Claim
265 words
A secure software system comprising: (a) a first processing site including: a code extraction processor to receive an original software program and to parse the original software program to provide a first program and a second program wherein said code extraction processor further comprises means for selecting a subset of inputs of the original software program; and means for identifying statements of the original software program which are influenced by the inputs selected by said means for selecting wherein said means for selecting a subset of inputs further comprises means for identifying a plurality of execution paths in the original software program; means for identifying at least one input in each of the execution paths of the original software program; and means for selecting predetermined ones of the inputs to the original software program in accordance with a predetermined criteria; a first storage device having the first program stored therein; a second storage device having stored therein a server program which utilizes the first program; an execution processor, coupled to said first and second storage devices, to execute the second program generated by the transformation processor and the server program; and means for transmitting and receiving information over a network; (b) a second processing site including: a first storage device having the first program stored therein; and a processor for executing the first program generated by said code extraction processor; means for transmitting and receiving information over a network; and (c) a network, coupled between said first site and said second site for providing a communication channel between the server program and the first program.
Claim 6
Dependent Claim
265 words
A secure software system comprising: (a) a first processing site including: a code extraction processor to receive an original software program and to parse the original software program to provide a first program and a second program wherein said code extraction processor further comprises means for selecting a subset of inputs of the original software program; and means for identifying statements of the original software program which are influenced by the inputs selected by said means for selecting wherein said means for selecting a subset of inputs further comprises means for identifying a plurality of execution paths in the original software program; means for identifying at least one input in each of the execution paths of the original software program; and means for selecting predetermined ones of the inputs to the original software program in accordance with a predetermined criteria; a first storage device having the first program stored therein; a second storage device having stored therein a server program which utilizes the first program; an execution processor, coupled to said first and second storage devices, to execute the second program generated by the transformation processor and the server program; and means for transmitting and receiving information over a network; (b) a second processing site including: a first storage device having the first program stored therein; and a processor for executing the first program generated by said code extraction processor; means for transmitting and receiving information over a network; and (c) a network, coupled between said first site and said second site for providing a communication channel between the server program and the first program.
Claim 7
Dependent Claim
251 words
A secure software system comprising: (a) a first processing site including: a code extraction processor to receive an original software program and to parse the original software program to provide a first program and a second program wherein said code extraction processor further comprises means for selecting a subset of inputs of the original software program; and means for identifying statements of the original software program which are influenced by the inputs selected by said means for selecting; a first storage device having the first program stored therein; a second storage device having stored therein a server program which utilizes the first program; an execution processor, coupled to said first and second storage devices, to execute the second program generated by the transformation processor and the server program; and means for transmitting and receiving information over a network; wherein said first site further comprises a code modification processor coupled to the input of said code extraction processor for receiving the original software program and for modifying program code of the original software program and for providing a modified original software program to said code extraction processor; (f) a second processing site including: a first storage device having the first program stored therein; and a processor for executing the first program generated by said code extraction processor; means for transmitting and receiving information over a network; and (c) a network, coupled between said first site and said second site for providing a communication channel between the server program and the first program.
Claim 8
Dependent Claim
251 words
A secure software system comprising: (a) a first processing site including: a code extraction processor to receive an original software program and to parse the original software program to provide a first program and a second program wherein said code extraction processor further comprises means for selecting a subset of inputs of the original software program; and means for identifying statements of the original software program which are influenced by the inputs selected by said means for selecting; a first storage device having the first program stored therein; a second storage device having stored therein a server program which utilizes the first program; an execution processor, coupled to said first and second storage devices, to execute the second program generated by the transformation processor and the server program; and means for transmitting and receiving information over a network; wherein said first site further comprises a code modification processor coupled to the input of said code extraction processor for receiving the original software program and for modifying program code of the original software program and for providing a modified original software program to said code extraction processor; (f) a second processing site including: a first storage device having the first program stored therein; and a processor for executing the first program generated by said code extraction processor; means for transmitting and receiving information over a network; and (c) a network, coupled between said first site and said second site for providing a communication channel between the server program and the first program.
Claim 9
Independent Claim
167 words
A method for securing an original software program comprising a plurality of statements and being responsive to at least one input, said method comprising the steps of: (a) selecting a subset of said at least one input; (b) identifying ones of said plurality of statements which are influenced by said selected subset of said at least one input; (c) defining an abstract object class; (d) including at least one of the identified statements in the abstract object class; (e) generating a vendor server program which utilizes the abstract object class and which is adapted for execution in a first processor at a vendor site; (f) removing the identified statements included in the abstract object class from the software program to provide a lessee software program adapted for execution in a second processor located at a lessee site; and (g) inserting, into the lessee software program, program code which allows the lessee software program to communicate with the vendor server program during execution of the lessee software program.
Claim 10
Independent Claim
167 words
A method for securing an original software program comprising a plurality of statements and being responsive to at least one input, said method comprising the steps of: (a) selecting a subset of said at least one input; (b) identifying ones of said plurality of statements which are influenced by said selected subset of said at least one input; (c) defining an abstract object class; (d) including at least one of the identified statements in the abstract object class; (e) generating a vendor server program which utilizes the abstract object class and which is adapted for execution in a first processor at a vendor site; (f) removing the identified statements included in the abstract object class from the software program to provide a lessee software program adapted for execution in a second processor located at a lessee site; and (g) inserting, into the lessee software program, program code which allows the lessee software program to communicate with the vendor server program during execution of the lessee software program.
Claim 11
Dependent Claim
31 words
The method of claim 5 further comprising the step of: transmitting the lessee program to a lessee site; and storing the lessee program in a storage device at the lessee site.
Claim 12
Dependent Claim
38 words
The method of claim 6 further comprising the step of: including the abstract object class in a program accessible by the vendor server program; and storing the vendor server program in a storage device at a vendor site.
Claim 13
Dependent Claim
23 words
The method of claim 7 further comprising the step of storing the abstract object class in a storage device at the vendor site.
Claim 14
Dependent Claim
27 words
The method of claim 8 further comprising the step of storing the program which includes the abstract object class in a storage device at the vendor site.
Claim 15
Dependent Claim
42 words
The method of claim 6 wherein the at least one input is a plurality of inputs and the step of selecting a subset of the at least one input includes the steps of randomly selecting first ones of the plurality of inputs.
Claim 16
Dependent Claim
62 words
The method of claim 6 wherein the step of selecting a subset of said at least one input comprise the steps of: identifying a plurality of execution paths in the original software program; identifying at least one input in each of the execution paths in the original software program; and selecting predetermined ones of said inputs in accordance with a predetermined criteria.
Claim 17
Independent Claim
125 words
A method for securing an original program that is not dependent on any input, the method comprising the steps of: adding an arbitrary input request to the original program; modifying the original program to operate on new values which are a function of existing program values and values input in response to the arbitrary input request; identifying one or more new values; and rewriting code of identified new values into abstract objects; removing the implementation code of some or all of the abstract objects; replacing the removed code by message calls to a vendor server program; inserting program code into the vendor server program such that the vendor server program utilizes the abstract object classes; and adding a communication interface to the vendor server program.
Claim 18
Independent Claim
125 words
A method for securing an original program that is not dependent on any input, the method comprising the steps of: adding an arbitrary input request to the original program; modifying the original program to operate on new values which are a function of existing program values and values input in response to the arbitrary input request; identifying one or more new values; and rewriting code of identified new values into abstract objects; removing the implementation code of some or all of the abstract objects; replacing the removed code by message calls to a vendor server program; inserting program code into the vendor server program such that the vendor server program utilizes the abstract object classes; and adding a communication interface to the vendor server program.
Claim 19
Dependent Claim
32 words
The system of claim 2 wherein said means for selecting a subset of inputs further comprises means for randomly selecting first ones of a plurality of inputs to the original software program.
Claim 20
Dependent Claim
32 words
The system of claim 4 wherein said means for selecting a subset of inputs further comprises means for randomly selecting first ones of a plurality of inputs to the original software program.