Cifrado asimétrico óptimo con relleno

OAEP ( English  O ptimal A symmetric Encryption P added , Optimal asimetric encryption with added) es un esquema de adición , generalmente utilizado junto con alguna función unidireccional con una entrada secreta (por ejemplo , funciones RSA o Rabin ) para aumentar la fuerza criptográfica de este último. OAEP fue propuesto por Mihir Bellare y Phillip Rogaway [1] , y su aplicación a RSA se estandarizó posteriormente en PKCS#1 y RFC 2437 .

Historia

Se afirmó que la versión original de OAEP, propuesta por Bellare y Rogaway en 1994, era resistente a los ataques basados ​​en el texto cifrado elegido en combinación con cualquier función de entrada secreta unidireccional [1] . Otros estudios han demostrado que dicho esquema solo es resistente a los ataques basados ​​en texto cifrado elegido no adaptativo [2] . A pesar de esto, se ha demostrado que en el modelo de oráculo aleatorio , cuando se usa RSA estándar con exponente de cifrado , el esquema también es resistente a ataques basados ​​en texto cifrado elegido adaptativamente [3] . Trabajos más recientes han demostrado que en el modelo estándar (cuando las funciones hash no se modelan como oráculos aleatorios) no es posible probar la resistencia a los ataques de texto cifrado adaptativo cuando se usa RSA [4] .

Algoritmo OAEP

El esquema OAEP clásico es una red Feistel de dos celdas, donde en cada celda los datos se transforman utilizando una función hash criptográfica . Como entrada, la red recibe un mensaje con ceros de verificación agregados y una clave: una cadena aleatoria [5] .

El diagrama utiliza la siguiente notación:

Cifrado

  1. El mensaje se agrega con ceros, por lo que alcanza bits de longitud.
  2. Se genera una cadena de bits aleatorios .
  3. expande un poco de una cadena a bits.
  4. .
  5. comprime bit a bit.
  6. .
  7. texto encriptado .

Descifrado

  1. Se restaura la cadena aleatoria
  2. El mensaje original se restaura como
  3. Los últimos caracteres del mensaje descifrado se verifican en cero. Si hay caracteres distintos de cero, entonces el mensaje ha sido falsificado por un atacante.

Aplicación

El algoritmo OAEP se usa para preprocesar el mensaje antes de usar RSA . El mensaje se rellena primero hasta una longitud fija mediante OAEP y luego se cifra mediante RSA. En conjunto, este esquema de cifrado se denomina RSA-OAEP y forma parte del estándar de cifrado de clave pública actual ( RFC 3447 ). También fue probado por Viktor Boyko que la función vista en el modelo de oráculos aleatorios es una transformación de tipo todo o nada[4] .

Modificaciones

Debido a deficiencias tales como la imposibilidad de probar la resistencia criptográfica a los ataques basados ​​en el texto cifrado elegido , así como la baja velocidad del esquema [6] , posteriormente se propusieron modificaciones basadas en OAEP que eliminan estas deficiencias.

Algoritmo OAEP+

Victor Shoup ha que es resistente a los ataques de texto cifrado adaptativo cuando se combina con cualquier función de puerta trasera unidireccional [2] .

Cifrado
  1. Se genera una cadena de bits aleatorios .
  2. se convierte en una cadena de longitud .
  3. se convierte en una cadena de longitud .
  4. El lado izquierdo del mensaje está compuesto .
  5. se convierte en una cadena de longitud .
  6. Se está redactando el lado derecho del mensaje .
  7. texto encriptado .
Descifrado
  1. La cadena aleatoria se restaura .
  2. se divide en dos partes y , con tamaños y bits, respectivamente.
  3. El mensaje original se restaura como .
  4. Si no se cumple , el mensaje se falsifica.

Algoritmo SAEP/SAEP+

Dan Bonet ha propuesto dos implementaciones simplificadas de OAEP, llamadas SAEP y SAEP+ respectivamente. La idea principal de simplificar el cifrado es la ausencia del último paso: el mensaje se "pegó" con la cadena aleatoria generada inicialmente . Por lo tanto, los circuitos constan de una sola celda de Feistel , por lo que se logra un aumento en la velocidad de operación [7] . La diferencia entre los algoritmos entre sí se expresa en el registro de los bits de control. En el caso de SAEP, estos son ceros, mientras que para SAEP+, esto es un hash de (respectivamente, como en OAEP y OAEP+) [5] . La desventaja de los algoritmos es una fuerte reducción en la longitud del mensaje. La confiabilidad de los esquemas en el caso de usar la función Rabin y RSA se ha probado solo con la siguiente restricción en la longitud del texto transmitido: para SAEP + y adicionalmente para SAEP [8] . Vale la pena señalar que aproximadamente a la misma velocidad, SAEP+ tiene menos restricciones en la longitud del mensaje que SAEP [8] , por lo que se reconoce como más preferible [8] .

El diagrama utiliza la siguiente notación:

Cifrado SAEP+
  1. Se genera una cadena de bits aleatorios .
  2. se convierte en una cadena de longitud .
  3. se convierte en una cadena de longitud .
  4. Calculado .
  5. texto encriptado .
Descifrado SAEP+
  1. Calculado , donde y  son cadenas de tamaño y , respectivamente.
  2. Se comprueba la igualdad . Si la igualdad es verdadera, entonces el mensaje original , si no, entonces el mensaje es falsificado por un atacante.

Véase también

Notas

  1. 1 2 Cifrado asimétrico óptimo Cómo cifrar con RSA, 1995 , p. una.
  2. 1 2 OAEP Reconsidered, 2001 , p. una.
  3. RSA–OAEP es seguro bajo el supuesto de RSA, 2001 , p. una.
  4. 1 2 Comercio unidireccional contra seguridad de texto cifrado elegido en cifrado basado en factorización, 2006 , p. una.
  5. 1 2 OAEP simplificado para las funciones RSA y Rabin, 2001 , p. 277.
  6. Una alternativa de bajo costo para OAEP, 2001 , p. una.
  7. OAEP simplificado para las funciones RSA y Rabin, 2001 , p. 275.
  8. 1 2 3 OAEP simplificado para las funciones RSA y Rabin, 2001 , p. 290.

Literatura