PRESENTE: cifrado en bloque ultraligero (traducción del PRESENTE original: un cifrado en bloque ultraligero)

Hola Habr! Aquí está la traducción del artículo original "PRESENTE: Un cifrado de bloque ultra ligero" por Robert B. Weide Bogdanov, Lender, Paar, Poshman, Robshav, Seurin y Wikkelsoy.


anotación


Con la introducción de AES, la necesidad de nuevos algoritmos de cifrado de bloques se ha desplomado, ya que en la mayoría de los casos AES es una gran solución. Sin embargo, a pesar de su facilidad de implementación, AES no es adecuado para entornos extremadamente limitados, como etiquetas y lectores RFID . Este artículo describirá el algoritmo de cifrado de bloques ultraligero PRESENTE. Durante el desarrollo de este algoritmo, se tuvieron en cuenta tanto la eficacia de la implementación en hierro como la fiabilidad del cifrado. Como resultado, el resultado de los requisitos del sistema es comparable a los cifrados de flujo compacto líderes de la actualidad.

1. Introducción


El curso principal en TI del siglo actual es el desarrollo de pequeños dispositivos informáticos, que se utilizan no solo en productos de consumo, sino que también forman una parte integral e invisible del entorno: la infraestructura de comunicación. Ya se ha revelado que tales implementaciones crean una gama completa de amenazas de seguridad muy específicas. Al mismo tiempo, las soluciones criptográficas disponibles, incluso las primitivas, a menudo no son adecuadas para su uso en entornos con recursos limitados.

En este artículo, ofrecemos un nuevo algoritmo de cifrado de bloques optimizado por hardware, desarrollado con las máximas limitaciones de tamaño y potencia posibles. Al mismo tiempo, tratamos de evitar comprometer los datos. Para lograr esto, aprovechamos la experiencia DES y complementamos las propiedadesSerpiente que ha demostrado un rendimiento sorprendente en hardware.

Quizás valga la pena explicar por qué decidimos desarrollar un nuevo cifrado de bloque, porque el hecho generalmente aceptado es que los cifrados de flujo son potencialmente más compactos. De hecho, al principio hicimos esfuerzos para comprender el diseño de cifrados de flujo compactos en el proceso de trabajo en el proyecto eSTREAM , así como varios otros supuestos prometedores que parecen ser de acción rápida. Pero notamos varias razones por las cuales, sin embargo, elegimos un cifrado de bloque. En primer lugar, el cifrado en bloque es universal y primitivo, y cuando se usa en modo de cifradoes decir usando los bloques ya encriptados para encriptar lo siguiente, obtenemos encriptación de transmisión. En segundo lugar, y, tal vez, principalmente, las complejidades de los principios de operación de los cifrados de bloque parecen estar mejor estudiadas que los principios de operación de los algoritmos de cifrado de flujo. Por ejemplo, si bien existe una extensa teoría basada en el uso de registros de desplazamiento con retroalimentación lineal , no es tan fácil combinar estos bloques de manera que se obtenga una oferta segura. Suponemos que un cifrado de bloque cuidadosamente diseñado puede ser más seguro que un cifrado de flujo recién creado. Por lo tanto, encontramos que un cifrado de bloque que requiere tantos recursos de hierro como un cifrado de flujo compacto puede ser muy interesante.

Es importante tener en cuenta que al crear un nuevo algoritmo de cifrado de bloques, especialmente con un rendimiento llamativo, no solo buscamos la innovación. Por el contrario, el desarrollo y la implementación del cifrado van de la mano, revelando algunos límites fundamentales y limitaciones inherentes. Por ejemplo, un determinado nivel de seguridad impone restricciones sobre la clave mínima y las longitudes de bloque. Incluso el procesamiento de un estado de 64 bits con una clave de 80 bits limita el tamaño mínimo del dispositivo. También puede observar que la realización en hardware, especialmente la compacidad de la implementación de hardware, contribuye a la repetibilidad. Incluso pequeños cambios pueden afectar negativamente el volumen del dispositivo. Sin embargo, los criptoanalistas también valoran la repetibilidad y buscan estructuras matemáticas que se multipliquen fácilmente en muchas rondas.Entonces, ¿cuántas estructuras repetitivas simples se pueden usar sin comprometer la seguridad del sistema?

