software - encryption unsuccessful
Cifrado con mĂșltiples claves diferentes? (5)
¿Hay alguna manera de almacenar datos de forma encriptada de modo que se pueda descifrar con varias claves diferentes?
Es decir, si he cifrado datos con la clave 1, pero deseo poder descifrar con las claves 2, 3 y 4.
es posible?
si es posible
Sí, es posible el cifrado para destinatarios múltiples. También parece lógico cuando piensas que podrías querer leer lo que le enviaste a alguien y para hacerlo necesitas estar en la lista de destinatarios.
Línea de comando
Aquí es cómo hacerlo a través de la línea de comando gpg
(como se describe en la respuesta de David Segonds ):
gpg --encrypt /
--recipient [email protected] /
--recipient [email protected] /
clear-message.txt
Cliente GUI
Su GUI debe proporcionar una forma de cifrar para varias personas
Mecanismo
¿Hay alguna pregunta sobre seguridad de la información , tamaño de archivo GPG con múltiples destinatarios? , que explican el mecanismo de encriptación :
GPG encripta el archivo una vez con una clave simétrica, luego coloca un encabezado que identifica el par de claves de destino y una versión encriptada de la clave simétrica.
[...] Cuando se cifra en varios destinatarios, este encabezado se coloca varias veces y proporciona una versión cifrada única de la misma clave simétrica para cada destinatario .
Múltiples (más de dos) claves RSA es quizás así - bueno, no soy matemático, por lo que este algoritmo no es necesariamente seguro, solo quiero dar una idea con él.
m = p * q * r; p, q, r son grandes números primos
fi (m) = (p-1) (q-1) (r-1)
d == (e1 * e2 * e3 * ... * ei) ^ (- 1) (mod fi (m)); e1 ... ei son números arbitrarios, d se calcula para cumplir con la ecuación
y1 == x ^ e1 (mod m)
y2 == y1 ^ e2 (mod m)
y3 == y2 ^ e3 (mod m)
...
x == yi ^ d (mod m)
Este algoritmo podría usarse, por ejemplo, para aumentar la velocidad de The Onion Router.
Si es posible. Google "encriptación multiparte" para empezar.
AFAIK, sin embargo, no hay en ellos y utilícenlos.
- MarkusQ
PD: para un boceto de cómo se podría hacer, considere esto. El mensaje cifrado consiste en:
- la carga, encriptada con un pad de una sola vez
- el pad de una sola vez, encriptado con key1
- el pad de una sola vez, encriptado con key2
- ...
- el pad de una sola vez, encriptado con keyN
El destinatario que tiene la clave solo descifra su copia del panel con su clave, y luego descifra la carga útil.
Sin embargo, esto es solo una prueba de que podría hacerse y sería una verdadera aplicación. Si es posible, debe evitar rodar su propia encriptación. Si no entiende por qué, definitivamente debe evitar rodar su propia encriptación.
----- Editar ------------
Si me equivoco y las herramientas Gnu hacen eso, úselos. Pero parece que no puedo encontrar ninguna información sobre cómo hacerlo.
GnuPG hace encriptación multi-clave en estándar.
El siguiente comando encriptará doc.txt
usando la clave pública para Alicia y la clave pública para Bob. Alice puede descifrar usando su clave privada. Bob también puede descifrar usando su clave privada.
gpg --encrypt --recipient [email protected] /
--recipient [email protected] doc.txt
Esta función se detalla en la sección de la guía del usuario titulada " Cifrado y descifrado de documentos "
Los clientes GnuPG y PGP generalmente cifran los datos reales con una clave simétrica llamada "clave de sesión". La clave de sesión luego se cifra con cada "clave de destinatario" (es decir, las que especifica con -r / - destinatario). Esto a veces se denomina cifrado híbrido . En este momento, creo que GnuPG utiliza de manera predeterminada claves de sesión de 256 bits y AES para encriptar los datos de texto sin formato a esa clave de sesión AES-256, y las claves del destinatario son su RSA / DSA / ECDSA / etc. clave asimétrica en este caso.
Una razón para hacerlo de esta manera es que los algoritmos criptográficos simétricos como AES son generalmente mucho más rápidos que los asimétricos como RSA. GnuPG solo tiene que encriptar ~ 256 bits (la clave de sesión) con RSA, y puede usar AES para encriptar los datos (¡tan grandes como usted quiera!) Con esa clave de sesión. Las máquinas Intel incluso tienen una instrucción incorporada, AES-NI , para hacer algunos pasos del algoritmo en el hardware, lo que hace que GnuPG sea más ágil en el cifrado / descifrado de datos.
Otra razón para hacerlo de esta manera es que permite que los documentos cifrados con PGP se cifren en varias partes sin tener que duplicar el tamaño del documento. Tenga en cuenta que cuando especifica múltiples destinatarios para un documento encriptado (por ejemplo, gpg -ea -r Alice -r Bob -o ciphertext.asc
), el documento encriptado que se almacena (ciphertext.asc) no es 2 veces más grande que si hubiera tenido solo lo encripto a Alice.
Consulte también el parámetro --show-session-key
en la página de manual de gpg para poder descifrar solo la clave de sesión, por ejemplo, para permitir que un tercero descifre un documento cifrado sin tener que transferirle su documento privado clave o los datos de texto claro.