<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0012-7353</journal-id>
<journal-title><![CDATA[DYNA]]></journal-title>
<abbrev-journal-title><![CDATA[Dyna rev.fac.nac.minas]]></abbrev-journal-title>
<issn>0012-7353</issn>
<publisher>
<publisher-name><![CDATA[Universidad Nacional de Colombia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0012-73532010000200029</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[IMPLEMENTACIÓN ASÍNCRONA DE LAS FUNCIONES MIXCOLUMN E INVMIXCOLUMN DEL ALGORITMO DE RIJNDAEL]]></article-title>
<article-title xml:lang="en"><![CDATA[ASYNCHRONOUS IMPLEMENTATION OF RIJNDAEL ALGORITHM´S MIXCOLUMN AND INVMIXCOLUMN FUNCTIONS]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[NIETO LONDOÑO]]></surname>
<given-names><![CDATA[RUBÉN DARIO]]></given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[BERNAL NOREÑA]]></surname>
<given-names><![CDATA[ÁLVARO]]></given-names>
</name>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad del Valle Facultad de Ingenierías Escuela de Ingeniería Eléctrica y Electrónica]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad del Valle Facultad de Ingenierías Escuela de Ingeniería Eléctrica y Electrónica]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>06</month>
<year>2010</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>06</month>
<year>2010</year>
</pub-date>
<volume>77</volume>
<numero>162</numero>
<fpage>281</fpage>
<lpage>291</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0012-73532010000200029&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0012-73532010000200029&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0012-73532010000200029&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Este artículo presenta resultados de la implementación asíncrona en FPGA (Field Programmable Gate Array) de las funciones de transformación de columna MixColumn e InvmixColumn, del algoritmo de Rijndael. Se usa la metodología para implementación de circuitos asíncronos de la herramienta conocida como Balsa, la cual permite descripción, síntesis y simulación funcional asíncrona de circuitos digitales. Se presentan resultados comparativos de área y desempeño de dos arquitecturas que realizan procesos de encriptación y desencriptación, la primera hace uso de las funciones sin optimizar y la segunda realiza ambos procesos usando recursos de hardware compartidos por ambas funciones. En la implementación asíncrona de todas las transformaciones se usan los protocolos de codificación dual-rail y 1-de-4.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[AES]]></kwd>
<kwd lng="es"><![CDATA[Balsa]]></kwd>
<kwd lng="es"><![CDATA[circuitos asíncronos]]></kwd>
<kwd lng="es"><![CDATA[criptografía]]></kwd>
<kwd lng="es"><![CDATA[FPGAs]]></kwd>
<kwd lng="es"><![CDATA[protocolo de sincronismo]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif"><b>IMPLEMENTACI&Oacute;N   AS&Iacute;NCRONA DE LAS FUNCIONES MIXCOLUMN E INVMIXCOLUMN DEL ALGORITMO DE RIJNDAEL</b></font></p>     <p align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><i><font size="3"><b>ASYNCHRONOUS   IMPLEMENTATION OF RIJNDAEL ALGORITHM´S MIXCOLUMN AND INVMIXCOLUMN FUNCTIONS</b> </font></i></font></p>     <p align="center">&nbsp;</p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RUB&Eacute;N DARIO NIETO LONDO&Ntilde;O </b>    <br>   <i>Escuela de Ingenier&iacute;a El&eacute;ctrica</i> <i>y</i> <i>Electr&oacute;nica,   Facultad de Ingenier&iacute;as, Universidad del Valle, <a href="mailto:rnieto@univalle.edu.co">rnieto@univalle.edu.co</a></i> </font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&Aacute;LVARO BERNAL NORE&Ntilde;A </b>    <br>   <i>Escuela de Ingenier&iacute;a El&eacute;ctrica y   Electr&oacute;nica, Facultad de Ingenier&iacute;as, Universidad del Valle <a href="mailto:alvaro@univalle.edu.co">alvaro@univalle.edu.co</a></i> </font></p>     <p align="center">&nbsp;</p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Recibido para revisar Diciembre 9 de 2008, aceptado   Julio 17 de 2009, versi&oacute;n final Agosto 26 de 2009</b></font></p>     <p>&nbsp;</p> <hr>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN:</b> Este art&iacute;culo   presenta resultados de la implementaci&oacute;n as&iacute;ncrona en FPGA (<i>Field Programmable Gate Array</i>) de las funciones de transformaci&oacute;n de columna <i>MixColumn</i> e <i>InvmixColumn</i>, del algoritmo de Rijndael. Se usa la metodolog&iacute;a para   implementaci&oacute;n de circuitos as&iacute;ncronos de la herramienta conocida como Balsa,   la cual permite descripci&oacute;n, s&iacute;ntesis y simulaci&oacute;n funcional as&iacute;ncrona de   circuitos digitales. Se presentan resultados comparativos de &aacute;rea y desempe&ntilde;o   de dos arquitecturas que realizan procesos de encriptaci&oacute;n y desencriptaci&oacute;n,   la primera hace uso de las funciones sin optimizar y la segunda realiza ambos   procesos usando recursos de hardware compartidos por ambas funciones. En la implementaci&oacute;n as&iacute;ncrona de todas las transformaciones se usan   los protocolos de codificaci&oacute;n <i>dual-rail</i> y <i>1-de-4</i>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>PALABRAS CLAVE</b>: AES, Balsa, circuitos as&iacute;ncronos,   criptograf&iacute;a, FPGAs, protocolo de sincronismo.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>ABSTRACT</b>: This article presents the results of an asynchronous   implementation of Rijndael Algorithm <i>MixColumn</i> and <i>InvMixColumn</i> transformation functions in <i>FPGA</i> (<i>Field Programmable Gate Array</i>). The   methodology used for implementing asynchronous circuits is provided by the tool   known as Balsa, which allows description, synthesis, and asynchronous   functional simulation of digital circuits. Results are presented by comparing   area and performance of two different architectures, which execute both   encryption and decryption processes. The first architecture deploys the   functions without optimization, whereas the second one executes encryption and   decryption processes utilizing shared hardware resources for the two functions.   The codification protocols, <i>dual-rail and 1-of-4</i>, are implemented in all asynchronous   transformations.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>KEYWORDS</b>:   AES, Balsa, asynchronous circuits, cryptography, FPGAs, handshake.</font></p> <hr>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>1. INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En enero de 1997, el Instituto Nacional   de Est&aacute;ndares y Tecnolog&iacute;a de Estados Unidos, <i>NIST</i> (<i>National Institute of Standards and Technology</i>)   &#91;1&#93;, realiz&oacute; una convocatoria con el fin de establecer un nuevo algoritmo para el </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">est&aacute;ndar AES (<i>Advanced Encryption Standard</i>) </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">del <i>FIPS </i> (<i>Federal Information Processing </i></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>Standard</i>) &#91;2&#93;, y   reemplazar e l antiguo est&aacute;ndar </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">de encriptaci&oacute;n <i>DES</i> (<i>Data Encrytion Standard</i>). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En octubre del 2000 el NIST, despu&eacute;s de   dos rondas de evaluaci&oacute;n a 15 algoritmos candidatos, seleccion&oacute; el algoritmo de Rijndael como el nuevo est&aacute;ndar AES. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Son muchas las arquitecturas de circuito propuestas para el   algoritmo AES; se ha evaluado su desempe&ntilde;o usando librer&iacute;as de Circuitos   Integrados. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De Aplicaci&oacute;n Espec&iacute;fica (<i>ASICs: Application Specific Integrated Circuits</i>) y <i>FPGAs</i> (<i>Field Programmable Gate Arrays</i>). La mayor&iacute;a de   las propuestas se han focalizado en obtener ahorro de &aacute;rea y en obtener mayor   velocidad, algunas est&aacute;n dirigidas a reducir el consumo de potencia. Desde el punto de vista de seguridad, con el   desarrollo de los ataques del lado de canal &#91;3&#93;, han sido pocas las propuestas   de arquitecturas orientadas a mejorar la resistencia a tales ataques y a la vez   disminuir el consumo de potencia. La metodolog&iacute;a de dise&ntilde;o as&iacute;ncrono constituye   una alternativa importante para mejorar la seguridad del algoritmo contra los   llamados ataques de An&aacute;lisis de Potencia Diferencial (<i>DPA: Differential Power Analysis</i>)   &#91;4&#93;.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Muchas de   las implementaciones del algoritmo de Rijndael realizan de manera separada las transformaciones <i>MixColumn</i> e <i>InvMixColumn</i> y s&oacute;lo en algunas   publicaciones, &#91;5&#93;-&#91;9&#93;, se presentan resultados sobre implementaciones en las   que estas funciones comparten recursos l&oacute;gicos a diferentes niveles. Este   trabajo tiene como objetivo presentar los resultados de la implementaci&oacute;n   as&iacute;ncrona de las funciones <i>MixColumn</i> e <i>InvMixColumn</i> del   est&aacute;ndar AES. Las implementaciones de las funciones se realizaron de manera   independiente y tambi&eacute;n compartiendo recursos, para este caso se implement&oacute; la   funci&oacute;n <i>EDMixColumn</i>.   En los dise&ntilde;os se utiliz&oacute; el estilo de dise&ntilde;o as&iacute;ncrono usando para ello la   herramienta de s&iacute;ntesis as&iacute;ncrona conocida como Balsa.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La secci&oacute;n dos hace una introducci&oacute;n general   del algoritmo de Rijndael y presenta la herramienta <i>Balsa</i>. En la secci&oacute;n tres se realiza un   an&aacute;lisis detallado de la funci&oacute;n de transformaci&oacute;n de columnas para los   procesos de encriptaci&oacute;n/desencriptaci&oacute;n del est&aacute;ndar AES; tambi&eacute;n se presentan   distintas arquitecturas s&iacute;ncronas simplificadas para la implementaci&oacute;n de la   funci&oacute;n <i>EDMixColumn,</i> en particular se hace &eacute;nfasis en la   arquitectura propuesta en &#91;6&#93; para su implementaci&oacute;n as&iacute;ncrona. Tambi&eacute;n se   presentan los resultados de la s&iacute;ntesis as&iacute;ncrona de los circuitos en el   sistema Balsa y su implementaci&oacute;n en   la FPGA Virtex XCV2P30-6ff896 de Xilinx. Finalmente, en la secci&oacute;n cuatro se consignan las   conclusiones del trabajo.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>2. ALGORITMO DE RIJNDAEL Y HERRAMIENTA DE   DISE&Ntilde;O AS&Iacute;NCRONO</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El algoritmo de   encriptaci&oacute;n de Rijndael est&aacute; compuesto por cuatro   funciones de transformaci&oacute;n llamadas <i>ByteSub</i> (substituci&oacute;n de byte)<i>, ShiftRow </i>(desplazamiento circular de   fila)<i>, MixColumn </i>(transformaci&oacute;n de columna)<i> y AddRoundKey </i>(adici&oacute;n de clave de ronda). El proceso de   desencriptaci&oacute;n consiste en sustituir las transformaciones utilizadas en la   encriptaci&oacute;n por sus inversas e invertir el orden de aplicaci&oacute;n de dichas   transformaciones o funciones matem&aacute;ticas, en este caso las funciones inversas   se denominan <i>InvByteSub, InvShiftRow, InvMixColumn</i>. El diagrama de bloques del algoritmo de Rijndael, mostrado en la <a href="#fig01">figura 1</a>, combina las propuestas   realizadas en &#91;10&#93;,&#91;11&#93; para su implementaci&oacute;n en   hardware. Una descripci&oacute;n detallada de estas transformaciones y del algoritmo   en general es presentada por los autores del mismo en &#91;12&#93;.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig01"></a><img src="/img/revistas/dyna/v77n162/a29fig01.gif">    <br>   Figura 1. </b>Diagrama de   bloques de AES    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 1</b>. AES Block diagram </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la implementaci&oacute;n   as&iacute;ncrona de las funciones de transformaci&oacute;n de columna del algoritmo de Rijndael se ha utilizado la herramienta de dise&ntilde;o llamada <i>Balsa</i>. &Eacute;sta cubre   varias etapas del ciclo de dise&ntilde;o as&iacute;ncrono y provee medios as&iacute;ncronos de   descripci&oacute;n y modelamiento junto con un medio de   simulaci&oacute;n funcional &#91;13&#93;,&#91;14&#93;. Sin embargo, Balsa es   primordialmente un sistema de s&iacute;ntesis, el cual requiere acceder a herramientas   CAD (<i>Computer Ayded Design</i>) comerciales para producir una implementaci&oacute;n   real en silicio o en arreglos de compuertas. Para este prop&oacute;sito, Balsa s&oacute;lo   produce un archivo de tipo lista de nodos (<i>netlist)</i> en formato apropiado para un sistema CAD que soporte la   tecnolog&iacute;a.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Un circuito descrito en Balsa se puede compilar en una red de   comunicaci&oacute;n de sincronismo (<i>handshake</i>) compuesta de un conjunto de componentes   espec&iacute;ficos de la herramienta. Los componentes se conectan a trav&eacute;s de canales   sobre los cuales toma lugar la comunicaci&oacute;n; los canales pueden tener asociados   rutas de datos o pueden ser s&oacute;lo de control.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#fig02">figura 2</a> ilustra un ejemplo de un diagrama de circuito conformado   por componentes de <i>handshake</i>.   Aqu&iacute; se muestra un   componente <i>fetch</i> (u operador de transferencia) denotado por '<b>®</b>' y un componente <i>Case</i> denotado por '<b>@</b>'   conectados por medio de un canal orientado a datos. La acci&oacute;n del circuito es   activada por un evento de solicitud (<i>request</i>) al componente <i>fetch</i> el cual a su vez establece   un <i>request</i> a su entorno (al lado izquierdo del diagrama). El entorno provee el dato   solicitado e indica su validez con una se&ntilde;al de reconocimiento (<i>acknowledge</i>). El   componente <i>fetch</i> presenta el dato y una se&ntilde;al de <i>request</i> al componente <i>Case</i> usando un puerto activo (mostrado como un c&iacute;rculo negro), estos son recibidos   en el puerto pasivo de <i>Case</i> (mostrado   como c&iacute;rculo en blanco). Dependiendo del   valor del dato, el componente <i>Case</i> establece un <i>handshake</i> en su entorno sobre el puerto inferior y superior del lado derecho. Finalmente, la se&ntilde;al de <i>acknowledge</i> es recibida por el   componente <i>Case</i>, se retorna otro <i>acknowledge</i> a lo   largo del canal original terminando as&iacute; el <i>handshake</i>. Los protocolos de <i>handshake</i> utilizados en la comunicaci&oacute;n entre m&oacute;dulos hacen que los circuitos as&iacute;ncronos tengan la propiedad de ser insensibles a los retardos. Gracias a ello, han aparecido   metodolog&iacute;as de dise&ntilde;o as&iacute;ncrono como la que utiliza circuitos <i>Casi Insensibles a los Retardos, QDI </i>(<i>Quasy Delay Insensitive</i>). Esta metodolog&iacute;a permite disminuir el consumo de potencia din&aacute;mica y   hace que la implementaci&oacute;n sea resistente a los ataques del lado de canal como   por ejemplo el an&aacute;lisis de potencia diferencial <i>DPA</i> (<i>Differential Power Analisys</i>),   tal como se reporta en &#91;4&#93;,&#91;15&#93;. Los circuitos QDI   controlan en forma precisa el n&uacute;mero de transiciones el&eacute;ctricas involucradas en   una operaci&oacute;n particular logrando, de esta manera, mejorar la seguridad del   hardware contra los ataques <i>DPA</i>.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig02"></a><img src="/img/revistas/dyna/v77n162/a29fig02.gif">    <br>   Figura 2.</b> Conexi&oacute;n de componentes de <i>handshake, </i>Ref. &#91;13&#93;,&#91;14&#93;    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 2</b>. Connected <i>handshake</i> components, Ref. &#91;13&#93;,&#91;14&#93;</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>3. TRANSFORMACIONES DE COLUMNA</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.1 Transformaci&oacute;n <i>MixColumn    <br>   </i></b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Esta transformaci&oacute;n opera columna por columna   sobre el bloque de datos de entrada (llamado matriz de estado), tratando cada   columna como un polinomio de cuatro t&eacute;rminos. Las columnas son consideradas como polinomios sobre <i>GF(2<sup>8</sup>)</i> (<i>Galois Fields</i>) y multiplicados m&oacute;dulo <i>x<sup>4</sup> +1 </i> con un polinomio fijo <i>c(x),</i> dado por:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq01.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La anterior ecuaci&oacute;n se puede escribir como la   multiplicaci&oacute;n de matrices siguiente:</font></p>     ]]></body>
<body><![CDATA[<p><img src="/img/revistas/dyna/v77n162/a29eq0203.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los bytes de cada columna se pueden reemplazar   por el resultado obtenido de la multiplicaci&oacute;n de acuerdo con las siguientes   expresiones:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq04.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las ecuaciones (4) muestran multiplicaciones   de polinomios por potencias de <i>x</i> en <i>GF(2<sup>8</sup>)</i>. Estas operaciones   corresponden a multiplicaciones m&oacute;dulo un polinomio binario irreducible de   grado 8 llamado <i>m(x)</i> &#91;12&#93; dado por:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq05.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para facilitar la implementaci&oacute;n de la   transformaci&oacute;n <i>MixColumn</i> en hardware, los autores del algoritmo definieron la funci&oacute;n llamada <i>xtime</i>, la cual   simplifica la operaci&oacute;n de un polinomio por potencias de <i>x</i>. Esta funci&oacute;n consiste en   aplicar un desplazamiento a la izquierda al valor que representa el polinomio   adem&aacute;s de una operaci&oacute;n XOR con 1B<sub>16</sub> (00011011<sub>2</sub>) cuando   el resultado de la multiplicaci&oacute;n deba ser reducido m&oacute;dulo <i>m(x).</i> Sea el polinomio definido por:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq06.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Al realizar la operaci&oacute;n modular de (6)   con <i>m(x)</i> se obtiene una expresi&oacute;n que   permite implementar el circuito para <i>xtime</i> a nivel de bits de la siguiente manera:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq070809.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De (8) y (9) se deduce que:</font></p>     ]]></body>
<body><![CDATA[<p><img src="/img/revistas/dyna/v77n162/a29eq10.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#fig03">figura 3</a> representa el circuito   combinatorio de la funci&oacute;n <i>xtime</i> a nivel de bits implementado de acuerdo con los   t&eacute;rminos deducidos.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig03"></a><img src="/img/revistas/dyna/v77n162/a29fig03.gif">    <br>   Figura 3.</b> Circuito de funci&oacute;n <i>xtime, </i>Ref. &#91;8&#93;,&#91;16&#93;    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 3</b>. <i>Xtime</i> function circuit<i>, </i>Ref. &#91;8&#93;,&#91;16&#93;</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se pueden   realizar multiplicaciones por potencias mayores de <i>x</i> mediante la aplicaci&oacute;n repetida de <i>xtime</i>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#fig04">figura 4</a> muestra el c&oacute;digo para la especificaci&oacute;n as&iacute;ncrona del circuito que implementa   la funci&oacute;n <i>xtime</i> en Balsa. Al realizar la s&iacute;ntesis del c&oacute;digo se genera el circuito de <i>handshake</i> mostrado en la <a href="#fig05">figura 5</a>. Los diagramas de <i>handshake</i> generados son muy   densos en detalles y de dif&iacute;cil comprensi&oacute;n, sin embargo se han incluido en   este art&iacute;culo para ofrecer al lector una idea general de su funci&oacute;n.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig04"></a><img src="/img/revistas/dyna/v77n162/a29fig04.gif">    <br>   Figura   4.</b> C&oacute;digo de funci&oacute;n <i>xtime    <br>   </i></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 4.</b> <i>Xtime</i> function code</font></p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig05" id="fig05"></a><img src="/img/revistas/dyna/v77n162/a29fig05.gif">    <br>   Figura 5</b>. <i>Handshake</i> de funci&oacute;n <i>xtime    <br>   </i></font><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Figure 5.</font></b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <i>Xtime</i> function <i>handshake</i> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las ecuaciones (4) muestran multiplicaciones   de polinomios por potencias de <i>x</i> (representadas por los coeficientes 02<sub>16</sub> y 03<sub>16</sub>). Como en <i>GF(2<sup>8</sup>)</i> la multiplicaci&oacute;n es   distributiva respecto de la adici&oacute;n, se puede reescribir la multiplicaci&oacute;n de   dos elementos como una combinaci&oacute;n lineal de productos, por ejemplo:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq101.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La anterior distribuci&oacute;n permite implementar   f&aacute;cilmente el circuito que realiza la transformaci&oacute;n <i>MixColumn</i> a partir de (4) tal   como se aprecia en la <a href="#fig06">figura 6</a>. Las <a href="#fig07">figuras 7</a> y 8 muestran, respectivamente, el   c&oacute;digo Balsa y el diagrama de <i>handshake</i> correspondiente.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig06"></a><img src="/img/revistas/dyna/v77n162/a29fig06.gif">    <br>   Figura 6</b>. Circuito   para la transformaci&oacute;n <i>MixColumn</i>,   Ref. &#91;10&#93;.    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 6</b>. Circuit for <i>MixColumn</i> transformation, Ref. &#91;10&#93;.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig07"></a><img src="/img/revistas/dyna/v77n162/a29fig07.gif">    ]]></body>
<body><![CDATA[<br>   Figura 7.</b> C&oacute;digo   de <i>MixColumn    <br>   </i></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 7.</b> <i>MixColumn</i> Code </font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig08"></a><img src="/img/revistas/dyna/v77n162/a29fig08.gif">    <br>   Figure 8</b>. <i>Handshake</i> de <i>MixColumn    <br>   </i></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 8</b>. <i>MixColumn</i> <i>handshake</i></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.2 Transformaci&oacute;n <i>InvMixColumn    <br>   </i></b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>InvMixColumn</i> es la inversa de la   transformaci&oacute;n <i>MixColumn</i>,   y opera sobre la matriz de estado columna por columna, tratando cada columna   como un polinomio de cuatro t&eacute;rminos. Las columnas son consideradas como   polinomios sobre <i>GF(2<sup>8</sup>)</i> multiplicados m&oacute;dulo <i>x+1 </i> con un polinomio fijo <i>c<sup>-1</sup>(x),</i> en adelante llamado <i>d(x)</i>, dado por:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq11.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La ecuaci&oacute;n (11) se puede escribir como una   multiplicaci&oacute;n de matrices de la siguiente forma:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq1213.gif"></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Al resolver la multiplicaci&oacute;n anterior se   obtienen las siguientes expresiones para reemplazar cada byte de la columna <i>c</i> &#91;13&#93;:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq14.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nuevamente, basados en el hecho que en <i>GF(2<sup>8</sup>)</i> la multiplicaci&oacute;n es   distributiva respecto de la adici&oacute;n, el coeficiente <i>0b<sub>16</sub></i> multiplicado por <i>x</i>, por ejemplo, se puede descomponer as&iacute;:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq141.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Teniendo en cuenta el ejemplo anterior, los   coeficientes <i>09<sub>16</sub>,0b<sub>16</sub>,0d<sub>16</sub>,0e<sub>16</sub></i> en (14) se pueden   expresar como sumas de elementos en potencias de dos, lo cual facilita la   implementaci&oacute;n del circuito que genera tales coeficientes a partir de la   apropiada interconexi&oacute;n de circuitos <i>xtime</i>. El circuito   mostrado en la <a href="#fig09">figura 9</a> es un multiplicador que genera los coeficientes requeridos   y constituye la base de la implementaci&oacute;n del circuito para <i>InvMixColumn</i>.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig09"></a><img src="/img/revistas/dyna/v77n162/a29fig09.gif">    <br>   Figura 9.</b> Multiplicador para <i>InvMixColumn</i>. </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ref. &#91;10&#93;    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 9.</b> Multiplier for <i>InvMixColumn</i>. Ref. &#91;10&#93;</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La especificaci&oacute;n en Balsa del multiplicador y   el diagrama de <i>handshake</i> resultante se observan en las <a href="#fig10">figuras 10</a> y <a href="#fig11">11</a> respectivamente.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig10"></a><img src="/img/revistas/dyna/v77n162/a29fig10.gif">    ]]></body>
<body><![CDATA[<br>   Figura 10</b>. C&oacute;digo   del multiplicador    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 10</b>. Multiplier code </font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig11"></a><img src="/img/revistas/dyna/v77n162/a29fig11.gif">    <br>   Figura 11</b>. <i>Handshake</i> de   multiplicador    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 11</b>. Multiplier <i>handshake</i> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como la transformaci&oacute;n <i>InvMixColumn</i> opera sobre una   columna a la vez, se requieren cuatro circuitos multiplicadores para realizar   la transformaci&oacute;n en paralelo de los cuatro bytes de la columna. Otra opci&oacute;n de   dise&ntilde;o para InvMixColumn consiste en implementarla de   manera secuencial pero, como se ver&aacute; en la secci&oacute;n 3.3, a pesar que tal opci&oacute;n   permite el ahorro de puertas la velocidad ser&aacute; menor que la implementaci&oacute;n en   paralelo.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El c&oacute;digo en Balsa para <i>InvMixColumn</i>, mostrado en la <a href="#fig12">figura   12</a>, hace uso de cuatro multiplicadores (<i>mult_GF</i>), cuyas salidas se conectan como entradas a las   diferentes puertas XOR de salida, tal como lo expresan las ecuaciones en (14).   La <a href="#fig13">figura 13</a> muestra el diagrama de <i>handshake</i> correspondiente. En este diagrama se observa al   operador paralelo '||' conectando los cuatro   procesos asociados con los multiplicadores y sus conexiones de <i>handshake</i> con las   variables internas. Las variables a su vez indican las conexiones hacia las   puertas XOR y las salidas respectivas. </font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig12"></a><img src="/img/revistas/dyna/v77n162/a29fig12.gif">    <br>   Figura 12</b>. C&oacute;digo de <i>InvMixColumn    <br>   </i></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 12</b>. <i>InvMixColumn</i> Code</font></p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig13"></a><img src="/img/revistas/dyna/v77n162/a29fig13.gif">    <br>   Figura 13.</b> <i>Handshake</i> de <i>InvMixColumn    <br>   </i></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 13</b>. <i>InvMixColumn handshake</i></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El circuito para realizar la transformaci&oacute;n <i>InvMixColumn</i> (mostrado   en la <a href="#fig14">figura 14</a>) se deduce de la ecuaci&oacute;n (14) teniendo como base las salidas   del multiplicador. </font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig14"></a><img src="/img/revistas/dyna/v77n162/a29fig14.gif">    <br>   Figura 14</b>. Circuito para transformaci&oacute;n <i>InvMixColumn</i>. Ref. &#91;10&#93;    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 14</b>. Circuit for <i>InvMixColumn</i> transformation. Ref. &#91;10&#93;</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.3 Transformaci&oacute;n   de columna para encriptaci&oacute;n/desencriptaci&oacute;n    <br>   </b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De las ecuaciones (4) y (14) se puede ver que   los coeficientes de <i>d(x)</i> son m&aacute;s   complejos que los de <i>c(x),</i> por lo que   la implementaci&oacute;n hardware de la transformaci&oacute;n <i>InvMixColumn</i> es m&aacute;s compleja, m&aacute;s   lenta y ocupa mayor &aacute;rea que la transformaci&oacute;n <i>MixColumn</i>. Al Implementar un   circuito para encriptar/desencriptar,   como se ilustra en la <a href="#fig15">figura 15</a>, el costo en hardware es alto si se utilizan   ambas transformaciones por separado.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig15"></a><img src="/img/revistas/dyna/v77n162/a29fig15.gif">    ]]></body>
<body><![CDATA[<br>   Figura 15.</b> Circuito para transformaci&oacute;n de columna sin optimizaci&oacute;n.    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 15.</b> Circuit for column transformation without   optimization</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para reducir el costo del hardware, la   transformaci&oacute;n <i>InvMixColumn</i> se puede descomponer en forma serial para que comparta recursos l&oacute;gicos con <i>MixColumn</i> a nivel de palabras de 32 bits. Esta idea se ha planteado en varias   publicaciones &#91;6&#93;,&#91;8&#93;,&#91;9&#93;. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En &#91;6&#93; se analiza, adem&aacute;s, una descomposici&oacute;n   paralela de <i>InvMixColumn</i>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>3.3.1 Descomposici&oacute;n   paralela de InvMixColumn, EDMixColumn_paralelo    <br>   </i></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Esta idea, propuesta por &#91;17&#93;,   se basa en el hecho que d(x) se puede expresar usando c(x) de la siguiente manera: </font></p> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">     <p><img src="/img/revistas/dyna/v77n162/a29eq15.gif"></p>     <p>Donde <i>e(x)</i> es una extensi&oacute;n polinomial definida como:</p>     <p><img src="/img/revistas/dyna/v77n162/a29eq16.gif"></p> </font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>3.3.2. Descomposici&oacute;n   serial de InvMixColumn, EDMixColumn_serie</i>    ]]></body>
<body><![CDATA[<br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Propuesta en &#91;6&#93;,   esta idea se sustenta en el hecho que el inverso d(x) est&aacute; dado por la f&oacute;rmula: </font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq17.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Esta ecuaci&oacute;n sugiere que la operaci&oacute;n <i>InvMixColumn</i> se   puede realizar repitiendo tres veces <i>MixColumn</i>. La   ecuaci&oacute;n (17) se puede expresar como:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq1819.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De esta ecuaci&oacute;n se deduce que la   transformaci&oacute;n <i>InvMixColumn</i> puede implementarse usando la funci&oacute;n <i>MixColumn</i> y el polinomio <i>f(x).</i> Al comparar <i>f(x)</i> con <i>c(x), </i>dada en (1), se puede ver que <i>f(x)</i> es m&aacute;s simple por cuanto dos de sus   coeficientes son cero. La ecuaci&oacute;n (19) tambi&eacute;n se obtuvo en &#91;18&#93; de la   siguiente forma:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ya que </font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq20.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si se multiplica a ambos lados de (20) por <i>d(x)</i> se obtiene:</font></p>     <p><img src="/img/revistas/dyna/v77n162/a29eq2122.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La ecuaci&oacute;n (22) se puede implementar en   hardware como se muestra en la <a href="#fig16">figura 16</a>.</font></p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig16"></a><img src="/img/revistas/dyna/v77n162/a29fig16.gif">    <br>   Figura 16.</b> Implementaci&oacute;n de<i> MixColumn </i>e<i> InvMixColumn</i>. Ref &#91;18&#93;    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 16.</b> <i>MixColumn</i> and<i> InvMixColumn</i> Implementation. Ref &#91;18&#93;</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los circuitos para descomposici&oacute;n serial y   descomposici&oacute;n paralela de <i>InvMixColumn</i> &#91;6&#93;<i>,</i> se aprecian en las <a href="#fig17">figuras 17</a> y <a href="#fig18">18</a> respectivamente, en ambos casos se observa   la implementaci&oacute;n de la funci&oacute;n <i>MixColumn</i> encerrada   en l&iacute;neas punteadas.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig17"></a><img src="/img/revistas/dyna/v77n162/a29fig17.gif">    <br>   Figura 17</b>. <i>EDMixColumn</i> basada en descomposici&oacute;n serial de <i>InvMixColumn, </i>Ref.   &#91;6&#93;.    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 17</b>. <i>EDMixColumn</i> based on <i>InvMixColumn</i> serial decomposition. Ref. &#91;6&#93;.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig18"></a><img src="/img/revistas/dyna/v77n162/a29fig18.gif">    <br>   Figura 18</b>. <i>EDMixColumn</i> basada en descomposici&oacute;n paralela de <i>InvMixColumn, </i>Ref.   &#91;6&#93;.    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure 18.</b> <i>EDMixColumn</i> based on <i>InvMixColumn</i> parallel decomposition. Ref. &#91;6&#93;.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.4 Transformaci&oacute;n<i> EDMixColumn </i>as&iacute;ncrona    <br>   </b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#fig19">figura 19</a> ilustra la arquitectura general   de la transformaci&oacute;n <i>EDMixColumn</i> as&iacute;ncrona utilizando protocolos de codificaci&oacute;n <i>dual-rail</i> &oacute; <i>1-de-4</i>. Esta   arquitectura se basa en las transformaciones serial y paralela descritas   anteriormente.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig19"></a><img src="/img/revistas/dyna/v77n162/a29fig19.gif">    <br>   Figura   19</b>. Arquitectura de <i>EDMixColumn    <br>   </i></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Figure   19</b>. <i>EDMixColumn</i> architecture</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los diagramas de <i>handshake</i> generados en Balsa para <i>EDMixColumn_serie</i> y <i>EDMixColumn_paralelo,</i> son m&aacute;s densos en detalles que los diagramas mostrados en secciones   anteriores, por lo cual se omiten en este trabajo. Sin embargo, para el lector   interesado en realizar un an&aacute;lisis m&aacute;s detallado, estos diagramas junto con   otros aspectos importantes pueden ser consultados en &#91;13&#93;.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.5 Resultados    <br>   </b>La <a href="#tab01">tabla 1</a> muestra los resultados obtenidos   de las implementaciones as&iacute;ncronas tanto para las arquitecturas tradicionales <i>MixColumn</i> e <i>InvMixColumn</i> de 128 bits, como para las implementaciones basadas en las arquitecturas serial   y paralela desarrolladas en &#91;6&#93;. </font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="tab01"></a>Tabla 1:</b> Costo de &aacute;rea y retardo de simulaci&oacute;n funcional para <i>MixColumn</i>, <i>InvMixColumn</i> y<i> EDMixColumn</i> as&iacute;ncronas.    <br>   <b>Table   1</b>: Area cost and   functional simulation delay for asynchronous <i>MixColumn</i>, <i>InvMixColumn</i> and<i> EDMixColumn</i>.</font>    ]]></body>
<body><![CDATA[<br>   <img src="/img/revistas/dyna/v77n162/a29tab01.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La utilidad <i>breeze-cost</i> de Balsa, se ha usado   para estimar el &aacute;rea ocupada por cada circuito de <i>handshake</i> en los dise&ntilde;os   realizados. Las unidades retornadas por <i>breeze-cost</i> son micr&oacute;metros (µm) lineales de celdas   est&aacute;ndar sobre un viejo proceso 2LM CMOS de 1µm; la precisi&oacute;n de los   valores es relativa al tama&ntilde;o de las celdas usadas por <i>breeze-cost</i>, no a la precisi&oacute;n de   estimaci&oacute;n de <i>breeze-cost</i>.   Las celdas primarias de esta librer&iacute;a b&aacute;sica presentan una grilla (<i>pitch</i>) de 45µm, adicionando un 50%   de espacio de ruteo extra (el cual es t&iacute;picamente requerido en los procesos   2LM) &#91;19&#93;. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La implementaci&oacute;n de la transformaci&oacute;n <i>EDMixColumn</i> se hizo integrando las funciones <i>MixColumn</i> e <i>InvMixColumn</i> mediante un multiplexor y sin compartir recursos, por lo cual el n&uacute;mero de puertas usadas, respecto de las   transformaciones <i>EDMixColumn</i> serie y paralela, es mayor. Sin   embargo, como se observa en la <a href="#tab01">tabla 1</a>, tambi&eacute;n presenta menor retardo en los   procesos de encriptaci&oacute;n/desencriptaci&oacute;n. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Aunque las funciones <i>EDMixColumn_serie</i> y <i>EDMixColumn_paralelo</i> requieren de menos compuertas que la funci&oacute;n <i>EDMixColumn</i>, &eacute;stas presentan mayores   retardos debido a que las se&ntilde;ales deben recorrer un n&uacute;mero mayor de niveles de   puertas. Adem&aacute;s, debido a que la comunicaci&oacute;n se realiza por medio de   protocolos de <i>handshake</i>,   la diferencia de retardos se hace m&aacute;s significativa. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Balsa soporta las tecnolog&iacute;as AMS de 350nm y SGS-ST de 180nm, las cuales generan formatos del tipo <i>'netlist'</i> para   producir implementaciones en Silicio. Balsa tambi&eacute;n soporta la tecnolog&iacute;a   apropiada para producir formatos utilizados en FPGAs de Xilinx. Los resultados de la implementaci&oacute;n en FPGA usando los protocolos   as&iacute;ncronos de codificaci&oacute;n <i>dual-rail</i> de dos fases y <i>1-de-4</i>, se observan en la <a href="#tab02">tabla 2</a>.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="tab02" id="tab02"></a>Tabla   2</b>:   Resultados de implementaci&oacute;n en Virtex XCV2P30-6ff896 de Xilinx    <br>   <b>Table 2:</b> Implementation   results in Xilinx`s Virtex XCV2P30-6ff896</font>    <br>   <img src="/img/revistas/dyna/v77n162/a29tab02.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los   retardos en ambos tipos de codificaci&oacute;n se distribuyen entre las rutas de   interconexi&oacute;n y las puertas l&oacute;gicas que conforman cada circuito. Se puede observar que alrededor del 58% de   los retardos en los circuitos son introducidos por las rutas de interconexi&oacute;n   de   la FPGA, lo   cual refleja un enorme esfuerzo por parte de las herramientas de ruteo al   tratar de equilibrar los tiempos de retardo sobre rutas de igual longitud y   garantizar as&iacute; la ausencia de riegos est&aacute;ticos. Lo anterior es una evidencia de   que los recursos de interconexi&oacute;n de las FPGAs comerciales est&aacute;n concebidos para aplicaciones que usan el tradicional estilo   de dise&ntilde;o s&iacute;ncrono y no el estilo as&iacute;ncrono.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la   literatura no hemos encontrado reportes de resultados de implementaciones   as&iacute;ncronas del est&aacute;ndar AES sobre <i>FPGAs</i>. Hasta el momento s&oacute;lo se han reportado dos   implementaciones as&iacute;ncronas del algoritmo basadas en <i>ASICs</i> las cuales solo reportan resultados para el proceso de   encriptaci&oacute;n y cuyos retardos, como es de esperarse, son mucho menores, que los   obtenidos en este trabajo:</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">en &#91;4&#93; se   reporta una arquitectura QDI balanceada con codificaci&oacute;n <i>1-de-N</i> y un retardo m&aacute;ximo de 850ns; en &#91;15&#93; se reporta una   arquitectura <i>pipeline</i> con   codificaci&oacute;n <i>dual-rail</i> con un retardo   m&aacute;ximo de 800ns. Estos reportes no mencionan resultados de rendimientos de   bloques individuales del algoritmo. </font></p>     <p>&nbsp;</p>     <p><b><font size="3" face="Verdana, Arial, Helvetica, sans-serif">4. CONCLUSI&Oacute;N</font></b></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El trabajo   realizado constituye el primer esfuerzo para lograr la implementaci&oacute;n as&iacute;ncrona   de las funciones de transformaci&oacute;n de columna del algoritmo de Rijndael usando para ello herramientas de s&iacute;ntesis   autom&aacute;tica de circuitos sobre FPGAs de Xilinx. A pesar de la buena integraci&oacute;n ofrecida por   el sistema Balsa con el paquete ISE de Xilinx para lograr la implementaci&oacute;n   circuitos as&iacute;ncronos, dichas implementaciones presentaron retardos elevados   debido a que el mayor porcentaje de retardo lo introducen las rutas de   interconexi&oacute;n de las FPGAs comerciales utilizadas.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Es claro que, dadas las condiciones de avance   de las herramientas de dise&ntilde;o as&iacute;ncrono, parte del trabajo futuro debe   orientarse en el corto plazo a estudiar estrategias que permitan adecuar   eficientemente las plataformas comerciales a las metodolog&iacute;as as&iacute;ncronas   existentes.</font></p>     <p>&nbsp;</p>     <p><b><font size="3" face="Verdana, Arial, Helvetica, sans-serif">REREFENCIAS</font></b></p>     <!-- ref --><p> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&#91;1&#93;</b> NIST, National Institute of Standards and Technology. 2000. Disponible en: http://csrc.nist.gov/CryptoToolkit/aes/rijndael     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000170&pid=S0012-7353201000020002900001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;2&#93;</b> FIPS, Federal Information Processing Standards, Specification for the ADVANCED ENCRYPTION STANDARD (AES). Publication 197, November 26, 2001.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000171&pid=S0012-7353201000020002900002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;3&#93;</b> KURLD and SCARD Consortium. Intermediate report, Side Channel Analysis Resistant Design Flow. SCARD, Information Society, Project Number: IST-2002-507270, 15 January 2005.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000172&pid=S0012-7353201000020002900003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;4&#93;</b> BOUESSE, RENAUDIN, F. M. and GERMAIN, F. Asynchronous AES Crypto-Processor Including Secured and Optimized Blocks. TIMA Laboratory, Grenoble, France ; SGDN/DCISS, Paris, France . Journal of Integrated Circuits and Systems, Vol 1, No 1, pp 5-13. March 2004.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000173&pid=S0012-7353201000020002900004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;5&#93;</b> SATOH, A., MORIOKA, S., TAKANO, K., and MUNETOH, S. A Compact Rijndael Hardware Architecture with S-Box Optimization. Advances in Cryptology - ASIACRYPT 2001, LNCS Vol. 2248, pp. 239-254, 2001.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000174&pid=S0012-7353201000020002900005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;6&#93;</b> FISCHER, V., DRUTAROVSKÝ, M., CHODOWIEC, P. and GRAMAIN, F. InvMixColumn Decomposition and Multilevel Resource Sharing in AES Implementations. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 13, No 8, August 2005.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000175&pid=S0012-7353201000020002900006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;7&#93;</b> CHODOWIEC, P., and GAJ, K. Very Compact FPGA Implementation of the AES Algorithm. CHES 2003.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000176&pid=S0012-7353201000020002900007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;8&#93;</b> HUANG, Y.H., LIN, Y.S., HUNG, K.Y., and LIN, K.C. Efficient Implementation of AES IP. IEEE, Asia Pacific, Conference on Circuits and Systems APCCAS-2006, pp 1418-1421. Dec 2006     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000177&pid=S0012-7353201000020002900008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;9&#93;</b> HSIAO, S.F., CHEN, M.C., and TU, C.H. Memory-Free Low-Cost Designs of Advanced Encryption Standard Using Common Subexpression Elimination for Subfunctions in Transformations. IEEE Trans. on circuits and systems-I: Regular papers, vol. 53, No. 3, pp. 615-626, March 2006.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000178&pid=S0012-7353201000020002900009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;10&#93;</b> CORDERO, V., and SILVA, C.. Design of an ASIC CORE for data encryption and decryption Using the NIST Advanced Encryption standard. Microelectronics Group - Pontificia Universidad Cat&oacute;lica del Per&uacute;. IX Workshop de Iberchip, La Habana, Cuba. 2003.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000179&pid=S0012-7353201000020002900010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;11&#93;</b> VERBAUWHEDE, I., SCHAUMONT, P., and KUO, H. Design and performance testing of a 2.29-GB/s Rijndael processor. IEEE Journal of Solid-State Circuits, Volume: 38 Issue:3, March 2003.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000180&pid=S0012-7353201000020002900011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;12&#93;</b> DAEMEN, J., and RIJMEN, V. AES Proposal: Rijndael. Proton Worl Int. I, Zweefvliegtuigstraat, Brussel, Belgium ; Katholieke Universiteit Leuven, ESAT-COSIC, Belgium . Document V. 2. 1999.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000181&pid=S0012-7353201000020002900012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;13&#93;</b> NIETO, R. Dise&ntilde;o e implementaci&oacute;n de un cripto-procesador as&iacute;ncrono de bajo consumo basado en el algoritmo de Rijndael &#91;Tesis Doctoral&#93;. Cali, Universidad del Valle, 2009.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000182&pid=S0012-7353201000020002900013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;14&#93;</b> EDWARDS, D., BARDSLEY, L., Janin, L., and TOMS, W. Balsa: a Tutorial Guide. Version 3.5.The Advanced Processor Technologies Group, APT Group. Manchester University . Manchester, England . 2006.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000183&pid=S0012-7353201000020002900014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;15&#93;</b> SHANG, D., et al. High-security asynchronous circuit implementation of AES. IEE Proceedings online no. 20050088, doi:10.1049/ip-cdt: 20050088. IEE Proc.-Comput. Digit. Tech., Vol. 153, No. 2, March 2006.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000184&pid=S0012-7353201000020002900015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;16&#93;</b> Li, H., and FRIGGSTAD, Z. An Efficient Architecture for the AES MixColumns Operation. IEEE International Symposium on Circuits and Systems, 2005, ISCAS. Vol. 5, pp. 4637-4640. May 2005.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000185&pid=S0012-7353201000020002900016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;17&#93;</b> WOLKERSTORFER, J. An ASIC implementation of the AES MixColumn operation. Proceedings Austrochip 2001, pp. 129-132. Vienna, Austria , Oct. 12, 2001,     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000186&pid=S0012-7353201000020002900017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;18&#93;</b> CHODOWIEC, P. and GAJ, K. Very Compact FPGA Implementation of the AES Algorithm. CHES 2003, LCNS 2779, pp. 319-333, Springer-Verlag Berlin Heidelberg 2003.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000187&pid=S0012-7353201000020002900018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;19&#93;</b> BARDSLEY, A. Implementing Balsa handshake Circuits. &#91;PhD Thesis&#93;, University of Manchester, 2000.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000188&pid=S0012-7353201000020002900019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="">
<collab>NIST, National Institute of Standards and Technology.</collab>
<source><![CDATA[]]></source>
<year>2000</year>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<collab>FIPS, Federal Information Processing Standards</collab>
<source><![CDATA[Specification for the ADVANCED ENCRYPTION STANDARD (AES).]]></source>
<year>Nove</year>
<month>mb</month>
<day>er</day>
<volume>Publication 197</volume>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="">
<collab>KURLD and SCARD Consortium</collab>
<source><![CDATA[Intermediate report, Side Channel Analysis Resistant Design Flow. SCARD, Information Society]]></source>
<year>15 J</year>
<month>an</month>
<day>ua</day>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BOUESSE, RENAUDIN]]></surname>
<given-names><![CDATA[F. M.]]></given-names>
</name>
<name>
<surname><![CDATA[GERMAIN]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Asynchronous AES Crypto-Processor Including Secured and Optimized Blocks.]]></article-title>
<source><![CDATA[Journal of Integrated Circuits and Systems]]></source>
<year>Marc</year>
<month>h </month>
<day>20</day>
<volume>1</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>5-13</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SATOH]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[MORIOKA]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[TAKANO]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[MUNETOH]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Compact Rijndael Hardware Architecture with S-Box Optimization]]></article-title>
<source><![CDATA[Advances in Cryptology]]></source>
<year>2001</year>
<volume>2248</volume>
<page-range>239-254</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FISCHER]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
<name>
<surname><![CDATA[DRUTAROVSKÝ]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[CHODOWIEC]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[GRAMAIN]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[InvMixColumn Decomposition and Multilevel Resource Sharing in AES Implementations.]]></article-title>
<source><![CDATA[IEEE Transactions on Very Large Scale Integration (VLSI) Systems]]></source>
<year>Augu</year>
<month>st</month>
<day> 2</day>
<volume>13</volume>
<numero>8</numero>
<issue>8</issue>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CHODOWIEC]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[GAJ]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
</person-group>
<source><![CDATA[Very Compact FPGA Implementation of the AES Algorithm. CHES]]></source>
<year>2003</year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HUANG]]></surname>
<given-names><![CDATA[Y.H.]]></given-names>
</name>
<name>
<surname><![CDATA[LIN]]></surname>
<given-names><![CDATA[Y.S.]]></given-names>
</name>
<name>
<surname><![CDATA[HUNG]]></surname>
<given-names><![CDATA[K.Y.]]></given-names>
</name>
<name>
<surname><![CDATA[LIN]]></surname>
</name>
</person-group>
<source><![CDATA[Efficient Implementation of AES IP. IEEE, Asia Pacific]]></source>
<year>Dec </year>
<month>20</month>
<day>06</day>
<conf-name><![CDATA[ Conference on Circuits and Systems APCCAS]]></conf-name>
<conf-date>2006</conf-date>
<conf-loc> </conf-loc>
<page-range>1418-1421</page-range></nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HSIAO]]></surname>
<given-names><![CDATA[S.F.]]></given-names>
</name>
<name>
<surname><![CDATA[CHEN]]></surname>
<given-names><![CDATA[M.C.]]></given-names>
</name>
<name>
<surname><![CDATA[TU]]></surname>
<given-names><![CDATA[C.H.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Memory-Free Low-Cost Designs of Advanced Encryption Standard Using Common Subexpression Elimination for Subfunctions in Transformations.]]></article-title>
<source><![CDATA[IEEE Trans. on circuits and systems-I: Regular papers,]]></source>
<year>Marc</year>
<month>h </month>
<day>20</day>
<volume>53</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>615-626</page-range></nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CORDERO]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
<name>
<surname><![CDATA[SILVA]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<source><![CDATA[Design of an ASIC CORE for data encryption and decryption Using the NIST Advanced Encryption standard.]]></source>
<year></year>
<conf-name><![CDATA[IX Workshop de Iberchip]]></conf-name>
<conf-date>2003</conf-date>
<conf-loc>La Habana </conf-loc>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[VERBAUWHEDE]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[SCHAUMONT]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[KUO]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Design and performance testing of a 2.29-GB/s Rijndael processor]]></article-title>
<source><![CDATA[IEEE Journal of Solid-State Circuits]]></source>
<year>Marc</year>
<month>h </month>
<day>20</day>
<volume>38</volume>
<numero>3</numero>
<issue>3</issue>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DAEMEN]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[RIJMEN]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
</person-group>
<source><![CDATA[AES Proposal:: Rijndael]]></source>
<year>1999</year>
<publisher-loc><![CDATA[Brussel ]]></publisher-loc>
<publisher-name><![CDATA[Katholieke Universiteit Leuven]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[NIETO]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<source><![CDATA[Diseño e implementación de un cripto-procesador asíncrono de bajo consumo basado en el algoritmo de Rijndael]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[EDWARDS]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[BARDSLEY]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Janin]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[TOMS]]></surname>
<given-names><![CDATA[W.]]></given-names>
</name>
</person-group>
<source><![CDATA[Balsa:: a Tutorial Guide]]></source>
<year>2006</year>
<publisher-loc><![CDATA[Manchester ]]></publisher-loc>
<publisher-name><![CDATA[The Advanced Processor Technologies GroupManchester University]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SHANG]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[High-security asynchronous circuit implementation of AES]]></article-title>
<source><![CDATA[IEE Proceedings]]></source>
<year>Marc</year>
<month>h </month>
<day>20</day>
<volume>153</volume>
<numero>2</numero>
<issue>2</issue>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[FRIGGSTAD]]></surname>
<given-names><![CDATA[Z.]]></given-names>
</name>
</person-group>
<source><![CDATA[An Efficient Architecture for the AES MixColumns Operation.]]></source>
<year>May </year>
<month>20</month>
<day>05</day>
<volume>Vol. 5</volume>
<conf-name><![CDATA[ IEEE International Symposium on Circuits and Systems, 2005, ISCAS]]></conf-name>
<conf-loc> </conf-loc>
<page-range>4637-4640</page-range></nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[WOLKERSTORFER]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[An ASIC implementation of the AES MixColumn operation.]]></source>
<year>Oct.</year>
<month> 1</month>
<day>2,</day>
<conf-name><![CDATA[ Austrochip 2001]]></conf-name>
<conf-loc> </conf-loc>
<page-range>129-132</page-range><publisher-loc><![CDATA[Vienna ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CHODOWIEC]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[GAJ]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
</person-group>
<source><![CDATA[Very Compact FPGA Implementation of the AES Algorithm. CHES 2003, LCNS 2779]]></source>
<year>2003</year>
<page-range>319-333</page-range><publisher-loc><![CDATA[Heidelberg^eBerlin Berlin]]></publisher-loc>
<publisher-name><![CDATA[Springer-Verlag]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BARDSLEY]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<source><![CDATA[Implementing Balsa handshake Circuits]]></source>
<year></year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