Entonces, este artículo describirá el cifrado de bloque compacto PRESENTE. Después de una breve revisión de la literatura existente, diseñamos el resto del artículo en forma estándar. El código se describe en la sección 3, en la sección 4 se describen las decisiones de diseño. En la sección 5 consideraremos la seguridad, mientras que la sección 6 contendrá un análisis detallado del rendimiento. Este trabajo termina con nuestras conclusiones.

2. Obras existentes


Si bien el volumen de trabajo dedicado a la criptografía barata está en constante crecimiento, el número de artículos dedicados a cifras súper ligeras es sorprendentemente pequeño. Moviendo el enfoque al dispositivo de protocolo, ya no nos referiremos a trabajos sobre protocolos de comunicación e identificación baratos. Actualmente, uno de los trabajos más extensos sobre implementación compacta está asociado con el proyecto eSTREAM. Como parte de una parte de este proyecto, se propusieron nuevos cifrados de flujo adaptados para una implementación efectiva en hardware. En el curso de este trabajo, se describen los candidatos prometedores. Hasta ahora, las proporciones son aproximadas, pero de los folletos de implementación se desprende que los cifrados compactos del proyecto eSTREAM requerirán aproximadamente 1300-2600 GE (equivalentes de puerta) .

Entre los cifrados en bloque, uno de los ampliamente conocidos, a saber, DES, se creó teniendo en cuenta la eficiencia del equipo. Teniendo en cuenta el estado muy limitado de los semiconductores a principios de la década de 1970, no es sorprendente que DES tenga propiedades de implementación muy competitivas. Durante el desarrollo, 3000GE se gastó en DES, y después de la serialización, este número se redujo a 2300GE. Sin embargo, la longitud de la clave DES limita su utilidad en muchas aplicaciones y lleva al hecho de que se desarrollan modificaciones especializadas sobre la base, por ejemplo, con una mayor fuerza criptográfica o una clave extendida.

Con respecto a los cifrados de bloque modernos, este artículo proporciona un análisis exhaustivo de AES de bajo costo. Sin embargo, su implementación requiere aproximadamente 3,600 GE, lo cual es una consecuencia indirecta del diseño de multas para procesadores de 8 y 32 bits. Los requisitos del sistema <a href = " TEA no se conocen, pero según las estimaciones requieren alrededor de 2100 GE. Hay 4 soluciones más que están diseñadas para equipos de bajo costo: mCRYPTON (tiene una ejecución exacta de 2949 GE), HIGHT (aproximadamente 3000 GE), SEA (aproximadamente 2280 GE) y CGEN (también alrededor de 2280 GE), a pesar de que este último no fue concebido como un cifrado de bloque.

3. Cifrado de bloque PRESENTE


PRESENTE es un caso especial de la red SP y consta de 31 rondas. La longitud del bloque es de 64 bits, y las claves son compatibles con 2 versiones, de 80 y 128 bits. Este nivel de protección debería ser suficiente para las aplicaciones de baja seguridad que generalmente se usan para la implementación basada en etiquetas, y además, lo más importante, PRESENTE coincide en gran medida en sus características de diseño con los cifrados de flujo del proyecto eSTREAM, afilados para una implementación efectiva en hardware, lo que nos permite comparar adecuadamente su.
Los requisitos de seguridad y las propiedades operativas de las versiones de 128 bits se proporcionan en el apéndice del artículo original.

Cada una de las 31 rondas consiste en una operación XOR para ingresar la clave K i para 1 ≤ i ≤ 32, donde K 32 se usa para"Blanquear" la capa clave , permutación lineal de bits y sustitución no lineal (o, más simplemente, aumentar la fuerza del cifrado). La capa no lineal utiliza bloques S separados de 4 bits , que se aplican en paralelo 16 veces en cada ronda. El cifrado descrito por el pseudocódigo se muestra en la figura:



ahora cada etapa se determina a su vez. Las justificaciones de diseño se dan en la Sección 4, y los bits están numerados en todas partes desde cero, comenzando con el correcto en un bloque o palabra.

