Fault Tolerant Architectures for Cryptography and Hardware Security