3

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

  1. 在飞行中
  2. 固定键

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

在该fixed-key算法中,一个固定的密钥用于所有的enc/dec。

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

4

1 回答 1

0

在原始 Rijndael 提案第 4.3.2 节的注释部分中解释了 on-the-fly 与 fix-key 之间的区别。

“可以在不显式使用数组 W[Nb*(Nr+1)] 的情况下实现密钥调度。对于 RAM 稀缺的实现,可以使用 Nk 个字的缓冲区即时计算轮密钥,其中几乎没有计算开销。”

本质上,即时密钥调度将节省一些内存,因为您不需要存储整个扩展密钥,而是在每一轮中计算它。动态密钥调度的优势仅在非常小的微控制器或硬件实现中才真正重要。

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

于 2018-11-29T14:09:59.103 回答