ios - 对于使用 CCCrypt() 的 AES128, key 是否可以超过 128 位?

标签 ios cryptography aes commoncrypto

我正在使用 CCCrypt方法。

我可以使用比 128 位更长的 key 吗?可以任意长吗?还是 128 的倍数?

如果是这样,我该怎么做?

我认为这不可能,但我发现了这段文字:here

Some algorithms such as AES and RSA allow for keys of different lengths, but others are fixed, such as DES and 3DES. Encryption using a longer key generally implies a stronger resistance to message recovery. As usual, there is a trade off between security and time, so choose the key length appropriately.

AES 如何允许不同的长度,它会忽略高于 128 的位吗?

我正在为这个而烦恼。

最佳答案

AES(Advanced Encryption Standard)实际上是三种相关分组密码算法(或算法对,如果单独计算加密和解密的话)的集合。它们都适用于 128 位 block (16 字节)。

最常用的是 AES-128,它采用 128 位 key (即 16 字节)。 AES-192 采用 192 位 key (24 字节),AES-256 采用 256 位 key (32 字节)。

这三种算法的工作方式相似,但仍然不同(较长 key 的算法需要更长的时间,因为它们进行了更多“轮”的内部混淆操作,因此 key 的所有位都可以以某种方式影响所有位的密文)。因此,所有这些算法的所有这些 key 都以不同的方式加密和解密(即没有 AES-256 key 与 AES-128 key 执行相同的操作)。

也就是说,不幸的是,我不知道 CommonCrypto 库是否支持 AES 的所有变体,如果支持(我猜想),如何选择正确的变体。

关于ios - 对于使用 CCCrypt() 的 AES128, key 是否可以超过 128 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770424/

相关文章:

ios - 如何像 Apple 的 Maps.app 一样在 MKMapView 缩放期间显示 map 比例

hash - 散列密码的最佳实践 - SHA256 还是 SHA512?

ssl - GlassFish 4.0 是否可以实现 AES 256 位加密?

iOS 硬件加密与自己的实现

iphone - iOS 缓存策略

ios - UIImage用户信息

ios - 我可以在 iOS 9 中上传只有 4 英寸启动图像的 App Store 构建吗?

php - Ruby 'AES-128-CBC' 和 PHP 'rijndael-128' 加密有什么区别吗?

java - 使用 Java 在 Android 上解密 OpenSSL 加密的文件

Android AES 128 加密