首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据加密密钥和密钥加密密钥

数据加密密钥和密钥加密密钥
EN

Stack Overflow用户
提问于 2022-06-10 06:55:15
回答 1查看 396关注 0票数 0

我希望有人能帮助我理解DEK和KEK是如何在外行术语中工作的。

到目前为止,我的理解是

第1部分上传的数据存储在块中。每个块都用DEK加密。DEK存储在块数据附近。

第2部分数据块的 DEK用KEK包装

Part 3 KEK存储在KMS中。

这句话来自谷歌的课程材料,真让我大吃一惊。

然后使用

将包装的数据加密密钥与此数据一起存储。

,我的大脑疯狂地回答这些问题:

  1. 这个包装的数据加密密钥是什么?这不是第2部分中的KEK吗?如果这是第2部分中的KEK,那么它不应该在KMS中吗?如果是的话,KMS存储数据吗?如果不是,一个数据块有多少个DEKs ?2 DEKs? we(users/customers)keep?
  2. We
  3. 要用哪个键存储数据?

g 223

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-10 10:46:00

这个包装的数据加密密钥是什么?这不是第二部分中的KEK吗?

包装的DEK是用KEK加密DEK的结果。密钥加密密钥之所以被称为密钥,是因为它加密(数据加密)密钥。

如果这是第2部分中的KEK,那不应该是KMS吗?KMS存储数据吗?

不是的。顾名思义,密钥管理系统只存储密钥,特别是KEKs。

一大块数据有多少个DEK?2个DEK?

一。数据只加密一次,所以只有一个密钥。

我们(用户/客户)保留哪些密钥?

只有KEK。当使用KMS时,即使是KMS的用户也不知道这个键。

我们用哪些键存储数据?

带着包裹的德克。

下面是一个具体的例子:

数据(即明文):yellow submarine KEK (又名。主密钥):my-secret-master DEK (为每一段数据随机生成):ttlly-random-dek

密文: Base64(AES(Data,DEK)) = TJ4SLFTy0sMdvGe55QCuYQ==包装DEK: Base64(DEK,KEK)= lOEmql1JuSONZ8uLorc/vQ==

第二个操作是由KMS完成的,如果存在的话(必须这样做,因为它是唯一拥有KEK的操作,而且永远不会公开)。

你们一起存储的东西:TJ4SLFTy0sMdvGe55QCuYQ==lOEmql1JuSONZ8uLorc/vQ==

以及重建给定的TJ4SLFTy0sMdvGe55QCuYQ== + lOEmql1JuSONZ8uLorc/vQ==的明文

DEK: AES'(Base64'(lOEmql1JuSONZ8uLorc/vQ==),KEK) // = ttlly-random-dek明文: AES'(Base64'(TJ4SLFTy0sMdvGe55QCuYQ==),DEK)

如果有第一个操作,第一个操作由KMS完成(同样,它必须是,因为涉及到KEK )。

在上面的例子中,我方便地选择了16字节的数据和16字节的密钥,这样我就可以在分组密码模式和IVs/nonces上光彩照人。当然,在实际应用中,每个加密的IVs也必须保留。

请注意,KMS从来没有看到您的数据,它只需加密和解密微小的数量。这就是为什么我们要这么做的原因;只有你,数据的所有者才能看到它的明文(显然,假设KMS是一个诚实的方)。

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

https://stackoverflow.com/questions/72570215

复制
相关文章

相似问题

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