El criptosistema Blum-Goldwasser (BG) es un algoritmo de cifrado de clave asimétrica propuesto por Manuel Blum y Shafi Goldwasser en 1984. Blum-Goldwasser es un criptosistema probabilístico y semánticamente seguro con una expansión de texto cifrado de tamaño constante . El algoritmo de cifrado implementa un cifrado de flujo basado en XOR utilizando el generador de números pseudoaleatorios Blum-Blum-Shub (BBS) para generar la secuencia de claves . El descifrado se logra manipulando el estado final del generador BBS mediante la clave privada , con el fin de encontrar la semilla inicial y reconstruir la secuencia de claves.
El criptosistema BG es semánticamente seguro basado en la intratabilidad asumida de la factorización de enteros ; específicamente, factorizar un valor compuesto.dóndeson primos grandes . BG tiene múltiples ventajas sobre esquemas de cifrado probabilístico anteriores como el criptosistema Goldwasser-Micali . Primero, su seguridad semántica se reduce únicamente a la factorización de enteros, sin requerir ninguna suposición adicional (por ejemplo, la dificultad del problema de residuos cuadráticos o el problema RSA ). Segundo, BG es eficiente en términos de almacenamiento, induciendo una expansión de texto cifrado de tamaño constante independientemente de la longitud del mensaje. BG también es relativamente eficiente en términos de computación, y se desempeña bien incluso en comparación con criptosistemas como RSA (dependiendo de la longitud del mensaje y las elecciones de exponente). Sin embargo, BG es altamente vulnerable a ataques adaptativos de texto cifrado elegido (ver más abajo).
Dado que el cifrado se realiza mediante un algoritmo probabilístico, un texto plano determinado puede generar textos cifrados muy diferentes cada vez que se cifra. Esto ofrece ventajas significativas, ya que impide que un adversario reconozca los mensajes interceptados comparándolos con un diccionario de textos cifrados conocidos.
Operación
El criptosistema Blum-Goldwasser consta de tres algoritmos: un algoritmo probabilístico de generación de claves que produce una clave pública y una clave privada, un algoritmo de cifrado probabilístico y un algoritmo de descifrado determinista.
Generación de claves
Las claves pública y privada se generan de la siguiente manera:
- Elige dos números primos grandes y distintos.yde tal manera quey.
- Calcular. [ 1 ]
Entonceses la clave pública y el pares la clave privada.
Cifrado
Un mensajeestá cifrado con la clave públicacomo sigue:
- Calcula el tamaño del bloque en bits,.
- Convertira una secuencia debloquesdonde cada bloque esbits de longitud.
- Seleccione un número entero aleatorio..
- Calcular.
- Paradel 1 al
- Calcular.
- Calcularel menos significativotrozos de.
- Calcular.
- Finalmente, calcular.
El cifrado del mensajees entonces todo elvalores más el finalvalor:.
Descifrado
Un mensaje cifradoSe puede descifrar con la clave privada.como sigue:
- Calcular.
- Calcular.
- Calcular.
- Calcular.
- Utilizando el algoritmo euclidiano extendido , calculeyde tal manera que.
- CalcularEste será el mismo valor que se utilizó en el cifrado (ver prueba a continuación).luego se puede utilizar para calcular la misma secuencia devalores que se utilizaron en el cifrado para descifrar el mensaje, como se indica a continuación.
- Paradel 1 al
- Calcular.
- Calcularel menos significativotrozos de.
- Calcular.
- Finalmente, vuelva a ensamblar los valores.en el mensaje.
Ejemplo
Dejary. EntoncesyPara cifrar el mensaje de seis bits, lo dividimos en dos bloques de 3 bits, entoncesSeleccionamos un número aleatorio.y calcular. Ahora calculamos elvalores como sigue:
Entonces el cifrado es.
Para descifrar, calculamos
Se puede observar quetiene el mismo valor que en el algoritmo de cifrado. Por lo tanto, el descifrado se realiza de la misma manera que el cifrado:
Prueba de corrección
Debemos demostrar que el valorEl valor calculado en el paso 6 del algoritmo de descifrado es igual al valor calculado en el paso 4 del algoritmo de cifrado.
En el algoritmo de cifrado, por construcciónes un residuo cuadrático módulo. Por lo tanto, también es un residuo cuadrático módulo, como todos los demásvalores obtenidos a partir de él elevándolo al cuadrado. Por lo tanto, según el criterio de Euler ,. Entonces
Similarmente,
Elevando la primera ecuación a la potenciaobtenemos
Repitiendo estoveces, tenemos
Y mediante un argumento similar podemos demostrar que.
Finalmente, dado que, podemos multiplicar pory obtener
de cuál, módulo ambosyy por lo tanto.
Seguridad y eficiencia
El esquema Blum-Goldwasser es semánticamente seguro debido a la dificultad de predecir los bits de la secuencia de claves conociendo únicamente el estado final del BBS.y la clave públicaSin embargo, los textos cifrados de la formason vulnerables a un ataque adaptativo de texto cifrado elegido en el que el adversario solicita el descifrado.de un texto cifrado elegido. El descifradodel texto cifrado original se puede calcular como.
Dependiendo del tamaño del texto plano, BG puede ser más o menos costoso computacionalmente que RSA. Dado que la mayoría de las implementaciones de RSA utilizan un exponente de cifrado fijo optimizado para minimizar el tiempo de cifrado, el cifrado RSA generalmente supera a BG para todos los mensajes, excepto los más cortos. Sin embargo, como el exponente de descifrado de RSA se distribuye aleatoriamente, la exponenciación modular puede requerir una cantidad comparable de elevaciones al cuadrado/multiplicaciones que el descifrado de BG para un texto cifrado de la misma longitud. BG tiene la ventaja de escalar de manera más eficiente a textos cifrados más largos, donde RSA requiere múltiples cifrados separados. En estos casos, BG puede ser significativamente más eficiente.
Referencias
- ↑ Sección 6.2.2 del RFC 4086 : "El generador de secuencias Blum Blum Shub"
- M. Blum, S. Goldwasser, "Un esquema de cifrado de clave pública probabilístico eficiente que oculta toda la información parcial", Actas de Advances in Cryptology – CRYPTO '84 , págs. 289–299, Springer Verlag, 1985.
- Menezes, Alfred; van Oorschot, Paul C.; y Vanstone, Scott A. Manual de criptografía aplicada . CRC Press, octubre de 1996. ISBN 0-8493-8523-7
Enlaces externos
- Menezes, Oorschot, Vanstone, Scott: Manual de criptografía aplicada (descargas gratuitas en PDF), véase el capítulo 8.
- Esquemas de cifrado de clave pública