Security

Hardware and Software Encryption: What’s the Deal?

By Sydney Butler / August 2, 2018

Encryption is an amazing technology that helps keep the web secure and useful. Serving billions of people. Modern encryption is so strong that, for the moment, there’s no conceivable way to break it using brute force methods.

That being said, all encryption is not implemented the same way. Apart from there being different types of encryption, the technology driving it can differ as well. Two important main types of encryption implementation are software and hardware solutions.

As the names suggest, software encryption runs as code on the general-purpose processor. Hardware encryption, on the other hand, uses dedicated processing power to do encryption and encryption only. Each approach has its own uses, advantages, and disadvantages. Let's have a look at what that entails.

Software Encryption: Any Time, Any Place

Software Disc

Software encryption is implemented using a special application which encrypts data. For example, using encryption with a program like WinZip. It's software instructions that tell your CPU how to encrypt and decrypt the data.

The same goes for any software tool which encrypts your whole hard drive or just a single file.

The VPN applications we use on our computers are another example of software encryption, as is the HTTPS encryption that happens in your browser. Software encryption is by far the most common encryption method on computers today.

The Advantages of Software Encryption

The popularity if this encryption approach tells us that it probably has many advantages. The most prominent advantage of a software encryption solution is accessibility. Since software is just code that can be adapted to run on just about any general-purpose processor, anyone can implement it.

Software encryption is also pretty cheap. So it makes sense to use it at scale. Especially when you need to protect a whole company's computers. Since software can be copied easily, once the development cost of the software is recouped, the developer can sell their encryption software at high volumes and a relatively low price.

The Disadvantages of Software Encryption

There are several rather serious downsides, however. For one thing, software encryption is no more privileged than any other software. It is subordinate to the operating system. In other words, the operating system is still pretty much its boss. So if there is some sort of security hole in the operating system, any software-based encryption solution is vulnerable.

The next disadvantage is that software-based encryption is often only protected by a password that you choose. So if someone cracks the password, your data is theirs. This is less of a problem if you use long, randomly-generated keys instead. Still, if someone manages to steal a copy of the keys, there's little you can do about it.

The third major disadvantage has to do with performance. Software encryption shares CPU resources with all the other software on your computer. It inevitably makes things a little slower than they need to be. On modern computers, it's not that much of a problem. But there are still cases where performance can be severely affected because of software encryption overhead.

A fourth issue has to do with malware or hacking. Often aimed at the encryption tools themselves. It's possible (although generally unlikely) that internet bad guys will target encryption tools. Ironically, ransomware uses software-based encryption against a target to extort money from them.

Hardware Encryption: Inflexible & Invincible(ish)

Chip

Hardware encryption is an approach that ties the process of encryption and decryption to a particular device. There is a dedicated hardware component in the machine. This takes care of authentication and encryption duties without putting additional strain on the main processor.

Dedicated encryption processors and devices like TouchID sensors on Apple devices are examples of hardware-based encryption.

The Advantages of Hardware Encryption

There are two major advantages to performing your encryption in hardware. The first and most obvious one is speed. Dedicated processing hardware takes care of the actual number crunching work. This means the main CPU is free to work to the max. With modern computer technology, the two processors can work in perfect sync. Which means the whole thing is seamless from the user's point of view.

The second major advantage of using hardware encryption is that your security solution is above any software layer. The operating system and the software that runs on it doesn't have access to the inner workings of the hardware modules. This means if the OS or application that communicates with the hardware solution is hacked, the encryption itself should remain secure.

The Disadvantages of Hardware Encryption

While hardware solutions to encryption are much more hardened against any sort of attack, there are still a few drawbacks.

Hardware solutions can still have bugs in them. Sometimes hackers find these exploits and then any system that relies on that hardware is compromised. If this was a software solution, then fixing the problem would be as simple as sending out a patch. It's not that easy with hardware encryption solutions.

Some processors have patchable microcode, but in many cases, the actual hardware will have to be replaced. That’s not practical or affordable in many cases.

Hardware solutions obviously cost more than software solutions. The hardware has to be manufactured after all. If your hardware encryption solution should fail, it also becomes almost impossible to get your information back.

The Right Tool for the Job

We need both types of encryption solutions to make the various systems which make up our digital world. They each have a different purpose and place. In effect, these two approaches to encryption work together and produce an overall higher level of security. As long as the right solution is used in the right place, all that matters is that you have encryption to cover your back.



For a better user experience we recommend using a more modern browser. We support the latest version of the following browsers: For a better user experience we recommend using the latest version of the following browsers: Chrome, Edge, Firefox, Safari