首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AES.MODE_EAX加密AES

使用AES.MODE_EAX加密AES
EN

Cryptography用户
提问于 2021-09-27 22:40:26
回答 1查看 554关注 0票数 0

我目前正试图用Python对一个更大的文件执行AES加密,以便进行模拟。目前,我一直在尝试使用AES.MODE_EAX,如AES文档中提到的那样:

https://pycryptodome.readthedocs.io/en/latest/src/cipher/aes.html

我想检查文件加密的正确方法是什么。

目前,我正在将文件分成16字节块,并使用相同的128位密钥来创建密码,以便对每个块进行加密。根据加密的需要,我在每个块上运行以下命令,并对加密结果执行分析:

代码语言:javascript
复制
cipher = AES.new(key, AES.MODE_EAX)
nonce = cipher.nonce
ciphertext, tag = cipher.encrypt_and_digest(data_chunk)

我不确定我的理解是否彻底。这是否是通过AES加密数据的有效方法?或者使用MODE_EAX还有其他模式或方法(比如使用完整文件的数据)?在这种情况下我应该考虑的?

EN

回答 1

Cryptography用户

发布于 2021-09-28 06:50:16

您不必将数据划分为16字节块,并对每个块进行单独加密。encrypt_and_digest方法将为您处理所有这些部门。相反,您应该对整个数据数组调用该方法。

通过对每个块进行单独加密,您将为每个块创建一个名和标记,而不是为所有数据创建一个名和标记。即使是中等大小的数据,这也将大约是密码的三倍。每个块产生一个标记的唯一真正好处是,如果消息的完整性受到损害,您可以缩小它发生在哪个块中的更改范围。

正如注释中所指出的,在现代实现中,AES.GCM通常比AES.EAX更可取。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/95320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档