A less obvious approach is to introduce dynamic randomization in the mapping of memory addresses to cache lines: the attacker can still share the cache and observe its state, but cannot get any useful information about what cache lines a potential victim process is using.