Benchmarks

Encrypting data comes at the price of reduced performance when accessing that data. This is because the process of encryption and decryption results in data being passed through complex algorithms that transform the data into unreadable and readable states, respectively. Running these algorithms takes time, and makes the CPU work harder, all of which can impact performance (and battery life for laptop users) when accessing that data.

This is why Espionage gives you fine-grained control over what gets encrypted. :-)

OK, but how much?

To answer this question we ran the standard suite of benchmarks using Intech's QuickBench software with default settings on a Macbook Pro laptop with the following specifications:

CPU: 2.2 GHz Intel Core 2 Duo
HDD: Seagate Momentus 200 GB 7200 RPM
RAM: 4 GB

We ran benchmarks on the hard drive, and two mounted disk images (the same system that FileVault uses). Each disk image was a sparse disk image formatted with a 500 MB capacity and HFS+J filesystem, the only difference being the encryption strength.

The results were rather dramatic, with more than a 3x difference between sequential operations for AES-128 and almost a 4x difference with AES-256:

Layman's definitions for what each of these tests mean are at the bottom of this document.

The time taken to complete the standard suite of benchmarks was measured using a stopwatch.

To give an indication of how accessing encrypted data can impact battery life, we measured how idle the CPU was during the first 70 seconds of the benchmarks (higher is better):

All running applications were terminated (except for important system tasks) and the internet connection was turned off during the tests.

Appendix

Layman's Definitions and Examples
Sequential read: How quickly data can be read in order. Operations such as opening files and watching movies typically result in sequential reads.
Sequential write: How quickly data can be written in order. Operations such as copying and duplicating files typically result in sequential writes.
Random read: How quickly data can be randomly read. Launching applications can result in this sort of activity.
Random write: How quickly data can be written to random parts of the hard drive. Databases can result in this kind of activity.
Idle CPU: The percentage of the CPU that's not being used.