Securing implementations of feedback-shift-register-based ciphers using compiler optimizations and co-processors.