其他开发人员已经为我们即将推出的物联网设备开发了一种定制的内部射频协议。我想用 AE 代替我们对 AES-CTR 的使用——我们的加密库支持 CCM,因此应该具有最低的实施障碍。
CCM 需要两个可调参数 -L
和M
,以及相应的安全权衡。给定对单键协商和简短事务消息的偏好,为L
和选择什么好的值M
?
由于设备支持调度,我估计在安装生命周期内每天大约 100 条消息的上限,我可以慷慨地估计为 30 年。消息通常小于 10 个字节(该协议最多支持 64kib)。我们不会使用关联数据。
我还想随机选择随机数,部分是为了节省存储同步,部分是因为我不是 100% 确信我理解 Wikipedia 上的声明:“一个关键的见解是相同的加密密钥可以用于两者,前提是加密中使用的计数器值不与身份验证中使用的(预)初始化向量发生冲突。” 清楚地。由于生日悖论,这应该会降低密钥的预期寿命。
如果我选择L=2
and ,这会提供足够的安全性M=8
吗?或者,如果我们预计使用寿命为 30 年,我是否需要重新协商密钥?
编辑:请注意,我更关心 的选择L
,这似乎会产生安全性权衡(随机数长度与消息长度),而不是M
更典型的性能/安全性权衡。