KCipher-2 (cifrado de flujo K2) | |
---|---|
Creador | Laboratorios de I+D de KDDI, Inc. |
publicado | 2007 |
Tamaño de clave | 128 bits |
Tipo de | Cifrado de flujo |
KCipher-2 (versión actualizada de K2 Stream Cipher) es un cifrado de flujo simétrico de alto rendimiento (generador de claves de flujo) desarrollado por tres criptógrafos japoneses: Toshiaki Tanaka, Shinsaku Kiyomoto, Kouichi Sakurai. El cifrado utiliza 2 entradas independientes, una clave de 128 bits y un vector de inicialización de 128 bits. El uso de este algoritmo KCipher-2 le permite aumentar el nivel de seguridad en varios servicios, como servicios multimedia y servicios de banda ancha. [1] [2]
KCipher-2 se puede implementar de manera efectiva en el software para un cifrado y descifrado rápidos debido a su diseño sencillo. Solo se utilizan 4 operaciones simples: tablas XOR, suma, desplazamiento y búsqueda. Si el algoritmo se implementa en hardware, los cálculos internos se pueden paralelizar para lograr una mayor eficiencia. Además, dado que la representación interna es de solo cientos de bits, KCipher-2 es adecuado para entornos con recursos limitados. [una]
El cifrado se publicó por primera vez [3] como "Cifrado de flujo K2" en la Sesión especial sobre el estado del arte de los cifrados de flujo ( SASC ) de 2007 organizada por la Red europea de excelencia en criptología ( ENCRYPT ). Desde que se publicó el algoritmo de cifrado, su seguridad y eficacia se han evaluado cuidadosamente a través de investigaciones académicas e industriales. En 2012, KCipher-2 se incluyó en el estándar internacional para cifrado de flujo ISO / IEC 18033-4, y en marzo de 2013, el Ministerio del Interior y Comunicaciones de Japón, junto con el Ministerio de Economía, Comercio e Industria, anunciaron la inclusión de un cifrado en la lista recomendada por cifrados de gobierno electrónico . En el momento de la publicación de RFC 7008 , agosto de 2013, no se han encontrado vulnerabilidades. KCipher-2 se utiliza en aplicaciones industriales, especialmente en servicios de diagnóstico y monitoreo de salud móvil en Japón. [1] [2]
Se han logrado velocidades superiores a 5 Gb/s en PC. KCipher-2 puede descifrar una película de 4,7 GB en 8 segundos, mientras que el estándar estadounidense AES tardaría 1,5 minutos.
Se han logrado velocidades de más de 380 Mb/s en teléfonos inteligentes equipados con sistema operativo Android. El descifrado de 400 archivos de video (100 KB cada uno) toma alrededor de 1 segundo, que es de 7 a 10 veces más rápido que AES.
Se logró un nivel de utilización de la CPU del 0,5 % al transcribir un video equivalente a 1 seg en un teléfono móvil en reproducción en tiempo real, lo que no era posible con los métodos existentes.
El algoritmo de configuración es independiente de la arquitectura de la CPU. Puede proporcionar suficiente rendimiento en varios entornos.
Los cifrados de flujo básicos utilizan varios registros de desplazamiento de retroalimentación lineal independientes (LFSR) junto con funciones no lineales para generar una clave de flujo. Algunos cifrados de flujo utilizan una función no lineal común para cronometrar de manera no uniforme uno o más LFSR. Se describen varios cifrados de flujo de control de reloj y ataques contra ellos.
El mecanismo de control del reloj de los cifrados de flujo normalmente controla el reloj LFSR o diezma o desdispersa la salida. Este control de reloj degrada el rendimiento del cifrado de flujo porque se descartan algunos de los bits de salida. Si aplica compresión a un cifrado de flujo con procesamiento palabra por palabra, el rendimiento se deteriorará notablemente. El mecanismo de control de reloj orientado a bits tampoco es efectivo para mejorar el LFSR. Por otro lado, la retroalimentación dinámica para LFSR es un método eficaz para mejorar la seguridad de los cifrados de flujo.
KCipher-2 es un cifrado de flujo que opera con palabras y tiene una poderosa retroalimentación dinámica para el reloj irregular. La idea principal del modelo es corregir la operación de mezcla durante la actualización del estado. Los polinomios de retroalimentación para LFSR con procesamiento palabra por palabra se describen mediante coeficientes; multiplicar la palabra de entrada por un factor significa mezclar palabras. Un ejemplo típico es el LFSR del cifrado SNOW2.0[3]. En general, un polinomio de retroalimentación es un polinomio primitivo. Los creadores utilizan tiempos desiguales para la operación de mezcla y la modificación provoca solo una ligera degradación en la velocidad de cifrado y descifrado. En otras palabras, al menos un RBOS tiene una sincronización desigual para modificar dinámicamente la función de retroalimentación para un controlador de retroalimentación dinámica que recibe la salida de otro RBOS. Por ejemplo, una función de bucle cerrado definida como , donde (0,1) son elegidos por el controlador con retroalimentación dinámica. El RSOS controlado por dicho controlador se denomina registro de desplazamiento de retroalimentación dinámica (FSRS). El mecanismo de control de retroalimentación dinámica mejora la seguridad del cifrado de flujo porque reemplaza las repeticiones lineales deterministas de algunos registros con repeticiones probabilísticas. Esto protege eficazmente contra una serie de ataques. Lo que es más importante, KCipher-2 logra no solo un alto rendimiento como los cifrados de flujo basados en LFSR, sino también una alta seguridad.
La tasa de generación de claves de flujo KCipher-2 es de 4,97 ciclos/byte en la serie Pentium 4. Por lo tanto, este cifrado compite con otros cifrados de flujo de la lista CRYPTREC . Además, KCipher-2 se desarrolló teniendo en cuenta dos ataques a SNOW2.0, algebraico y diferencial, y tiene mayor resistencia a los mismos. De hecho, hasta el momento no se han encontrado ataques a KCipher-2, operaciones más pequeñas. Como resultado, KCipher-2 logra una mayor seguridad que los cifrados de flujo existentes.
KCipher-2 consta de dos tipos de registros de desplazamiento de retroalimentación (RSOS), RSOS-A (5 registros) y RSOS-B (11 registros), una función no lineal con cuatro registros internos R1, R2, L1, L2 y un control de retroalimentación dinámica conexiones de dispositivos. RSOS-B es un registro de desplazamiento con retroalimentación dinámica. El tamaño de cada registro es de 32 bits.
K. Yu. Leuven realizó una evaluación criptográfica del cifrado K2. La puntuación se basa en los intentos de atacar a K2 en una variedad de formas consistentes con el criptoanálisis de cifrado de flujo de última generación. Su trabajo ha incluido el análisis de ataques lineales, ataques algebraicos, ataques de correlación y correlación rápida, ataques diferenciales que implican establecer claves relacionadas, ataques de adivinar y determinar, propiedades estadísticas, periodicidad y ataques diferenciales.
Con respecto a los ataques lineales, se aplicó el método de enmascaramiento lineal de la versión K2, ignorando el efecto de la retroalimentación dinámica. La mejor correlación encontrada utiliza 13 aproximaciones lineales y es , que no permite ataques exitosos. En el análisis algebraico, se estudian la estructura y las propiedades cuantitativas de los sistemas de ecuaciones resultantes y se argumenta que los ataques algebraicos no son factibles. El análisis con respecto a la correlación y los ataques de correlación rápida (sin tener en cuenta el controlador de retroalimentación dinámica) mostró que este enfoque no tuvo éxito. El análisis diferencial (asumiendo que no hay un controlador de retroalimentación dinámica y que la adición de módulo se reemplaza por XOR), incluido un ataque a la clave asociada, el vector de inicialización asociado y una combinación de estos ataques, sugiere que K2 puede ser robusto contra ataques diferenciales. Los enfoques de adivinar y determinar para los ataques orientados a bytes y palabras han resultado en complejidad , lo que implica que estos métodos no son aplicables a K2. En cuanto a la consideración de la periodicidad, no se encontraron periodos cortos en K2. Las pruebas estadísticas no revelaron fallas estructurales en el modelo K2. Los análisis también mostraron que K2 también proporciona una buena resistencia contra ataques diferenciales módulo n.
Por lo tanto, no se encontraron vulnerabilidades en K2 y el cifrado se considera estable.
Toda la propiedad intelectual relacionada con KCipher-2 es propiedad de KDDI Corporation. Los expertos de CRYPTREC pueden usar KCipher-2 sin regalías. KCipher-2 se proporcionará a cualquier organización gubernamental a un costo razonable y en términos razonables.
KDDI R&D Laboratories Corporation ha producido un kit de desarrollo de aplicaciones (SDK) para el KCipher-2. Este algoritmo de cifrado se utiliza en los siguientes sistemas/aplicaciones:
la fecha | Versión | Historial de cambios |
---|---|---|
enero de 2007 | K2 versión 1.0[6] | Primera publicación en un congreso internacional. |
julio de 2007 | K2 versión 2.0[7] | El paso de carga de claves en el proceso de inicialización se ha cambiado para propagar de manera más eficiente la clave y el vector de inicialización al estado interno. |
2008 | KCipher-2 versión 2.0 | Solo se cambió el nombre del cifrado de "K2" a "KCipher-2". |
Criptosistemas simétricos | |
---|---|
Cifrados de flujo | |
Red Feistel | |
red SP | |
Otro |