Agregar una tecla redonda (addRoundKey). La tecla redonda K i = k i 63 ... k i 0 , donde 1 ≤ i ≤ 32, así como el estado actual b 63 ... b 0. Al agregar una tecla redonda al estado actual se produce el módulo 2 (b j = b j ⊕ k i j , donde 0 ≤ j ≤ 63).

Capa S-Box (sBoxlayer). Los bloques S utilizados en PRESENTE asignan bloques de 4 bits a bloques de 4 bits. La acción de este bloque en el sistema de números hexadecimales se muestra en la siguiente tabla:



Para la capa de bloque S, el estado actual b 63 ... b 0 es 16 palabras de 4 bits w 15 ... w 0 , donde w i = b 4 * i + 3 || b 4 * i + 2 || b 4 * i + 1 || b 4 * i para 0 ≤ i ≤ 15. Salida de trama S [w i] devuelve valores de estado actualizados de una manera obvia.

Capa de permutación (pLayer). La permutación bit a bit utilizada PRESENT se define en la siguiente tabla (el estado del bit i se desplaza a la posición P (i)):



Conversión de clave ( El programa clave ). PRESENT puede usar claves de 80 y 128 bits, sin embargo, nos centraremos en la versión de 80 bits. La clave proporcionada por el usuario se almacena en el registro de claves K, representado como k 79 k 78 ... k 0 . En la ronda i-ésima, una tecla redonda de 64 bits K i = k 63 k 62 ... k 0, que consta de 64 bits izquierdos del contenido actual del registro K. Por lo tanto, en la i-ésima ronda tenemos:
K i = k 63 k 62 ... k 0 = k 79 k 78 ... k 16 .

Después de desempaquetar la tecla redonda K i, el registro de clave K = k 79 k 78 ... k 0 se actualiza de la siguiente manera:
1. [k 79 k 78 ... k 1 k 0 ] = [k 18 k 17 ... k 20 k 19 ]
2. [k 79 k78 k 77 k 76 ] = S [k 79 k 78 k 77 k 76 ]
3. [k 19 k 18 k 17 k 16 k 15 ] = [k 19 k 18 k 17 k 16 k 15 ] ⊕ ronda_contador

Por lo tanto, regístrese la tecla se desplaza 61 posiciones hacia la izquierda, los 4 bits más a la izquierda pasan a través del bloque S y round_counter se agrega el valor de i módulo 2 con bits k 19 k 18 k 17 k 16 k 15desde K con el bit menos significativo de round_counter a la derecha.



Una conversión clave para un algoritmo de 128 bits se puede encontrar en el apéndice del artículo original.

4. Características de diseño de PRESENT


Además de la seguridad y la implementación eficiente, el principal logro de PRESENT es su simplicidad. por lo tanto, no es sorprendente que proyectos similares fueron adoptados en otras circunstancias, e incluso se usaron como un libro de texto para estudiantes. En esta sección, justificaremos las decisiones que tomamos al diseñar PRESENT. Sin embargo, en primer lugar, describimos los requisitos de aplicación esperados.

4.1. Propósito y entorno de aplicación


Cuando se diseña un cifrado de bloques que sea aplicable en entornos con restricciones estrictas, es importante comprender que no estamos creando un cifrado de bloques que sea aplicable en muchas situaciones; hay AES para esto. Por el contrario, apuntamos a una aplicación muy específica para la que AES no es adecuada. Lo anterior determina las siguientes características.

  • El cifrado se implementará "en hardware"
  • Solo se requerirán aplicaciones para ajustar el nivel de seguridad. Por lo tanto, una clave de 80 bits sería una solución sólida. Tenga en cuenta que los desarrolladores de cifrados de flujo del proyecto eSTREAM se adhieren a la misma posición.
  • Las aplicaciones no requieren cifrado de grandes cantidades de datos. Por lo tanto, una implementación puede optimizarse para el rendimiento o el espacio sin realizar demasiados cambios.
  • , . , ( ).
  • , , , , , .
  • , , (encryption-only mode). , - (challenge-response) , , , , .

