Could someone tell me the difference between hardware encryption and software encryption?
(With regards to flash drives, if it makes any difference).

From what I understand, software encryption is basically a program that runs when a flash drive is inserted and asks for a password. So what does hardware encryption do? Does it protect it in the same way?

If so, what is the difference between them?


Ultimately, there is no difference: both "types" of encryption will end up running some software on top of some hardware so this is mostly a marketing argument.

How an encryption stack works exactly depends, of course, from case to case and it is very important to review the details.

For instance, some hard drive will implement some encryption layer in the BIOS of their controller that will force every write done to the disk to go through that encryption layer no matter what the computer the disk is connected to supports or does. The same, however, can be achieved without any direct support from the hardware by using full disk encryption.

Both "type" of solution typically have the same performances since modern CPUs are fast enough to process the encryption/decryption streams faster than the read or write speed of even fast SSD drives (i.e. the encryption isn't the bottleneck).

Typically, all solution will offer roughly the same algorithm - frequently, AES in CBC mode using a diffuser: it's standard, royalty-free, well understood and has known security properties. The most important element to consider when looking at a disk encryption solution is the key management: how are encryption keys generated, stored, accessed and managed. This is where "software" based encryption usually shines: having access to a "richer" environment (especially so is there is some OS support or access to specialized hardware installed on the machine - like a TPM chip) which can lead to a better experience and more secure key management.

| improve this answer | |

Generally on a computer, software encryption often runs on shared architecture such as your computers CPU. True hardware encryption would run on something like a Secure Cryptoprocessor or similar dedicated chipset. This can help isolate secure procedures from the rest of the system and often have architecture to very quickly run the needed calculations.

The lines are very blurred these days because a lot of standard CPU chips have areas built into their architecture to optimize AES the encryption process. This means you could have a software encryption process utilizing a dedicated circuit on a piece of hardware to run encryption.

I think the real distinction comes from looking at applications where a big and powerful CPU isn't available. While I know this isn't related to your question about the USB drive, it does illustrate the point. Most movies sold on DVD in the late 1990s were encrypted using an algorithm called Content Scramble System (CSS). As your DVD player played a movie, it had to decrypt the information on the fly using a stream cipher before it could push the signal out to your TV. Given how little processing power was available to these early DVD players, there was likely dedicated hardware in the form of a descrambler chip which actually ran the decryption. Because the need was so specialized, and had to be done as cheaply as possible, a hardware chip specifically designed to meet those needs would make the most sense.

| improve this answer | |

Hardware based encryption has several advantages:

Speed - hardware encryption works much more faster than software one. Independence - it's independent from host system - OS, drivers, etc. Separate processor for number generation is also big plus. Security - More secure against malware, brute force attacks, cold boot attack, etc.

| improve this answer | |
  • 1
    But how does it secure the drive? With a password? – adb16x Dec 11 '14 at 9:36
  • Processor will generate encryption key, which the user's password will unlock. Basically yes, it secures with password. But everything is stored and processed inside flash drive. – skinnercid Dec 11 '14 at 9:45
  • Also keep in mind that most hardware based encryption implementations will have a TPM, or trusted platform module. The TPM stores the key(s) used to encrypt/decrypt the data in a physically separate/independent chip from the OS and rest and of the hardware. This makes it exponentially more difficult for an attacker to extract the keys. The problems with software based encryption is that the keys are there, protected by various means, but still stored in software. – k1DBLITZ Dec 11 '14 at 17:41

For software encryption, if malware steals your master key, the data security is totally compromised. For hardware encryption, even your password is stolen, the master key is still not known to the attacker. You can change the password of certain encrypted data, but not the master key. An attacker can gain a copy of your encrypted data via different ways, and then uses the stolen master key to unlock everything. This is especially bad, when the encryption is applied on a large volume of data, which makes the consequences of losing the master key very significant.

| improve this answer | |
  • What exactly is the master key you are writing about? What is its relation to password? Where is this master key stored? Can I have different passwords for different files on a software- or hardware-encrypted flash drive, as you said: "change the password of certain encrypted data"? – techraf Jul 2 '16 at 5:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.