我很想知道硬件的功能是什麼,以及如果蘋果真的阻止應用程序開發人員使用硬件芯片的所有功能。
至少有一些硬件加速的AES和SHA來自ARMv8-a及以上版本的CPU功能。 ARMv8-A是ARM-64,並且你可以通過看它:
$ clang++ -arch arm64 -dM -E - < /dev/null | sort | egrep -i '(arm|aarch)'
#define __AARCH64EL__ 1
#define __AARCH64_SIMD__ 1
#define __ARM64_ARCH_8__ 1
#define __ARM_64BIT_STATE 1
#define __ARM_ACLE 200
#define __ARM_ALIGN_MAX_STACK_PWR 4
#define __ARM_ARCH 8
#define __ARM_ARCH_ISA_A64 1
#define __ARM_ARCH_PROFILE 'A'
#define __ARM_FEATURE_CLZ 1
#define __ARM_FEATURE_CRYPTO 1
#define __ARM_FEATURE_DIV 1
#define __ARM_FEATURE_FMA 1
#define __ARM_FEATURE_UNALIGNED 1
#define __ARM_FP 0xe
#define __ARM_FP16_FORMAT_IEEE 1
#define __ARM_FP_FENV_ROUNDING 1
#define __ARM_NEON 1
#define __ARM_NEON_FP 7
#define __ARM_NEON__ 1
#define __ARM_PCS_AAPCS64 1
#define __ARM_SIZEOF_MINIMAL_ENUM 4
#define __ARM_SIZEOF_WCHAR_T 4
#define __aarch64__ 1
#define __arm64 1
#define __arm64__ 1
有了效果__ARM_FEATURE_CRYPTO
,您可以訪問ARM彙編指令和手臂intrinisics在<arm_neon.h>
和<arm_acle.h>
習慣發現。
我不知道這是否是從存儲到內存中的DMA數據路徑上的相同的AES電路。我相信這個AES是iOS 4.3中宣佈的Data Protection API的一部分。
您或許能夠找到讓 - 巴蒂斯特Bédrune和Jean Sigwald iPhone data protection in depth答案;和Dino Zavi的Apple iOS 4 Security Evaluation。
來源
2016-05-15 15:00:26
jww
上iPhone6S公共密碼不使用硬件加密ECB模式,其實ECB模式悅目快於CBC模式。加密1MB時間我iPhone6S是CBC模式:2.10秒,ECB模式1.28秒。我沒有計時CTR模式。 – zaph 2016-05-15 16:42:22
其他功能包括AES-GCM iOS上,但沒有報頭被提供。 – zaph 2016-05-15 16:45:25