En base a tales consideraciones, decidimos crear PRESENT como un cifrado de bloque de 64 bits con una clave de 80 bits. El cifrado y descifrado, en este caso, tienen aproximadamente los mismos requisitos físicos. Con la capacidad de admitir tanto el cifrado como el descifrado, PRESENT será más compacto que admitir solo el cifrado AES. Y en el caso de la ejecución solo de cifrado, nuestro cifrado será completamente súper fácil. Cifrado sub-claves serán calculados sobre la marcha.

Hay muchos ejemplos en la literatura de ataques de compromiso entre hora, fecha y memoria , o ataques que utilizan la paradoja del cumpleaños.al encriptar grandes cantidades de datos. Sin embargo, estos ataques dependen solo de los parámetros del cifrado y no utilizan la estructura interna. Nuestro objetivo es hacer que estos ataques sean lo mejor que puedan usar contra nosotros. Los ataques de canales de terceros y los ataques directos de ruptura de chips amenazan PRESENTE tanto como otras primitivas criptográficas . Sin embargo, para aplicaciones probables, los requisitos de seguridad moderados hacen que los beneficios para un atacante en la práctica sean muy limitados. En la evaluación de riesgos, tales amenazas no se perciben como un factor significativo.

4.2. Capa de permutación


Al elegir una capa de mezcla de teclas, nuestra atención a la eficiencia del hardware requiere una capa lineal, que se puede implementar con un número mínimo de elementos de control (por ejemplo, transistores). Esto conduce a una permutación bit a bit. Prestando atención a la simplicidad, elegimos la permutación bit a bit regular, que ayuda a realizar un análisis de seguridad transparente (ver sección 5).

4.3. S-blocks.


En PRESENT, usamos bloques S separados que traducen 4 bits a 4 bits (F 4 2 → F 4 2 ). Esta es una consecuencia directa de nuestro deseo de eficiencia de hardware, y la implementación de tal bloque S suele ser mucho más compacta que la de un bloque S de 8 bits. Dado que utilizamos la permutación de mapa de bits para una capa de difusión lineal, las tecnologías de difusión tipo AES no son una opción para nuestro cifrado. Por lo tanto, colocamos algunas condiciones adicionales en los bloques S para reducir el llamado "efecto de avalancha" . Más precisamente, los bloques S para PRESENTE satisfacen las siguientes condiciones, donde denotamos el coeficiente de Fourier S por

S W b (a) = ∑ (-1) <b, S (x)> + <a, x> , x∈F 42

1. Para cualquier sesgo de entrada fijo distinto de cero ∆ I ∈ F 4 2 y cualquier sesgo de entrada fijo distinto de cero ∆ O ∈ F 4 2 dentro del bloque S, requerimos
# {x ∈ F 4 2 | S (x) + S (x + ∆ I ) = ∆ O } ≤ 4.

2. Para cualquier diferencia de entrada fija distinta de cero ∆ I ∈ F 4 2 y cualquier diferencia de salida fija distinta de cero ∆ O ∈ F 4 2 tal que wt (∆ I ) = wt (∆ O ) = 1 , tenemos
{x ∈ F 4 2| S (x) + S (x + ∆ I ) = ∆ O } = ∅

3. Para todos los que no son cero a ∈ F 4 2 y todos los que no son cero b ∈ F 4 se considera que | S W b (a) | ≤ 8
4. Para todos los que no sean cero a ∈ F 4 2 y todos los que no sean cero b ∈ F 4 de modo que wt (a) = wt (b) = 1, S W b (a) = ± 4 se mantenga,

como quedará claro en la sección 5, estas condiciones aseguran que PRESENT sea resistente a ataques diferenciales y lineales. Utilizando la clasificación de todos los bloques S de 4 bits que satisfacen las condiciones anteriores, hemos elegido el bloque S, que es especialmente adecuado para una implementación eficiente del hardware.

5. Análisis de seguridad


Ahora presentaremos los resultados del presente análisis de seguridad.

Criptoanálisis diferencial y lineal


El criptoanálisis diferencial y lineal son algunos de los métodos más potentes disponibles para los criptoanalistas. Para medir la PRESENTE resistencia al criptoanálisis diferencial y lineal, establecemos el límite inferior en el número de los llamados bloques S activos que participan en la característica diferencial (o lineal).

Criptoanálisis diferencial


