【发布时间】:2013-03-01 17:57:02
【问题描述】:
假设我在在线排行榜上发布了一款得分高的游戏。作弊者通过在发布之前更改内存中的分数来欺骗排行榜。
我认为一种解决方案是加密存储在内存中的数字,并且仅在向用户显示分数时才解密。将加密的分数发送到在线排行榜。
但我发现这个解决方案存在一个问题:可以对加密值进行数学运算吗?什么加密技术允许这样做?
【问题讨论】:
标签: encryption
假设我在在线排行榜上发布了一款得分高的游戏。作弊者通过在发布之前更改内存中的分数来欺骗排行榜。
我认为一种解决方案是加密存储在内存中的数字,并且仅在向用户显示分数时才解密。将加密的分数发送到在线排行榜。
但我发现这个解决方案存在一个问题:可以对加密值进行数学运算吗?什么加密技术允许这样做?
【问题讨论】:
标签: encryption
您的用例的最大问题是密钥必须位于内存中的某个位置,以便您可以加密/解密数据,因此如果“坏”用户有足够的知识来更改内存中的高分,它他也应该不难找到钥匙。
但是,我可能是错的,或者您的“真正”问题是是否可以对加密值执行数学运算。答案是肯定的,homomorphic encryption。
【讨论】:
您可以在需要进行数学运算的任何时候对分数进行加密、解密并加密回来; 基本上你需要在 OOP 术语中加密分数或任何其他信息的设置器和返回解密分数的获取器,所以在内存中你总是会存储加密信息
【讨论】: