stringtranslate.com

Cegamiento (criptografía)

En criptografía , el cegamiento es una técnica mediante la cual un agente puede proporcionar un servicio (es decir, calcular una función para) un cliente en forma codificada sin conocer ni la entrada ni la salida real. Las técnicas de cegamiento también tienen aplicaciones para prevenir ataques de canales laterales a dispositivos de cifrado.

Más precisamente, Alice tiene una entrada x y Oscar tiene una función f . A Alice le gustaría que Oscar calculara y = f ( x ) para ella sin revelarle x o y . La razón por la que desea esto podría ser que no conoce la función o que no tiene los recursos para calcularla. Alice "ciega" el mensaje codificándolo en alguna otra entrada E ( x ); la codificación E debe ser una biyección en el espacio de entrada de f , idealmente una permutación aleatoria. Oscar le da f ( E ( x ) ), a lo que ella aplica una decodificación D para obtener D ( f ( E ( x ))) = y .

No todas las funciones permiten el cálculo a ciegas. En otras ocasiones, el cegamiento debe aplicarse con cuidado. Un ejemplo de esto último son las firmas de Rabin-Williams . Si se aplica cegamiento al mensaje formateado pero el valor aleatorio no cumple con los requisitos de Jacobi en p y q , entonces podría conducir a la recuperación de la clave privada. Se puede ver una demostración de la recuperación en CVE - 2015-2141 [1] descubierto por Evgeny Sidorov.

Una aplicación común del cegamiento es en las firmas ciegas . En un protocolo de firma ciega, el firmante firma digitalmente un mensaje sin poder conocer su contenido.

La libreta de un solo uso (OTP) es una aplicación que ciega el problema de la comunicación segura, por su propia naturaleza. A Alice le gustaría enviarle un mensaje a Bob en secreto, sin embargo, Oscar puede leer todas sus comunicaciones. Por lo tanto, Alice envía el mensaje después de cegarlo con una clave secreta u OTP que comparte con Bob. Bob invierte el cegamiento después de recibir el mensaje. En este ejemplo, la función f es la identidad y E y D suelen ser la operación XOR .

El cegamiento también se puede utilizar para prevenir ciertos ataques de canal lateral en esquemas de cifrado asimétricos . Los ataques de canal lateral permiten a un adversario recuperar información sobre la entrada de una operación criptográfica, midiendo algo distinto al resultado del algoritmo, por ejemplo, el consumo de energía, el tiempo de cálculo o las emanaciones de radiofrecuencia de un dispositivo. Normalmente, estos ataques dependen de que el atacante conozca las características del algoritmo, así como (algunas) entradas. En este contexto, el cegamiento sirve para alterar la entrada del algoritmo a un estado impredecible. Dependiendo de las características de la función de cegamiento, esto puede evitar parte o toda la filtración de información útil. Tenga en cuenta que la seguridad depende también de la resistencia de las propias funciones de cegamiento a los ataques de canales laterales.

Por ejemplo, en RSA el cegamiento implica calcular la operación de cegamiento E ( x ) = (xr) e mod N , donde r es un entero aleatorio entre 1 y N y relativamente primo con N (es decir, mcd( r , N ) = 1) . x es el texto plano, e es el exponente RSA público y N es el módulo RSA. Como es habitual, se aplica la función de descifrado f ( z ) = z d mod N , dando así f ( E ( x )) = (xr) ed mod N = xr mod N. Finalmente se desciega usando la función D ( z ) = zr −1 mod N . Multiplicar xr mod N por r −1 mod N produce x , como se desee. Al descifrar de esta manera, un adversario que sea capaz de medir el tiempo que lleva esta operación no podrá hacer uso de esta información (al aplicar ataques de sincronización a los que se sabe que RSA es vulnerable) ya que no conoce las constantes r y por lo tanto, no tiene conocimiento de la entrada real enviada a las primitivas RSA.

Ejemplos

Referencias

  1. ^ "CVE - CVE-2015-2141". cve.mitre.org . Consultado el 13 de diciembre de 2023 .

enlaces externos