AES ( Advanced Encryption Standard ) на самом деле представляет собой набор из трех связанных алгоритмов блочного шифрования (или пары алгоритмов, если один учитывает шифрование и дешифрование по отдельности). Все они работают на 128-битных блоках (16 байт).
Наиболее часто используемым является AES-128, который принимает 128-битный ключ (то есть 16 байтов). AES-192 использует 192-битный ключ (24 байта), AES-256 принимает 256-битный ключ (32 байта).
Эти три алгоритма работают одинаково, но все же по-разному (а алгоритмы для более длинных ключей занимают немного больше времени, поскольку они выполняют больше «циклов» операции внутренней путаницы, поэтому все биты ключей могут как-то влиять на все биты зашифрованного текста). Таким образом, все эти ключи для всех этих алгоритмов шифруются и дешифруются по-разному (то есть не существует ключа AES-256, который делает то же самое, что ключ AES-128).
Тем не менее, я, к сожалению, понятия не имею, поддерживает ли библиотека CommonCrypto все варианты AES, и если да (то, что я предполагаю), как выбрать правильный вариант.