C语言 何时使用动态AES加密和固定密钥AES加密



我在Contiki OS的AES安全工作。我有AES库,它支持两种类型的加密/解密:

  1. On the fly
  2. 固定键

on-the-fly中,当我使用密钥加密数据时,会生成新的密钥和加密的数据。这个新生成的密钥用于解密数据。因此,每次执行enc/dec操作时,我的密钥都会更改。

fixed-key算法中,对所有enc/dec

使用一个固定密钥。

我很困惑,我应该选择哪种方法?我不知道这两种方法的优缺点。

on- fly和fix-key之间的区别在Rijndael提案的第4.3.2节注释部分中进行了解释。

"键调度可以在不显式使用数组W[Nb*(Nr+1)]的情况下实现。对于RAM稀缺的实现,可以使用一个包含Nk个单词的缓冲区,几乎没有计算开销。"

实际上,动态键调度将节省一些内存,因为您不需要存储整个扩展键,但您在每轮中计算它。动态键调度的优点只在非常小的微控制器或硬件实现中才真正重要。

缺点是解密速度较慢,因为在开始解密之前需要先展开密钥。

最新更新