Pergunta

Situação:

Eu quero prestar um serviço de site onde os usuários podem inserir alguns dados, por exemplo, 15 bytes de comprimento nome "namedata" e obter um código-chave. Esse código pode ser usado para desbloquear alguma característica em um jogo (fornecido por mim), também utilizando a namedata (pense em um Lazgun personalizada denominada "Lazgun de Peter", onde "Peter" é o namedata).

Meu plano é para criptografar o namedata juntamente com alguns curta assinatura (por exemplo, 5 Bytes "Olá") com encrytion assimétrica (usando a chave privada) para o código-chave (algo como ASDF-stack-0ver-fl0w-13Abbx).

O usuário, então, entra o código de chave no jogo e o jogo em seguida, decodifica os dados com uma chave pública para a namedata ea assinatura e voila o usuário recebe o seu "Lazgun de Pedro".

Problema:

O problema (ou o meu mal-entendido?) É que a criptografia RSA típico só pode ser usado para criptografar dados do comprimento da chave, por exemplo, 1024 bits, o que seria demasiado longo para o meu código de chave -. Nenhum usuário quer inserir códigos com mais de 150 caracteres (assumindo que cerca de 6 bits de dados por carácter introduzido)

Pergunta:

Que tipo de criptografia que eu deveria usar para obter segurança razoável, de modo que apenas o meu serviço Web site pode gerar códigos "corretas", mas o usuário só tem que inserir códigos sobre o tamanho do namedata + assinatura + alguma pequena sobrecarga

Nota:. O executável do jogo é, obviamente, publicamente disponível e qualquer chave de criptografia armazenada no que poderia ser lido a partir dele, mas o próprio executável não pode ser alterado (proteção contra cópia)

Foi útil?

Solução

Eu acho que é uma ideia errada para armazenar todos os dados do item dentro do código chave real.

Faz mais sentido para criar um código de download exclusivo. Quando entrou, o cliente irá se conectar a um servidor, e baixar os dados do item reais através de uma conexão segura.

Isso faz algum sentido?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top