Est-il possible d'utiliser le chiffrement symétrique pour chiffrer un fichier avec deux clés différentes?


1

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.

Réponses:


2

Sûr. Il suffit de chiffrer le fichier avec une clé aléatoire, puis de chiffrer cette clé aléatoire avec les deux clés symétriques différentes.


C'est une solution créative. Je n'ai pas pensé à ça.
Vivarto

2
@ Vivarto: C'est exactement la même chose avec le cryptage asymétrique. Dans les deux cas, le fichier est crypté symétriquement avec une clé aléatoire.
David Schwartz

Le commentaire de @Vivarto David ci-dessus est correct. Vous semblez avoir mal compris le fonctionnement de PGP.
rsaw

0

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:

  • Une très petite quantité de données; si cela pose un problème, vous devrez choisir une méthode de cryptage avec des clés pré-partagées (clés symétriques)
  • Beaucoup de destinataires; car le chiffre de bloc doit être chiffré pour chacun d’eux. Si cela pose un problème, vous devrez partager le secret (clé privée) entre tous les destinataires.

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.


0

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é.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.