A system comprising: a Security Management Unit - SMU -; an Access Control Block; and a cache unit comprising computer readable medium, wherein said cache unit is configured to retain: a plurality of cache blocks a plurality of owner indicators, wherein for each cache block of the plurality of cache blocks exists a corresponding owner indicator in the plurality of owner indicators, wherein an owner indicator corresponding to a cache block is capable of identifying an entity that caused the cache block to be fetched to the cache unit; a plurality of validity marks, wherein for each cache block of the plurality of cache blocks exists a corresponding validity mark in the plurality of validity marks, wherein a validity mark corresponding to the cache block indicates whether a validation process performed on the cache block upon fetching thereof was successful, wherein the validation process is a key-based validation process configured to be performed based on a corresponding owner indicator, wherein the key-based validation process utilizes a key associated with an owner identified by said owner indicator, wherein the Security Management Module is configured to perform the validation process which comprises a check whether an encrypted data block being fetched into the cache unit is of a protected program and a decryption of the encrypted data block using a key associated with the owner of the block; and wherein the plurality of owner indicators and the plurality of validity marks are configured to be utilized by said Access Control Block to enforce access privileges to the plurality of cache blocks, wherein said Access Control Block is configured to compare, for each instruction to perform a memory access for a cache block, a validity mark of the cache block and an owner indicator of the cache block with a validity mark and owner indicator of the instruction. a Security Management Unit - SMU -; an Access Control Block; and a cache unit comprising computer readable medium, wherein said cache unit is configured to retain: a plurality of cache blocks a plurality of owner indicators, wherein for each cache block of the plurality of cache blocks exists a corresponding owner indicator in the plurality of owner indicators, wherein an owner indicator corresponding to a cache block is capable of identifying an entity that caused the cache block to be fetched to the cache unit; a plurality of validity marks, wherein for each cache block of the plurality of cache blocks exists a corresponding validity mark in the plurality of validity marks, wherein a validity mark corresponding to the cache block indicates whether a validation process performed on the cache block upon fetching thereof was successful, wherein the validation process is a key-based validation process configured to be performed based on a corresponding owner indicator, wherein the key-based validation process utilizes a key associated with an owner identified by said owner indicator, wherein the Security Management Module is configured to perform the validation process which comprises a check whether an encrypted data block being fetched into the cache unit is of a protected program and a decryption of the encrypted data block using a key associated with the owner of the block; and wherein the plurality of owner indicators and the plurality of validity marks are configured to be utilized by said Access Control Block to enforce access privileges to the plurality of cache blocks, wherein said Access Control Block is configured to compare, for each instruction to perform a memory access for a cache block, a validity mark of the cache block and an owner indicator of the cache block with a validity mark and owner indicator of the instruction. a plurality of cache blocks a plurality of owner indicators, wherein for each cache block of the plurality of cache blocks exists a corresponding owner indicator in the plurality of owner indicators, wherein an owner indicator corresponding to a cache block is capable of identifying an entity that caused the cache block to be fetched to the cache unit; a plurality of validity marks, wherein for each cache block of the plurality of cache blocks exists a corresponding validity mark in the plurality of validity marks, wherein a validity mark corresponding to the cache block indicates whether a validation process performed on the cache block upon fetching thereof was successful, wherein the validation process is a key-based validation process configured to be performed based on a corresponding owner indicator, wherein the key-based validation process utilizes a key associated with an owner identified by said owner indicator, wherein the Security Management Module is configured to perform the validation process which comprises a check whether an encrypted data block being fetched into the cache unit is of a protected program and a decryption of the encrypted data block using a key associated with the owner of the block; and wherein the plurality of owner indicators and the plurality of validity marks are configured to be utilized by said Access Control Block to enforce access privileges to the plurality of cache blocks, wherein said Access Control Block is configured to compare, for each instruction to perform a memory access for a cache block, a validity mark of the cache block and an owner indicator of the cache block with a validity mark and owner indicator of the instruction.