Exploring the differences between hardware and software cryptography