我在Contiki OS
的AES安全工作。我有AES库,它支持两种类型的加密/解密:
- On the fly
- 固定键
在on-the-fly
中,当我使用密钥加密数据时,会生成新的密钥和加密的数据。这个新生成的密钥用于解密数据。因此,每次执行enc/dec操作时,我的密钥都会更改。
在fixed-key
算法中,对所有enc/dec
我很困惑,我应该选择哪种方法?我不知道这两种方法的优缺点。
on- fly和fix-key之间的区别在Rijndael提案的第4.3.2节注释部分中进行了解释。
"键调度可以在不显式使用数组W[Nb*(Nr+1)]的情况下实现。对于RAM稀缺的实现,可以使用一个包含Nk个单词的缓冲区,几乎没有计算开销。"
实际上,动态键调度将节省一些内存,因为您不需要存储整个扩展键,但您在每轮中计算它。动态键调度的优点只在非常小的微控制器或硬件实现中才真正重要。
缺点是解密速度较慢,因为在开始解密之前需要先展开密钥。