【问题标题】:AES/CFB8 IV sizeAES/CFB8 IV 尺寸
【发布时间】:2013-01-30 09:12:22
【问题描述】:

AFAIK,CFB8 模式的块大小为 1 字节。所以我可以推断IV也是1字节长度。 但是,当我进行测试时,将仅 1 个字节的相同 iv 传递给用于加密和解密功能的通用加密创建函数时,加密和解密的消息不匹配。

所以我认为 API 应该占用超过 1 个字节来用作 IV。我想知道为什么?我的理解有什么问题吗?

CCCryptorStatus result = CCCryptorCreateWithMode(operation,
                                                 kCCModeCFB8,
                                                 kCCAlgorithmAES128,
                                                 ccNoPadding,
                                                 iv.bytes,
                                                 key.bytes,
                                                 key.length,
                                                 NULL,
                                                 0,
                                                 0,
                                                 0,
                                                 &_cryptor);

if (result == kCCSuccess)
    result = CCCryptorUpdate(_cryptor,
                             data.bytes,
                             data.length,
                             cipherData.mutableBytes,
                             cipherData.length,
                             &outLength);

if (result == kCCSuccess)
    result = CCCryptorFinal(_cryptor,
                            cipherData.mutableBytes,
                            cipherData.length,
                            &outLength);

if (result == kCCSuccess)
    result = CCCryptorRelease(_cryptor);

【问题讨论】:

    标签: ios macos encryption cryptography aes


    【解决方案1】:

    IV 大小必须与对称算法块大小匹配。因此,对于 AES,您应该有一个 16 字节的 IV。

    CFB-8 有一个字节的移位大小。它与密码的块大小无关。

    【讨论】:

      【解决方案2】:

      它没有 1 个字节的块大小,它只是每 1 个字节重新同步一次。 IV 实际上是 16 个字节(对于 AES)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-23
        • 1970-01-01
        • 2014-10-20
        • 2014-05-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多