É possível criptografar dados, de modo que possam ser descriptografados com várias chaves diferentes?
Exemplo:
Eu criptografei os dados com a chave 1, mas quero poder descriptografar com as chaves 2, 3 e 4.
Isso é possível?
encryption
gnupg
encryption-asymmetric
Glen Solsberry
fonte
fonte
Sim é possivel
Sim, é possível criptografar vários destinatários. Também parece lógico, quando você acha que você pode querer ser capaz de ler o que você enviou para alguém e para isso você precisa estar na lista de destinatários.
Linha de comando
Veja como fazer isso por meio da
gpg
linha de comando (conforme descrito na resposta de David Segonds ):Cliente GUI
Sua GUI deve fornecer uma maneira de criptografar para várias pessoas
Mecanismo
Há uma pergunta sobre Segurança da Informação , tamanho do arquivo GPG com vários destinatários? , que explicam o mecanismo de criptografia :
fonte
Os clientes GnuPG e PGP em geral geralmente criptografam os dados reais com uma chave simétrica chamada "chave de sessão". A chave de sessão é então criptografada com cada "chave de destinatário" (ou seja, aquelas que você especifica com -r / - destinatário). Isso às vezes é chamado de cifra híbrida . No momento, acredito que o GnuPG por padrão usa chaves de sessão de 256 bits e AES para criptografar os dados de texto simples para aquela chave de sessão AES-256, e as chaves do destinatário são RSA / DSA / ECDSA / etc. chave assimétrica neste caso.
Uma razão para fazer isso dessa forma é que algoritmos criptográficos simétricos como AES são geralmente muito mais rápidos do que algoritmos assimétricos como RSA. O GnuPG, portanto, só precisa criptografar ~ 256 bits (a chave de sessão) com RSA e pode usar AES para criptografar os dados (do tamanho que você quiser!) Com essa chave de sessão. As máquinas Intel até têm uma instrução embutida, AES-NI , para executar algumas etapas do algoritmo no hardware, o que torna o GnuPG extremamente ágil para criptografar / descriptografar dados.
Outra razão para fazer isso dessa maneira é que permite que documentos criptografados por PGP sejam criptografados para várias partes sem ter que dobrar o tamanho do documento. Observe que quando você especifica vários destinatários para um documento criptografado (por exemplo
gpg -ea -r Alice -r Bob -o ciphertext.asc
), o documento criptografado que é armazenado (ciphertext.asc) não é 2x tão grande como se você tivesse acabado de criptografar para Alice.Veja também o
--show-session-key
parâmetro na página do manual gpg para poder descriptografar apenas a chave de sessão, por exemplo, para permitir que terceiros descriptografem um documento criptografado para você sem ter que transferir para eles sua chave privada ou os dados de texto simples.fonte
Sim é possivel. Para começar, "criptografia multipartidária" do Google.
AFAIK, não há pacotes drop 'em e uso' em para isso.
- MarkusQ
PS Para um esboço de como isso poderia ser feito, considere isto. A mensagem criptografada consiste em:
O destinatário que possui a chave i apenas descriptografa sua cópia do bloco com a chave e, em seguida, descriptografa a carga útil.
No entanto, esta é apenas uma prova de que isso poderia ser feito e seria péssimo como uma implementação real. Se possível, você deve evitar lançar sua própria criptografia. Se você não entende o porquê, você definitivamente deveria evitar rolar sua própria criptografia.
----- Editar ------------
Se eu estiver errado e as ferramentas Gnu fizerem isso, use-as. Mas não consigo encontrar nenhuma informação sobre como fazer isso.
fonte
Múltiplas (mais de duas) chaves RSA podem ser assim - bem, eu não sou um matemático, então este algoritmo não é necessariamente seguro, eu só quero dar uma ideia com ele.
m = p * q * r; p, q, r são grandes números primos
fi (m) = (p-1) (q-1) (r-1)
d == (e1 * e2 * e3 * ... * ei) ^ (- 1) (mod fi (m)); e1 ... ei são números arbitrários, d é calculado para cumprir a equação
y1 == x ^ e1 (mod m)
y2 == y1 ^ e2 (mod m)
y3 == y2 ^ e3 (mod m)
...
x == yi ^ d (mod m)
Este algoritmo pode ser usado, por exemplo, para aumentar a velocidade do Onion Router.
fonte