【发布时间】:2020-08-21 04:06:32
【问题描述】:
我在互联网上找到的所有关于 AES-128 算法的描述都是关于输入 128 位明文,该明文经过 11 轮转换以生成 128 位密文。我的问题是:
由于要发送的实际消息可能不仅仅占用一个 128 位“块”,我是否需要为我从消息中生成的每个 128 位块使用唯一密钥,以使用 AES-128 进行加密,或者我可以为每个 128 位块使用相同的密钥吗?
在为论文(期刊)创建算法时我需要这些信息,因此我在使用 AES-128 时需要科学正确,它构成了我的算法的一部分。
【问题讨论】:
-
长话短说,您使用mode of operation 将像AES 这样的分组密码转换为流密码。
-
正如其他人所说,您需要密码模式。您只需要一把钥匙。如果您不需要身份验证,请使用 CBC 模式或 CTR 模式。对于身份验证,请使用 GCM 模式。您可能还需要对消息的最后一个块进行填充。除非您有理由不这样做,否则请使用 PKCS#7 填充。
标签: java encryption cryptography aes encryption-symmetric