首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >主密钥和用户密钥的加密方法

主密钥和用户密钥的加密方法
EN

Cryptography用户
提问于 2014-08-18 01:36:52
回答 1查看 741关注 0票数 2

我正在研究一个游戏的概念,它最终将允许通过纯文本共享数据,但我想给用户加密数据的选项,以便其他玩家不能修改它,但是程序/游戏仍然能够读取数据以供其他人使用。那么,我的问题是,是否有一种加密方法,其中游戏/程序有一个主密钥可以解密数据,但用户也可以输入自己的密码作为密钥来修改数据?谢谢您抽时间见我。

EN

回答 1

Cryptography用户

发布于 2014-08-19 21:21:37

我将展示一个假设如下的方案:

  • 游戏有自己的服务器密钥,该密钥隐藏在某个游戏数据中(这通常不能完全安全,游戏必须将密钥存储在某个地方);

所以你能做的就是用随机生成的数据密钥加密你的游戏数据。如果您使用GCM操作模式,那么您可以验证数据是否在解密期间也被篡改。此数据密钥本身使用游戏密钥和用户密钥加密(包装)。

现在游戏可以随时访问和更改数据。但是用户需要提供用户密钥。但是,用户只有一个密码,因此我们需要将该密码转换为用户密钥。这样做的方法是使用基于密码的密钥派生函数(如PBKDF2 ),并将输出用作用户密钥(请注意,您需要向PBKDF2提供创建用户帐户时生成和存储的随机盐)。

最后,你可以让事情变得简单或艰难。一个非常有趣的特性是让用户也签署游戏数据;在这种情况下,游戏可以拒绝被篡改的游戏数据。

单独加密游戏数据值也可能是个好主意,您可以使用特定数据标识符的散列作为加密/解密的初始化向量。

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

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

复制
相关文章

相似问题

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