El siguiente teorema cubre el caso del criptoanálisis diferencial.

Teorema 1. Cualquier característica diferencial de cinco circuitos de PRESENT tiene al menos 10 bloques S activos.

El teorema 1 se prueba en el Apéndice 3 del artículo original, y continuamos las observaciones. Dividimos 16 bloques S en 4 grupos:



los números en la entrada (arriba) indican el número del bloque S en el paso anterior, y en la salida (en la parte inferior), en la siguiente

Nota:

  1. Los bits de entrada al bloque S provienen de 4 bloques S diferentes del mismo grupo.
  2. Los bits de entrada para grupos de cuatro bloques s provienen de 16 bloques s diferentes.
  3. Se incluyen cuatro bits de salida de un bloque S particular en cuatro bloques S diferentes, cada uno de los cuales pertenece a un grupo separado de bloques S en la siguiente ronda.
  4. Los bits de salida de los bloques s en diferentes grupos van a diferentes bloques s.

Según el Teorema 1, cualquier característica diferencial para más de 25 rondas de PRESENTE debe tener al menos 5 × 10 = 50 bloques S activos. La probabilidad diferencial máxima del bloque S PRESENTE es 2-2 , y por lo tanto la probabilidad de una característica diferencial única de 25 rondas se limita a 2 -100. Los métodos avanzados permiten al criptoanalista eliminar rondas externas del cifrado para usar una característica más corta; sin embargo, incluso si permitimos que un atacante elimine seis rondas del cifrado, lo cual es una situación sin precedentes, los datos requeridos para usar la característica diferencial restante de 25 rondas excederán la cantidad disponible. Por lo tanto, los límites de seguridad son más que confiables. Sin embargo, prácticamente hemos confirmado que el límite del número de bloques S activos en el Teorema 1 es estrecho.

Confirmación práctica


Podemos definir características que incluyen diez bloques S en cinco rondas. La siguiente característica iterativa de dos rondas incluye dos bloques S por ronda y se mantiene con una probabilidad de 2–25 por cinco rondas.

Las características más complejas se mantienen con una probabilidad de 2-21 para 5 rondas.

Aunque la probabilidad de esta segunda característica está muy cerca del límite de 2-20No es iterativo y tiene poco valor práctico. En cambio, confirmamos experimentalmente la probabilidad de un diferencial iterativo de dos rondas. En experimentos con más de 100 subclaves independientes que utilizan 223 pares de texto sin formato seleccionados, se predijo la probabilidad observada. Esto parece sugerir que para esta característica particular no existe un diferencial concomitante significativo. Sin embargo, determinar el alcance de cualquier efecto diferencial es una tarea compleja y que requiere mucho tiempo, a pesar de que nuestro análisis preliminar fue alentador.

Criptoanálisis lineal


El caso del criptoanálisis lineal PRESENTE se considera en el siguiente teorema, en el que analizamos la mejor aproximación lineal a las cuatro rondas de PRESENTE.

Teorema 2. Sea E 4R el desplazamiento lineal máximo de la aproximación de cuatro rondas usando PRESENTE. Entonces E 4R ≤ 2 -7 .
La prueba del teorema está contenida en el Apéndice 4 del artículo original. Luego, durante 28 rondas, el desplazamiento máximo será
2 6 × E 4R 7 = 2 6 × ( 2-7 ) 7 = 2-43

Por lo tanto, suponiendo que un criptoanalista solo necesite alrededor de 28 de las 31 rondas en PRESENTE para iniciar un ataque de recuperación clave, un criptoanálisis lineal de un cifrado requerirá alrededor de 2 84 textos claros / cifrados conocidos. Dichos requisitos de datos exceden el texto disponible.

Algunos ataques diferenciales / lineales avanzados


La estructura PRESENTE nos permite considerar algunas de las formas distinguidas de ataques. Sin embargo, ninguno de ellos condujo a un ataque que requiera menos texto que el límite inferior de los requisitos de texto para el criptoanálisis lineal. Entre los ataques distinguidos, consideramos uno que usa diferencias palindrómicas, ya que las diferencias simétricas persisten con una probabilidad de uno (es decir, siempre) sobre la capa de difusión, y algunas versiones avanzadas de ataques lineales diferenciales. Aunque los ataques parecían prometedores durante varias rondas, rápidamente perdieron su valor práctico y es poco probable que sean útiles en el criptoanálisis PRESENTE. También encontramos que el criptoanálisis diferencial truncado es probable que tenga un valor limitado, aunque en las siguientes dos rondas.

La expansión truncada se realiza con una probabilidad de uno.

Incluso cuando se usa para reducir la longitud de las características diferenciales ya identificadas, los requisitos de datos siguen siendo excesivos. La expansión clasificada se realiza con una probabilidad de uno.

5.2. Ataques estructurales


Los ataques estructurales, como el criptoanálisis integrado y el análisis de cuellos de botella, son muy adecuados para analizar cifrados de tipo AES. Tales cifrados tienen estructuras similares a palabras, donde las palabras suelen ser bytes. Sin embargo, la construcción de la representación es casi exclusivamente a nivel de bits, y aunque la operación de permutación es algo regular, el desarrollo y la distribución de las estructuras de palabras se ven interrumpidos por las operaciones a nivel de bits utilizadas en el cifrado.

5.3. Ataques algebraicos


Los ataques algebraicos se usaron para lograr un éxito exagerado cuando se aplicaron a cifrados de flujo, en lugar de bloquear. Sin embargo, la estructura simple de PRESENT significa que merecen un estudio serio. El presente bloque S se describe mediante 21 ecuaciones cuadráticas para ocho variables de bits de entrada / salida sobre el campo G (2). Esto no es sorprendente, ya que es bien sabido que cualquier bloque S de cuatro bits puede describirse mediante al menos 21 de tales ecuaciones. Luego, todo el cifrado puede describirse mediante ecuaciones cuadráticas e = n × 21 en las variables v = n × 8, donde n es el número de bloques S en el algoritmo de cifrado y transformación de claves.

Para PRESENT, tenemos n = (31 × 16) + 31, por lo que todo el sistema consta de 11.067 ecuaciones cuadráticas en 4.216 variables. El problema general de resolver un sistema de ecuaciones cuadráticas multidimensionales es NP-duro. Sin embargo, los sistemas obtenidos para los cifrados de bloques son muy raros, ya que consisten en n sistemas pequeños conectados por capas lineales simples. Sin embargo, no está claro si este hecho puede usarse en el llamado ataque algebraico. Se han propuesto algunos métodos especializados, como XL y XSL, aunque se han descubierto deficiencias en ambos métodos. En cambio, los únicos resultados prácticos sobre criptoanálisis algebraico de cifrados de bloque se obtuvieron aplicando los algoritmos Buchberger y F4 .como parte del magma. El modelado en versiones a pequeña escala de AES mostró que para todas las redes SP, excepto las más pequeñas , las dificultades surgen rápidamente tanto en el tiempo como en la complejidad de la memoria. Lo mismo vale para PRESENTE.

Confirmación prácticaRealizamos simulaciones en versiones a pequeña escala utilizando el algoritmo F4 en Magma. Cuando hay un bloque S, es decir, un bloque muy pequeño con un tamaño de cuatro bits, Magma puede resolver el sistema resultante de ecuaciones en muchas rondas. Sin embargo, a medida que aumenta el tamaño del bloque y se agregan los bloques S, junto con la variante correspondiente de la capa de difusión lineal, el sistema de ecuaciones pronto se vuelve demasiado grande. Incluso cuando consideramos un sistema que consta de siete bloques S, es decir, que tiene un tamaño de bloque de 28 bits, no pudimos dentro de un tiempo razonable obtener una solución para la versión de cifrado acortada que pasó dos rondas. Nuestro análisis muestra que es poco probable que los ataques algebraicos representen una amenaza para PRESENT.

5.4. Ataques de conversión clave


Dado que no existen pautas establecidas para el desarrollo de transformaciones clave, existe una gran variedad de proyectos y una gran variedad de ataques basados ​​en las características del proyecto. Los ataques más efectivos caen bajo el encabezado general de ataque en claves relacionadas y ataque de corte , y ambos se basan en la construcción de relaciones identificables entre diferentes conjuntos de subclaves. Para contrarrestar esta amenaza, utilizamos un contador dependiente de redondeo, de modo que los conjuntos de subclaves no se puedan "desplazar" fácilmente, y utilizamos una operación no lineal para mezclar el contenido del registro de claves K. En particular:

  • todos los bits en el registro de clave son una función no lineal de la clave de 80 bits suministrada por el usuario para redondear 21,
  • que cada bit en el registro de clave después de la ronda 21 depende de al menos cuatro de los bits de clave proporcionados por el usuario, y
  • para cuando obtengamos K 32 , seis bits son expresiones de grado dos de 80 bits clave proporcionados por el usuario, 24 bits son grado tres, mientras que los bits restantes son una función de los bits clave proporcionados por el usuario de grado seis o grado nueve.

Creemos que estas propiedades son suficientes para resistir ataques clave basados ​​en la conversión de claves.

6. Productividad del "hierro"


Implementamos PRESENT-80 en VHDL y lo adaptamos para la Biblioteca Virtual de Silicio (VST) estándar basada en la lógica UMC L180 0.18 μ 1P6M. Utilizamos el Mentor Graphics Modelsim SE PLUS 5.8 c para la simulación y Synopsys Design Compilerversion Y-2006.06 para la síntesis y modelado del consumo de energía. Se usaron valores típicos para la fundición (1,8 voltios para el voltaje del núcleo y 25 ° C para la temperatura), y el modelo propuesto de carga de alambre se usó para modelar la energía. Tenga en cuenta que dicha simulación está destinada a estructuras de alrededor de 10.000 GE, por lo que los resultados de potencia serán pesimistas para estructuras mucho más pequeñas. En la imagen



La ruta de datos que se muestra es PRESENT-80 con espacio optimizado sin posibilidad de descifrado (solo encriptación), que realiza una ronda por ciclo, es decir, la ruta de datos es de 64 bits de ancho. Tenga en cuenta que en la etapa de diseño PRESENTE, utilizamos el mismo bloque S 16 veces en lugar de tener 16 bloques S diferentes, y esto facilita la serialización adicional del proyecto, es decir, con un canal de datos de 4 bits. Nuestra implementación requiere 32 ciclos de reloj para cifrar texto plano de 64 bits con una clave de 80 bits, requiere 1570 GE y tiene un consumo de energía de 5 micW en modulación.



Requisitos espaciales PRESENTES

La mayor parte del área está ocupada por disparadores para almacenar la clave y el estado de los datos, seguidos por la capa S y el departamento de codificación XOR. Las permutaciones de bits de permutación simples aumentarán el área solo cuando la implementación alcance el lugar y la etapa de ruta. Tenga en cuenta que el objetivo principal de nuestra implementación era una pequeña cantidad de hardware, sin embargo, también sintetizamos un proceso optimizado para la potencia. Para 53 GE adicionales, logramos un consumo de energía de solo 3.3 μW, y los 128 actuales ocuparán un área estimada de 1886 GE. Además de su tamaño muy pequeño, PRESENT tiene un rendimiento bastante alto, lo que proporciona una buena energía por bit. La comparación con otras cifras se da en la tabla:



7. Conclusión


En este artículo, describimos el nuevo cifrado de bloque PRESENTE. Nuestro objetivo era un cifrado ultraligero, que proporciona un nivel de seguridad acorde con el tamaño de un bloque de 64 bits y una clave de 80 bits. Como resultado, PRESENT tiene requisitos de implementación similares a muchos cifrados de flujo compacto. Por lo tanto, creemos que es de interés tanto teórico como práctico. Como todas las nuevas propuestas, no alentamos el despliegue inmediato de PRESENT, sino que instamos a su análisis.

Confesión


El trabajo presentado en este documento fue parcialmente respaldado por la Comisión Europea a través del STREP UbiSec & Sens del Programa Marco 6 de Investigación y Desarrollo de la UE (www.ist-ubisecsens.org). Las opiniones y conclusiones contenidas en este documento son las de los autores y no deben interpretarse como una política oficial o respaldo expresado o respaldado por el proyecto UbiSec & Sens o la Comisión Europea.

Source: https://habr.com/ru/post/undefined/


All Articles