状況:
15バイトの長い名前「namedata」などのデータを入力してキーコードを取得できるWebサイトサービスを提供したいと考えています。そのコードを使用して、ゲームの一部の機能 (私が提供) のロックを解除することができます。名前データも利用します (「Peter」が名前データである「Lazgun of Peter」という名前のカスタム Lazgun を考えてみてください)。
私の計画は、namedata をいくつかの短い署名 (たとえば 5 バイトの「hello」) とともに非対称暗号化 (秘密鍵を使用) で鍵コード (AsdF-STaCK-0VEr-FL0W-13Abbx のようなもの) に暗号化することです。
次に、ユーザーがゲームにキーコードを入力すると、ゲームは公開鍵を使用してデータを名前データと署名にデコードし、ユーザーは「ピーターのラズガン」を取得します。
問題:
問題 (または私の誤解?) は、典型的な RSA 暗号化は、キーの長さ (たとえば 1024 ビット) のデータの暗号化にしか使用できないことです。これは、私のキー コードには長すぎます。ユーザーは 150 でコードを入力したくありません。 + 文字 (入力された文字ごとに約 6 ビット データを想定)。
質問:
私のウェブサイトサービスだけが「正しい」コードを生成できるように、まともなセキュリティを得るにはどのような暗号化を使用する必要がありますか?
注: ゲームの実行可能ファイルは明らかに公開されており、そこに保存されている暗号化キーを読み取ることはできますが、実行可能ファイル自体を変更することはできません (コピー防止)。