2013-02-27 34 views
0

假設我有在線排行榜上發佈的高分遊戲。作弊者在發佈之前通過改變記憶中的分數來欺騙排行榜。允許對加密數字執行數學運算的加密?

我認爲一個解決方案是加密存儲在內存中的數字,並且只有當分數顯示給用戶時才解密。將加密分數發送到在線排行榜。

但我覺得這個解決方案的問題:一個人可以對加密值進行數學運算嗎?什麼加密技術允許這樣做?

回答

3

你的用例的一個大問題是,密鑰將不得不在內存中的某處,以便您可以對數據進行加密/解密,因此如果「壞」用戶具有足夠的知識來改變內存高分,那麼他也不應該很難找到密鑰。

但是,我可能是錯的,或者你的「真實」的問題是如果可以通過加密值執行數學運算。答案是肯定的,homomorphic encryption

+0

這正是我一直在尋找的!我沒有加密背景,所以谷歌搜索是無用的(不知道要搜索什麼)。然而,你是否說這個用例的方法並不真正安全,因爲密鑰存儲在內存中?我想知道將密鑰存儲在服務器中是否實用,知道真正價值的唯一方法是將加密值發送到服務器進行解密。這需要幾乎所有的時間來玩遊戲。謝謝。 – 2013-02-27 15:01:59

1

您可以對得分加密,隨時解密您需要做的數學運算並加密回來; 基本上你需要OOP條件setter加密分數或任何其他信息和getter返回解密分數,所以在內存中,你總是會存儲加密信息

+0

在進行數學運算之前解密的問題是該值與顯示給用戶的值相似,因此用戶可以使用該信息來查找內存中的值。或者我誤解了你。 – 2013-02-27 14:59:52