Computer Architecture and Security: Fundamentals of Designing Secure Computer Systems