Cryptage avec plusieurs clés différentes?

Est-il un moyen de stocker des données cryptées, telle qu'elle peut être déchiffré qu'avec plusieurs clés différentes?

i. e. si j'ai des données cryptées avec key1, mais je veux pouvoir les déchiffrer avec les clés 2, 3 et 4.

est-ce possible?

90
demandé sur Eric Platon 2009-02-28 03:28:23

5 réponses

GnuPG n'multi-chiffrement à clé standard.

la commande suivante chiffrera doc.txt en utilisant la clé publique pour Alice et la clé publique pour Bob. Alice peut décrypter en utilisant sa clé privée. Bob peut aussi décrypter en utilisant sa clé privée.

gpg --encrypt --recipient alice@example.com \
    --recipient bob@example.com doc.txt

cette caractéristique est détaillée dans la section du guide de l'utilisateur intitulée " chiffrement et déchiffrement des documents

132
répondu David S. 2015-09-09 07:21:57

Oui c'est possible

Oui le cryptage pour plusieurs destinataires est possible. Aussi, il semble logique quand vous pensez que vous pourriez être en mesure de lire ce que vous avez envoyé à quelqu'un et le faire vous besoin d'être dans la liste des destinataires.

ligne de commande

Voici comment le faire à travers la ligne de commande gpg (comme décrit dans réponse de David Segonds ):

gpg --encrypt \
  --recipient alice@example.com \
  --recipient bob@example.com \
clear-message.txt

GUI client

votre interface graphique doit fournir un moyen de chiffrer pour plusieurs personnes

mécanisme

il y a une question sur sécurité de l'Information , Taille du fichier GPG avec plusieurs destinataires? , qui expliquent le mécanisme de cryptage :

GPG crypte le fichier une fois avec une clé symétrique, puis place un en-tête identification du clavier cible et une version cryptée du clé symétrique.

[...] Lorsque chiffré à plusieurs destinataires, ce l'en-tête est placé à plusieurs reprises de fournir un unique version cryptée de la même clé symétrique pour chaque destinataire .

45
répondu Édouard Lopez 2014-05-18 19:06:55

GnuPG et les clients PGP en général chiffrent généralement les données réelles avec une clé symétrique appelée "clé de session". La clé de session est alors chiffrée avec chaque "clé de destinataire" (c.-à-d. celles que vous spécifiez avec-R/--destinataire). Ce code est parfois appelé "code hybride . En ce moment, je crois que GnuPG par défaut utilise des clés de session de 256 bits et AES pour chiffrer les données en clair à cette clé de session AES-256, et vos clés de destinataire are your RSA/DSA/ECDSA / etc. clé assymétrique dans ce cas.

une des raisons pour faire cela est que les algorithmes cryptographiques symétriques comme AES sont généralement beaucoup plus rapides que les algorithmes asymétriques comme RSA. GnuPG n'a donc qu'à chiffrer ~ 256 bits (la clé de session) avec RSA, et peut utiliser AES pour chiffrer les données (aussi grandes que vous le souhaitez!) avec cette clé de session. Les machines Intel ont même une instruction intégrée, AES-NI , pour faire quelques pas de la algorithme dans le matériel, ce qui rend GnuPG très rapide à crypter/déchiffrer les données.

une autre raison de le faire de cette façon est qu'il permet aux documents cryptés PGP d'être cryptés à plusieurs parties sans avoir à doubler la taille du document. Notez que lorsque vous spécifiez plusieurs destinataires pour un document crypté (par exemple gpg -ea -r Alice -r Bob -o ciphertext.asc ), le document crypté qui est stocké (crypto-texte).asc) n'est pas 2x aussi grand que si vous veniez de le crypter à Alice.

Voir Aussi Le paramètre --show-session-key dans la gpg man page pour pouvoir déchiffrer juste la clé de session, par exemple pour permettre à un tiers de déchiffrer un document qui est crypté pour vous sans avoir à leur transférer votre clé privée ou les données en clair.

23
répondu ido 2015-01-29 04:06:58

Oui, c'est possible. Google "multipartite de chiffrement" pour commencer.

AFAIK, il n'y a pas de drop 'em in et utilisez 'em packages pour elle cependant.

-- MarkusQ

P. S .. pour une esquisse de comment cela pourrait être fait, considérez ceci. Le message crypté se compose de:

  • la charge utile, cryptés avec un temps pad
  • le bloc-notes unique, crypté avec la clé 1519100920"
  • le bloc unique, chiffré avec la clé 2
  • ...
  • le pavé de, chiffré avec keyN

le destinataire qui détient la clé je décrypte juste leur copie du tampon avec leur clé, puis décrypte la charge utile.

cependant, c'est juste une preuve qu'il pourrait être fait et serait suck comme une mise en œuvre réelle. Si possible, vous devriez éviter de rouler votre propre chiffrement. Si vous ne comprenez pas pourquoi, vous devriez certainement éviter de rouler votre propre cryptage.

- - - - - modifier ------------

si je me trompe et que les outils Gnu le font, utilisez-les. Mais je n'arrive pas à trouver des renseignements sur la façon de le faire.

4
répondu MarkusQ 2009-02-28 02:50:07

Multiple (plus de deux) RSA Clé est peut - être comme ceci-Eh bien je ne suis pas un mathématicien, donc cet algorithme n'est pas nécessairement sécurisé, je veux juste donner une idée avec elle.

m=p*q*r, p,q,r sont de grands nombres premiers

fi (m)=(p-1) (q-1) (r-1)

d==(e1*e2*e3*...* ei)^(-1) (mod fi (m)); e1...ae sont des nombres arbitraires, d est calculé pour remplir l'équation

y1= = x^e1 (mod m)

y2= = y1^e2 (mod m)

y3= = y2^e3 (mod m)

...

x==yi^d (mod m)

cet algorithme peut être utilisé par exemple pour augmenter la vitesse du routeur Onion.

-15
répondu IQfighter 2011-07-13 09:10:14