Для локального шифрования и дешифрования вам потребуется сохранить ключ в вашей программе, чтобы люди могли взломать шифрование, если они разбирают ваш код. Существуют хитрости, чтобы запутать ключи, но даже в тех случаях, когда выделенный злоумышленник найдет ключ, а затем опубликует его для всех, кто менее заинтересован, чтобы увидеть его. Единственное, что мешает шифрование - это люди, которые используют шестнадцатеричный редактор - вы можете легко помешать этому с помощью сжатия и всего, что делает файл нечитаемым программой распаковки. Например, добавьте один байт перед данными.
В качестве альтернативы вы можете добавить md5 файла сохранения в конец файла, так что вы заметите, был ли файл подделан. Затем вы можете использовать это, чтобы либо отказаться от загрузки сохраненной игры, либо соответствующим образом пометить заявки в службу поддержки, чтобы не тратить время на проблемы, вызванные вручную измененными играми сохранения. Опять же, это легко обойти любому, кто может прочитать ваш код.
Если вы хотите что-то, что не может быть обойдено кем-то, кто имеет доступ к двоичным файлам на своем устройстве, вам нужно запустить часть программы на сервере, который находится под вашим контролем.
Чтобы ответить на ваш последний вопрос, ключ плюс тип шифрования просто определяет точный алгоритм, который необходимо применить для шифрования / дешифрования. Вы не можете зашифровать / расшифровать данные без алгоритма, который определяет, как это сделать.