首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像加密的AES实现

图像加密的AES实现
EN

Cryptography用户
提问于 2021-03-18 04:31:48
回答 2查看 221关注 0票数 0

为了好玩,我一直在钻研密码学,并试图使用图像加密为AES实现可视化。到目前为止,将每个像素的RGB值表示为十六进制数字,然后将其拆分为一个由16个字符串组成的数组。我知道AES是一个分组密码,所以我必须将它们拆分成16个字符串,但是当字符串小于16个字符时,我该如何处理呢?我听说我应该给它添加更多的字符,以适应16个字符,但我不确定这是否正确,因为填充字符不会在最后的图像中表示,并且能够被解密。

EN

回答 2

Cryptography用户

回答已采纳

发布于 2021-03-18 07:45:07

注意:要注意的是,绝大多数讨论使用计算机进行“图像加密”(而不是使用光学手段)的文章都是垃圾科学。我不知道在标题中有“图像加密”和"AES“的任何文章(就像问题一样)值得研究(如果我漏掉了一个链接,我欢迎在评论中找到一个链接)。

使用AES加密数字化图像(而不是其他类型的数字数据)不需要特殊的加密或预处理。至于其他类型的数字数据,必须在加密之前进行压缩(如果使用),在解密后进行解压缩;然后应该检查密码不隐藏加密内容的长度的后果。

明文(加密的内容)没有理由通过十六进制(一种将4位编码为字符的表示系统):与使用原始字节相比,这通常是大小的两倍。十六进制是眼睛看到原始字节的一种方式,或者将密文(加密的结果)表示为文本(尽管有更好的编码 ),但是它不应该是明文被转换为加密的一部分。

了解AES-CTR (或AES-OFB ),它允许您加密数据而不影响形成16字节块(这两种模式避免了对填充填充的需求;另一方面,这对于欧央行来说是必要的。

然后了解认证加密,这是使用对称密钥保护数据机密性和完整性的现代方法。这方面的例子包括AES-GCM(-SIV)。

票数 2
EN

Cryptography用户

发布于 2021-03-18 07:12:32

您的填充方案应该提供一种方法来确定消息的哪些部分是填充的,然后删除它们。一种可能的方案是,如果最后一个块的长度为1-15字节,将除最后一个字节外的所有字节与零填充,然后将长度写入最后一个字节,但如果最后一个块为16个字节,则添加另一个所有零的块。

解密后,添加一个额外的“删除填充步骤”,将最后一个字节读入数字n\in 0,\ldots,15,然后丢弃最后一个16-n字节。

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

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

复制
相关文章

相似问题

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