É possível usar criptografia simétrica para criptografar um arquivo com duas chaves diferentes?

1

O GPG / PGP e outras criptografias de chave pública permitem criptografar vários destinatários usando suas chaves públicas.

É possível usar somente criptografia simétrica para fazer o mesmo? Em outras palavras, é possível criptografar simetricamente um arquivo com duas chaves diferentes?

O motivo da minha pergunta é que a criptografia assimétrica produz arquivos enormes. Se eu fosse enviar uma mensagem criptografada de chave pública para um telefone inteligente, seria muito grande. Especialmente se foi criptografado para vários destinatários. Um único "Olá" pode levar 2 páginas de texto. Por outro lado, a criptografia simétrica é muito restrita.

    
por Vivarto 11.01.2013 / 23:16

3 respostas

2

Claro. Basta criptografar o arquivo com uma chave aleatória e criptografar essa chave aleatória com as duas chaves simétricas diferentes.

    
por 11.01.2013 / 23:23
0

As versões atuais do PGP e todo o GnuPG (GPG) implementam o padrão OpenPGP. Eu só usarei o termo OpenPGP abaixo.

O OpenPGP usa criptografia de chave pública e simétrica: ao criptografar um documento, uma chave simétrica aleatória é gerada e criptografada usando a chave pública. O receptor irá criptografar a chave de criptografia simétrica (cifra de bloco) usando sua chave privada. Como somente a chave simétrica é criptografada usando a chave pública, a sobrecarga permanece pequena (isso é o que David Schwartz propôs e já é implementado pelo OpenPGP).

Naturalmente, há dois casos em que essa sobrecarga pode ficar grande em comparação com os dados criptografados:

  • Uma quantidade muito pequena de dados; Se isso for um problema, você terá que escolher algum método de criptografia com chaves pré-compartilhadas (chaves simétricas)
  • Muitos destinatários; como a cifra de bloco deve ser criptografada para cada um deles. Se isso for um problema, você terá que compartilhar o segredo (chave privada) entre todos os destinatários.

Você não conseguirá se locomover usando criptografia simétrica e entregando o segredo a todos os destinatários (ou faça o mesmo com a chave particular do OpenPGP). Se você quer que todos tenham seu próprio segredo, ninguém mais poderá descriptografar sua versão dos dados; então você terá que enviar a todos uma outra versão desses dados.

    
por 11.01.2013 / 23:52
0

Eu estava realmente procurando resolver o mesmo problema. O problema com o gpg é que você precisa carregar muita bagagem com ele - armazenamento de chaves, etc. Às vezes, você só quer criar um par de chaves, colocar a chave pública na máquina que criptografa e seguir com ela.

Eu escrevi uma ferramenta para fazer exatamente isso: link . Você precisará do mono para executá-lo no linux, mas caso contrário ele funcionará bem e não exigirá que você armazene a chave criptografada em um arquivo separado.

    
por 25.11.2013 / 05:56