1 votes

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

GPG/PGP et autres cryptages à clé publique permettent de crypter vers plusieurs destinataires en utilisant leurs clés publiques.

Est-il possible d'utiliser uniquement le cryptage symétrique pour faire de même ? En d'autres termes, est-il possible de crypter symétriquement un fichier avec deux clés différentes ?

La raison de ma question est que le cryptage asymétrique produit des fichiers énormes. Si je devais envoyer un message crypté à clé publique à un téléphone intelligent, il serait trop volumineux. Surtout s'il était crypté vers plusieurs destinataires. Un seul "Bonjour" pourrait prendre 2 pages de texte. D'autre part, le cryptage symétrique est très serré.

2voto

David Schwartz Points 60868

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

2voto

Jens Erat Points 16432

Les versions actuelles de PGP et toutes les versions de GnuPG (GPG) mettent en œuvre la norme OpenPGP. Je n'utiliserai que le terme OpenPGP ci-dessous.

OpenPGP utilise le 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 récepteur chiffrera la clé de chiffrement symétrique (chiffrement par blocs) à l'aide de sa clé privée. Comme seule la clé symétrique est cryptée à l'aide de la clé publique, les frais généraux restent faibles (c'est ce que David Schwartz a proposé et qui est déjà mis en œuvre par OpenPGP).

Bien entendu, il existe deux cas dans lesquels cette surcharge peut devenir importante par rapport aux données crypté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 bloc de chiffrement 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 ne pourrez pas éviter d'utiliser un chiffrement symétrique et de transmettre le secret à chaque destinataire (ou de faire de même avec la clé privée OpenPGP). Si vous voulez que chacun ait son propre secret, personne d'autre ne pourra décrypter sa version des données ; vous devrez donc envoyer à chacun une autre version de ces données.

0voto

lowercasename Points 993

Je cherchais en fait à résoudre le même problème. Le problème avec gpg, c'est que vous devez porter trop de bagages avec lui - magasin de clés, etc. Parfois, vous voulez juste créer une paire de clés, mettre la clé publique sur la machine qui fait le cryptage et faire avec.

J'ai écrit un outil pour faire cela : https://github.com/galets/AsymmetricCrypt . Vous aurez besoin de mono pour l'exécuter sous linux, mais sinon il fonctionne bien et ne vous oblige pas à stocker la clé cryptée dans un fichier séparé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X