¿Cómo implementaría “Broadcast Encryption”?

18

Tengo una transmisión que quiero cifrar para transmitir a 10,000 suscriptores. Sé que debo cifrar estos datos utilizando una clave simétrica; y también pretende que esta clave simétrica se gire cada 30 días.

Suponiendo que ya tengo una clave pública para cada suscriptor (la clave privada solo la conocen), ¿cómo debo cifrar la clave simétrica y enviarla a los suscriptores?

O esto es simplemente obvio; ¿Simplemente cifro la clave simétrica con cada clave pública? ¿Hay alguna consideración especial que deba tomar?

Por ejemplo, ¿cómo influye la longitud de la clave simétrica en la solución? Estoy considerando envolver la clave simétrica en un mensaje SOAP o JSON que puede alterar la longitud de la cadena final a cifrar.

    
pregunta random65537 25.03.2011 - 18:09
fuente

2 respuestas

16

Usted simplemente encripta lo simétrico con la clave pública de cada destinatario. Hay algunas investigaciones sobre cómo hacerlo mejor que eso (de modo que la sobrecarga de tamaño es menor que, digamos, cien bytes por destinatario) pero no hay nada directamente aplicable en este momento.

Si usa RSA (eso es lo más probable), aquí están los tamaños: un mensaje cifrado siempre tiene el mismo tamaño que el módulo; para una clave RSA de 1024 bits, esto significa 128 bytes. El proceso de encriptación incluye algunos rellenos, lo que agrega una sobrecarga interna de al menos 11 bytes. Por lo tanto, el tamaño máximo de un blob de datos que debe cifrarse con una clave RSA de 1024 bits es de 128-11 = 117 bytes.

No estoy seguro de por qué querría envolver la clave simétrica en un mensaje SOAP o JSON. Si está cifrado, entonces el receptor debe descifrarlo; ya que un mensaje RSA cifrado realmente parece un grupo de bytes aleatorios sin una estructura visible, esto significa que el receptor ya sabe qué esperar. ¿Qué agregarían SOAP o JSON en ese punto? Tal vez le gustaría hacerlo al revés, es decir, cifrar (con RSA) la clave simétrica, y luego ajustar el resultado (el mensaje cifrado de 128 bytes) en un mensaje SOAP o JSON.

    
respondido por el Thomas Pornin 25.03.2011 - 18:25
fuente
3

Hay varios esquemas de Broadcast Encryption (BE) utilizables. El más popular de ellos es el esquema Subset Difference (SD) de Naor-Naor-Lotspiech (NNL) que se propuso en 2001. Aquí hay un enlace a la lista completa. Versión del artículo que describe el esquema: enlace . Se sugirió su uso por el estándar AACS para la gestión de derechos digitales en discos ópticos.

Los dos parámetros más importantes (en términos de costo) de cualquier esquema de BE son (a) la cantidad de almacenamiento necesaria para almacenar las claves privadas de cada usuario, (b) la cantidad de recursos adicionales información ( sobrecarga de comunicación ) que debe enviarse con cada bloque de datos cifrados para su difusión.

Se han propuesto varias mejoras al esquema NNL-SD que pretenden reducir el requisito de almacenamiento de la clave del dispositivo, así como la sobrecarga de comunicación. Aquí hay algunos de ellos.

  1. Reduciendo el almacenamiento: (a) Esquemas SD en capas de Halevy y Shamir, Crypto 2002. (b) Almacenamiento mínimo y otras optimizaciones del esquema SD: enlace
  2. Reduciendo la sobrecarga de comunicación: (a) Esquemas SD del árbol k-ario: número de archivo de IACR ePrint: 2013/786 (b) Esquemas de árboles binarios aumentados SD: número de archivo de la IACR ePrint: 2014/577

Todos estos esquemas tienen las siguientes características: A. Son sin estado y, por lo tanto, las claves de usuario no tienen que actualizarse de vez en cuando. B. Estos esquemas también permiten que cualquier número de usuarios sea revocado en cualquier momento . C. También permiten " rastreo de traidores de caja negra ". Este es un mecanismo mediante el cual se puede probar la capacidad de descifrado de un "cuadro de descifrado pirata" para encontrar las claves de usuario que se han utilizado en él. Cabe señalar que esto no requiere la apertura de la caja pirata. Probar sus capacidades de descifrado tratándolo como una caja negra es suficiente.

Sin embargo, tienen las siguientes desventajas: R. Todas las transmisiones se realizan desde un centro que tiene toda la información sobre las claves secretas de los usuarios, según la definición estándar de BE. B. Los usuarios no pueden agregarse dinámicamente al sistema. Por lo tanto, el número máximo de usuarios en el sistema debe estimarse y, por lo tanto, fijarse durante la inicialización del esquema.

    
respondido por el Tabole Buro 20.07.2015 - 11:10
fuente

Lea otras preguntas en las etiquetas