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 .
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] .
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:
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] .
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.
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] .
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: