Secure hardware design against side-channel attacks