Iphone 苹果在硬件加速AES/SHA-1加密中使用哪种硬件芯片/供应商?

Iphone 苹果在硬件加速AES/SHA-1加密中使用哪种硬件芯片/供应商?,iphone,aes,hardware-acceleration,Iphone,Aes,Hardware Acceleration,这是我问题的后续部分:。经过进一步分析和黑客攻击,我确定iOS CommonCrypto仅支持AES-CBC模式(密码块链接)的硬件加速,而不支持AES-CTR(计数器)或AES-ECB(电子码本)模式。尽管这与开源代码不同: 因此,这似乎是一个额外的“修复”在什么是公开的。所以我很想知道硬件的功能是什么,苹果是否真的阻止应用程序开发人员使用硬件芯片的所有功能 我已经查看了通常的嫌疑犯(&)以获取此信息,但没有运气 我很想知道硬件的功能是什么,苹果是否真的阻止应用程序开发人员使用硬件芯片的所有功

这是我问题的后续部分:。经过进一步分析和黑客攻击,我确定iOS CommonCrypto仅支持AES-CBC模式(密码块链接)的硬件加速,而不支持AES-CTR(计数器)或AES-ECB(电子码本)模式。尽管这与开源代码不同:

因此,这似乎是一个额外的“修复”在什么是公开的。所以我很想知道硬件的功能是什么,苹果是否真的阻止应用程序开发人员使用硬件芯片的所有功能

我已经查看了通常的嫌疑犯(&)以获取此信息,但没有运气

我很想知道硬件的功能是什么,苹果是否真的阻止应用程序开发人员使用硬件芯片的所有功能

至少一些硬件加速的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
$clang++-arch arm64-dM-E-

随着
\uu ARM\u FEATURE\u CRYPTO
的生效,您可以访问通常在
中找到的ARM汇编程序指令和ARM intrinisics;而Dino Zavi的。

iPhone6S上的通用加密确实在ECB模式下使用硬件加密,事实上ECB模式比CBC模式快得多。iPhone6S的加密1MB定时为CBC模式:2.10秒,ECB模式1.28秒。我没有计时CTR模式。其他功能包括iOS上的AES-GCM,但没有提供标头。