I have a RPG kit in the Unity Store and I wanted to add some protection for the consumers for when they want to save pretty much any information. From the gear the character is wearing to inventory, bombs, keys, locations where objects were moved etc. I already have all that working it is just I was using the Unity C# serializer but ran into the issue when I deserialize when I add more to the class that holds the saved information. So I used JsonUtility, I turned the saved class into Json data and was going to put it in PlayerPrefs but I wanted to offer some extra protection for the consumers so I looked into AES and Asymmetrical Encryption.
This is my quick run down and as of now for when I save my data :
1) I generate a random string for my "Key" with AES.
2) I Symmetrically Encrypt my data (AES).
3) I then Asymmetrically Encrypt the AES "Key".
4) Store the Asymmetrically Encrypted "Key" and the AES encrypted data in PlayerPrefs.
I feel though since I stored the Asymmetrically Encrypted "Key" in PlayerPrefs that it still holds the same amount of security as if I was to just store the random generated AES "Key" in PlayerPrefs as the key is there for any reversal process.
Am I correct in thinking this? Is there a step I am missing or need to change?