Engineering Secure Devices : A Practical Guide for Embedded System Architects and Developers