← Back to Patent Explorer
US6308256B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Secure execution of program instructions provided by network interactions with processor

Assignee: Oracle America Inc
•
Filing: 1999-08-18
•
Granted: 2001-10-23
•
Expires: 2019-08-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract 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 CPU.

Inventors

  • 👤 Alan Folmsbee

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 23:04
CPC Classifications
G; G09; G09C; G09C1/00; G06; G06F; G06F21/00; G06F21/10; G06F21/101; G06F21/12; G06F21/121; G06F21/123; G06F21/70; G06F21/71; G06F21/72; G06F9/00; G06F9/06; G06F9/30; G06F9/30145; G06F9/3017; G06F9/30178; G06F9/38; G06F9/3867; H; H04; H04L; H04L9/00; H04L9/06; H04L9/08; H04L9/0816; H04L9/0838; H04L9/0841; H04L9/0844; H04L9/0894; G06F2207/00; G06F2207/72; G06F2207/7219; G06F2211/00; G06F2211/007; H04L2209/00; H04L2209/12; H04L2209/125; H04L2209/16; H04L2209/34

Claims Analysis

Total Claims: 47
Claim 1
Independent Claim 71 words
A particularly configurable processor for processing computer programs which are selectively operable on said particularly configurable processor, comprising: a memory defining a storage location for a key; an instruction decoder programmably configured for decoding encrypted instruction op codes when supplied with key information from said memory, without decrypting the encrypted op codes into standard op codes; and circuitry for terminating decoding in the absence of timely receipt of additional key information.
Claim 2
Dependent Claim 71 words
A particularly configurable processor for processing computer programs which are selectively operable on said particularly configurable processor, comprising: a memory defining a storage location for a key; an instruction decoder programmably configured for decoding encrypted instruction op codes when supplied with key information from said memory, without decrypting the encrypted op codes into standard op codes; and circuitry for terminating decoding in the absence of timely receipt of additional key information.
Claim 3
Dependent Claim 24 words
The processor of claim 1 , wherein the logic circuitry is reconfigurable, said reconfigurable logic circuitry calculating the results of execution of an instruction.
Claim 4
Dependent Claim 31 words
The processor of claim 2 , wherein the logic circuitry calculates the results of the execution of an instruction including provisions for accepting correct data operands and plausible wrong data operands.
Claim 5
Dependent Claim 71 words
The processor of claim 2 , wherein: the key is stored in more than one memory cell type including a Read Only Memory (ROM), an Electrically Erasable Programmable Read Only Memory (E 2 PROM), and a Random Access Memory (RAM); and a serial number in ROM which participates in allocation of logic gates and routing of signals, and communicated to the compiler to inform the compiler of custom allocation and routing.
Claim 6
Dependent Claim 37 words
The processor of claim 1 , wherein an output register for data results is able to contain both correct results and plausible wrong results, the results in word locations in the output register coordinated by the key.
Claim 7
Dependent Claim 62 words
The processor of claim 1 , further comprising: program instruction op codes provided in a pipeline architecture; and an information key established as instruction security commands at a plurality of steps in said pipeline architecture, wherein an arithmetic logic unit (ALU) provides variability of logic circuitry for execution of encrypted op codes or standard op codes that provide standard instruction operation types.
Claim 8
Dependent Claim 44 words
The processor of claim 1 , wherein: the key includes bits optionally expanded into a larger set of bits which control the instruction decoder, signal routing, and logic gate reconfiguration; and the key provides a capability of controlling signal routing, and logic gate reconfiguration.
Claim 9
Dependent Claim 37 words
The processor of claim 7 , further comprising an output register for data results able to contain both correct results and plausible wrong results which are in word locations in the output register coordinated by the key.
Claim 10
Dependent Claim 59 words
The processor of claim 8 , further comprising: a plurality of reconfigurable logic gates able to calculate results of execution of an instruction; said plurality of the logic gates including provisions for accepting correct data operands and plausible wrong data operands; and said plurality of the logic gates including provisions for outputting correct results along with plausible wrong results.
Claim 11
Dependent Claim 68 words
The processor of claim 9 , wherein: a plurality of the memories are dispersed within a layout; a plurality of reconfigurable logic gates able to calculate results of execution of an instruction; said plurality of the logic gates including provisions for accepting correct data operands and plausible wrong data operands; and said plurality of the logic gates including provisions for outputting correct results along with plausible wrong results.
Claim 12
Dependent Claim 50 words
The processor of claim 1 , further comprising: the key providing a capability of re-allocating memory resources and register resources; a serial number in ROM which participates in allocation of logic gates and routing of signals; and the serial number used in combination with the key in providing said capability.
Claim 13
Dependent Claim 23 words
The processor of claim 1 , wherein variations of data numeric representations are coordinated by the key and the encrypted instruction op codes.
Claim 14
Dependent Claim 45 words
The processor of claim 1 , wherein an instruction buffer contains logic which can route a subset of the instruction bits from bit location in the buffer to destination logic circuitry which reach a programmable instruction decoder and an instruction buffer interdependency checking logic block.
Claim 15
Dependent Claim 73 words
The processor of claim 1 , further comprising: logic circuitry configured to process data coded in various numeric representations and the logic circuitry able to accept results of the instruction execution using various numeric representations; logic circuitry configured to immediately process said coded data; and the data representation able to change several times during the execution of a program so that numeric encodings of input data operands and output data results can vary.
Claim 16
Dependent Claim 61 words
The processor of claim 1 , further comprising: program instruction op codes provided in a pipeline architecture; and information keys established as instruction security commands at a plurality of steps in said pipeline architecture, wherein an arithmetic logic unit (ALU) provides variability of logic circuitry for execution of encrypted op codes or standard op codes that provide standard instruction operation types.
Claim 17
Dependent Claim 24 words
The processor of claim 1 , wherein the logic circuitry is reconfigurable and including provisions for outputting correct results along with plausible wrong results.
Claim 18
Dependent Claim 39 words
The processor of claim 1 , wherein data and instructions are provided to a computer via program information includes an intentional introduction of errors which are correctable with error correction algorithms, said correction algorithms pre-selected according to the key.
Claim 19
Dependent Claim 74 words
The processor of claim 17 , further comprising: an instruction buffer which contains logic which can route a subset of the instruction bits from bit location in the buffer to destination logic gates which reach a programmable instruction decoder and an instruction buffer interdependency checking logic block; and said correction algorithms pre-selected according to long instruction words and changed on a periodic basis by codes provided in the instructions gathered into the instruction buffer.
Claim 20
Dependent Claim 227 words
The processor of claim 18 , wherein instruction buffer interdependency checking logic includes any combination of the following: multiplexers to select a subset of bits from each long instruction word in the instruction buffer to be logically combined to match a sequencer value; a sequencer incremented at times determined by the key and which is reset upon the occurrence of the sequencer reset code in the instruction buffer; distribution of bits for one encrypted op code across several long instruction words in the instruction buffer; distribution of several encrypted op codes around the long instruction words in the instruction buffer; a program counter which does not normally increment by one, but which increments by some other constant or variable amount determined by a serial number, the key, and the sequencer value so that encrypted op codes which will be used sequentially in time do not occur sequentially in the instruction buffer, and for which, the time sequential chosen op codes are selected by the multiplexer controlled by the key, the serial number, and the sequencer; error correction circuits controlled by the key, sequencer, and supplementary error correcting codes received from the instruction buffer by means of the multiplexers; and dependency validation codes received through the multiplexer of the instruction buffer checked by logic circuits that depend on the key, the serial number, instruction bits, and camouflage bits.
Claim 21
Dependent Claim 44 words
The processor of claim 17 , wherein dependency validation codes received through the multiplexer of the instruction buffer are checked by logic circuits that depend on the key, a serial number, instruction bits, and camouflage bits so that incorrect validation bits provide an alarm.
Claim 22
Dependent Claim 26 words
The processor of claim 20 , wherein upon receipt of said alarm, interdependency checking logic writes an audit code and is capable of terminating program execution.
Claim 23
Dependent Claim 119 words
The processor of claim 1 , further comprising: a plurality of storage locations for keys, with the keys further determining storage locations of satellite keys and satellite access flags, said locations intentionally varied; key-dependent storage of remote access approval flags, the remote access approval flags encoded so as to obscure the locations of said approval flags; the instruction decoder programmably configured for using a null key for a default unencrypted instruction set; and the instruction decoder programmably configured for selecting from any of several stored keys so that several independent encrypted and unencrypted programs may be executed sequentially by installing each different key when needed, which also reallocates memory and register resources that are securely partitioned from each other.
Claim 24
Dependent Claim 56 words
Method for processing computer programs selectively operable on one or more selected individual processors, comprising: programming an instruction decoder to decode encrypted instruction op codes, without decrypting them into standard op codes; using logic circuitry for requiring network handshaking; and providing additional key information through the network handshaking, said additional key information required for continued operation.
Claim 25
Dependent Claim 56 words
Method for processing computer programs selectively operable on one or more selected individual processors, comprising: programming an instruction decoder to decode encrypted instruction op codes, without decrypting them into standard op codes; using logic circuitry for requiring network handshaking; and providing additional key information through the network handshaking, said additional key information required for continued operation.
Claim 26
Dependent Claim 51 words
The method of claim 23 , further comprising: using the reconfigurable logic gates for calculating the results of execution of an instruction; the calculation of results of the execution of an instruction including accepting correct data operands and plausible wrong data operands; and outputting correct results along with plausible wrong results.
Claim 27
Dependent Claim 62 words
The method of claim 24 , further comprising: using at least a portion of the reconfigurable logic gates for calculating the results of the execution of an instruction; using said portion of the logic gates for accepting correct data operands and plausible wrong data operands; and using said portion of the logic gates for outputting correct results along with plausible wrong results.
Claim 28
Dependent Claim 50 words
The method of claim 24 , further comprising: providing a key shared with a compiler; encrypting standard instruction op codes with the compiler using the key; and expanding key bits in the key into a larger set of bits which control the instruction decoder, signal routing, and logic gate reconfiguration.
Claim 29
Dependent Claim 59 words
The method of claim 23 , further comprising: providing program instructions in a pipeline architecture; and establishing information keys as instruction security commands at a plurality of steps in said pipeline architecture, wherein an arithmetic logic unit (ALU) provides variability of logic gates for execution of encrypted op codes or standard op codes that provide standard instruction operation types.
Claim 30
Dependent Claim 20 words
The method of claim 23 , further comprising using the logic circuitry for requiring network handshaking on a periodic basis.
Claim 31
Dependent Claim 26 words
The method of claim 23 , further comprising using the logic circuitry for requiring network handshaking periodically based on time of a previous network handshaking procedure.
Claim 32
Dependent Claim 51 words
The method of claim 23 , further comprising: providing a key shared with a compiler, the key used by the compiler to encrypt standard instruction op codes into encrypted instruction op codes; and using the key to coordinate the variations of the data numeric representations and the encrypted instruction op codes.
Claim 33
Dependent Claim 22 words
The method of claim 30 , further comprising using the key to provide a capability of re-allocating memory resources and register resources.
Claim 34
Dependent Claim 36 words
The method of claim 23 , further comprising routing a subset of the instruction bits through an instruction buffer to destination logic gates, which reach a programmable instruction decoder and an instruction interdependency checking logic block.
Claim 35
Dependent Claim 22 words
The method of claim 23 , further comprising providing a choice of using encrypted instruction op codes or standard instruction op codes.
Claim 36
Dependent Claim 56 words
The method of claim 23 , further comprising: providing a key shared with a compiler; encrypting standard instruction op codes with the compiler using the key; and providing data and instructions to a computer via program information including an intentional introduction of errors correctable with error correction algorithms, said correction algorithms pre-selected according to the key.
Claim 37
Dependent Claim 81 words
The method of claim 23 , further comprising: providing a key shared with a compiler; encrypting standard instruction op codes with the compiler using the key; providing data and instructions to the computer via program information includes an intentional introduction of errors which are correctable with error correction algorithms, said correction algorithms pre-selected according to the key and long instruction words; and changing the correction algorithms on a periodic basis by codes hidden in the instructions gathered into an instruction buffer.
Claim 38
Dependent Claim 33 words
The method of claim 23 , further comprising: providing dependency validation codes buffer checked by logic circuits that depend on a key; and in the case of incorrect validation bits, providing an alarm.
Claim 39
Dependent Claim 21 words
The method of claim 33 , further comprising writing an audit code in response to said alarm and terminating program execution.
Claim 40
Dependent Claim 28 words
The method of claim 23 , further comprising: using logic for requiring network handshaking; and further using the network handshaking to provide additional key information for continued operation.
Claim 41
Dependent Claim 49 words
Method for compiling computer programs for operability on selected ones of individual processors, comprising: providing encrypted instruction op codes for execution by an instruction decoder to decode without decrypting into standard op codes; and providing additional key information through network handshaking, said additional key information required for continued operation.
Claim 42
Dependent Claim 49 words
Method for compiling computer programs for operability on selected ones of individual processors, comprising: providing encrypted instruction op codes for execution by an instruction decoder to decode without decrypting into standard op codes; and providing additional key information through network handshaking, said additional key information required for continued operation.
Claim 43
Dependent Claim 27 words
The method of claim 39 , further comprising: providing a key shared with a compiler; and encrypting standard instruction op codes with the compiler using the key.
Claim 44
Dependent Claim 17 words
The method of claim 40 , further comprising using a serial number in combination with the key.
Claim 45
Dependent Claim 23 words
The method of claim 39 , further comprising: providing dependency validation codes; and in the case of incorrect validation bits, providing an alarm.
Claim 46
Dependent Claim 43 words
A particularly configurable processor for processing computer programs which are selectively operable on said particularly configurable processor, characterized by: variable logic circuitry able to execute encrypted op codes; and logic for requiring network handshaking, the network handshaking further used to enable continued operation.
Claim 47
Dependent Claim 43 words
A particularly configurable processor for processing computer programs which are selectively operable on said particularly configurable processor, characterized by: variable logic circuitry able to execute encrypted op codes; and logic for requiring network handshaking, the network handshaking further used to enable continued operation.

References Cited (Backward Citations)

US4246638A Cited
US4446519A Cited
US4433207A Cited
US4573119A Cited
US4633388A Cited
US4882752A Cited
US5034980A Cited
US5007089A Cited
US5940504A Cited
EP1063585A2 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-10-22 2005-04-23 2005-10-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-10-22 2009-04-23 2009-10-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-10-22 2013-04-23 2013-10-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag