Process isolation is the most important security constraint enforced by operating systems in multitasking systems. One process isolation is memory isolation, to separates running processes from accessing each other. However, such isolation is not implemented at the hardware level. For example, all processes running on the same CPU eventually share the same L1 and L2 caches. Furthermore, all processes share the last level cache. A malicious program can then manipulate the cache state to derive information about other processes that share the same cache, thus breaking the isolation the operating system provides. However, despite all the isolation mechanisms described by the OS, hardware sharing can lead to information leaks and thus violate t...