Es posible ocultar la ID de la clave especificando un destinatario oculto. Esto simplemente elimina la ID incluida en los metadatos y requiere que el destinatario pruebe exhaustivamente todas sus claves secretas antes de que puedan saber si se las cifraron. Esto forma parte del estándar, específicamente RFC 4880 § 5.1 :
Una implementación PUEDE aceptar o usar una ID de clave de cero como "comodín"
o ID de clave "especulativa". En este caso, la implementación receptora.
probaría todas las claves privadas disponibles, buscando un descifrado válido
clave de sesión Este formato ayuda a reducir el análisis del tráfico de los mensajes.
GnuPG, una implementación del estándar OpenPGP, ofrece una opción para hacer esto:
--hidden-recipient name
-R
Encrypt for user ID name, but hide the key ID of this user's key. This option
helps to hide the receiver of the message and is a limited countermeasure
against traffic analysis. If this option or --recipient is not specified,
GnuPG asks for the user ID unless --default-recipient is given.
No sé si OpenPGP.js admite este * , pero sería trivial hackear el soporte para él.
¡Pero sepa que esto no proporciona protección criptográfica contra el descubrimiento de claves! Dados suficientes textos cifrados cifrados, un adversario puede descubrir qué clave pública se usó para cifrarla resolviendo los Problema del tanque alemán . Por lo tanto, ocultar la ID de la clave, incluso si es compatible con el estándar, no le brindará clave de privacidad si un adversario tiene acceso a múltiples textos cifrados y su clave pública.
Los mensajes RSA encriptados con una clave usando el módulo n contienen un número entero entre 0 y n -1 con distribución uniforme. Si un adversario puede observar múltiples mensajes cifrados, podrá determinar algunos de los bits más significativos del módulo, lo que les permitirá diferenciar los mensajes individuales cifrados o incluso atarlos a su clave pública (después de todo, el módulo es público).
* Según el código fuente , parece que se admite una ID de clave con cero. Se agregó en este compromiso .