首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算加密数据的存储成本

如何计算加密数据的存储成本
EN

Cryptography用户
提问于 2016-11-18 10:53:31
回答 2查看 880关注 0票数 0

假设我有1MB的明文(仅作为一个例子)。我想使用对称加密算法(例如AES)加密它,并将明文和密文存储在内存空间中。密文是否与其相应的明文大小相同?我的意思是,在我的例子中,这是否意味着我需要2MB来存储明文和密文?你能提供推荐信吗?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2016-11-18 17:03:27

密文是否与其相应的明文大小相同?

真的要看情况了。从密码学的角度来看,您可以这样做,但是有一些信息您确实希望与您的消息一起发送。因此,开销是恒定的,即与实际消息长度无关。如果你使用疯狂的双加密变体或怪异的自定义方案,当然,在这里你可能会得到线性增长。

在密文中可能提供或不提供的(有趣的)值可能包括下列值:

  • 认证标签您真的想要这个,否则您将无法验证您正在接收的消息的完整性。它的大小通常从16 (GCM)到64字节(HMAC-沙-512)不等。
  • Nonce / IV. --您确实希望这样做--因为否则您就没有机会获得实际的安全加密,而相同的消息将被加密到相同的密文中。这里引入的开销通常为0(完全依赖上下文)到16字节(CBC-IV)。
  • 方案标识符您可能希望为您的方案添加一个标识符,以防您的应用程序支持或支持多个加密算法。这里的开销可能从一个字节到几个字节(OID)。
  • 结构设计。通常,您希望您的各种数据类型尽可能按照标准进行结构,因此您可能希望使用类似于ASN.1的东西,这也会增加一些字节的开销(用于编码长度和类型)。
  • 数据加密密钥。有时,人们也会对每个数据包使用不同的密钥来限制每个键的数据量。然后,数据加密密钥是可以解密消息内容的加密密钥。当然,这一间接费用也取决于所有其他列出的间接费用。
  • 其他辅助数据。这可能包括应用程序定义的内容、协议版本和其他路由信息。

总之,您通常会看到一个常数开销,最小大小为32字节,最大大小为几百字节。

票数 2
EN

Cryptography用户

发布于 2016-11-18 16:22:41

你的问题在这种形式上太宽泛了。

有许多不同的对称加密算法。它们大多为1MB的输入产生1MB的输出。它们中的大多数都是基于块的,因此它们将输入大小集合为块大小的倍数。如果您选择一个特定的算法,您可以自己检查确切的细节。但是,您不应该选择基于开销的加密算法,而应该选择基于安全性和性能的加密算法。

此外,通常在加密数据之前压缩数据,因为加密后不可能压缩数据。

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

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

复制
相关文章

相似问题

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