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

Secure processor with external memory using block chaining and block re-ordering

Assignee: Google Technology Holdings LLC
•
Filing: 1997-10-10
•
Granted: 2000-05-09
•
Expires: 2017-10-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A scrambled data transmission is descrambled by communicating encrypted program information and authentication information between an external storage device and block buffers of a secure circuit. The program information is communicated in block chains to reduce the overhead of the authentication information. The program information is communicated a block at a time, or even a chain at a time, and stored temporarily in block buffers and a cache, then provided to a CPU to be processed. The blocks may be stored in the external storage device according to a scrambled address signal, and the bytes, blocks, and chains may be further randomly re-ordered and communicated to the block buffers non-sequentially to obfuscate the processing sequence of the program information. Program information may be also be communicated from the secure circuit to the external memory. The program information need not be encrypted but only authenticated for security.

Inventors

  • 👤 Brant Candelore
  • 👤 Eric Sprunk

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 09:12
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F21/00; G06F21/70; G06F21/71; G06F21/72; G06F12/00; G06F12/14; G06F12/1408; G06F21/10; G06F21/12; G06F21/14; G06F21/60; G06F21/606; G06F21/78; G06F2207/00; G06F2207/72; G06F2207/7219

Claims Analysis

Total Claims: 65
Claim 1
Independent Claim 166 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; and a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; wherein: the first block chain comprises authentication data derived from the group of blocks of program information; and said secure circuit comprises an authentication circuit that is responsive to said at least one block buffer for processing the first block chain to verify the authentication data thereof prior to the program information being communicated to the CPU.
Claim 2
Independent Claim 166 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; and a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; wherein: the first block chain comprises authentication data derived from the group of blocks of program information; and said secure circuit comprises an authentication circuit that is responsive to said at least one block buffer for processing the first block chain to verify the authentication data thereof prior to the program information being communicated to the CPU.
Claim 3
Dependent Claim 34 words
The apparatus of claim 1, wherein: said block chain is a simple block chain such that said group of blocks in said first block chain are processed substantially in parallel by said authentication circuit.
Claim 4
Dependent Claim 73 words
The apparatus of claim 1, wherein: said first block chain and a subsequent second block chain of said program information are communicated between the external storage device and said at least one block buffer; and said authentication circuit is adapted to authenticate at least a portion of the program information of said first block chain while at least a portion of said second block chain is being communicated over said first communication path.
Claim 5
Dependent Claim 63 words
The apparatus of claim 1, wherein: said first communication path is adapted to communicate blocks of program information from said storage device to said at least one buffer in a second chain; and said authentication circuit is adapted to authenticate program information from at least a portion of said first block chain and at least a portion of said second chain substantially concurrently.
Claim 6
Dependent Claim 35 words
The apparatus of claim 1, further comprising: a cache arranged in said second communication path which is adapted to temporarily store the authenticated program information before the authenticated program information is provided to said CPU.
Claim 7
Dependent Claim 18 words
The apparatus of claim 1, further comprising: means for detecting an illegal operational code in the program information.
Claim 8
Dependent Claim 20 words
The apparatus of claim 1, wherein: at least part of said program information is hashed to provide said block chain.
Claim 9
Dependent Claim 42 words
The apparatus of claim 1, further comprising: address generating means for providing addressing information to the external storage device for communicating said blocks of program information from the external storage device to said at least one block buffer in a desired sequence.
Claim 10
Dependent Claim 24 words
The apparatus of claim 1, wherein said program information comprises a plurality of strings which are to be processed in succession by said CPU.
Claim 11
Dependent Claim 23 words
The apparatus of claim 1, wherein: said blocks of program information are stored in non-sequential storage address locations of the external storage device.
Claim 12
Dependent Claim 29 words
The apparatus of claim 1, wherein: chains of said program information with randomly varying lengths are communicated from the external storage device to said at least one block buffer.
Claim 13
Dependent Claim 54 words
The apparatus of claim 11, further comprising: address generating means for providing addressing information to the external storage device for communicating said blocks of program information from the external storage device to said at least one block buffer in a desired sequence; wherein: the randomly varying lengths are determined according to said addressing information.
Claim 14
Dependent Claim 48 words
The apparatus of claim 1, further comprising: means for providing a substantially random block-wise re-ordering of said first block chain, and random re-ordering of a block of said first block chain to communicate a re-ordered chain from the external storage device to said at least one block buffer.
Claim 15
Dependent Claim 19 words
The apparatus of claim 1, wherein: said program information comprises dummy data which is not processed by the CPU.
Claim 16
Dependent Claim 63 words
The apparatus of claim 1, wherein: said program information stored in the external storage device is encrypted; said secure circuit comprises a decryption circuit which is responsive to said at least one block buffer for decrypting the encrypted program information; and said second communication path is adapted to communicate the decrypted program information from the decryption circuit to the CPU for processing therein.
Claim 17
Dependent Claim 73 words
The apparatus of claim 15, wherein: said first block chain and a subsequent second block chain of said program information are communicated between the external storage device and said at least one block buffer; and said decryption circuit is adapted to decrypt at least a portion of the program information of said first block chain while at least a portion of said second block chain is being communicated over said first communication path.
Claim 18
Dependent Claim 62 words
The apparatus of claim 15, wherein: said first communication path is adapted to communicate blocks of program information from said storage device to said at least one buffer in a second chain; and said decryption circuit is adapted to decrypt program information from at least a portion of said first block chain and at least a portion of said second chain concurrently.
Claim 19
Dependent Claim 35 words
The apparatus of claim 15, further comprising: a cache arranged in said second communication path which is adapted to temporarily store the decrypted program information before the decrypted program information is provided to said CPU.
Claim 20
Dependent Claim 15 words
The apparatus of claim 15, wherein: said first block chain is a cipher block chain.
Claim 21
Dependent Claim 37 words
The apparatus of claim 1, further comprising: a third communication path which is adapted to communicate a group of blocks of program information from said secure circuit to said external storage device in a second block chain.
Claim 22
Dependent Claim 20 words
The apparatus of claim 20, further comprising: an encryption circuit for encrypting the program information for the second block chain.
Claim 23
Dependent Claim 29 words
The apparatus of claim 21, wherein said encryption circuit is conditionally responsive to address information to allow a clear mode for the program information for the second block chain.
Claim 24
Dependent Claim 20 words
The apparatus of claim 20, further comprising: an authentication circuit for authenticating the program information for the second block chain.
Claim 25
Dependent Claim 29 words
The apparatus of claim 23, wherein said authentication circuit is conditionally responsive to address information to allow a clear mode for the program information for the second block chain.
Claim 26
Dependent Claim 21 words
The apparatus of claim 20, further comprising: a re-sequencing circuit for randomly re-ordering the program information for the second block chain.
Claim 27
Dependent Claim 23 words
The apparatus of claim 20, further comprising: a dummy-data insertion circuit for adding dummy-data to the program information for the second block chain.
Claim 28
Dependent Claim 29 words
The apparatus of claim 1, wherein a plurality of chains of program information are communicated from the external storage device to said secure circuit in a randomly varying sequence.
Claim 29
Independent Claim 85 words
An apparatus for communicating program information, comprising: a secure circuit for providing said program information; an external storage device which is adapted to store the program information external to said secure circuit; and a first communication path which is adapted to communicate a group of blocks of said program information from said secure circuit to the external storage device in a first block chain; wherein: units of said program information are communicated from said secure circuit to the external storage device using randomly varying sequences.
Claim 30
Independent Claim 85 words
An apparatus for communicating program information, comprising: a secure circuit for providing said program information; an external storage device which is adapted to store the program information external to said secure circuit; and a first communication path which is adapted to communicate a group of blocks of said program information from said secure circuit to the external storage device in a first block chain; wherein: units of said program information are communicated from said secure circuit to the external storage device using randomly varying sequences.
Claim 31
Dependent Claim 25 words
The apparatus of claim 28, wherein: said program information comprises authentication data; and said secure circuit comprises an authentication circuit for providing said authentication data.
Claim 32
Dependent Claim 38 words
The apparatus of claim 29, wherein: said block chain is a simple block chain such that said group of blocks in said first block chain are processed in parallel by said authentication circuit to provide said authentication data.
Claim 33
Dependent Claim 22 words
The apparatus of claim 29, wherein: said authentication circuit hashes at least part of the program information to provide said authentication data.
Claim 34
Dependent Claim 39 words
The apparatus of claim 28, further comprising: address generating means for providing addressing information to the external storage device for communicating said blocks of program information from said secure circuit to the external storage device in a desired sequence.
Claim 35
Dependent Claim 22 words
The apparatus of claim 28, wherein: said blocks of program information are stored in the external storage device in scrambled storage locations.
Claim 36
Dependent Claim 26 words
The apparatus of claim 28, wherein: units of said program information with randomly varying lengths are communicated from said secure circuit to the external storage device.
Claim 37
Dependent Claim 49 words
The apparatus of claim 28, further comprising: means for providing at least one of (a) random block-wise re-ordering of said first block chain, and (b) random re-ordering of a block of said first block chain to communicate a re-ordered chain from said secure circuit to the external storage device.
Claim 38
Dependent Claim 26 words
The apparatus of claim 28, wherein: units of said program information are communicated from said secure circuit to the external storage device using randomly varying lengths.
Claim 39
Dependent Claim 19 words
The apparatus of claim 28, wherein: said program information comprises dummy data which was not processed by the CPU.
Claim 40
Dependent Claim 14 words
The apparatus of claim 28, wherein said program information is provided in block chains.
Claim 41
Dependent Claim 40 words
The apparatus of claim 28, wherein: said secure circuit comprises an encryption circuit for encrypting said program information; and said first communication path is adapted to communicate the encrypted program information from the encryption circuit to the external storage device.
Claim 42
Dependent Claim 14 words
The apparatus of claim 39, wherein: said block chain is a cipher block chain.
Claim 43
Dependent Claim 36 words
The apparatus of claim 28, further comprising: a communication path which is adapted to communicate a group of blocks of program information from said external storage device to said secure circuit in a second block chain.
Claim 44
Dependent Claim 36 words
The apparatus of claim 41, wherein the program information stored in said external storage device is encrypted, said secure circuit further comprising: a decryption circuit for decrypting the encrypted program information in the second block chain.
Claim 45
Independent Claim 161 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; wherein: the first block chain comprises authentication data derived from the group of blocks of program information; and said secure circuit comprises an authentication circuit that is responsive to said at least one block buffer for processing the first block chain to verify the authentication data thereof prior to the program information being communicated to the CPU.
Claim 46
Independent Claim 161 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; wherein: the first block chain comprises authentication data derived from the group of blocks of program information; and said secure circuit comprises an authentication circuit that is responsive to said at least one block buffer for processing the first block chain to verify the authentication data thereof prior to the program information being communicated to the CPU.
Claim 47
Independent Claim 133 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; and a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; wherein: units of said program information are communicated from the external storage device to said at least one block buffer using randomly varying sequences.
Claim 48
Independent Claim 133 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; and a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; wherein: units of said program information are communicated from the external storage device to said at least one block buffer using randomly varying sequences.
Claim 49
Dependent Claim 14 words
The apparatus of claim 44, wherein said units of program information comprise block chains.
Claim 50
Independent Claim 155 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; and a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; wherein: a plurality of units of program information is communicated from the external storage device to said secure circuit in units of varying length; and the length of each unit is determined according to a processing latency of the associated program information of the respective units.
Claim 51
Independent Claim 155 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; and a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; wherein: a plurality of units of program information is communicated from the external storage device to said secure circuit in units of varying length; and the length of each unit is determined according to a processing latency of the associated program information of the respective units.
Claim 52
Independent Claim 159 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; a third communication path which is adapted to communicate a group of blocks of program information from said secure circuit to said external storage device in a second block chain; and a length determination circuit for randomly varying the length of units of the program information for the second block chain.
Claim 53
Independent Claim 159 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; a third communication path which is adapted to communicate a group of blocks of program information from said secure circuit to said external storage device in a second block chain; and a length determination circuit for randomly varying the length of units of the program information for the second block chain.
Claim 54
Independent Claim 183 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; and a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; wherein: said program information comprises a plurality of strings of instructions which are to be executed by said CPU in a first sequence; said secure circuit includes a re-ordering means; in said first block chain, the strings of instructions are provided in a second sequence that differs from the first sequence; and said re-ordering means are associated with the at least one block buffer for re-ordering the strings of instructions to the first sequence.
Claim 55
Independent Claim 183 words
An apparatus for processing program information, comprising: a secure circuit including a central processing unit (CPU) and at least one block buffer for storing at least one block of the program information; an external storage device which is adapted to store the program information external to said secure circuit; a first communication path which is adapted to communicate a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain; and a second communication path which is adapted to communicate the program information from the at least one block buffer to the CPU for processing therein; wherein: said program information comprises a plurality of strings of instructions which are to be executed by said CPU in a first sequence; said secure circuit includes a re-ordering means; in said first block chain, the strings of instructions are provided in a second sequence that differs from the first sequence; and said re-ordering means are associated with the at least one block buffer for re-ordering the strings of instructions to the first sequence.
Claim 56
Independent Claim 88 words
An apparatus for communicating program information, comprising: a secure circuit for providing said program information; an external storage device which is adapted to store the program information external to said secure circuit; and a first communication path which is adapted to communicate a group of blocks of said program information from said secure circuit to the external storage device in a first block chain; wherein a plurality of chains of program information are communicated from said secure circuit to the external storage device in a randomly varying sequence.
Claim 57
Independent Claim 88 words
An apparatus for communicating program information, comprising: a secure circuit for providing said program information; an external storage device which is adapted to store the program information external to said secure circuit; and a first communication path which is adapted to communicate a group of blocks of said program information from said secure circuit to the external storage device in a first block chain; wherein a plurality of chains of program information are communicated from said secure circuit to the external storage device in a randomly varying sequence.
Claim 58
Independent Claim 128 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; wherein: units of said program information are communicated from the external storage device to said at least one block buffer using randomly varying sequences.
Claim 59
Independent Claim 128 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; wherein: units of said program information are communicated from the external storage device to said at least one block buffer using randomly varying sequences.
Claim 60
Independent Claim 150 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; wherein: a plurality of units of program information is communicated from the external storage device to said secure circuit in units of varying length; and the length of each unit is determined according to a processing latency of the associated program information of the respective units.
Claim 61
Independent Claim 150 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; wherein: a plurality of units of program information is communicated from the external storage device to said secure circuit in units of varying length; and the length of each unit is determined according to a processing latency of the associated program information of the respective units.
Claim 62
Independent Claim 154 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; communicating a group of blocks of program information from said secure circuit to said external storage device in a second block chain via a third communication path; and randomly varying the length of units of the program information for the second block chain in accordance with a length determination circuit.
Claim 63
Independent Claim 154 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; communicating a group of blocks of program information from said secure circuit to said external storage device in a second block chain via a third communication path; and randomly varying the length of units of the program information for the second block chain in accordance with a length determination circuit.
Claim 64
Independent Claim 176 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; wherein: said program information comprises a plurality of strings of instructions which are to be executed by said CPU in a first sequence; in said first block chain, the strings of instructions are provided in a second sequence that differs from the first sequence; and said secure circuit includes a re-ordering means that is associated with the at least one block buffer for re-ordering the strings of instructions to the first sequence.
Claim 65
Independent Claim 176 words
A method for processing program information, comprising the steps of: storing at least one block of the program information in a secure circuit that includes a central processing unit (CPU) and at least one block buffer; storing the program information external to said secure circuit in an external storage device; communicating a group of blocks of said program information from said external storage device to said at least one block buffer in a first block chain via a first communication path; and communicating the program information from the at least one block buffer to the CPU for processing therein via a second communication path; wherein: said program information comprises a plurality of strings of instructions which are to be executed by said CPU in a first sequence; in said first block chain, the strings of instructions are provided in a second sequence that differs from the first sequence; and said secure circuit includes a re-ordering means that is associated with the at least one block buffer for re-ordering the strings of instructions to the first sequence.

References Cited (Backward Citations)

US4149035A Cited
US4465901A Cited
US4319079A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-05-09 2003-11-08 2004-05-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-05-09 2007-11-08 2008-05-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-05-09 2011-11-08 2012-05-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag