stringtranslate.com

Modo CCM

El modo CCM ( contador con código de autenticación de mensajes de encadenamiento de bloques de cifrado ; contador con CBC-MAC ) es un modo de funcionamiento para cifrados de bloques criptográficos . Es un algoritmo de cifrado autenticado diseñado para proporcionar tanto autenticación como confidencialidad . El modo CCM solo está definido para cifrados de bloques con una longitud de bloque de 128 bits. [1] [2]

El nonce de CCM debe elegirse con cuidado para que nunca se utilice más de una vez para una clave determinada . Esto se debe a que CCM es una derivación del modo contador (CTR) y este último es efectivamente un cifrado de flujo . [3]

Cifrado y autenticación

Como sugiere el nombre, el modo CCM combina el modo contador (CTR) para la confidencialidad con el código de autenticación de mensajes de encadenamiento de bloques cifrados (CBC-MAC) para la autenticación. Estas dos primitivas se aplican de una manera "autenticar-luego-encriptar": primero se calcula CBC-MAC en el mensaje para obtener un código de autenticación de mensajes (MAC) , luego el mensaje y el MAC se encriptan utilizando el modo contador. La idea principal es que se puede utilizar la misma clave de encriptación para ambos, siempre que los valores del contador utilizados en el cifrado no colisionen con el vector de (pre)inicialización utilizado en la autenticación. Existe una prueba de seguridad [4] para esta combinación, basada en la seguridad del cifrado de bloque subyacente. La prueba también se aplica a una generalización de CCM para cualquier tamaño de bloque , y para cualquier tamaño de función pseudoaleatoria criptográficamente fuerte (ya que tanto en el modo contador como en CBC-MAC, el cifrado de bloque solo se utiliza en una dirección).

El modo CCM fue diseñado por Russ Housley, Doug Whiting y Niels Ferguson . En el momento en que se desarrolló el modo CCM, Russ Housley trabajaba para RSA Laboratories .

En el estándar Zigbee se utiliza una variante menor de CCM, denominada CCM* . CCM* incluye todas las características de CCM. Permite elegir entre longitudes de MAC hasta 0 (que deshabilita la autenticación y pasa a ser solo de cifrado). [5]

Actuación

CCM requiere dos operaciones de cifrado de bloques en cada bloque de un mensaje cifrado y autenticado, y un cifrado en cada bloque de datos autenticados asociados.

Según los puntos de referencia de Crypto++ , AES CCM requiere 28,6 ciclos por byte en un procesador Intel Core 2 en modo de 32 bits. [6]

Ineficiencias notables:

Patentes

El catalizador para el desarrollo del modo CCM fue la presentación del modo de libro de códigos de desplazamiento (OCB) para su inclusión en el estándar IEEE 802.11i . Se expresó oposición a la inclusión del modo OCB debido a una solicitud de patente pendiente sobre el algoritmo . La inclusión de un algoritmo patentado significó importantes complicaciones de licencia para los implementadores del estándar.

Si bien la inclusión del modo OCB fue motivo de controversia debido a estas cuestiones de propiedad intelectual , se acordó que la simplificación que brinda un sistema de cifrado autenticado era deseable. Por lo tanto, Housley y otros desarrollaron el modo CCM como una alternativa potencial que no estaba gravada por patentes.

Aunque el modo CCM es menos eficiente que el modo OCB, una solución sin patentes era preferible a una que se complicara por problemas de licencias de patentes. Por lo tanto, el modo CCM pasó a convertirse en un componente obligatorio del estándar IEEE 802.11i, y el modo OCB quedó relegado a la condición de componente opcional, antes de eliminarse por completo.

Usar

El modo CCM se utiliza en IEEE 802.11i (como CCMP , el protocolo de cifrado CCM para WPA2 ), IPsec , [7] y TLS 1.2, [8] así como Bluetooth Low Energy (a partir de Bluetooth 4.0 ). [9] Está disponible para TLS 1.3, pero no está habilitado de forma predeterminada en OpenSSL . [10]

Véase también

Referencias

  1. ^ Dworkin, Morris (mayo de 2004). Recomendación para modos de operación de cifrado de bloques: el modo CCM para autenticación y confidencialidad (PDF) (informe técnico). Publicaciones especiales del NIST. NIST . doi : 10.6028/NIST.SP.800-38C . 800-38C.
  2. ^ Whiting, D.; Housley, R.; Ferguson, N. (septiembre de 2003). Contador con CBC-MAC (CCM). IETF . doi : 10.17487/RFC3610 . RFC 3610.
  3. ^ Housley, Russ (diciembre de 2005). "rfc4309". IETF : 3. AES CCM emplea el modo contador para el cifrado. Como sucede con cualquier cifrado de flujo, la reutilización del mismo valor IV con la misma clave es catastrófica.
  4. ^ Jonsson, Jakob (2003). "Sobre la seguridad de CTR + CBC-MAC" (PDF) . Áreas seleccionadas en criptografía . Apuntes de clase en informática. Vol. 2595. págs. 76–93. doi :10.1007/3-540-36492-7_7. ISBN 978-3-540-00622-0.
  5. ^ "Anexo B: Modo de funcionamiento CCM*". Estándar IEEE para redes de área local y metropolitana - Parte 15.4: Redes de área personal inalámbricas de baja velocidad (LR-WPAN) (PDF) . Estándares IEEE . 2011-09-05. p. 229 . Consultado el 18 de diciembre de 2015 .
  6. ^ "Puntos de referencia de Crypto++ 5.6.0". Crypto++ . Consultado el 6 de septiembre de 2015 .
  7. ^ RFC  4309 Uso del modo CCM del Estándar de cifrado avanzado (AES) con carga útil de seguridad encapsulada (ESP) de IPsec
  8. ^ RFC  6655 Conjuntos de cifrados AES-CCM para seguridad de la capa de transporte (TLS)
  9. ^ "Seguridad de bajo consumo de energía de Bluetooth". Archivado desde el original el 2016-04-02 . Consultado el 2017-04-20 .
  10. ^ Caswell, Matt (4 de mayo de 2017). "Uso de TLS1.3 con OpenSSL". Blog de OpenSSL . Consultado el 11 de octubre de 2024 .

Enlaces externos