首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AES CTR与非随机和可预测的现在?

AES CTR与非随机和可预测的现在?
EN

Cryptography用户
提问于 2017-01-17 14:50:06
回答 1查看 760关注 0票数 4

在阅读了大量关于AES、CTR及其IV的内容之后,我仍然不确定是否可以使用可预测的IV。

我搜索了网络,找到了一些以这种方式使用加密的程序/设备。

比如萝拉。Lora是一个低速网络,用于在拥有数千台设备的完整城市中交换数据(温度或湿度传感器)。

示例:我在Web上找到了Lora的源代码,它就是这样做的。

一个序列计数器,它在整个节点生存期内只使用每个值一次。

每一个新的16字节块就有一个1字节的计数器。

初始化IV

代码语言:javascript
复制
static uint8_t aBlock[] = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

after this

    aBlock[5] = dir;           ( direction of message)
    aBlock[6] = ( address ) & 0xFF; (Hardware address of device)
    aBlock[7] = ( address >> 8 ) & 0xFF; (Hardware address of device)
    aBlock[8] = ( address >> 16 ) & 0xFF; (Hardware address of device)
    aBlock[9] = ( address >> 24 ) & 0xFF; (Hardware address of device)
    aBlock[10] = ( sequenceCounter ) & 0xFF; (counter that never repeats)
    aBlock[11] = ( sequenceCounter >> 8 ) & 0xFF; (counter that never repeats)
    aBlock[12] = ( sequenceCounter >> 16 ) & 0xFF; (counter that never repeats)
    aBlock[13] = ( sequenceCounter >> 24 ) & 0xFF; (counter that never repeats)
    aBlock[15] = ( ( ctr ) & 0xFF );  ( a counter value that is incremented for every 16 Byte Block)

这够安全吗?

源代码:https://github.com/Lora-net/LoRaMac-node/blob/master/src/mac/LoRaMacCrypto.c第108行: void LoRaMacPayloadEncrypt()

http://www.semtech.com/wireless-rf/internet-of-things/

EN

回答 1

Cryptography用户

发布于 2017-01-17 15:05:23

对于CTR模式,不需要随机IV。唯一的要求是,在所有加密过程中,计数器在每个块中都是唯一的。(这与CBC模式形成对比,CBC模式中IV的不可预测性是必不可少的。)

票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/43050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档