EP1507355A1 - System and method for securing data - Google Patents
System and method for securing data Download PDFInfo
- Publication number
- EP1507355A1 EP1507355A1 EP04018046A EP04018046A EP1507355A1 EP 1507355 A1 EP1507355 A1 EP 1507355A1 EP 04018046 A EP04018046 A EP 04018046A EP 04018046 A EP04018046 A EP 04018046A EP 1507355 A1 EP1507355 A1 EP 1507355A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- bit
- processor
- key
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4432—Powering on the client, e.g. bootstrap loading using setup parameters being stored locally or received from the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Definitions
- Integrated circuits may be subject to different types of security attacks.
- integrated circuits used for decoding and displaying digital television signals such as, for example, set-top box (STB) chips may be hacked by users seeking to access, for free, subscription-services or pay-for-service programming for television.
- STB set-top box
- successful hackers may be able to distribute "in-the-clear" video content to others.
- a hacker may attempt to target different elements of a system. For example, a hacker may target a software component of an STB chip. If software developed by the hacker can be downloaded onto the STB chip, then on-chip security may be overridden in a variety of ways. In response to such attacks, some STB chips may perform a one-time integrity check on a software code set to ensure, for example, that the software originated from an authorized or recognized source. However, a one-time software integrity check may be open to attacks that may occur after the one-time integrity check has been completed.
- Some STB chips may encrypt software instructions in a flash memory or a synchronous dynamic random access memory (SDRAM) memory using data encryption standard (DES) encryption or triple DES (3DES) encryption.
- DES data encryption standard
- 3DES triple DES
- DES data encryption standard
- DES or 3DES 3DES encryption key known only to an authorized entity and the STB
- Instruction encryption using DES or 3DES may also protect the code base from examination for clues relating to internal chip operation, even if the flash memory is removed from the board and examined separately.
- DES decryption or 3DES decryption of microprocessor instructions may suffer from, for example, latencies induced in a pipeline to a microprocessor. Pipeline latencies may substantially reduce throughput.
- aspects of the present invention may provide a system that protects data.
- the system may include, for example, a memory and a processor.
- the memory may store, for example, encrypted data.
- the processor may be coupled to the memory and may include, for example, a decryptor that decrypts the encrypted data.
- the decryptor may be adapted, for example, to variably bit roll the encrypted data, to fixedly bit shuffle the bit-rolled data, to add a first key to the bit-shuffled data and to process the added data with a second key.
- aspects of the present invention may provide a system that protects data.
- the system may include, for example, a memory and a processor.
- the memory may store, for example, encrypted data.
- the processor may be coupled to the memory and may include, for example, a decryptor that decrypts the encrypted data without adding a latency to a processor pipeline.
- aspects of the present invention may provide a system that protects data.
- the system may include, for example, a memory and a processor.
- the memory may store, for example, encrypted data.
- the processor may be coupled to the memory and may include, for example, a decryptor that decrypts the encrypted data without adding enough gate delays to exceed a clock cycle budget of the processor.
- aspects of the present invention may provide a system that protects data.
- the system may include, for example, a memory and a processor.
- the memory may store, for example, encrypted data.
- the processor may be coupled to the memory and may include, for example, a decryptor that decrypts the encrypted data and decrypts a word of the encrypted data in a single cycle.
- aspects of the present invention may provide a system that secures data.
- the system may include, for example, a processor that may decrypt encrypted data.
- the processor may be adapted, for example, to variably bit roll encrypted data and to fixedly bit shuffle the bit-rolled data.
- aspects of the present invention may provide a method that secures processor instructions.
- the method may include, for example, one or more of the following: variably rolling data information based on a first key and an address related to the data information; and hard-coded shuffling of the rolled data information; using one or more keys to process the data information.
- a system for protecting data comprises:
- FIG. 1 shows a block diagram illustrating an embodiment of a system that protects data according to the present invention.
- FIG. 2 shows a flow chart illustrating an embodiment of a method that protects data according to the present invention.
- FIG. 3 shows a block diagram illustrating an embodiment of a decryption block according to the present invention.
- FIG. 4 shows a block diagram illustrating an embodiment of a portion of a decryption block according to the present invention.
- Some embodiments according to the present invention may be related to, for example, systems and methods that protect data. At least one embodiment according to the present invention may be related to, for example, systems and methods that secure computer instructions (e.g., microprocessor instructions). At least one embodiment according to the present invention may be related to, for example, systems and methods that protect software instructions. Some embodiments according to the present invention may employ, for example, a pipeline stage encryption or decryption algorithm (e.g., a single pipeline stage encryption or decryption algorithm). Some embodiments according to the present invention may be used with integrated circuits such as, for example, integrated circuits adapted to decode and to display digital television signals. In at least one embodiment according to the present invention, the integrated circuits may be part of a set top box (STB) or one or more STB chips.
- STB set top box
- An encryption or decryption scheme (e.g., a single cycle encryption or decryption scheme) for software instructions according to some embodiments of the present invention may include, for example, one or more of the characteristics as set forth below.
- the encryption or decryption scheme may add as few gate delays as possible. Fewer gate delays may allow a single cycle encryption or decryption scheme to be merged with existing logic in a pipeline without exceeding a particular clock cycle budget. By keeping within a particular clock cycle budget, additional latencies might not be added to the pipeline.
- the encryption or decryption scheme may include, for example, varying elements. For example, some elements may vary periodically such as, for example, at address multiples (e.g., after a particular number of addresses). Periodic variations may enhance security, for example, by changing at least some of the parameters of the encryption or decryption scheme. Furthermore, repeated instructions might not be encoded in the same way each time, thereby thwarting efforts by a hacker to deduce particular portions of the original unencrypted code set.
- the encryption or decryption scheme may include, for example, address regions (e.g., multiple address regions) that may be associated with different encryption or decryption algorithms. Encryption or decryption algorithms that change from address region to address region may enhance security, for example, by denying a hacker any insights with respect to an encryption or decryption algorithm by analyzing known instructions in particular address locations such as, for example, jump instructions in a lower address space.
- address regions e.g., multiple address regions
- Encryption or decryption algorithms that change from address region to address region may enhance security, for example, by denying a hacker any insights with respect to an encryption or decryption algorithm by analyzing known instructions in particular address locations such as, for example, jump instructions in a lower address space.
- the encryption or decryption scheme may enhance security.
- some embodiments according to the present invention may be adapted to reduce the risk of deducing an encryption key, a decryption key or an underlying algorithm.
- the present invention may provide a balance between, for example, simplifying an algorithm or logic and obscuring contents (e.g., memory contents) as much as possible. Accordingly, some embodiments according to the present invention may weigh some characteristics in light of other characteristics and may favor some characteristics over other characteristics.
- FIG. 1 shows a block diagram illustrating an embodiment of a system that protects data according to the present invention.
- a processor 100 is coupled to a memory 110 via a bus 120.
- the processor 100 may include, for example, a decryption block 130 and an internal memory 140.
- the processor 100 may be, for example, a central processing unit (CPU), a microprocessor or any other computing device.
- the decryption block 130 may be adapted, for example, to decrypt data from the memory 110.
- the internal memory 140 may be, for example, an internal cache and may buffer the decrypted data.
- the memory 110 may be, for example, a flash memory or a random access memory (RAM) such as, for example, a synchronous dynamic RAM (SDRAM).
- the memory 110 may store, for example, encrypted data such as, for example, encrypted instructions.
- the processor 100 or the memory 110 may be part of a set-top box according to some embodiments of the present invention.
- the processor 100 may be part of a set-top box integrated circuit (e.g., a set-top box chip).
- the processor 100 and the memory 110 may be mounted on a circuit board housed by a set-top box.
- the memory 110 may also be external to or coupled to a set-top box.
- a head end such as, for example, a service provider, a content provider or a manufacturer may encrypt data before storing the data in the memory 110.
- Data that has been encrypted by an embodiment of an encryption scheme according to the present invention may be decrypted by an embodiment of a decryption scheme according to the present invention.
- additional security measures may be taken. For example, if the memory 110 includes flash memory, but the processor instruction execution is out of SDRAM (e.g., for systems that move the flash memory instructions to SDRAM before beginning execution), then an additional compression step or an encryption step (e.g., a data encryption standard (DES) encryption step or a triple DES (3DES) encryption step) may be performed.
- SDRAM Secure Digital
- an additional compression step or an encryption step e.g., a data encryption standard (DES) encryption step or a triple DES (3DES) encryption step
- the processor 100 may request (e.g., fetch) a set of data (e.g., a set of instructions) from the memory 110 via the bus 120. Since the data is encrypted, the data may be processed by the decryption block 130, before the data may be stored in the internal cache 140 where the processor 100 may access the data.
- a set of data e.g., a set of instructions
- FIG. 2 shows a flow chart illustrating an embodiment of a method that decrypts encrypted data according to the present invention.
- the decryption block 130 may perform variable bit rolling of the incoming data bits. The variability of the bit rolling may be related to, for example, a processing of a key and an address.
- the decryption block 130 may perform a fixed bit shuffling of the incoming data bits.
- the fixed bit shuffling may be, for example, fixed, hard-coded bit shuffling.
- the hard-coded bit shuffling may differ, for example, for different devices (e.g., different classes of set-top boxes).
- the decryption block 130 may perform processing by adders on the incoming data bits.
- the adders may be, for example, a series of two-bit adders.
- a value input into the adders may be related to, for example, a processing of a key and an address.
- the decryption block 130 may perform processing by exclusive OR (XOR) gates.
- XOR exclusive OR
- a value input into the XOR gates may be related to, for example, a key (e.g., a hidden internal key).
- FIG. 3 shows a block diagram illustrating a decryption block according to the present invention.
- a decryption block 130 may include, for example, a processor 190, a bit roller 200, a bit swapper 210 (e.g., a fixed bit swapper), an adder 220 and an XOR block 230.
- the processor 190 may be coupled to the bit roller 200 and to the adder 220.
- the bit roller 200 may be coupled to the bit swapper 210 which, in turn, may be coupled to the adder 220.
- the adder 200 may be coupled to the XOR block 230.
- the bit roller 200 may include, for example, a variable bit roller.
- the bit swapper 210 may include, for example, a fixed, hard-coded bit shuffler.
- the adder 220 may include, for example, a set of two-bit adders (e.g., 32 two-bit adders).
- the XOR block 230 may include, for example, a set of
- a key and an address may be input into the processor 190.
- the processor 190 may generate a shifted key and multiplexer selection bits.
- the shifted key may be sent to the adder 200.
- the multiplexer selection bits may be sent to the bit roller 200.
- the bit roller 200 may receive the incoming data, for example, the encrypted data from the memory 110.
- the bit roller 200 may then perform a bit rolling operation.
- a bit rolling operation may include, for example, rotating bits within particular roll regions of the incoming data based on, for example, the multiplexer selection bits.
- the rolled bits may then be sent to the bit swapper 210.
- the bit swapper 210 may perform, for example, a fixed bit shuffling (e.g., a fixed, hard-coded bit shuffling) of the bit rolled data.
- the fixed bit shuffling may differ for different types or classes of chips or devices.
- the bit swapped data may then be sent to the adder 220.
- the adder 220 may then combine at least a portion of the shifted key with the bit swapped data using one or more adders (e.g., two-bit adders).
- the portion of the shifted key used by the adder 220 may change (e.g., shift) as different addresses are input into the processor 190.
- the output of the adder 220 may be sent to the XOR block 230.
- the XOR block 230 may then perform an XOR operation with the output of the adder 220 and a key (e.g., an internal key).
- the key e.g., a hidden key
- the key may be unrelated to the key used by the processor 190.
- the key may also be unique for a particular implementation or may be unique for particular versions of chips, for example.
- the output of the XOR block 230 may be, for example, decrypted data such as, for example, decrypted instructions for the processor 100.
- the decrypted data may then be stored in the memory 140 (e.g., an internal cache).
- Bit rolling may refer to an ability to rotate bits within a particular roll region within a data set.
- a data set For example, in a 64-bit data instruction, there may be, for example, six roll regions. Each roll region may be characterized by, for example, a roll skip, a roll region length and a roll amount.
- These parameters may be set, for example, through bits within at least a portion of a key (e.g., a decryption/encryption key).
- the bits of the key that may be used to set the parameters may change. For example, the bits of the key that may be used to set the parameters may be based on a data address.
- the key may be shifted (e.g., periodically, after a particular number of data addresses) so that the roll parameter may be different for different addresses in the memory 110.
- a mapping of a portion of a key may be set forth as shown below.
- a mapping of a portion of a key may be set forth as shown below.
- K[11:0] may characterize the roll parameters of the first two roll regions.
- the mapping may continue up to, for example, six roll regions.
- Roll_Skip_1 10
- Roll_Length_1_5 01
- Roll_Amount_1 11.
- the roll may begin at bit 2 (i.e., the roll may begin at the third bit of Roll Region 1), have a roll region length of six bits and a roll amount of four bits.
- bit 9 i.e., the roll starts on the second bit of Roll Region 2
- the roll parameters might have the following effect on incoming data: Incoming Data After Bit Rolling Bit 0 Unchanged Bit 1 Unchanged Bit 2 Bit 6 Bit 3 Bit 7 Bit 4 Bit 2 Bit 5 Bit 3 Bit 6 Bit 4 Bit 7 Bit 5 (End of Roll Region 1) Bit 8 Unchanged Bit 9 Bit 11 Bit 10 Bit 12 Bit 11 Bit 13 Bit 12 Bit 9 Bit 13 Bit 10 (End of Roll Region 2)
- These roll parameter values may change the next time the key is shifted so that different instructions may have their bits swapped differently.
- FIG. 4 shows a block diagram illustrating an embodiment of a portion of a decryption block according to the present invention.
- FIG. 4 shows some of the components employed in a decryption block and, in particular, some of the components used for decrypting a pair of incoming bits (i.e., D[n] (data_in) and D[n+1] (data_in)).
- the present invention contemplates decrypting more or less than two bits at a time and providing components to decrypt more or less than two bits at a time.
- the components of the decryption block may include, for example, the bit roller 200, the bit swapper 210, the adder 220 and the XOR block 230.
- the bit roller 200 may include, for example, a plurality of multiplexers including multiplexers 240 and 250.
- the multiplexers 240, 250 may be, for example, 32:1 multiplexers for use with 64-bit instruction words.
- Multiplexer selection bits may be input from the processor 190 and may provide the bit rolling as described above.
- the outputs of the multiplexers may be coupled to the bit swapper 210.
- the bit swapper 210 may swap bits using, for example, a fixed, hard-coded bit swapper.
- the output bits of the bit swapper 210 may be sent to the adder 220 which may employ, for example, one or more two-bit adders including XOR gates and AND gates.
- the adder 220 includes a two-bit adder.
- a first output bit of the adder 220 may be a function of an XOR operation between a first output bit of the bit swapper, Dswap[n], and a first key bit of the shifted key, K[n].
- the second output bit of the adder 220 may be a function of an XOR operation between (1) an AND operation between K[n] and Dswap[n] and (2) an XOR operation between a second output bit of the bit swapper, Dswap[n+1], and a second key bit of the shifted key, K[n+1].
- the output bits of the adder 220 may be sent to the XOR block 230.
- the XOR block 230 may include, for example, a plurality of XOR gates including XOR gates 300, 310.
- the XOR gate 300 may perform an XOR operation between a first output bit of the adder 220 and the first bit of a hidden key, HK[n].
- the second XOR gate 310 may perform an XOR operation between a second output bit of the adder 220 and the second bit of the a hidden key, HK[n+1].
- the output bits of the XOR block 230 may then represent the decrypted data (e.g., original data or instructions).
- FIG. 4 also illustrates approximately the number of gate delays per component in the decryption block according to an embodiment of the present invention.
- the multiplexers 240, 250 may be 32:1 multiplexers with approximately 10 gate delays.
- the bit swapper 210 may be a fixed, hard-coded bit swapper and thus may have approximately 0 gate delays.
- the adder 220 may include, for example, a two-bit adder with, at most, approximately 4 gate delays.
- the XOR block 230 may include, for example, XOR gates 300, 310 with approximately 2 gate delays.
- the illustrated arrangement may have between approximately 14 gate delays to approximately 16 gate delays.
- Some embodiments according to the present invention may have between approximately 14 gate delays to approximately 20 gate delays.
- Various embodiments according to the present invention contemplate adjusting configurations or arrangements such that the operation of the decryption block does not exceed a particular clock cycle budget.
- Some embodiments according to the present invention generate the multiplexer selection bits and the shifted key in parallel with the main decryption operations and register out the multiplexer selection bits and the shifted key so as not to contribute to the latency in the main pipeline path.
- the only gate delays associated with the decryption operation may be the gate delays related to the incoming data as the incoming data passes through the decryption operation.
- the decryption operation may take place at least one cycle after the data is fed to the processor 100 from the memory 110.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
Description
- This application makes reference to, claims priority to and claims benefit from United States Provisional Patent Application Serial No. 60/495,313, entitled "Security Protection for Microprocessor Instructions Using a Single Pipeline Stage Encryption/Decryption Algorithm on a Set-Top-Box (STB) Chip" and filed on August 15, 2003.
- The above-referenced United States patent application is hereby incorporated herein by reference in its entirety.
- [Not Applicable]
- [Not Applicable]
- Integrated circuits may be subject to different types of security attacks. For example, integrated circuits used for decoding and displaying digital television signals such as, for example, set-top box (STB) chips may be hacked by users seeking to access, for free, subscription-services or pay-for-service programming for television. In addition to viewing the programming without paying, successful hackers may be able to distribute "in-the-clear" video content to others.
- A hacker may attempt to target different elements of a system. For example, a hacker may target a software component of an STB chip. If software developed by the hacker can be downloaded onto the STB chip, then on-chip security may be overridden in a variety of ways. In response to such attacks, some STB chips may perform a one-time integrity check on a software code set to ensure, for example, that the software originated from an authorized or recognized source. However, a one-time software integrity check may be open to attacks that may occur after the one-time integrity check has been completed.
- Some STB chips may encrypt software instructions in a flash memory or a synchronous dynamic random access memory (SDRAM) memory using data encryption standard (DES) encryption or triple DES (3DES) encryption. By using a DES or 3DES encryption key known only to an authorized entity and the STB, the STB can be assured, with a high degree of confidence, that only microprocessor instructions from an authorized source can be decoded properly. Instruction encryption using DES or 3DES may also protect the code base from examination for clues relating to internal chip operation, even if the flash memory is removed from the board and examined separately. However, DES decryption or 3DES decryption of microprocessor instructions may suffer from, for example, latencies induced in a pipeline to a microprocessor. Pipeline latencies may substantially reduce throughput.
- Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of ordinary skill in the art through comparison of such systems with one or more aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.
- Aspects of the present invention may be found in, for example, systems and methods that secure data.
- In one embodiment, aspects of the present invention may provide a system that protects data. The system may include, for example, a memory and a processor. The memory may store, for example, encrypted data. The processor may be coupled to the memory and may include, for example, a decryptor that decrypts the encrypted data. The decryptor may be adapted, for example, to variably bit roll the encrypted data, to fixedly bit shuffle the bit-rolled data, to add a first key to the bit-shuffled data and to process the added data with a second key.
- In another embodiment, aspects of the present invention may provide a system that protects data. The system may include, for example, a memory and a processor. The memory may store, for example, encrypted data. The processor may be coupled to the memory and may include, for example, a decryptor that decrypts the encrypted data without adding a latency to a processor pipeline.
- In another embodiment, aspects of the present invention may provide a system that protects data. The system may include, for example, a memory and a processor. The memory may store, for example, encrypted data. The processor may be coupled to the memory and may include, for example, a decryptor that decrypts the encrypted data without adding enough gate delays to exceed a clock cycle budget of the processor.
- In another embodiment, aspects of the present invention may provide a system that protects data. The system may include, for example, a memory and a processor. The memory may store, for example, encrypted data. The processor may be coupled to the memory and may include, for example, a decryptor that decrypts the encrypted data and decrypts a word of the encrypted data in a single cycle.
- In another embodiment, aspects of the present invention may provide a system that secures data. The system may include, for example, a processor that may decrypt encrypted data. The processor may be adapted, for example, to variably bit roll encrypted data and to fixedly bit shuffle the bit-rolled data.
- In yet another embodiment, aspects of the present invention may provide a method that secures processor instructions. The method may include, for example, one or more of the following: variably rolling data information based on a first key and an address related to the data information; and hard-coded shuffling of the rolled data information; using one or more keys to process the data information.
According to an aspect of the invention, a system for protecting data comprises: - a memory in which encrypted data is stored; and
- a processor coupled to the memory, the processor comprising a decryptor that decrypts the encrypted data, the decryptor being adapted to variably bit roll the encrypted data, to fixedly bit shuffle the bit-rolled data, to add a first key to the bit-shuffled data and to process the added data with a second key. Advantageously, the decryptor is adapted to perform a single pipeline stage decryption.
- a memory in which encrypted data is stored; and
- a processor coupled to the memory, the processor comprising a decryptor that decrypts the encrypted data without adding a latency to a processor pipeline.
- a memory in which encrypted data is stored; and
- a processor coupled to the memory, the processor comprising a decryptor that decrypts the encrypted data without adding enough gate delays to exceed a clock cycle budget of the processor.
- a memory in which encrypted data is stored; and
- a processor coupled to the memory, the processor comprising a decryptor that decrypts the encrypted data and decrypts a word of the encrypted data in a single cycle.
- a processor that decrypts encrypted data, the processor being adapted to variably bit roll encrypted data and to fixedly bit shuffle the bit-rolled data.
- variably rolling data information based on a first key and an address related to the data information; and
- hard-coded shuffling of the rolled data information;
- using one or more keys to process the data information.
-
- These and other features and advantages of the present invention may be appreciated from a review of the following detailed description of the present invention, along with the accompanying figures in which like reference numerals refer to like parts throughout.
- FIG. 1 shows a block diagram illustrating an embodiment of a system that protects data according to the present invention.
- FIG. 2 shows a flow chart illustrating an embodiment of a method that protects data according to the present invention.
- FIG. 3 shows a block diagram illustrating an embodiment of a decryption block according to the present invention.
- FIG. 4 shows a block diagram illustrating an embodiment of a portion of a decryption block according to the present invention.
- Some embodiments according to the present invention may be related to, for example, systems and methods that protect data. At least one embodiment according to the present invention may be related to, for example, systems and methods that secure computer instructions (e.g., microprocessor instructions). At least one embodiment according to the present invention may be related to, for example, systems and methods that protect software instructions. Some embodiments according to the present invention may employ, for example, a pipeline stage encryption or decryption algorithm (e.g., a single pipeline stage encryption or decryption algorithm). Some embodiments according to the present invention may be used with integrated circuits such as, for example, integrated circuits adapted to decode and to display digital television signals. In at least one embodiment according to the present invention, the integrated circuits may be part of a set top box (STB) or one or more STB chips.
- An encryption or decryption scheme (e.g., a single cycle encryption or decryption scheme) for software instructions according to some embodiments of the present invention may include, for example, one or more of the characteristics as set forth below.
- The encryption or decryption scheme may add as few gate delays as possible. Fewer gate delays may allow a single cycle encryption or decryption scheme to be merged with existing logic in a pipeline without exceeding a particular clock cycle budget. By keeping within a particular clock cycle budget, additional latencies might not be added to the pipeline.
- The encryption or decryption scheme may include, for example, varying elements. For example, some elements may vary periodically such as, for example, at address multiples (e.g., after a particular number of addresses). Periodic variations may enhance security, for example, by changing at least some of the parameters of the encryption or decryption scheme. Furthermore, repeated instructions might not be encoded in the same way each time, thereby thwarting efforts by a hacker to deduce particular portions of the original unencrypted code set.
- The encryption or decryption scheme may include, for example, address regions (e.g., multiple address regions) that may be associated with different encryption or decryption algorithms. Encryption or decryption algorithms that change from address region to address region may enhance security, for example, by denying a hacker any insights with respect to an encryption or decryption algorithm by analyzing known instructions in particular address locations such as, for example, jump instructions in a lower address space.
- The encryption or decryption scheme may enhance security. For example, some embodiments according to the present invention may be adapted to reduce the risk of deducing an encryption key, a decryption key or an underlying algorithm.
- In some embodiments, the present invention may provide a balance between, for example, simplifying an algorithm or logic and obscuring contents (e.g., memory contents) as much as possible. Accordingly, some embodiments according to the present invention may weigh some characteristics in light of other characteristics and may favor some characteristics over other characteristics.
- FIG. 1 shows a block diagram illustrating an embodiment of a system that protects data according to the present invention. As illustrated, a
processor 100 is coupled to amemory 110 via abus 120. Theprocessor 100 may include, for example, adecryption block 130 and aninternal memory 140. Theprocessor 100 may be, for example, a central processing unit (CPU), a microprocessor or any other computing device. Thedecryption block 130 may be adapted, for example, to decrypt data from thememory 110. Theinternal memory 140 may be, for example, an internal cache and may buffer the decrypted data. Thememory 110 may be, for example, a flash memory or a random access memory (RAM) such as, for example, a synchronous dynamic RAM (SDRAM). Thememory 110 may store, for example, encrypted data such as, for example, encrypted instructions. - The
processor 100 or thememory 110 may be part of a set-top box according to some embodiments of the present invention. Theprocessor 100 may be part of a set-top box integrated circuit (e.g., a set-top box chip). Theprocessor 100 and thememory 110 may be mounted on a circuit board housed by a set-top box. Thememory 110 may also be external to or coupled to a set-top box. - In operation according to various embodiments of the present invention, at a head end such as, for example, a service provider, a content provider or a manufacturer may encrypt data before storing the data in the
memory 110. Data that has been encrypted by an embodiment of an encryption scheme according to the present invention may be decrypted by an embodiment of a decryption scheme according to the present invention. In some embodiments, additional security measures may be taken. For example, if thememory 110 includes flash memory, but the processor instruction execution is out of SDRAM (e.g., for systems that move the flash memory instructions to SDRAM before beginning execution), then an additional compression step or an encryption step (e.g., a data encryption standard (DES) encryption step or a triple DES (3DES) encryption step) may be performed. - The
processor 100 may request (e.g., fetch) a set of data (e.g., a set of instructions) from thememory 110 via thebus 120. Since the data is encrypted, the data may be processed by thedecryption block 130, before the data may be stored in theinternal cache 140 where theprocessor 100 may access the data. - FIG. 2 shows a flow chart illustrating an embodiment of a method that decrypts encrypted data according to the present invention. In
step 150, thedecryption block 130 may perform variable bit rolling of the incoming data bits. The variability of the bit rolling may be related to, for example, a processing of a key and an address. Instep 160, thedecryption block 130 may perform a fixed bit shuffling of the incoming data bits. The fixed bit shuffling may be, for example, fixed, hard-coded bit shuffling. The hard-coded bit shuffling may differ, for example, for different devices (e.g., different classes of set-top boxes). Instep 170, thedecryption block 130 may perform processing by adders on the incoming data bits. The adders may be, for example, a series of two-bit adders. A value input into the adders may be related to, for example, a processing of a key and an address. Instep 180, thedecryption block 130 may perform processing by exclusive OR (XOR) gates. A value input into the XOR gates may be related to, for example, a key (e.g., a hidden internal key). - FIG. 3 shows a block diagram illustrating a decryption block according to the present invention. A
decryption block 130 may include, for example, aprocessor 190, abit roller 200, a bit swapper 210 (e.g., a fixed bit swapper), anadder 220 and anXOR block 230. Theprocessor 190 may be coupled to thebit roller 200 and to theadder 220. Thebit roller 200 may be coupled to thebit swapper 210 which, in turn, may be coupled to theadder 220. Theadder 200 may be coupled to theXOR block 230. Thebit roller 200 may include, for example, a variable bit roller. The bit swapper 210 may include, for example, a fixed, hard-coded bit shuffler. Theadder 220 may include, for example, a set of two-bit adders (e.g., 32 two-bit adders). TheXOR block 230 may include, for example, a set of XOR gates. - In operation according to various embodiments of the present invention, a key and an address may be input into the
processor 190. Based on, for example, a key and an address, theprocessor 190 may generate a shifted key and multiplexer selection bits. The shifted key may be sent to theadder 200. The multiplexer selection bits may be sent to thebit roller 200. Thebit roller 200 may receive the incoming data, for example, the encrypted data from thememory 110. Thebit roller 200 may then perform a bit rolling operation. A bit rolling operation may include, for example, rotating bits within particular roll regions of the incoming data based on, for example, the multiplexer selection bits. The rolled bits may then be sent to thebit swapper 210. - The bit swapper 210 may perform, for example, a fixed bit shuffling (e.g., a fixed, hard-coded bit shuffling) of the bit rolled data. The fixed bit shuffling may differ for different types or classes of chips or devices. The bit swapped data may then be sent to the
adder 220. Theadder 220 may then combine at least a portion of the shifted key with the bit swapped data using one or more adders (e.g., two-bit adders). The portion of the shifted key used by theadder 220 may change (e.g., shift) as different addresses are input into theprocessor 190. The output of theadder 220 may be sent to theXOR block 230. TheXOR block 230 may then perform an XOR operation with the output of theadder 220 and a key (e.g., an internal key). The key (e.g., a hidden key) may be unrelated to the key used by theprocessor 190. The key may also be unique for a particular implementation or may be unique for particular versions of chips, for example. The output of the XOR block 230 may be, for example, decrypted data such as, for example, decrypted instructions for theprocessor 100. The decrypted data may then be stored in the memory 140 (e.g., an internal cache). - An embodiment of a method for bit rolling according to the present invention is provided. Bit rolling may refer to an ability to rotate bits within a particular roll region within a data set. For example, in a 64-bit data instruction, there may be, for example, six roll regions. Each roll region may be characterized by, for example, a roll skip, a roll region length and a roll amount. These parameters may be set, for example, through bits within at least a portion of a key (e.g., a decryption/encryption key). The bits of the key that may be used to set the parameters may change. For example, the bits of the key that may be used to set the parameters may be based on a data address. The key may be shifted (e.g., periodically, after a particular number of data addresses) so that the roll parameter may be different for different addresses in the
memory 110. - For a particular cycle, a mapping of a portion of a key may be set forth as shown below. For example, for two roll regions within a data set having six roll regions, for example, a set of the lower 12 bits of the key, K[11:0], may characterize the roll parameters of the first two roll regions.
Roll Region 1 K[1:0] Roll_Skip_1 {00 = start on first bit of Roll Region 1, ..., 11 = start on fourth bit of Roll Region 1}K[3:2] Roll_Length_1_5 {00 = roll length of 5, ..., 11 = roll length of 8} K[5:4] Roll_Amount_1 {00 = roll amount of 1, ..., 11 = roll amount of 4} Roll Region 2 K[7:6] Roll_Skip_2 {00 = start on first bit of Roll Region 2, ..., 11 = start on fourth bit of Roll Region 2}K[9:8] Roll_Length_1_5 {00 = roll length of 5, ..., 11 = roll length of 8} K[11:10] Roll_Amount_1 {00 = roll amount of 1, ..., 11 = roll amount of 4} - As an example, if the lower 12 bits of the key had a value of 0x476 = 010001110110, then for
Roll Region 1 may have the following parameters: Roll_Skip_1 = 10, Roll_Length_1_5 = 01 and Roll_Amount_1 = 11. Thus, inRoll Region 1, the roll may begin at bit 2 (i.e., the roll may begin at the third bit of Roll Region 1), have a roll region length of six bits and a roll amount of four bits. In the example,Roll Region 2 may have the following parameters: Roll_Skip_2 = 01, Roll_Length_2_5 = 00 and Roll_Amount_2 =01. Thus, inRoll Region 2, the roll may begin at bit 9 (i.e., the roll starts on the second bit of Roll Region 2), have a roll region length of five bits and a roll amount of two bits. - [39] Thus, the roll parameters might have the following effect on incoming data:
Incoming Data After Bit Rolling Bit 0 Unchanged Bit 1 Unchanged Bit 2 Bit 6 Bit 3 Bit 7 Bit 4 Bit 2Bit 5Bit 3 Bit 6 Bit 4 Bit 7 Bit 5 (End of Roll Region 1) Bit 8 Unchanged Bit 9 Bit 11 Bit 10Bit 12 Bit 11 Bit 13 Bit 12 Bit 9 Bit 13 Bit 10 (End of Roll Region 2) - FIG. 4 shows a block diagram illustrating an embodiment of a portion of a decryption block according to the present invention. FIG. 4 shows some of the components employed in a decryption block and, in particular, some of the components used for decrypting a pair of incoming bits (i.e., D[n] (data_in) and D[n+1] (data_in)). Clearly, the present invention contemplates decrypting more or less than two bits at a time and providing components to decrypt more or less than two bits at a time.
- Some of the components of the decryption block may include, for example, the
bit roller 200, thebit swapper 210, theadder 220 and theXOR block 230. Thebit roller 200 may include, for example, a plurality ofmultiplexers including multiplexers 240 and 250. Themultiplexers 240, 250 may be, for example, 32:1 multiplexers for use with 64-bit instruction words. Multiplexer selection bits may be input from theprocessor 190 and may provide the bit rolling as described above. The outputs of the multiplexers may be coupled to thebit swapper 210. The bit swapper 210 may swap bits using, for example, a fixed, hard-coded bit swapper. The output bits of thebit swapper 210 may be sent to theadder 220 which may employ, for example, one or more two-bit adders including XOR gates and AND gates. - As illustrated, the
adder 220 includes a two-bit adder. A first output bit of theadder 220 may be a function of an XOR operation between a first output bit of the bit swapper, Dswap[n], and a first key bit of the shifted key, K[n]. The second output bit of theadder 220 may be a function of an XOR operation between (1) an AND operation between K[n] and Dswap[n] and (2) an XOR operation between a second output bit of the bit swapper, Dswap[n+1], and a second key bit of the shifted key, K[n+1]. - The output bits of the
adder 220 may be sent to theXOR block 230. TheXOR block 230 may include, for example, a plurality of XOR gates includingXOR gates XOR gate 300 may perform an XOR operation between a first output bit of theadder 220 and the first bit of a hidden key, HK[n]. Thesecond XOR gate 310 may perform an XOR operation between a second output bit of theadder 220 and the second bit of the a hidden key, HK[n+1]. The output bits of the XOR block 230 may then represent the decrypted data (e.g., original data or instructions). - FIG. 4 also illustrates approximately the number of gate delays per component in the decryption block according to an embodiment of the present invention. For example, the
multiplexers 240, 250 may be 32:1 multiplexers with approximately 10 gate delays. The bit swapper 210 may be a fixed, hard-coded bit swapper and thus may have approximately 0 gate delays. Theadder 220 may include, for example, a two-bit adder with, at most, approximately 4 gate delays. TheXOR block 230 may include, for example,XOR gates - Some embodiments according to the present invention generate the multiplexer selection bits and the shifted key in parallel with the main decryption operations and register out the multiplexer selection bits and the shifted key so as not to contribute to the latency in the main pipeline path. In various embodiments according to the present invention, the only gate delays associated with the decryption operation may be the gate delays related to the incoming data as the incoming data passes through the decryption operation. In some embodiments, to process the address in parallel, the decryption operation may take place at least one cycle after the data is fed to the
processor 100 from thememory 110. - While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiments disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.
Advantageously, the decryptor comprises a bit roller that rotates data in one or more roll regions of the incoming data based on an address related to the received encrypted data and a key related to the first key.
Advantageously, the key comprises a shifted version of the first key.
Advantageously, the bit roller comprises a plurality of multiplexers.
Advantageously, each multiplexer comprises a multiplexer selection input,
wherein multiplexer selection bits are input at the multiplexer selection input, and
wherein the multiplexer selection bits are generated based on the address related to the received encrypted data and the key related to the first key.
Advantageously, the decryptor comprises a fixed bit shuffler.
Advantageously, the fixed bit shuffler comprises a fixed, hard-coded bit shuffler.
Advantageously, the fixed bit shuffler does not add a gate delay to the decryptor.
Advantageously, the decryptor comprises one or more two-bit adders.
Advantageously, each two-bit adder comprises three exclusive OR (XOR) gates and an AND gate.
Advantageously, the decryptor comprises an XOR block.
Advantageously, the XOR block comprises one or more XOR gates.
Advantageously, each XOR gate comprises a first input and a second input, the first input receiving a bit of the second key, the second input receiving a bit of the added data.
Advantageously, the first key is a shifted version of a key.
Advantageously, an amount of shift in the first key is based on an address related to the received encrypted data.
Advantageously, the first key is generated substantially in parallel with the decrypting of the encrypted data.
Advantageously, the decryptor does not add a latency to a processor pipeline.
Advantageously, the decryptor does not add enough gate delays to exceed a clock cycle budget of the processor.
Advantageously, the decryptor decrypts a word of the encrypted data in a single cycle.
Advantageously, the word comprises a 64-bit word.
Advantageously, the decryptor is adapted to receive encrypted data from the memory.
According to an aspect of the invention, a system for protecting data comprises:
Advantageously, the processor is adapted to add a first key to the bit-shuffled data and to process the added data with a second key.
Advantageously, the processor is adapted to decrypt the encrypted data without adding a latency to a processor pipeline.
According to an aspect of the invention, a method for securing processor instructions comprises:
Advantageously, using one or more keys to process the data information comprises adding the hard-coded data information and a shifted version of the first key.
Advantageously, using one or more keys to process the data information comprises processing the added data information with a second key using exclusive OR (XOR) gates.
Advantageously, the first key is unrelated to the second key.
Advantageously, the data information comprises encrypted data information.
Advantageously, the encrypted data information is stored in a memory, and the stored data information is accessed by a processor.
Advantageously, the rolling comprises rotating bits within one or more rolling regions of the data information.
Claims (10)
- A system for protecting data, comprising:a memory in which encrypted data is stored; anda processor coupled to the memory, the processor comprising a decryptor that decrypts the encrypted data, the decryptor being adapted to variably bit roll the encrypted data, to fixedly bit shuffle the bit-rolled data, to add a first key to the bit-shuffled data and to process the added data with a second key.
- The system according to claim 1, wherein the decryptor is adapted to perform a single pipeline stage decryption.
- The system according to claim 1, wherein the decryptor comprises a bit roller that rotates data in one or more roll regions of the incoming data based on an address related to the received encrypted data and a key related to the first key.
- The system according to claim 3, wherein the key comprises a shifted version of the first key.
- A system for protecting data, comprising:a memory in which encrypted data is stored; anda processor coupled to the memory, the processor comprising a decryptor that decrypts the encrypted data without adding a latency to a processor pipeline.
- A system for protecting data, comprising:a memory in which encrypted data is stored; anda processor coupled to the memory, the processor comprising a decryptor that decrypts the encrypted data without adding enough gate delays to exceed a clock cycle budget of the processor.
- A system for protecting data, comprising:a memory in which encrypted data is stored; anda processor coupled to the memory, the processor comprising a decryptor that decrypts the encrypted data and decrypts a word of the encrypted data in a single cycle.
- A system for securing data, comprising:a processor that decrypts encrypted data, the processor being adapted to variably bit roll encrypted data and to fixedly bit shuffle the bit-rolled data.
- A method for securing processor instructions, comprising:variably rolling data information based on a first key and an address related to the data information; andhard-coded shuffling of the rolled data information;using one or more keys to process the data information.
- The method according to claim 9, wherein the rolling, the shuffling and the using are part of a single pipeline stage decryption.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
2003-05-23 | |||
US49531303P | 2003-08-15 | 2003-08-15 | |
US495313P | 2003-08-15 | ||
US10/695,008 US8045707B2 (en) | 2003-08-15 | 2003-10-28 | System and method for securing data |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1507355A1 true EP1507355A1 (en) | 2005-02-16 |
EP1507355B1 EP1507355B1 (en) | 2010-12-29 |
Family
ID=34138997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP04018046A Expired - Fee Related EP1507355B1 (en) | 2003-08-15 | 2004-07-29 | System and method for securing data |
Country Status (3)
Country | Link |
---|---|
US (1) | US8045707B2 (en) |
EP (1) | EP1507355B1 (en) |
DE (1) | DE602004030749D1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8213612B2 (en) * | 2007-12-07 | 2012-07-03 | Inside Contactless S.A. | Secure software download |
US8935355B2 (en) * | 2008-10-02 | 2015-01-13 | International Business Machines Corporation | Periodic shuffling of data fragments in a peer-to-peer data backup and archival network |
US8934625B2 (en) * | 2009-03-25 | 2015-01-13 | Pacid Technologies, Llc | Method and system for securing communication |
WO2010111438A2 (en) | 2009-03-25 | 2010-09-30 | Pacid Technologies, Llc | System and method for protecting a secrets file |
US8959350B2 (en) | 2009-03-25 | 2015-02-17 | Pacid Technologies, Llc | Token for securing communication |
US8539241B2 (en) | 2009-03-25 | 2013-09-17 | Pacid Technologies, Llc | Method and system for securing communication |
WO2010111448A1 (en) | 2009-03-25 | 2010-09-30 | Pacid Technologies, Llc | Method and system for securing communication |
WO2012106466A2 (en) * | 2011-02-01 | 2012-08-09 | Lacson Francis Gerard | Data encryption method |
US8479021B2 (en) | 2011-09-29 | 2013-07-02 | Pacid Technologies, Llc | Secure island computing system and method |
US10528746B2 (en) * | 2016-12-27 | 2020-01-07 | Intel Corporation | System, apparatus and method for trusted channel creation using execute-only code |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020101985A1 (en) * | 2001-01-26 | 2002-08-01 | International Business Machines Corporation | Single-cycle hardware implementation of crypto-function for high throughput crypto-processing |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4004089A (en) * | 1975-02-28 | 1977-01-18 | Ncr Corporation | Programmable cryptic device for enciphering and deciphering data |
US5381480A (en) * | 1993-09-20 | 1995-01-10 | International Business Machines Corporation | System for translating encrypted data |
US5724428A (en) * | 1995-11-01 | 1998-03-03 | Rsa Data Security, Inc. | Block encryption algorithm with data-dependent rotations |
US6182216B1 (en) * | 1997-09-17 | 2001-01-30 | Frank C. Luyster | Block cipher method |
JP4045777B2 (en) * | 2001-10-30 | 2008-02-13 | 株式会社日立製作所 | Information processing device |
US7451326B2 (en) * | 2002-08-26 | 2008-11-11 | Mosaid Technologies, Inc. | Method and apparatus for processing arbitrary key bit length encryption operations with similar efficiencies |
GB2414582B (en) * | 2003-01-13 | 2007-08-01 | Rambus Inc | Coded write masking |
US6826663B2 (en) * | 2003-01-13 | 2004-11-30 | Rambus Inc. | Coded write masking |
US7295672B2 (en) * | 2003-07-11 | 2007-11-13 | Sun Microsystems, Inc. | Method and apparatus for fast RC4-like encryption |
-
2003
- 2003-10-28 US US10/695,008 patent/US8045707B2/en not_active Expired - Fee Related
-
2004
- 2004-07-29 DE DE602004030749T patent/DE602004030749D1/en active Active
- 2004-07-29 EP EP04018046A patent/EP1507355B1/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020101985A1 (en) * | 2001-01-26 | 2002-08-01 | International Business Machines Corporation | Single-cycle hardware implementation of crypto-function for high throughput crypto-processing |
Non-Patent Citations (2)
Title |
---|
BRUCE SCHNEIER: "APPLIED CRYPTOGRAPHY SECOND EDITION", 1996, JOHN WILEY & SONS, USA, XP002308630 * |
MENEZES, VANSTONE, OORSCHOT: "HANDBOOK OF APPLIED CRYPTOGRAPHY", 1997, CRC PRESS LLS, USA, XP002308629 * |
Also Published As
Publication number | Publication date |
---|---|
DE602004030749D1 (en) | 2011-02-10 |
US20050039030A1 (en) | 2005-02-17 |
US8045707B2 (en) | 2011-10-25 |
EP1507355B1 (en) | 2010-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010310B2 (en) | Convolutional memory integrity | |
US9990249B2 (en) | Memory integrity with error detection and correction | |
US8745411B2 (en) | Protecting external volatile memories using low latency encryption/decryption | |
US8560863B2 (en) | Systems and techniques for datapath security in a system-on-a-chip device | |
US8001374B2 (en) | Memory encryption for digital video | |
US7660769B2 (en) | System and method for digital content player with secure processing vault | |
EP3077913B1 (en) | Memory integrity | |
JP4489030B2 (en) | Method and apparatus for providing a secure boot sequence within a processor | |
US8578116B2 (en) | System and method for memory data protection with secure pad memory | |
EP2580704B1 (en) | Methods and apparatuses for securing playback content comprising sensitive and non-sensitive data | |
TWI490724B (en) | Method for loading a code of at least one software module | |
US20080098418A1 (en) | Electronic module for digital television receiver | |
KR19990037007A (en) | Security processor with external memory using block chaining and block reordering | |
US20130166922A1 (en) | Method and system for frame buffer protection | |
JP2006085676A (en) | Encryption instruction processing apparatus | |
US8045707B2 (en) | System and method for securing data | |
US20080276100A1 (en) | Virtual Machine or Hardware Processor for Ic-Card Portable Electronic Devices | |
US20050071656A1 (en) | Secure processor-based system and method | |
CN113168486A (en) | Processor with adjustable safety level according to application program | |
US20130198528A1 (en) | Modifying a Length of an Element to Form an Encryption Key | |
EP1178387A2 (en) | Integrated circuit for confidential data protection | |
US7707431B2 (en) | Device of applying protection bit codes to encrypt a program for protection | |
EP1978467A1 (en) | Integrated circuit and method for secure execution of software | |
KR20070017056A (en) | Process, Device And Computer Program For Data Decryption By Use Of A Host-Processor And A Co-processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL HR LT LV MK |
|
17P | Request for examination filed |
Effective date: 20050816 |
|
AKX | Designation fees paid |
Designated state(s): DE FR GB |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: BROADCOM CORPORATION |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REF | Corresponds to: |
Ref document number: 602004030749 Country of ref document: DE Date of ref document: 20110210 Kind code of ref document: P |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602004030749 Country of ref document: DE Effective date: 20110210 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20110930 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602004030749 Country of ref document: DE Effective date: 20110930 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20120330 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20110801 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20130723 Year of fee payment: 10 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20140729 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20140729 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20160731 Year of fee payment: 13 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R082 Ref document number: 602004030749 Country of ref document: DE Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE Ref country code: DE Ref legal event code: R081 Ref document number: 602004030749 Country of ref document: DE Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE., SG Free format text: FORMER OWNER: BROADCOM CORP., IRVINE, CALIF., US |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 602004030749 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180201 |