Les cryptages GPG / PGP et autres clés publiques permettent le cryptage à plusieurs destinataires à l'aide de leurs clés publiques.
Est-il possible d'utiliser uniquement le cryptage symétrique pour faire la même chose? En d'autres termes, est-il possible de chiffrer symétriquement un fichier avec deux clés différentes?
La raison de ma question est que le cryptage asymétrique produit de gros fichiers. Si je devais envoyer un message chiffré à clé publique à un téléphone intelligent, ce serait trop énorme. Surtout s'il a été chiffré à plusieurs destinataires. Un seul "Bonjour" pourrait prendre 2 pages de texte. D'autre part, le cryptage symétrique est très étroit.
la source
Les versions actuelles de PGP et l'ensemble de GnuPG (GPG) implémentent le standard OpenPGP. Je n'utiliserai que le terme OpenPGP ci-dessous.
OpenPGP utilise un chiffrement à clé publique et symétrique: lors du chiffrement d'un document, une clé symétrique aléatoire est générée et chiffrée à l'aide de la clé publique. Le destinataire chiffrera la clé de chiffrement symétrique (chiffrement en bloc) à l'aide de sa clé privée. Comme seule la clé symétrique est chiffrée à l'aide de la clé publique, les frais généraux restent minimes (c'est ce que David Schwartz a proposé et est déjà implémenté par OpenPGP).
Bien entendu, il existe deux cas dans lesquels cette surcharge peut être importante par rapport aux données chiffrées:
Vous n'utiliserez ni le cryptage symétrique ni la transmission du secret à chaque destinataire (ou la même chose avec la clé privée OpenPGP). Si vous voulez que tout le monde ait son propre secret, personne d'autre ne pourra décrypter sa version des données; vous devrez donc envoyer à tout le monde une autre version de ces données.
la source
Je cherchais en fait à résoudre le même problème. Le problème avec gpg, c'est que vous devez emporter trop de bagages - magasin de clés, etc. Parfois, vous souhaitez simplement créer une paire de clés, placer la clé publique sur une machine qui effectue le cryptage et l'utiliser.
J'ai écrit un outil pour faire exactement cela: https://github.com/galets/AsymmetricCrypt . Vous aurez besoin de mono pour l'exécuter sur linux, mais sinon, cela fonctionne bien et vous n'avez pas besoin de stocker la clé cryptée dans un fichier séparé.
la source