El modo de libro de códigos de desplazamiento ( modo OCB ) es un modo de operación de cifrado autenticado para cifrados de bloques criptográficos . [1] [2] El modo OCB fue diseñado por Phillip Rogaway , quien acredita a Mihir Bellare , John Black y Ted Krovetz por la ayuda y los comentarios sobre los diseños. Se basa en el modo paralelizable consciente de la integridad (IAPM) de cifrado autenticado de Charanjit S. Jutla. La versión OCB2 demostró ser insegura, mientras que el OCB1 original , así como el OCB3 de 2011, aún se consideran seguros.
El modo OCB fue diseñado para proporcionar tanto autenticación de mensajes como privacidad . Es esencialmente un esquema para integrar un código de autenticación de mensajes (MAC) en el funcionamiento de un cifrado de bloques . De esta manera, el modo OCB evita la necesidad de utilizar dos sistemas: un MAC para la autenticación y un cifrado para la confidencialidad. Esto da como resultado un menor costo computacional en comparación con el uso de funciones de cifrado y autenticación separadas.
Existen tres versiones de OCB: OCB1, OCB2 y OCB3. OCB1 se publicó en 2001. OCB2 mejora OCB1 al permitir que se incluyan datos asociados con el mensaje, proporcionando cifrado autenticado con datos asociados (AEAD; es decir, datos que no están cifrados pero que deberían autenticarse) y un nuevo método para generar una secuencia de desplazamientos. OCB2 se publicó por primera vez en 2003, originalmente llamado modo de cifrado autenticado o modo de cifrado avanzado ( AEM ) y se demostró que era completamente inseguro en 2019. OCB3, publicado en 2011, cambia nuevamente la forma en que se calculan los desplazamientos e introduce pequeñas mejoras de rendimiento.
OCB2 se estandarizó en ISO/IEC 19772:2009 [3] (aunque se eliminó del estándar luego de la publicación del ataque) y un OCB3 modificado en RFC 7253. [4] El RFC codifica la longitud de la etiqueta en el nonce formateado internamente.
La sobrecarga de rendimiento de OCB es mínima en comparación con los modos clásicos sin autenticación, como el encadenamiento de bloques de cifrado . OCB requiere una operación de cifrado de bloques por bloque de mensaje cifrado y autenticado, y una operación de cifrado de bloques por bloque de datos asociados. También se requiere una operación de cifrado de bloques adicional al final del proceso.
A modo de comparación, el modo CCM, que ofrece una funcionalidad similar, requiere el doble de operaciones de cifrado de bloque por bloque de mensaje (los datos asociados requieren una, como en OCB).
Si bien OCB ahora es de dominio público, Rogaway inicialmente patentó el modo OCB para poder cobrar por licencias comerciales y en un intento de evitar que su trabajo apareciera en proyectos relacionados con el ejército. [5] Rogaway abandonó intencionalmente sus patentes OCB en 2021. [6]
Se emitieron dos patentes estadounidenses para el modo OCB. [7] Las patentes han dificultado la aprobación por parte del Instituto Nacional de Normas y Tecnología . [ cita requerida ]
Si bien el modo OCB fue patentado, Rogaway puso a disposición tres licencias para permitir que el modo OCB se use libremente en software licenciado bajo la Licencia Pública General de GNU (más tarde cualquier licencia de código abierto certificada por la Iniciativa de Código Abierto [8] ), proyectos no comerciales y no militares, y en OpenSSL .
Dado que Rogaway sólo solicitó protección por patente en los EE. UU., el algoritmo siempre ha sido de libre uso en software no desarrollado ni vendido dentro de los EE. UU. [9].
Niels Ferguson señaló los ataques de colisión en OCB, que limitan la cantidad de datos que se pueden procesar de forma segura bajo una sola clave a aproximadamente 280 terabytes. [10] [11]
En octubre de 2018, Inoue y Minematsu presentaron un ataque de falsificación existencial contra OCB2 que requiere solo una única consulta de cifrado previa y casi ninguna capacidad computacional o de almacenamiento. [12] El ataque no se extiende a OCB1 ni a OCB3, y requiere que el campo de datos asociado del texto cifrado falsificado esté vacío. Poettering [13] e Iwata [14] mejoraron el ataque de falsificación a un ataque de recuperación de texto simple completo solo un par de días después. Los cuatro autores luego produjeron un informe conjunto. [15]