オンラインのリーダーボードにハイスコアが投稿されたゲームがあるとします。詐欺師は、スコアが投稿される前にメモリ内のスコアを変更することで、リーダーボードをごまかします。
解決策は、メモリに保存されている数値を暗号化し、スコアがユーザーに表示されるときにのみ復号化することだと思います。暗号化されたスコアをオンライン リーダーボードに送信します。
しかし、このソリューションには問題があると認識しています。暗号化された値に対して数学演算を実行できますか? それを可能にする暗号化技術は何ですか?
オンラインのリーダーボードにハイスコアが投稿されたゲームがあるとします。詐欺師は、スコアが投稿される前にメモリ内のスコアを変更することで、リーダーボードをごまかします。
解決策は、メモリに保存されている数値を暗号化し、スコアがユーザーに表示されるときにのみ復号化することだと思います。暗号化されたスコアをオンライン リーダーボードに送信します。
しかし、このソリューションには問題があると認識しています。暗号化された値に対して数学演算を実行できますか? それを可能にする暗号化技術は何ですか?
ユースケースの大きな問題は、データを暗号化/解読できるようにキーがメモリ内のどこかにある必要があることです。そのため、「悪い」ユーザーがメモリ内のハイスコアを変更するのに十分な知識を持っている場合は、そうすべきではありません彼が鍵を見つけるのも難しいでしょう。
ただし、私が間違っているか、あなたの「本当の」質問は、暗号化された値に対して数学演算を実行できるかどうかです。その答えはイエスです。準同型暗号を使用します。
スコアを暗号化し、数学演算を実行する必要があるときはいつでも復号化して、暗号化して戻すことができます。基本的に、OOP用語では、スコアやその他の情報を暗号化するセッターと、復号化されたスコアを返すゲッターが必要です。そのため、常に暗号化された情報をメモリに保存します。