3. Diseño de contramedidas DPA a nivel de transistor
3.2. Métricas para evaluación de seguridad y rendimiento de celdas DPL
3.3.2. Desarrollo del bloque DPDN
Aunque la red DPUN sea óptima en cuanto a seguridad, hay que eliminar cualquier variación de consumo debidas a asimetrías de las ramas diferenciales de la red DPDN. Además, como es el caso de la DDCVSL, el contar con el diseño de una red DPDN totalmente simétrica es de vital importancia para alcanzar los niveles de seguridad requeridos por las aplicaciones criptográficas resistentes a ataques de canal lateral [1]. En el DPDN, una y sólo una de las dos ramas se activará conectando a tierra uno de los nodos q o q, por lo que una de las ramas genera el valor de la función de la celda, mientras que la otra implementa la función complementaria. Para que la descarga
de ambas ramas sean idénticas, la capacidad equivalente de la rama que descarga q tiene que ser la misma que la de q. Por ello, todas las capacidades que son internas de la propia puerta tienen que ser iguales en las dos ramas diferenciales. Por lo que se deben intentar cumplir los siguientes requisitos:
Tener la mayor simetría posible entre las dos ramas diferenciales.
Tener el mismo número de transistores en serie por rama, independientemente de las entradas que se procesen en cada evaluación.
Conectar los nodos internos de las ramas diferenciales a los nodos de salida q y q mediante transistores en ON.
Tener la salida de cada rama conectada al mismo número de transistores. Cumpliendo esto, conseguimos tener la misma equivalencia RC en cada una de las ramas, independientemente de las entradas que se estén procesando en el circuito. El caso ideal sería la solución alcanzada en el diseño del inversor. La red DPDN se muestra en la Figura 3.11-a, donde al solo tener un transistor por rama, atacados en su puerta por la entrada y su complementada, tenemos total simetría entre las dos ramas diferenciales, ademas de contar con el mismo número de transistores en serie y las dos ramas de salida están cargadas por el mismo número de transistores, no teniendo en este caso ningún nodo interno que descargar. Por tanto, para explicar mejor la complejidad del desarrollo de la red DPDN, vamos a escoger las funciones XOR/XNOR y AND/NAND de dos entradas mostradas en la Figura 3.11-b y Fi- gura 3.11-c respectivamente, que son celdas básicas que se usan habitualmente en el diseño de dispositivos criptográficos.
El bloque DPDN de la puerta XOR/XNOR en la Figura 3.11-b cumple con los requisitos que hemos mencionado anteriormente: las dos ramas son simétricas, tiene el mismo número de transistores por rama independientemente de las entradas que se procesen en cada ejecución (2), las dos salidas q y q están cargadas por 2 transistores y los nodos internos n1 y n2 siempre tienen un camino de conexión en conducción con q y q . En la Tabla 3.3 se muestra detallado el funcionamiento de la red DPDN XOR/XNOR. Se puede apreciar que:
3.3 Diseño de celdas DPL resistentes a DPA A A B B A A A B B q q a) b) n1 n2 q q T1 T2 T3 T4 T1 T2 T3 T4 T5 T6 c) A q T1 A q T2 n1
Figura 3.11.:Red DPDN inicial para los casos: a) inversor/buffer, b) XOR/XNOR,
y c) AND/NAND.
qXOR= A · B + A · B (3.5)
Tabla 3.3.: Funcionamiento de la red DPDN XOR/XNOR
A B T1 T2 T3 T4 T5 T6 n1 n2 q q
0 0 OFF ON OFF ON OFF ON q q 0 1
0 1 OFF ON ON ON OFF OFF q q 1 0
1 0 ON OFF OFF OFF ON ON q q 1 0
1 1 ON OFF ON OFF ON OFF q q 0 1
Pero en el caso de la puerta AND/NAND, mostrada en la Figura 3.11-c, apreciamos asimetría entre la dos ramas. Originalmente la función AND/NAND se construye con solo 4 transistores y se puede constatar el incumplimiento de todas las normas planteadas anteriormente. Las ramas no son simétricas, dependiendo del dato de entrada nos encontramos con que tenemos 1 ó 2 transistores en serie en ON por rama, el nodo interno n1 queda flotante en algunas combinaciones de datos de entrada, y por último la salida q está conectada a 2 transistores, mientras que la salida q está
conectada a 1. En la Tabla 3.4 se muestra detallado el funcionamiento de la red DPDN AND/NAND de la Figura 3.11-c. En este caso tenemos:
qAN D = A + B (3.6)
qAN D = A · B (3.7)
Tabla 3.4.: Funcionamiento de la red DPDN AND/NAND de la Figura 3.11-c
A B T1 T2 T3 T4 n1 q q
0 0 OFF OFF ON ON - 0 1
0 1 OFF ON OFF ON - 0 1
1 0 ON OFF ON OFF q 0 1
1 1 ON ON OFF OFF q 1 0
Para mejorar la estructura del DPDN en los casos de mayor asimetría, en [1] se propone una metodología que permite mejorar el diseño de la red DPDN para apli- caciones criptográficas. Primero hay que conseguir que todos los nodos internos, en este caso n1, esté conectado a una de las ramas q o q. Para ello se hace la modifica- ción mostrada en la Figura 3.12 aplicando la ley de absorción del álgebra de Boole a la rama qAN D dejando igual la rama qAN D:
qAN D = A + B = A · B + B (3.8)
A continuación, se añaden los transistores dummy necesarios para que las ramas diferenciales tengan el mismo número de transistores en serie por transición. Para ello, se añadirá una llave de paso en el camino de descarga que tenga un menor
3.3 Diseño de celdas DPL resistentes a DPA A A B B q q T1 T2 T3 T4 n1 A A B B n1 T1 T2 T3 T4 q q
Figura 3.12.:Red DPDN AND/NAND modificada para conectar el nodo n1 a q [1]
.
número de transistores en serie. En el caso de la puerta AND/NAND se aplicará el siguiente cambio a la rama qAN D, tal y como se muestra en la Figura 3.13:
qAN D = A + B = A · B + (A + A) · B (3.9) A A B B n1 T1 T2 T3 T4 q q A A B B n1 T1 T2 T3 T4 q q A T5 T6 n2
Figura 3.13.:Red DPDN AND/NAND modificada para tener el mismo número de
En la Tabla 3.5 se muestra detallado el funcionamiento de la red DPDN AND/NAND de la Figura 3.13.
Tabla 3.5.: Funcionamiento de la red DPDN AND/NAND de la Figura 3.13
A B T1 T2 T3 T4 T5 T6 n1 n2 q q
0 0 OFF OFF ON ON ON OFF q q 0 1
0 1 OFF ON OFF ON ON OFF q q 0 1
1 0 ON OFF ON OFF OFF ON q q 0 1
1 1 ON ON OFF OFF OFF ON q q 1 0
Estas son las mejores soluciones en cuanto a simetría del circuito planteadas hasta la fecha, aunque como se puede observar en el caso de la puerta AND/NAND, no se puede conseguir que el número de transistores en la rama qAN D sea igual que en la
rama qAN D.
Aunque se consiga la máxima simetría, se ha constatado que las 4 características exigibles al bloque DPDN no son suficientes para obtener el máximo nivel de segu- ridad. En los DPDN de la Figura 3.11-b y 3.13 los nudos internos de las dos ramas (n1 y n2) pueden guardar información de la evaluación anterior, aún teniendo un diseño totalmente simétrico de las dos ramas diferenciales. Esta información puede ser usada por un atacante para así revelar la clave secreta de nuestro dispositivo criptográfico. Es por ello por lo que cualquier tipo de información almacenada, o memoria del circuito, tiene que ser eliminada tras cada evaluación.