A secure
data processing apparatus and method are disclosed. The secure
data processing apparatus is operable to securely process user data provided by a user. The secure
data processing apparatus comprises: a trusted domain (200) comprising a trusted
bus coupled with a trusted data
processing apparatus (220) operable to process incoming user data received over the trusted
bus and to generate outgoing user data; a trusted
domain controller (210)
coupling the trusted
bus with an untrusted bus of an untrusted domain, the trusted
domain controller (210) being operable to ensure that encrypted incoming user data received over the untrusted bus is decrypted and provided over the trusted bus as the incoming user data and to ensure that outgoing user data is encrypted and provided over the untrusted bus as encrypted outgoing data; and a
data store access controller (250)
coupling the trusted
domain controller (210) and the trusted data
processing apparatus (220) with a
memory bus (60) of a
data store (240), the
data store access controller (250) being operable to
restrict successful requests to use the data store (240) received from the trusted domain controller (210) and the trusted data
processing apparatus (220) to those addressed to a trusted region of the data store (240). By providing a data store access controller (250), it is possible to constrain memory that can be accessed by each device operable to generate access cycles to a data store (240), and a trusted domain (200) can be implemented within a general computing
system. The constraint can be implemented by interposing a special component, referred to as an "address firewall" (250), or data store access controller (250), between each hardware element able to access the main RAM memory (240) and a
memory bus (60).