Как создать код ключа, содержащий зашифрованные данные? - PullRequest
0 голосов
/ 30 мая 2009

Положение:

Я хочу предоставить услугу веб-сайта, где пользователи могут вводить некоторые данные, например, 15 байтов длинное имя "namedata" и получить код ключа. Затем этот код можно использовать для разблокировки некоторой функции в игре (предоставленной мной), в которой также используются именованные данные (например, пользовательский лазгун с именем «Лазган из Питера», где «Питер» - именованные данные).

Мой план состоит в том, чтобы зашифровать именованные данные вместе с некоторой короткой подписью (например, 5 байтов "привет") с асимметричным шифрованием (используя закрытый ключ) в код ключа (что-то вроде AsdF-STaCK-0VEr-FL0W-13Abbx).

Затем пользователь вводит код ключа в игру, и игра затем декодирует данные с открытым ключом в именованные данные и подпись, и вуаля, пользователь получает свой «Лазган из Питера».

Проблема:

Проблема (или мое недопонимание?) Заключается в том, что типичное шифрование RSA может использоваться только для шифрования данных длины ключа, например, 1024 бита, что было бы слишком длинно для моего кода ключа - ни один пользователь не хочет вводить коды длиной более 150 символов (при условии, что для каждого введенного символа около 6 бит).

Вопрос:

Какой тип шифрования я должен использовать, чтобы получить приличную безопасность, чтобы только мой сервис веб-сайта мог генерировать «правильные» коды, но пользователю нужно только ввести коды размером с именованные данные + подпись + небольшие накладные расходы?

Примечание. Исполняемый файл игры, очевидно, является общедоступным, и любой сохраненный в нем ключ шифрования может быть считан из него, но сам исполняемый файл не может быть изменен (защита от копирования).

1 Ответ

0 голосов
/ 30 мая 2009

Я думаю, что неправильно хранить все данные элемента внутри фактического кода ключа.

Имеет смысл создать уникальный код для скачивания. После ввода клиент подключится к серверу и загрузит фактические данные элемента через безопасное соединение.

Имеет ли это какой-то смысл?

...