2

iOS file encryption deploys many layers of encryption; There is the AES-256 accelerator
encrypting general flash memory with the per-file-, UID-, and GID keys.
There is Data Protection on the software level further encrypting with unique file keys
which are wrapped with class keys etc.

How is performance taken into account with this heavy load of encryption?
Is it all symmetric encryption?

2

Cryptographic operations are complex and can introduce performance problems and also on mobile devices, battery life is another resource need to be critically managed. Encryption of data is deeply built into iOS.

iOS security documentation (page 9) goes in some detail on explaining how the encryption mechanism works.

Is it all Symmetric Encryption?

Yes, iOS uses AES algorithm with 256 bit keysize.

How is performance taken into account with this heavy load of encryption?

Quoting from the document.

Every iOS device has a dedicated AES 256 crypto engine built into the DMA path between the flash storage and main system memory, making file encryption highly efficient.

Thus, by using a hardware encryption engine, and integrated at the very basic IO level helps in getting the performance and also in return saving battery life.

EDIT: In Blackhat Europe'15, an excellent talk was given on Disk Encryption on mobile devices (iOS and Android). The whitepaper for it covers encryption in iOS in very simple and straightforward manner.

  • Which components of the phone would process the encryption if there was no crypto engine? – Manumit Nov 6 '15 at 12:44
  • 1
    If there is no hardware engine, then it has to be done in the software. Then it is on the design at which stage it is best to do. I don't have much experience in designing such systems, but it should be done at the kernel level when the file is being accessed from hard disk to get the best performance. – Jor-el Nov 6 '15 at 12:46

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.