Abstract:
An embodiment of the invention comprises a semiconductor integrated circuit for restricting the rate at which data may be accessed from an external memory by a device on the circuit. The rate of data access is restricted if the data access satisfies one or more conditions. For example, one of the conditions is that the device which is requesting the data is insecure. Another condition is that the requested data is privileged. A data access monitor is provided to monitor data accesses and to is arranged go generate an access signal to indicate whether the conditions are satisfied or not. The access signal comprises a stream of data portion signals, each one corresponding to a portion of data of a predetermined size being retrieved from the external memory that satisfies the conditions. A bandwidth comparator receives the data portion signals and determines the rate of data retrieval satisfying the conditions. Each data portion signal cause a counter in the bandwidth comparator to be incremented, while clock signals cause the counter to be decremented at a constant rate. The counter value is compared with one or more thresholds, and if the counter value exceeds one or more of the thresholds, the functioning of the semiconductor integrated circuit is impaired to prevent further data access.
Abstract:
A portion of data is obfuscated by performing a bitwise XOR function between the bits of the data portion and the bits of an associated mask. A mask used to obfuscate a data portion is generated as a function of the memory address of the data portion. A bitfield representing the memory address of the data portion is split into a plurality of subset bitfields. Each subset then forms the input of a corresponding primary randomising unit. Each primary randomising unit is arranged to generate an output bitfield that appears to be randomly correlated with the input, but which may be precisely determined from the input if certain secret information is known. Each primary randomising unit is also arranged so that a distinct output is generated for each distinct input. The output of the primary randomising units form the input into a series of secondary randomising units. Each secondary randomising unit is arranged to receive as an input at least one bit of the output of every primary randomising unit. The secondary randomising units are arranged to generate an output bitfield in a similar manner to the primary randomising units. The output of the secondary randomising units are then combined by concatenation to form a data mask. In one embodiment, each randomising unit comprises a look-up table whose contents are formed by permuting a sequence of ordered integers in a random manner. In this embodiment, the secret information corresponds to the contents of the look-up table. A mask is thus generated from the memory address of a data portion such that a distinct mask is generated for each distinct memory address, and such that there is a quasi-random correlation between the memory address and the corresponding mask.
Abstract:
In an embodiment of the invention, a memory is provided to store data in an encrypted form. A modifiable register is arranged to store a memory address, a 0 , defining a boundary separating the memory into two regions. The lower region stores data encrypted using a key B, and the upper region stores data encrypted using a different key A. Data stored on the boundary address is encrypted using key A. Accordingly, when data is read from a memory address a, key A is used to decrypt the data if a≥a 0 , and key B is used if a 0 . However, when data is written to a memory address a, then key A is used to encrypt the data if a≥a 0 +1, key B is used if a 0 +1. The value of a 0 is then incremented by one. When data is written to the boundary address, a 0 , the position of the boundary is thus caused to increase by one unit. Initially, the value of a 0 is set to zero so that all data within the memory is encrypted using key A. As data is written to the memory, particularly on the boundary address, the value of a 0 gradually increases. Eventually the value of a 0 will exceed the highest address of the memory. At this point, all data within the memory is encrypted using key B, and a new key is generated. The new key becomes key B, and key A takes the value of the old key B. The value of a 0 is then set back to zero and the process is repeated. If a particular region of the memory is never written to, the value of a 0 will not increase beyond the lowest memory address of this region. To prevent this occurrence, if the value of a 0 does not change within a predetermined period of time then a 'kicker' process is activated. During the kicker process, data is caused to be read from the memory address a 0 , and then to be written back to the same location, thereby artificially stimulating an increase of the value of a 0 .
Abstract:
A semiconductor integrated circuit for the processing of conditional access television signals comprises an input interface for receiving encrypted television signals and an output interface for output of decrypted television signals. Control signals broadcast with the television signals include control words and common keys. The common keys are received in encrypted form, encrypted according to a secret key unique to each semiconductor integrated circuit. The input interface is connected to a decryption circuit whereby the only manner of providing the common keys to the circuit are in encrypted form encrypted according to the secret key. Due to the monolithic nature of the circuit, no secrets are exposed and the system is secure.
Abstract:
A receiver for receiving a data stream comprises a filtering arrangement for filtering said received data stream and a processor. The filtering arrangement is arranged to load at least a part of said data stream, to filter at least part of said data stream and to read at least part of said data stream. The filtering arrangement has a first mode in which said steps are carried out and a second mode in which said processor is arranged to interrupt the steps carried out by said filtering arrangement.
Abstract:
The invention relates to circuitry for processing data. The circuitry comprises a plurality of filters arranged in parallel and means for storing input data. The input data is applied to the plurality of filters to provide at least two parallel results and means for carrying out an operation with respect to the results.
Abstract:
A system comprising: at least one input means for receiving from one of a plurality of sources at least one packet stream comprising a plurality of packets for providing audio, video, private data and/or associated information; at least one output for outputting at least one packet of said at least one packet stream to circuitry arranged to provide an output stream; wherein the system is arranged to provide a tag indicative of said source, said tag being associated with said at least one packet.
Abstract:
A semiconductor integrated circuit (30) for the processing of conditional access television signals comprises an input interface (43) for receiving encrypted television signals and an output interface (45) for output of decrypted television signals. Control signals broadcast with the television signals include control words and common keys. Entitlement messages are received in encrypted form, encrypted according to a secret key unique to each semiconductor integrated circuit. The input interface is connected to a decryption circuit (32) whereby the only manner of providing the common keys to the circuit are in encrypted form encrypted according to the secret key. Due to the monolithic nature of the circuit, no secrets are exposed and the system is secure. Alternatively, the entitlement messages are encrypted for decryption with the common keys and a unique ID stored in the circuit is compared with an ID in a received entitlement message. Only if the received and stored IDs match can the rights be stored and used.