EP0908810A2

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

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.

EP0908810A2, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Projected expiry passed 6 October 2018, 8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

50 claims: 35 independent, 15 dependent

  1. 1
    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.
  2. 5
    The apparatus of one of claims 2 to 4, 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.
  3. 6
    The apparatus of one of claims 2 to 5, 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.
  4. 7
    The apparatus of one of the preceding claims, further comprising:means for detecting an illegal operational code in the program information.
  5. 8
    The apparatus of one of the preceding claims, wherein:at least part of said program information is hashed to provide said block chain.
  6. 9
    The apparatus of one of the preceding claims, 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.
  7. 10
    The apparatus of one of the preceding claims, wherein said program information comprises a plurality of strings which are to be processed in succession by said CPU.
  8. 11
    The apparatus of one of the preceding claims, wherein:said blocks of program information are stored in the external storage device in scrambled storage locations.
  9. 12
    The apparatus of one of the preceding claims, wherein:chains of said program information with substantially randomly varying lengths are communicated from the external storage device to said at least one block buffer.
  10. 14
    The apparatus of one of the preceding claims, further comprising:means for providing a substantially random block-wise reordering of said first block chain, and substantially 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.
  11. 15
    The apparatus of one of the preceding claims, wherein:units of said program information are communicated from the external storage device to said at least one block buffer using substantially randomly varying sequences.
  12. 17
    The apparatus of one of the preceding claims, wherein:a plurality 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.
  13. 18
    The apparatus of one of the preceding claims, wherein:said program information comprises dummy data which is not processed by the CPU.
  14. 19
    The apparatus of one of the preceding claims, 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.
  15. 22
    The apparatus of one of claims 19 to 21, 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.
  16. 23
    The apparatus of one of claims 19 to 22, wherein:said first block chain is a cipher block chain.
  17. 24
    The apparatus of one of the preceding claims, further comprising:a 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.
  18. 27
    The apparatus of one of claims 24 to 26, further comprising:an authentication circuit for authenticating the program information for the second block chain.
  19. 29
    The apparatus of one of claims 24 to 28, further comprising:a re-sequencing circuit for randomly re-ordering the program information for the second block chain.
  20. 30
    The apparatus of one of claims 24 to 29, further comprising:a length determination circuit for randomly varying the length of units of the program information for the second block chain.
  21. 31
    The apparatus of one of claims 24 to 30, further comprising:a dummy-data insertion circuit for adding dummy-data to the program information for the second block chain.
  22. 32
    The apparatus of one of the preceding claims, wherein a plurality of chains of program information are communicated from the external storage device to said secure circuit in a substantially randomly varying sequence.
  23. 33
    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.
  24. 37
    The apparatus of one of claims 33 to 36, 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.
  25. 38
    The apparatus of one of claims 33 to 37, wherein:said blocks of program information are stored in the external storage device in scrambled storage locations.
  26. 39
    The apparatus of one of claims 33 to 38, wherein:units of said program information with substantially randomly varying lengths are communicated from said secure circuit to the external storage device.
  27. 40
    The apparatus of one of claims 33 to 39, wherein a plurality of chains of program information are communicated from said secure circuit to the external storage device in a substantially randomly varying sequence.
  28. 41
    The apparatus of one of claims 33 to 40, further comprising:means for providing at least one of (a) substantially random block-wise re-ordering of said first block chain, and (b) substantially 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.
  29. 42
    The apparatus of one of claims 33 to 41, wherein:units of said program information are communicated from said secure circuit to the external storage device using substantially randomly varying sequences.
  30. 43
    The apparatus of one of claims 33 to 42, wherein:units of said program information are communicated from said secure circuit to the external storage device using substantially randomly varying lengths.
  31. 44
    The apparatus of one of claims 33 to 43, wherein:said program information comprises dummy data which was not processed by the CPU.
  32. 45
    The apparatus of one of claims 33 to 44, wherein said program information is provided in block chains.
  33. 46
    The apparatus of one of claims 33 to 45, 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.
  34. 48
    The apparatus of one of claims 33 to 47, 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.
  35. 50
    An apparatus for processing encrypted program information, comprising:a secure circuit including at least one of encryption and decryption circuits, a central processing unit (CPU), and at least one block buffer for storing at least one block of 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 between said external storage device and said at least one block buffer in a first cipher block chain;said at least one of said encryption and decryption circuits being responsive to said at least one block buffer for respectively encrypting or decrypting said program information;and a second communication path which is adapted to communicate the program information between said at least one of decryption and encryption circuits and said CPU.
Independent claims35