• No se han encontrado resultados

Análisis de Desempeño del Algoritmo Criptográfico PRESENT usando Plataformas Embebidas Hardware y Software

N/A
N/A
Protected

Academic year: 2020

Share "Análisis de Desempeño del Algoritmo Criptográfico PRESENT usando Plataformas Embebidas Hardware y Software"

Copied!
54
0
0

Texto completo

(1)Análisis de Desempeño del Algoritmo Criptográ o PRESENT usando Plataformas Embebidas Hardware y Software. Edwar Ja into Gómez. Universidad Distrital Fran is o José de Caldas Fa ultad de Ingeniería Bogotá, D.C. Agosto 2015.

(2) Análisis de Desempeño del Algoritmo Criptográ o PRESENT usando Plataformas Embebidas Hardware y Software. Edwar Ja into Gómez. Trabajo de tesis para optar al título de. Magister en Cien ias de la Informa ión y las Comuni a iones. Dire tor Fredy H. Martínez S., Ph.D.( ). Codire tor César A. Hernández S., Ph. D. ( ). Universidad Distrital Fran is o José de Caldas Fa ultad de Ingeniería Bogotá, D.C. Agosto 2015.

(3) Título en español Análisis de Desempeño del Algoritmo Criptográ o PRESENT usando Plataformas Embebidas Hardware y Software. Title in English Performan e Analysis of Cryptographi. Algorithm PRESENT using Embedded Hardware. and Software Platforms. Resumen:. La. riptografía moderna bus a garantizar la. y prevenir que personas no autorizadas tengan a. onden ialidad de la informa ión. eso a ella. Estos prin ipios se pueden. apli ar en dispositivos portátiles que requieren proteger la informa ión alma enada y proesada. Este tipo de apli a iones requieren. iertos. ompromisos de diseño, que se logran. "lightPresent es. usando hardware de alto desempeño y la implementa ión de algoritmos ligeros, tipo. weight",. el. ual sera trabajado en esta tesis, el algoritmo. un esquema ligero de on. Present ;. el algoritmo. ifrado por bloques relativamente nuevo, no vulnerado a la fe ha y. ara terísti as que lo ha en interesante para una implementa ión en hardware y soft-. ware embebido. Este trabajo presenta el estudio, diseño, implementa ión y pruebas de este algoritmo de. ifrado, donde se muestran los. on eptos teóri os, se analizan las métri as. para sus diferentes implementa iones, a n de identi ar las fortalezas de. ada tipo de. implementa ión embebida. Abstra t:. Modern. ryptography is strongly inuen ed by prin iples of se urity, and is. widely used in portable devi es that require some level of priva y. These design. ompro-. mises are a hieved not only by the use of high-performan e hardware, whi h has been the urrent natural tenden y, but also for the implementation of lightweight high performan e algorithms, su h as the Present algorithm. The Present algorithm is a lightweight blo k en ryption s heme relatively new, not infringed to date, and with features that make it interesting for implementation in embedded hardware and software. This work presents the study, design, implementation and testing of this. ipher algorithm, where the theoreti al. on epts are shown, and metri s for dierent implementations to identify the strengths of ea h type of embedded implementation are dis ussed.. Palabras lave:. Cryptología , Hardware embebido, software embebido,. ifrador por blo-. que, Criptograa Liviana "lightweight".. Contribu iones originales: real de un. El prin ipal aporte de la investiga ión es la implementa ión. ifrador por bloque estandar no vulnerado. Esta implementa ión se soporta en. la apropia ión de la aritméti a apli ada de arquite tura de los dispositivos sobre los. ampos nitos, así. omo el. ono imiento de la. uales se realiza la implementa ión. Se logra una. implementa ión en hardware que redu e en un 26 % los requisitos de hardware (respe to a la implementa ión de referen ia). Además de esto, se logró una implementa ión estándar en C que fue probada e implementada en un. omputador personal y sobre mi ro ontroladores. de distinto tamaño, logrando resultados inéditos de alto throughput en un mi ro ontrolador de 32 bits..

(4) Claims:. The main. dard blo k arithmeti. ontribution of the resear h is the a tual implementation of a stan-. ipher not infringed. This implementation is supported in the appropriation of applied of nite elds, as well as knowledge of the ar hite ture of the devi es on. whi h the deployment is performed. A hardware implementation is obtained to redu e in signi ant per entage the hardware requirements (taken with respe t to the referen e) is a hieved. Besides this, a standard implementation in C was tested and implemented on a personal. omputer and mi ro ontrollers of dierent sizes, a hieving an unpre edented high. throughput implementation of a 32 bit mi ro ontroller.

(5) Nota de a epta ión. Jurado Prof. Elvis Eduardo Gaona Gar ia. Jurado Prof. Roberto Ferro Es obar. Dire tor Prof. Fredy H. Martínez S.. Codire tor Prof. César A. Hernández S.. Bogotá, D.C., Agosto de 2015.

(6) Dedi ado a. En primera medida y omo mayor apoyo durante toda mi vida, tanto a adémi a omo personal y omo la úni a persona que ha estado a mi lado en todas las etapas de mi vida, agradez o profundamente a mi madre por darme la vida y por su in ondi ional e in ansable amor y apoyo, sin di hos sentimientos no hubiera sido apaz de nalizar mis estudios, ni mu has otras metas en mi vida. Además agradez o en primera medida a las personas que sembraron en mí la semilla y la los. uriosidad ne esaria para trabajar en sistemas. riptográ os y en general en. uales admiro mu ho, por su trabajo en el tema y sus. riptología,. ono imientos en matemáti a. dis reta apli ada, los ingenieros de la Universidad de los Llanos Javier Fernando Castaño y Fabián Velázquez Clavijo. Por otro lado quiero manifestar mi profunda admira ión y respeto por el ingeniero Cesar Hernández Suarez, quien ini ialmente era mi dire tor pero por motivos a adémi os se ha onvertido en un apoyo externo a este trabajo y. on su profundo. ono imiento aportado. en gran medida a la realiza ión del mismo. El sentimiento de agrade imiento se extendería a mu has personas que me han rodeado en mi vida a adémi a y profesional, pero en este momento quiero resaltar el apoyo y voz de aliento de mis amigos y. ompañeros de trabajo Fernando Martínez Santa, Andrés Javier. Torres y Holman Montiel Ariza. Un agrade imiento espe ial al profesor Carlos Suarez, por a adémi a e investigativa en este trabajo, además por servi io de la. olo ar toda su experien ia. olo ar su gran. alidad humana al. omunidad a adémi a de la maestría.. Por último, quiero expresar mi profundo sentimiento de gratitud a mi dire tor el ingeniero Fredy Hernán Martínez Sarmiento, que. on su gran sabiduría, guía y sin su apoyo e. innita pa ien ia, no se hubiera llevado a buen término este trabajo..

(7) Índi e general. Índi e general. I. Índi e de tablas. III. Índi e de guras. IV. Introdu ión. V. 1. Fundamenta ión matemáti a y estado del arte. 1. 1.1. Fundamenta ión matemáti a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1.. Aritméti a en grupos y. 1.1.2.. Aritméti a en. 1.2. Base teóri a de. ampos de Galois . . . . . . . . . . . . . . . . . . . .. ampos de Galois. 1 1. . . . . . . . . . . . . . . . . . . . . . . . . . .. 2. riptología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 1.3. Estru tura del algoritmo. PRESENT. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 12. 1.4. Estru tura de la implementa ión del algoritmo . . . . . . . . . . . . . . . . . . . . .. 14. 2. Plataformas embebidas de diseño. 17. 2.1. Diseño ESL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 18. 2.1.1.. Diseño Top-Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 18. 2.1.2.. Planea ión de tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 20. 2.1.3.. Co-diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 20. 2.2. Plataformas soporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 21. 2.2.1.. Plataformas embebidas software. . . . . . . . . . . . . . . . . . . . . . . . . . .. 21. 2.2.2.. Plataformas embebidas Hardware . . . . . . . . . . . . . . . . . . . . . . . . .. 24. 2.3. Argumento nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 26. 3. Metodología, diseño y resultados. 27 I.

(8) ÍNDICE GENERAL. 3.1. Modelo del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. II. 27. 3.1.1.. Implementa ión plataforma embebida software - mi ro ontrolador . .. 27. 3.1.2.. Implementa ión plataforma embebida hardware - FPGA . . . . . . . . .. 30. 4. Con lusiones y aporta iones 4.1. Con lusiones. 34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 34. 4.2. Aportes originales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 35. 4.3. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 35. Bibliografía. 37.

(9) Índi e de tablas. PRESENT. 1.1.. Caja de sustitu ión S-box del algoritmo. 1.2.. Tabla de sustitu ión de bits. 1.3.. Ve tores de prueba para. 2.1.. Cara terísti as del multipro esador PROPELLER. . . . . . . . . . . . . . . . . . .. 21. 2.2.. Cara terísti as de los PIC's . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 22. 2.3.. Cara terísti as de los AVR's . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 22. 2.4.. Cara terísti as de los Texas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 23. 2.5.. Cara terísti as de los Pso 's . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 24. 2.6.. Cara terísti as de los Frees ale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 24. 3.1.. Parámetros de rendimiento de las implementa iones . . . . . . . . . . . . . . . . .. 29. 3.2.. Tabla. omparativa entre implementa ión de referen ia y la propia . . . . . . .. 32. 3.3.. Tabla. omparativa de algunos algoritmos de. 33. pLayer. . . . . . . . . . . . . . . . . .. 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 16. PRESENT. III. ifrado. . . . . . . . . . . . . . . . . ..

(10) Índi e de guras. 1.1.. Pro eso Criptográ o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6. 1.2.. Clasi a ión de la. riptografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6. 1.3.. Esquema de. riptografía Simétri a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7. 1.4.. Opera iones del Cifrado Simétri o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8. 1.5.. Tipos de. ifrado simétri o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8. 1.6.. Cifrado en Flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8. 1.7.. Cifrado en Bloque. 9. 1.8.. Opera iones bási as de una ronda en un. 1.9.. Ronda del algoritmo. 1.10.. DataPath. de 16 Bits para. 1.11.. DataPath. generador de. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. PRESENT. 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 12. SBoxLayer. sub lave. 1.12. Estru tura del algoritmo. ifrador en bloque típi o . . . . . . . .. y. pLayer de Present. . . . . . . . . . . . .. 14. PRESENT. . . . . . . . . . . . . .. 15. del algoritmo. PRESENT. expresada en. Pseudo ódigo. . . . . . . . .. 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 29. ifrador en VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 30. 3.1.. Pruebas en el PC.. 3.2.. Datapath real. 3.3.. Máquina de estados de la unidad de. . . . . . . . . . . . . . .. 31. 3.4.. Simula ión paso a paso de la implementa ión hardware . . . . . . . . . . . . . . .. 32. IV. ontrol del. ifrador.

(11) Introdu ión. Esta investiga ión se enmar a en la línea de investiga ión de sistemas de seguridad para redes [1, 2℄, espe í amente en la implementa ión y uso de algoritmos de. ifrado para. apli a iones de tipo embebido [3, 4, 5℄, que requieran un mínimo grado de seguridad, pero sin sa ri io en la velo idad de transmisión [6℄. La ne esidad de transmitir datos seguros plantea diferentes es enarios y en. ada tipo de apli a ión. En. que determinan la. ada. aso, dos elementos. onabilidad y la robustez, son el hardware y el software. En el. de apli a iones inalámbri as. throughput ). on baja tasa de transferen ia de datos (. hardware tiende a ser dedi ado y de bajo. lightweight ). [8, 9, 10℄, que utili en. embebido mi ropro esado [11, 12℄, así. aso. [7℄, el. osto. Estas apli a iones, objeto de estudio de la. investiga ión, requieren el uso de un hardware embebido (livianas, tipo. ara terísti as. laves integrados del diseño,. on baja. apa idad. omputa ional. omo base una plataforma de desarrollo. omo dispositivos lógi os programables tipo FPGA. [13, 14, 15℄. Éste tipo de algoritmos de bajo. throughput. lightweight. [8, 16, 17℄ se utilizan en apli a iones inalámbri as. [7, 4, 3℄, dentro de las que se. uentan las redes de sensores, los tags. RFID (Radio-Frequen y Identi ation), redes PAN (Personal Area Network), Xbee y otros proto olos inalámbri os [17, 18℄. Los. ifradores de bloque [19, 20℄ son unos de los esquemas de. [21℄, dentro de los. uales se en uentran un sin número de algoritmos. ifrado más usados on diferentes. a-. ra terísti as, mu hos de ellos se han implementado en dispositivos lógi os programables [15, 6, 22, 20℄ igual que implementa iones realizadas en dispositivos embebidos software tipo mi ro ontrolador [11, 12, 23℄. Como referentes obligados para. ifradores de bloque se. en uentra el AES (Advan ed En ryption Standard), ya que es estándar [24, 22, 11℄ y el algoritmo de. urvas elípti as [25, 26℄ por su trasfondo y para dar una base matemáti a al. proye to. Tomando en de di hos algoritmos. uenta lo anterior, sabiendo que se puede realizar la implementa ión on distintas té ni as y diferentes dispositivos, en esta investiga ión. se opta por implementar un. ifrador de bloque, que. umpla. on la losofía de lightweight. y que además de ello sea fá ilmente realizable en hardware y software. De esta manera, se de ide trabajar. on el algoritmo PRESENT [27, 28, 10, 14, 15℄, el. mentar tanto en hardware. determinar las métri as de mayor interés para La sele. ual se va a imple-. omo en software y posteriormente se realizarán estudios para ada. aso.. ión de este algoritmo se da, por estar estandarizado y a eptado por los entes. que regulan la. riptografía a nivel mundial ISO/IEC, NIST y NSA [29, 30℄ y ser un algorit-. V.

(12) VI. INTRODUCCIÓN. mo relativamente nuevo sin haber sido vulnerado hasta el momento. Además, se tiene un punto de. ompara ión,. previa [11℄, el. on otro algoritmo de. ifrado por bloques. on una implementa ión. ual fue publi ado en el Congreso Argentino de Sistemas Embebidos (CASE). 2012. El algoritmo PRESENT es un algoritmo simétri o de. ifrado. on una naturaleza total-. mente minimalista, ya que utiliza bloques de sustitu ión y permuta ión de tan solo 4 bits omo base. Este tipo de estru tura permite que su implementa ión sea realizable en dispositivos hardware de redu ido tamaño, lo que permite un sentido de uso ade uado de los re ursos y. ara terísti as, que le permite ser de fá il implementa ión en pro esadores. un bus pequeño. Además de esto, posee. laves de an ho relativamente pequeño,. on otros algoritmos del mismo tipo y requiere una. on. omparado. antidad de rondas redu ida; por otro. lado, desde el punto de vista de su diseño e implementa ión presenta un reto interesante, ya que requiere de una estrategia que tenga en usado y velo idad de. uenta el equilibro entre. antidad de re urso. omuni a ión general del sistema [31, 32, 7℄.. Justi a ión En apli a iones lo ales o en las que por su tamaño y. osto no se justi a el uso de un. PC para el tratamiento y envío de la informa ión, pero que requieren que la. omuni a ión. sea segura, se ha e ne esario explorar la implementa ión de pro esadores embebidos [27℄, sistemas operativos en tiempo real y en general de dispositivos de. ifrado en hardware [9℄,. aprove hando los sistemas lógi os re ongurables y pro esadores de alta velo idad a tuales, para lograr. ondi iones de paralelismo y. on urren ia [6℄ que redundan en el rendimiento. del sistema y su velo idad de pro esamiento, fa tor importante a la hora de pensar en una apli a ión real. En las redes de. omuni a ión a tuales, ya sean. ableadas o inalámbri as, se requiere. que los datos viajen seguros manteniendo el equilibrio entre seguridad y enviados. (throughtput);. hardware-software e ientes en un algoritmo de. antidad de datos. para ello se requieren algoritmos que permitan implementa iones uanto a las métri as de interés. Por tal motivo, se apli a. ifrado [28℄, que apuesta a la versatilidad, exibilidad de. bajo uso de re ursos[10, 14, 15℄ tanto en implementa iones hardware. ongura ión y. omo software.. Los pro edimientos implementados en hardware brindan solu iones rápidas para aplia iones donde el trá o de datos es mayor y requieren. ifrado en tiempo real [6℄. Por. otro lado, los dispositivos lógi os programables son una muy buena alternativa, debido a que tienen la propiedad de ser re ongurables y su sean óptimos para pro esos masivos y. omplejos. ara terísti a. on urrente ha en que. on tiempos de respuesta bastante buenos. [10, 14, 15℄. Las plataformas embebidas de software poseen la versatilidad en. uando a la. rea ión. de librerías y fun iones estándar que permiten su uso en distintas familias de dispositivos [12℄, en general, siempre se bus a la puedan. rea ión de algoritmos en lenguajes de alto nivel que se. ompilar sobre diferentes plataformas, todo esto de manera sen illa y sin importar. la arquite tura interna de los dispositivos [7℄. Re ientemente, si se requería un ta iones, se tenía. ifrador de bloque usando hardware de pequeñas pres-. asi que obligatoriamente re urrir al algoritmo Rijindael: algoritmo que.

(13) VII. INTRODUCCIÓN. es un referente obligado, pero por su (S-box) y su tamaño de. ara terísti as de tamaño de la. aja de sustitu ión. lave, no permitía su implementa ión en dispositivos pequeños;. en este trabajo, se brinda otra posibilidad de. ifrador por bloque. on tamaño de. aja de. sustitu ión ultra redu ida apropiada para dispositivos lógi os programables muy pequeños o mi ro ontroladores de 8, 16 bits o una nueva familia de 32 bits de muy bajo. osto.. Formula ión del problema Pregunta de investiga ión ¾Cómo desarrollar una implementa ión de un algoritmo de. ifrado ligero PRESENT. usando plataformas embebidas hardware y software, para apli a iones de inalámbri a, mantenido el equilibrio entre uso de re ursos y velo idad de. omuni a ión. omuni a ión?. Objetivos. General Evaluar del desempeño del algoritmo. riptográ o. PRESENT. usando plataformas em-. bebidas hardware y software.. Espe í os 1. Evaluar las ware, en. ara terísti as de las plataformas embebidas tanto software. uanto a rendimiento,. osto y. para la implementa ión del algoritmo 2. Implementar del algoritmo. omo hard-. omplejidad para así elegir los más ade uadas riptográ o.. riptográ o. PRESENT. usando plataformas embebidas. hardware y software. 3. Simular y validar los resultados de las implementa iones embebidas hardware y software pra ti ando las. ompara iones ne esarias y analizando sus respe tivas métri as.. Organiza ión de la tesis de maestría En primera medida, se debe realizar un estudio de los. ifradores de bloque y en general de los. on ienzudo de la base matemáti a. ampos de Galois, que son la base teóri a. que permite la implementa ión de este tipo de algoritmos. Seguidamente, se debe dar una pequeña introdu. ión a la. riptología, los diferentes esquemas de. ifrado y sus diferen ias;. además de esto, se debe dar una expli a ión de las partes bási as o de un. ifrador por bloque [33℄ dando una expli a ión de. omponentes mínimos. ada uno de ellos.. Después de realizar el levantamiento de las bases teóri as de este tipo de algoritmos, se debe sele. ionar el al an e, las presta iones y. ara terísti as de la posible apli a ión reali-. zada [7, 27℄; por eso en su primera parte del desarrollo, antes de realizar la implementa ión, se debe realizar un estado del arte, tomando en. uenta la arquite tura de los dispositivos.

(14) VIII. INTRODUCCIÓN. y sus. ara terísti as [12℄, integrándolo. tanto en hardware. on el diseño y posterior implementa ión del mismo. omo en software y por último las respe tivas pruebas y. ompara iones. de las dos implementa iones realizadas [7, 27℄. Al tener las implementa iones, pruebas, simula iones y veri a iones, se deberá plantear un trabajo futuro, donde el uso de éstas librerías sea signi ativo, llevando esta investigaión al. ampo de apli a ión tanto en la vida a adémi a. omer iales.. omo para posibles apli a iones.

(15) CAPÍTULO. 1. Fundamenta ión matemáti a y estado del arte. 1.1. Fundamenta ión matemáti a En general, los sistemas de de. ifrado por bloques están diseñados para manejar longitudes. lave y de bloque variables, ambas. omprendidas entre los 80 y los 256 bits. Di hos. paquetes de informa ión se operan a nivel de byte, interpretando éstos un. ampo de. Galois GF(k).. omo elementos de. El resto de opera iones se efe túan en términos de registros. de 32 bits [7, 10℄. En los nito, los. ifradores en bloque, todos los bytes se interpretan uales se representan mediante. ampos de. un inverso aditivo y un inverso multipli ativo, lo. omo elementos de un. Galois GF(k).. En este. ual unido a otras propiedades de esta. estru tura algebrai a permite implementar opera iones invertibles, lo que permite des ifrar en el mismo. ampo. Zk. Una estru tura algebrai a es un umple Si el. ampos de Galois onjunto dotado de una o más opera iones binarias. iertas propiedades.. onjunto tiene nitos elementos, se di e que la estru tura algebrai a tiene orden. nito, de lo. ontrario tiene orden innito. Entre las estru turas algebrai as más utilizadas. en los algoritmos. 1.. ifrar y. [15, 6℄.. 1.1.1. Aritméti a en grupos y. que. ampo. ampo existe. riptográ os, están los grupos y los. ampos.. Grupos Un. onjunto. G. dotado de una opera ión binaria. *,<G,*>, que. propiedades tiene estru tura algebrai a de grupo. (a) Clausurativa: (b) Aso iativa:. a ∗ (b ∗ c) = (a ∗ b) ∗ c, ∀a, b, c ∈ G. ( ) Modulativa: (d) Invertiva:. a ∗ b ∈ G, ∀a, b ∈ G. ∃e ∈ G/a ∗ e = e ∗ a = a, ∀a ∈ G. ∃a−1 /a−1 ∗ a = e, ∀a ∈ G 1. umple las siguientes.

(16) CAPÍTULO 1.. Si además de las propiedades anteriores se ual. a ∗ b = b ∗ a, ∀a, b ∈ G,. En las apli a iones. umple la propiedad. riptográ as solo interesan los grupos de orden nito y en los. f(x). Un sub. onjunto. H. se llama subgrupo y el orden de 2.. onmutativa en la. enton es el grupo es Abeliano.. uales sus opera iones se realizan módulo un numero primo irredu ible. 2. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. de. G que. n, o módulo un polinomio. umple las mismas propiedades de grupo. ualquier subgrupo de. G. divide al orden de. G.. Anillos Un anillo es un. onjunto. G. ∗, ∆. dotado de dos opera iones binarias. genera una estru tura algebrai a. <*,G,∆>. <G,*>. (a) La estru tura algebrai a. es. que. de esta forma se. umple las siguientes. ondi iones:. Grupo Abeliano.. <G,∆> , umple las propiedades aso iativas y lausurativas. G dotado de las dos opera iones <*,G,∆> umple la propiedad. (b) La estru tura ( ) El. onjunto. distributiva, la. G. 3.. ual ha e intera tuar las dos opera iones sobre los elementos de. Campos <G,*>. (a) La estru tura algebrai a (b) El. onjunto. G. ( ) La estru tura. Los llamados. on la opera ión. <G,∆>. ampos apli ados a la ampos de. Galois. o. grupo Abeliano. ∆ es grupo Abeliano. es. umple la propiedad distributiva a dere ha e izquierda.. riptografía son aquellos que tienen orden nito, también ampos nitos. La aritméti a en estos. ampos permite por. ejemplo las opera iones de suma y multipli a ión de puntos ra ionales en la. riptografía de. urvas elípti as [5, 26℄, ya que estos tienen estru tura de grupo nito aditivo Abeliano y las urvas elípti as se denen sobre. ampos de Galois. La e ien ia, la velo idad y el espa io. o upado en un pro esador por la aritméti a de. ampos nitos, es un fa tor impres indible. en el momento de elegir un algoritmo para la implementa ión de el. ualquier opera ión en. ampo. La investiga ión en esta área se en amina a lograr mayor e ien ia tanto en la. representa ión de los. ampos nitos,. ampos, tanto en software. 1.1.2. Aritméti a en. omo en la implementa ión de aritméti a en estos. omo en hardware.. ampos de Galois. Campos Primos En mu has opera iones rela ionadas los. on algoritmos. riptográ os simétri os se utilizan. ampos primos puesto que permiten desarrollar opera iones pre al uladas y algunas. ve es basadas en uso de tablas. Este es el gran mayoría de los algoritmos de. aso de algunas. ajas. S. o. S-box,. ifrado por bloques. Las opera iones de. son modulares para garantizar la propiedad. lausurativa y así. usadas en la. ampos primos. onservar el tamaño de. los datos. Entre los. ampos más utilizados están los de tamaño un número primo o una. poten ia de 2, en el. aso de trabajar. on bytes..

(17) CAPÍTULO 1.. 1.. 3. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. Aritméti a en ampos GF (q m ) (a). Bases polinomiales Si se. onsidera una extension nita. mo un espa io ve torial sobre. (α1 , α2 , ...., αm ). F = F qm. del. ampo nito. K = Fq. o-. K, enton es F tiene dimensión m sobre K y si F sobre K, enton es ada elemento α ∈ F se. es una base de. puede representar de forma úni a. omo:. α = C1 α1 + C2 α2 + .....+ Cm αm. , donde. Cj ∈ K , 1 ≤ j ≤ m Se puede estable er la siguiente. T rF |K (α) :. fun ión traza. sea. K. orresponden ia lineal de un. ampo nito y sea. F. 2 m−1 ) es sión nita de K, la base polinomial (1, α, α , ...., α poten ias de un elemento denitorio un elemento primitivo de. F.. de. F. sobre. K,. K. mediante la una exten-. onstruida. α. es. on. oe ientes. ai ,. que pertene en al. ampo. y las poten ias de los elementos de la base. Cada polinomio que representa. un término es una. lase residual módulo el polinomio irredu ible, es de ir:. Fqm = a0 + a1 x + a2 x2 + ... + am xm−1 |a1 ∈ Fq (b). on las. donde el elemento. Con esta base se representan los elementos de un. ampo nito mediante polinomios. K. α. en. T rF |K (α). Produ to Dos elementos. A, B ∈ GF (2m ). p(z), son representados a del ampo q es 2:. on polinomio irredu ible. en la forma de polinomios, en este. El produ to. (1.1). aso la. ara teristi. A = a0 + a1 x + a2 x2 + ... + am−1 xm−1. (1.2). B = b0 + b1 x + b2 x2 + ... + bm−1 xm−1. (1.3). C =A∗B. se representa. omo:. C = c0 + c1 x + c2 x2 + ... + cm−1 xm−1 De la expresión anterior puede notarse que el produ to que los operandos. A y B, lo. C. tiene el mismo tamaño. ual se debe a que son elementos de un. Para realizar la multipli a ión entre dos elementos de un. (1.4). ampo nito.. ampo nito. on repre-. senta ión en base polinomial, se realiza la multipli a ión normal de polinomios,. 2m − 2. . Como puede observar-. ampo nito, por lo. ual se implementa una. lo que origina un polinomio de grado máximo se, éste polinomio no pertene e al redu. ión módulo del polinomio irredu ible. Dado que la multipli a ión de poli-. nomios se puede realizar paso a paso, este tipo de multipli adores se denominan seriales [11, 24, 34, 35℄. El otro enfoque es tomando expresiones que generan pli a ión, la. ( ). omo base el polinomio irredu ible,. ada uno de los. al ular las. oe ientes del resultado de la multi-. ual por lo tanto se puede implementar en paralelo [22℄.. Suma en GF (2m ).

(18) CAPÍTULO 1.. 4. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. Dados dos elementos:. A = a0 + a1 x + a2 x2 + ... + am−1 xm−1 yB = b0 + b1 x + b2 x2 + ... + bm−1 xm−1 (1.5). m ampo nito GF (2 ), enton es:. en el. A + B = c0 + c1 x + c2 x2 + ... + cm−1 xm−1. (1.6). Ci = (ai + bi )mod2. (1.7). donde. lo que equivale a la opera ión. (d). XOR. bit a bit.. Inverso multipli ativo en el ampo de extensión binario Para el [1℄, el a. aso del inverso multipli ativo, se implementa el algoritmo de Itoh-Tsujii ual en forma re ursiva realiza la exponen ia ión del valor al. al ular el inverso multipli ativo. La expresión general para. ual se le va. al ular el inverso. multipli ativo, se deriva de la siguiente forma: Dado un elemento. A ∗ A−1. = e, e = 1 = z0.. siendo. A ∈ GF (2m ). e. existe un elemento. A−1. tal que se. umple. el elemento neutro de la opera ión produ to, en este. aso. La opera ión inversión es importante en sí misma y también para la implementa ión de la división, ya que:. A ⇔ B 6= 0 B −1 Para esto es ne esario. (1.8). B y luego realizar una multipli. al ular el inverso de. la inversión es la opera ión más difí il de implementar en aritméti a de. a ión; ampos. nitos. Existen dos tipos de algoritmos de inversión: Basados en el Teorema Extendido de. Eu lides,. sus variantes y otros basados en multipli a iones en el. se opta por un método basado el algoritmo extendido de dad. Eu lides,. la. ampo. Si ompleji-. omputa ional es bastante alta, lo que impa ta dire tamente en el diseño.. Si se opta por un método basado en multipli a iones, se utiliza la fun ión de multipli a ión redu iendo la. omplejidad. omputa ional.. La idea prin ipal del inversor implementado radi a en el "pequeño Teorema de. Fermat "que indi. a que para todo elemento no. ero en un. ampo. a−1 = a2. F2m. m−2. Esto se demuestra ya que por las propiedades de los. (1.9) ampos. F2m. m. a2 = a y ha iendo una sustitu ión se llega a la expresión anterior.. (1.10).

(19) CAPÍTULO 1.. 5. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. La expresión puede rees ribirse. omo:. a−1 = a2. m −2. De esta manera, se puede redu ir la menor de eleva iones al. m −1. = (a2. )2. (1.11). omplejidad de la inversión a un número. uadrado.. Itoh y Tsujii [1, 11℄ en su libro. Algebra Moderna(2004),. niosa manera de redu ir aún más la. propusieron una inge-. omplejidad de la opera ión, ha iendo una. nueva sustitu ión de tal forma que se obtienen las fórmulas:. a El primer. 2m−1 −1. aso es para. m. La deni ión de grupo y. 2 = (a. m−1 2 −1. m−1 −1. ∗ a2 )2 2 m−2 −1 )2 a ∗ (a2. impar y el otro para. m. m−1 2 −1. (1.12). par.. ampos de Galois es fundamental para el desarrollo del. ifrador, ya que se requieren realizar opera iones usando aritméti a en puntualmente en el de bits. ampo. GF (24 ) ya que el. ifrador. Present. ampos,. utiliza este tamaño. omo base aritméti a o polinomial. Cada uno de los bloques que se. mostrarán en la siguiente se. ión usan opera iones en este. ampo,. omo suma,. produ to y sustitu ión.. 1.2. Base teóri a de riptología Se podría denir el. ampo de la. riptología,. omo el estudio de una serie de pro esos. o té ni as, usando té ni as matemáti as, que le infringen informa ión en espe i o, tal. ierto nivel de seguridad a una. omo la integridad de los datos, autenti a ión de entidades. y del origen de los datos [1, 2℄. La. 1.. riptología está formada por dos té ni as, las. uales son:. riptografía y. riptanálisis.. Criptanálisis Es la té ni a de des ifrar un mensajes. riptograma sin tener la autoriza ión. Consiste en romper. ifrados ata ándolos y bus ando el mensaje original (mensaje en. riptanálisis abar a diversas té ni as, mu has ve es no dependen del. laro). El. ono imiento. del algoritmo sino que mediante sistemas de aproxima iones matemáti as se puede des ubrir el texto en 2.. laro o la. lave [2, 36℄.. Criptografía Es la té ni a de. onvertir un texto inteligible llamado. riptograma, en otro. uyo. ontenido de informa ión es igual al anterior pero des ifrado úni amente por las personas autorizadas [36℄. El objetivo de la. riptografía es el de propor ionar. omuni a iones seguras sobre. anales inseguros, es de ir, permitir que dos entidades, bien sean personas o apli aiones, puedan enviarse mensajes por un. anal que puede ser inter eptado por una.

(20) CAPÍTULO 1.. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. 6. Figura 1.1: Pro eso Criptográ o. ter era entidad, de modo que sólo los destinatarios autorizados puedan leer los mensajes. Pero la. riptografía no es en sí la seguridad, sólo es la herramienta bási a que. utilizan me anismos más. omplejos para propor ionar, además de. onden ialidad,. otros servi ios de seguridad [1, 36℄.. Figura 1.2: Clasi a ión de la. Las té ni as de utilizado, los. riptografía se pueden. lasi ar en dos grupos según el tipo de. uales son: Criptografía simétri a o de. asimétri a o de. lave públi a. En lo. 3.. lave. lave se reta y Criptografía. ual nos enfo aremos a presentar informa ión. de Criptografía simétri a ya que el algoritmo tipo de. riptografía. PRESENT. se en uentra dentro de este. ifrado.. Criptografía simétri a o de lave se reta Existe una úni a. lave (se reta) que. omparte emisor y re eptor. Con la misma. lave.

(21) CAPÍTULO 1.. se. 7. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. ifra y se des ifra, por lo que la seguridad reside en mantener di ha. lave en se reto. omo se ve en la gura 1.3 [1℄.. Figura 1.3: Esquema de. El pro eso de obten ión del mensaje de. riptografía Simétri a. ifrado es:. c = Ek (m) Donde. k. es la. lave se reta,. es el mensaje en. Ek. (1.13). representa la opera ión de. ifrado. on esa. lave y. m. laro.. Simétri amente el pro eso de re upera ión del mensaje original, mediante la opera ión de. ifrado,. Dk ,. en el que se utiliza la misma. lave se reta. k,. se representa. omo:. m = Dk (c) La simetría del pro eso se basa en que este tipo de. (1.14) ifradores se. omporta. Ek (Ek (m)) = m Los algoritmos de que. (1.15). lave se reta se apoyan en opera iones algebrai as muy simples, lo. onlleva que el tiempo ne esario para realizar el pro eso. muy pequeño. Esta propor ionar. omo:. ara terísti a ha e que este tipo de. ompleto de. ifrado es. ifrado pueda utilizarse para. onden ialidad en apli a iones telemáti as, en las que se requiere gran. velo idad en ujo de datos. La. riptografía simétri a impli a que para estable er. usuarios, es ne esario que éstos Dos té ni as bási as de la. onoz an y. omuni a ión segura entre dos. ompartan una. riptografía simétri a son:. lave simétri a. on reta.. onfusión y difusión (Figura. 1.4). (a). Confusión. onsiste en estable er una dependen ia fun ional lo más. posible entre la. lave y el mensaje en. laro y se. ompleja. onsigue mediante la sustitu ión. de unos símbolos por otros. (b). Difusión. onsiste en dispersar a lo largo del programa las propiedades estadísti-. as del mensaje en de los bits)[1℄.. laro y se. onsigue mediante la transposi ión (permuta ión.

(22) CAPÍTULO 1.. 8. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. Figura 1.4: Opera iones del Cifrado Simétri o. 4.. Cifradores de Flujo y Cifradores de Bloque Dado un mensaje en laro m, representado mediante un número variable de o a la hora de pro eder a su op iones de. ifrado para. onvertirlo en un. ifradores (gura 1.5), que se diferen ian en. riptograma. tetos,. existen dos. omo dividen el mensaje en. laro para abordar la tarea de transforma ión [1, 2℄.. Figura 1.5: Tipos de. (a). ifrado simétri o. Cifrado de Flujo La. ara terísti a prin ipal de este. saje en el. laro. omo un ujo. ifrado (gura 1.6),. ontinuo de bits (o. onsiste en tomar el men-. ara teres) y generar a la salida. orrespondiente ujo de bits resultante de la transforma ión produ ida en el. pro eso de. ifrado. La ventaja de este sistema es la simpli idad en el pro eso de. ifrado.. Figura 1.6: Cifrado en Flujo. (b). Cifrado en Bloque En este tipo de. ifrado el mensaje en. uno [15, 28℄. La. ara terísti a prin ipal de este tipo de. ada bloque se. laro se divide en bloques de ifradores. n. bits. ada. onsiste en que. ifra de igual forma, independientemente del lugar que o upe en.

(23) CAPÍTULO 1.. la. 9. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. adena, de manera que todos los bits del bloque se. ifran. onjuntamente,. parti ipando en opera iones que tratan de os ure er las posibles rela iones que tuviesen en el mensaje original [1℄. Esto se puede ver en la gura 1.7. Figura 1.7: Cifrado en Bloque. Los algoritmos simétri os. ifran bloques de texto, pero esta longitud varia para. ada algoritmo. En el. ifrado en bloque se realizan. uatro opera iones bási as:. • Ele toni CodeBlo k (ECB) : en él se en riptan los bloques por separado. • Cipher Blo kChainning (CBC) : los bloques de riptograma se rela ionan entre ellos mediante fun iones OR EXCLUSIVA.. • Cipher feedba k (CFB) :. se realiza una OR EXCLUSIVA entre. ara teres o. bits aislados del texto y las salidas del algoritmo. El algoritmo utiliza entrada los. riptogramas.. • Output feedba k (OFB) : entre. omo. igual que el CFB, se realiza una OR EXCLUSIVA. ara teres o bits aislados de texto y las salidas del algoritmo, pero éste. utiliza. omo entradas sus propias salidas; por tanto no depende del texto,. es un generador de números aleatorios. A. ontinua ión se muestran algunos ejemplos de algoritmos simétri os, que se. han tomado. omo referen ia para este trabajo y se. onsidera de suma impor-. tan ia nombrarlos de manera dire ta:. • Algoritmo DES : (Data En. ryption Standard), Es el algoritmo simétri o más. extendido mundialmente. Se basa en el algoritmo LUCIFER, fue adoptado. omo estándar por el Gobierno de los EE.UU para. lasi adas en 1976. Aunque a tualmente es. omuni a iones no. onsiderado un algoritmo que. ha sido vulnerado en múltiples o asiones. Sin embargo es de utilidad en mu has apli a iones.. • Algoritmo IDEA: (Interna. ional Data En ryption Standard), Es un algorit-. mo muy robusto y popular por haber sido adoptado por PGP, una apli a ión de. orreo ele tróni o seguro, de uso muy extendido. Además, no presenta. debilidad de. lave y la longitud de ésta ha e imposible un ataque por fuerza. bruta.. • Algoritmo RC2 :. Diseñado por Ron Rivest en 1987 para la. Data Se urity, utilizado en paquetes de. ompañía RSA. orreo ele tróni o (S-MIME) y en. otros produ tos de seguridad. Este algoritmo está protegido omer ial.. omo se reto.

(24) CAPÍTULO 1.. 10. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. • Algoritmo RC4 :. Diseñado por Ron Rivest en 1987 para la. ompañía RSA. Data Se urity. Sen illo y rápido, orientado a generar se uen ias en unidades de un byte. Además, permite propietario, lo. laves de diferentes longitudes. Es un algoritmo. ual impli a que no puede ser in luido en apli a iones de tipo. omer ial sin pagar los dere hos. • Algoritmo RC5 :. orrespondientes.. Diseñado por Ron Rivest en 1987 para la. Data Se urity. Consiste en una familia de algoritmos. ompañía RSA. riptográ os que tie-. nen una serie de parámetros que determinan el tamaño de la de. • Algoritmo SEAL: Su fun. ionamiento se basa en un pro eso ini ial en el que. se Cal ulan los valores para unas tablas a partir de la el. lave, el número. i los y el tamaño de los bloques [37℄.. ifrado se lleva a. abo de una manera rápida. [36℄. • Algoritmo SKIPJACK : lipper Se. lave, de forma que. Elegido para soportar el. ifrado en el esquema de. hip. Es un algoritmo se reto y su estru tura no ha sido publi ada.. ree que su estru tura es similar a la de DES,. bloques tipo. aja s. (S-box), una. iterativo basado en 32. • Algoritmo GOST :. on bloque de 64 bits,. lave de 80 bits y un. omportamiento. i los.. Publi ado. omo estándar en la antigua unión soviéti a,. pertene e a un grupo de algoritmos que abar a distintas fun iones de seguridad. Su estru tura es muy similar a la de DES y al igual que éste es iterativo y parte de bloques de 64 bits que se dividen en dos mitades y se inter ambian entre si en. • Algoritmo Rijndael-AES : DES, después de una ronda se sele. ada. i lo [36℄.. Este algoritmo fue es ogido. omo el su esor de. onvo atoria que se realizó en 1997, en una primera. ionaron 15 algoritmos de los. uales 5 fueron sele. ionados en. la ronda nal [1, 11, 36, 37℄:.  MARS, de IBM  RC6 de RSA laboratory  SERPENT de R. Anderson, E Biham y L. Knudsen  TWOFISH, de B s hneider y otros  RIJNDAEL, de Joan Daemen y Vin ent Rijmen • Simon and Spe k [19℄: El objetivo de estos algoritmos es dar más op iones de posibles ifradores de bloque tipo lightweight, que posean ara terísti as de exibilidad y. onabilidad. Cada uno ofre e un ex elente rendimiento. en plataformas hardware y software respe tivamente. Además de esto, son lo su ientemente exibles. omo para admitir una variedad de implemen-. ta iones sobre diferentes plataformas. Ambos se adaptan ex ep ionalmente bien en todo el espe tro de apli a iones tipo. lightweight,. pero Simon está. sintonizado para un rendimiento óptimo en hardware y la Spe k para un rendimiento óptimo en software [7℄. 5.. Opera iones bási as de los ifradores en bloque Las opera iones bási as de un algoritmo de. ifrado por bloques se muestran en la. gura 1.8. Estas pueden variar dependiendo del algoritmo planteado. En todos los. ifradores por bloque se genera una. ByteSub, ShiftRow, MixColum y AddRoundKey. ombina ión de las opera iones. o sus equivalentes o modi a iones.

(25) CAPÍTULO 1.. Figura 1.8: Opera iones bási as de una ronda en un. de las mismas según sea el. ronda' ;. la. aso y a la eje u ión de. ifrador en bloque típi o. ada una de ellas se le llama. omplejidad y seguridad del algoritmo depende de la. Cada ronda está. ifrar, además. lave usada [7, 19℄. ompuesta por tres opera iones basadas en transforma iones unifor-. mes e invertibles que son llamadas el. 'una. ombina ión de las. opera iones anteriores y de las rondas realizadas a la informa ión a del tamaño de la. 11. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. apas, que han sido diseñadas para resistir ante. riptanálisis lineal y diferen ial, las. • Capa no lineal :. uales son:. Consiste en la apli a ión de. ajas S en paralelo que tiene pro-. piedades optimas de no linealidad.. • Capa de mez la lineal :. garantiza un alto nivel de difusión a lo largo de las. múltiples rondas.. • Capa de adi ión de lave : estado intermedio y la 6.. Se trata de una opera ión OR ex lusiva entre el. lave propia de. ada ronda.. PRESENT : Un algortimo Ultra-lightweight PRESENT. es uno de los algoritmos de. [10, 29℄. ifrado por bloques tipo lightweight más. o-. no ido. Debido a que presenta fa ilidad de apli a ión por su diseño redu ido, tanto en hardware y software [10, 14℄; su implementa ión en hardware puede ser realizada en algunas de las FPGA's más pequeñas del mer ado,. on un throughtput signi ati-. vamente alto [15℄. Además de esto, se puede implementar en plataformas embebidas software de muy bajas presta iones, ya sea en su tamaño de bus o en su memoria volátil disponible..

(26) CAPÍTULO 1.. 12. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. 1.3. Estru tura del algoritmo PRESENT En la gura 1.9 se muestra la estru tura bási a del algoritmo sus bloques y. omo se deben realizar. Figura 1.9: Ronda del algoritmo. espe i a el fun ionamiento de. PRESENT, donde se ven. ada una de sus 31 rondas [10℄. A. ontinua ión se. PRESENT. ada una de las partes del diagrama de bloques de la gura. 1.9. 1.. Capa de sustitu ión de bytes: que se apli a a. SboxLayer. Consiste en una sustitu ión no lineal. ada nibble de la matriz de estado de forma independiente, mostra-. da en la tabla 1.1, generando un nuevo nibble. Esta transforma ión sustitu ión de. ada nibble por el resultado de apli arle la tabla de sustitu ión. [10, 14℄. Este bloque de sustitu ión se le apli a a 16 nibbles que de informa ión, que es el tamaño estándar de los bloques de Tabla 1.1: Caja de sustitu ión S-box del algoritmo. X S(x). 0 C. 1 5. onsiste en la. 2 6. 3 B. 4 9. 5 0. Cuando se diseña el algoritmo de datos sustituidos. Para este. 6 A. 7 D. 8 3. 9 E. A F. B 8. S-Box. ompletan 64 bits. ifrador.. PRESENT C 4. D 7. E 1. F 2. ifrado se bus a la mayor entropía posible en los. aso, se trabaja. on tamaños de palabra de 4 bits, ya que. al ser un algoritmo totalmente minimalista se logra que sea implementado en una úni a. LUT(Look Up Table),. en el. aso de las. FPGA's ;. o mediante pequeñas tablas. en pro esadores de bus pequeño ó realizando mas aras de 4 bits en pro esadores. on. bus de datos mayor. 2.. Permuta ión de Bits: Es una. pLayer. apa que mez la mediante una sustitu ión de bit a bit un bloque de informa-. ión de 64 bits, donde el Bit. i. del la ronda es movido a la posi ión. di ha sustitu ión se muestra en la tabla 1.2:. P (i);. el orden de.

(27) CAPÍTULO 1.. Tabla 1.2: Tabla de sustitu ión de bits. ì P(i) ì P(i) ì P(i) ì P(i). 3.. 0 0 16 4 32 8 48 12. 1 16 17 20 33 24 49 28. 2 32 18 36 34 40 50 55. 3 48 19 52 35 56 51 60. 4 1 20 5 36 9 52 13. 5 17 21 21 37 25 53 29. 6 33 22 37 38 41 54 45. Fun ión de expansión de lave: PRESENT puede tener nadas en un registro. K. 7 49 23 53 39 57 55 61. 8 2 24 6 40 10 56 14. 9 18 25 22 41 26 57 30. 10 34 26 38 42 42 58 46. pLayer 11 50 27 54 43 58 59 62. 12 3 28 7 44 11 60 15. 13 19 29 23 45 27 61 31. 14 35 30 39 46 43 62 47. addRoundKey. uenta úni amente. lave de 80 bits, que serán alma e-. de di ho tamaño y serán enumerados. K79 K78 ....K0 .. ada ronda solo se mez larán los 64 bits más signi ativos de la nueva después de apli ar la fun ión de expansión de. Ki = k63 k62 ...k0. 15 51 31 55 47 59 63 63. laves de 80 o 128 bits de longitud, pero para este diseño e. implementa ión, se tomará en. lave. 13. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. lave. Pero en al ulada. lave, de tal manera que para la nueva. o viéndolo de otra manera, se debe realizar una rota ión de. bits de la siguiente forma:. Ki = k63 k62 ...k0 = K79 K78 ....K0. (1.16). Después de realizada esta rota ión del bloque de entrada, se deben realizar las siguientes opera iones para. •. ada nueva. Rota ión de los bits de la. subClave. generada. Ki :. lave de entrada:. [k79 k78 ...k0 ] = [k18 k17 ...k20 k19 ] •. Sustitu ión usando S-Box para el nibble de. k78. a. k76. (1.17). de la. lave:. [k79 k78 k77 k76 ] = S[k79 k78 k77 k76 ] •. Adi ión o mez la del nibble mediante la suma en en. k19. ampo. k15 de la 1 nito GF (2 ) a. lave. (1.18). on el. u opera ión. ontador de rondas,. XOR :. [k19 k18 k17 k16 k15 ] = [k19 k18 k17 k16 k15 ] ⊕ RoundCounter Ésta fun ión permite generar bloques de informa ión útiles de la la. lave del sistema. lave usada para. K. Las primeras Nk. ifrar, ya que la. omo. (1.19). sub laves. palabras de este arreglo (array). a partir ontienen. lave del usuario se mapea al arreglo (array). W, mientras que el resto de palabras se van generando a partir de estas primeras Nk palabras [10, 14℄. Ësta fun ión toma pansión de. onse utivamente de la se uen ia obtenida por la fun ión de ex-. lave bytes que va asignado a. ada sub lave. mismo tamaño que la matriz de estado. Es de ir, toma Para este. aso. Nb. es 16.. Ki, para. formar bloques del. N b ∗ 4 bytes para. ada vuelta..

(28) CAPÍTULO 1.. La genera ión de la. lave (expansión de. de igual forma al pro eso de. lave) para el pro eso de des ifrado se ha e. ifrado. La diferen ia está en la fun ión de sele. lave. En el pro eso de des ifrado se toman bloques de la lista de valores nales hasta llegar a los ini iales, que es la propia la última sub lave. 14. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. Ki. que se utilizó para. des ifrar [10, 14℄. Por lo. ión de. laves desde los. lave de usuario. Es de ir,. ifrar, será la primera que se utilizará para. ual, en el pro eso de des ifrado, se deben realizar todas. las rondas de genera ión de. laves para. pro eso inverso hasta llegar a la. omenzar desde ésta última. lave original, por ello el. de remental y realizar su mez la en. ada ronda. Ki, realizando el. ontador de rondas debe ser. on el nibble indi ado anteriormente.. 1.4. Estru tura de la implementa ión del algoritmo 1.. Diagrama de bloques:. DataPath. Debido a que todos los algoritmos de. ifrado, ya sea por bloques o por ujo, deben. dar toda la informa ión de su posible implementa ión, a una posible implementa ión (gura 1.10) mediante un. ontinua ión se muestra. DataPath. que da solu ión al. algoritmo, aunque di ha arquite tura muestra una posible implementa ión en hardware, es una de las mu has posibles implementa iones realizables desde la perspe tiva. Lightweight. pero no garantiza una optimiza ión del uso de los re ursos de hardware. del dispositivo programable [19℄. En otras implementa iones se usan bloques de memoria dedi ados de algunas FPGA's para lograr la menor usadas en el dispositivos, provo ando que la. antidad de. antidad de. ompuertas. i los de reloj para. ada. ronda se in remente [15℄.. Figura 1.10:. DataPath. de 16 Bits para. SBoxLayer. Al realizar una ronda se debe volver a realizar el. y. pLayer de Present. ál ulo de la. lave, en este. aso.

(29) CAPÍTULO 1.. subClave Ki.. En la gura 1.11 se muestran bloques fun ionales que podrían ser im-. plementados tanto en software. omo en hardware, ya que. diseñado para ser implementado en. Figura 1.11:. 2.. 15. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. DataPath. PRESENT. es un algoritmo. ualquiera de estas té ni as sin distin ión.. generador de. sub lave. del algoritmo. PRESENT. Algoritmo: Pseudo ódigo Ya que se propone darle solu ión al algoritmo, tanto desde el punto de vista hardware, omo desde el punto de vista software, se podría resumir la eje u ión del mismo, a un simple pseudo ódigo Este. ódigo se muestra a. ompilable en. ontinua ión en la gura 1.12:. Figura 1.12: Estru tura del algoritmo. Para. ualquier plataforma embebida software [14℄.. PRESENT. expresada en. ada una de las líneas de pseudo ódigo se debe. reali e las opera iones bási as de los algoritmos de. Pseudo ódigo. rear una fun ión o método que. ifrado en bloque. Para este. aso se. debe elegir, sí se utilizan fun iones ó sí se van a implementan tablas para realizar las opera iones de sustitu ión por nibbles para el de bits en la. apa. pLayer. [3, 11℄. En el. Sbox. y las opera iones de sustitu ión. aso del uso de memoria dinámi a, se aumenta. el tiempo de eje u ión por la realiza ión de los las tablas, se redu e el tiempo de pro esamiento. ál ulos ne esarios, pero en el on un. ompromiso en la. memoria para alma enar las tablas de sustitu ión. Ya que la. aso de. antidad de. antidad de memoria de. datos de este tipo de dispositivos es limitada, se requiere ha er una revisión de. uál. de las dos metodologías es la mas indi ada, por eso se propone realizar pruebas de.

(30) CAPÍTULO 1.. 16. FUNDAMENTACIÓN MATEMÁTICA Y ESTADO DEL ARTE. implementa ión para determinar. ual es el mejor tipo de metodología para garantizar. que el algoritmo realmente sea tipo Lightweight [7, 8, 28℄. 3.. Ve tores de Test Para realizar la veri a ión de que el algoritmo esté fun ionando. orre tamente,. los diseñadores del algoritmo [10℄, ofre en una tabla en nota ión hexade imal, que muestra una serie de textos planos, que al ser un. ierto texto. ifrado. ombinados. on. iertas. laves arrojan. ono ido. En la tabla 1.3 se muestran di hos ve tores:. Tabla 1.3: Ve tores de prueba para. plaintext 00000000 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF. PRESENT. key. ciphertext. 00000000 00000000 0000. 5579C138 7B228445. FFFFFFFF FFFFFFFF FFFF E72C46C0 F5945049 00000000 00000000 0000. A112FFC7 2F68417B. FFFFFFFF FFFFFFFF FFFF 3333DCD3 213210D2.

(31) CAPÍTULO. 2. Plataformas embebidas de diseño. En la última dé ada ha o urrido una evolu ión te nológi a en el. ampo de los dispositi-. vos digitales programables, lo que a su vez ha permitido un gran salto en las posibilidades de realizar desarrollos de alto rendimiento en dispositivos de bajo. osto [5℄. Un. plo de lo anterior es el estudio de la implementa ión de algoritmos de. lightweight. laro ejem-. ifrado ligero tipo. mi ro ontroladores ). en dispositivos programables de software embebido (. FPGA's ).. y en. dispositivos de hardware embebido ( A. ontinua ión, se realiza una revisión de las. sitivos, que para éste. ara terísti as relevantes de estos dispo-. aso son: las herramientas de programa ión y veri a ión, tenden ias. del mer ado, avan es en su arquite tura, desempeño, además de la genera ión de. ódigo. estándar que se pueda usar en posteriores diseños. Se toma. omo base para el diseño, un sistema fun ional que se subdividirá en varios. subsistemas, lo. ual. umple. on la metodología. Top-Down. [5℄.. El diseño de este sistema requiere una serie de fases, que pueden modi arse según la herramienta usada, en general tienen las siguientes. •. Des rip ión a nivel de sistema.. •. Des rip ión a nivel de. •. Valida ión (veri a ión).. •. Co-simula ión.. •. Estima ión de desempeño.. Cuando se implementan. ara terísti as [38℄:. omportamiento .. ada uno de los distintos sub-sistemas que. omponen el sistema. a nivel global, se eje utan los siguientes pasos para su respe tiva veri a ión y de esta forma es que se llega a un úni o sistema fun ional nal. A lo anterior se le denomina etapa de mapeo y parti ionamiento:. •. Entrada espe i a ión fun ional. 17.

(32) CAPÍTULO 2.. 18. PLATAFORMAS EMBEBIDAS DE DISEÑO. •. Salida Arquite turas HW/SW.. •. Me anismos de inter onexión.. •. Fun iones optimizando. •. Síntesis hardware en los diferentes niveles de abstra. •. Síntesis software algoritmos simples,. •. Síntesis de la interfaz a nivel de buses, me anismos de. osto, tiempo, área,. omuni a ión. ión.. on urrentes. omuni a ión.. 2.1. Diseño ESL Ele troni System Level El diseño de sistemas digitales en los últimos años ha tenido un salto enorme en la omplejidad y. apa idad de los sistemas, lo. y lenguajes de mas alto nivel, para poder. ual. onlleva a que se utili en herramientas. ambiar las espe i a iones de los diseños de. manera dinámi a. Todas estas té ni as tienen que ver iones a sistemas. on tratar de plantear metodologías que dan solu-. omplejos y donde se manejan. iertos niveles de abstra. ión para des ribir. estos sistemas [5℄; esta evolu ión de las herramientas y de los lenguajes usados, ha e que el diseño de sistemas digitales tome un los lenguajes. omo C/C++ y el. librerías en apli a iones. on alta. ará ter a nivel de sistemas [38℄, donde el uso de. odiseño HW/SW ha e que se pueda rehusar. Todas estas herramientas ha en que la bre ha entre el nuya y que se puedan realizar solu iones donde de los. ódigo y. omplejidad.. hardware. onvivan las dos. y el. software. se dismi-. osas. En la gran mayoría. asos se expresa el algoritmo software en C/C++, lo que ha e que fá il y rápido el. tiempo usado para veri ar el sistema. En general la idea es llegar a sistemas que se puedan des ribir mediante lenguajes de des rip ión de alto nivel, que permitan realizar parti iones HW/SW, aprove hando las ventajas de los lenguajes tipo C/C++ (Depuradores,. ompiladores, lenguajes estándar),. ademas de su fa ilidad para soportar diferentes niveles de abstra. ión.. El ESL da soporte a la des rip ión de sistemas, usando lenguajes tipo C/C++ que permiten el modelamiento tanto del software tas. omo el soporte de ve tores,. omo del hardware, aportando herramien-. on urren ia, sin roniza ión y manejo de ex ep ión, que. permiten que sean los mas ade uados para la des rip ión de ese tipo de sistemas.. 2.1.1. Diseño Top-Down Cuando se realizan desarrollos en sistemas digitales, una de las metodologías mas usadas es la de parti ionar el diseño en subsistemas mas pequeños, partiendo desde una espe ia ión fun ional hasta llegar a la realiza ión físi a de la te nología elegida [39℄..

(33) CAPÍTULO 2.. 19. PLATAFORMAS EMBEBIDAS DE DISEÑO. Cuando se dene la espe i a ión fun ional del sistema, se deben diseñar los subsistemas de tal manera que se permita la veri a ión y depura ión de estos en las primeras etapas de desarrollo. El uso de una jerarquía de diseño en éste método des endente permite parti ionar el sistema a diseñar en una serie de subsistemas de. omplejidad redu ida. omparados. on el. original, que pueden ser espe i ados y diseñados por diferentes grupos de trabajo[39℄. Con el diseño se bus a el uso de estru turas regulares,. ómo lo son los bloques RAM,. ROM y en general el uso de la ele tróni a digital bási a. La metodología Top-Down permite la reutiliza ión de diseños y permite que el sistema fun ional original sea usado. omo un subsistema en un diseño mas. omplejo. Di ha té ni a. requiere la deni ión y alma enamiento de librerías de diseño, así. omo la reutiliza ión. de diseños genéri os parametrizables [38℄. La reutiliza ión de bloques permite aumentar la onabilidad de un nuevo diseño, al presentar. omponentes probados y depurados, lo. ual. redu e la posibilidad de errores y el tiempo de desarrollo [39℄.. Fases para la implementa ión de una apli a ión: 1.. Fase de diseño. Es la primera fase del desarrollo lógi o. Aquí se tienen en. uenta los aspe tos involu-. rados en el diseño teóri o, desde la deni ión de las fun iones ne esarias a partir de las espe i a iones, hasta lograr una implementa ión de la solu ión a nivel digital. Esta fase. onlleva la realiza ión de las siguientes etapas:. • Planteamiento del problema: Consiste. en dar una. lara y. ión fun ional del problema a ser solu ionado, usando. ompleta des rip-. riterios que permitan. visualizar las ne esidades del requerimiento.. • Des rip ión:. La des rip ión de los diferentes módulos HW puede ha erse de. diversas maneras, entre las. uales están: e ua iones Booleanas, tablas de verdad,. diagramas de tiempo tabulados, tablas de estado, un lenguaje de alto nivel, diagramas esquemáti os, diagramas de estado, et . 2.. Fase de simula ión Consiste en apli ar niveles a las entradas y probar las respuestas en las salidas, para asegurar que el diseño lógi o de entrada opere generan los ve tores de diseño, los. orre tamente. En este paso se. uales pueden ser derivados dire tamente de las. tablas de verdad, de los diagramas de tiempo o de la forma es ogida para des ribir el sistema [39℄. En el. aso de los algoritmos de. los desarrollos enfo ados a la uno de las rondas y para el 3.. ifrado por bloques y en general en. riptografía, se requieren ve tores de prueba para ifrador. ada. ompleto.. Parti ión En esta etapa se de ide el tipo de implementa ión. on la que se realizará el diseño;. se debe espe i ar las entradas y salidas del sistema, ademas se debe de idir si el módulo se desarrollará usando té ni as de hardware o software. Se bus a que los subsistemas de hardware sean de baja. omplejidad y los que se reali en en software.

(34) CAPÍTULO 2.. sean de mayor. 20. PLATAFORMAS EMBEBIDAS DE DISEÑO. omplejidad. Además, se bus a que la interfaz de usuario sea de manejo. natural [39℄. Caben en la. ategoría software, implementa iones de módulos. on base. a mi ro ontroladores. 4.. Fase de implementa ión El diseñador debe ini ialmente sele ión de. ionar el tipo de te nología para la implementa-. ada módulo [39℄. Los módulos des ritos en forma esquemáti a son dire ta-. mente implementables mediante el uso de lenguajes de des rip ión de hardware para un PLD, o usando fun iones en lenguaje C para los mi ro ontroladores. 5.. Do umento Al nalizar el pro eso de diseño e implementa ión de un sistema, se debe re opilar la do umenta ión para. ada una de las etapas. Esto es de gran importan ia para la. determina ión de posibles errores y problemas, además de permitir la abstra las fun iones de. ión de. ada subsistema fun ional y de esa manera se pueda mantener y. orregir el diseño de manera simple y organizada [38℄.. 2.1.2. Planea ión de tareas Después de tener. ada una de las tareas de los subsitemas, se requiere que el diseñador. reali e un esquema de planea ión de eje u ión, dejando eje utarán las a En el y. laro en que instante de tiempo se. iones.. aso del hardware, se requiere dejar. laro la fun ión de. omo se logrará la sin roniza ión de los mismos, ya que. manera. ada uno de los bloques. ada uno de ellos se eje utan de. on urrente y se debe espe i ar los tiempos de eje u ión de. ada subsistema para. evitar errores de datos o eje u ión errónea del algoritmo [39℄. La manera mas fá il y que umple. Path,. on la metodología. en el. llamada. ual,. Top-Down. es la de realizar un esquema de diseño tipo. ada uno de los subsistemas es. unidad de ontrol. Data-. ontrolado por una máquina de estados. que se en argará de realizar las a. iones de sin roniza ión sobre. ada subsistema, hasta lograr la eje u ión del algoritmo de manera satisfa toria.. 2.1.3. Co-diseño Al tenerse sistemas heterogéneos que pueden software de manera independiente o. on la metodología. omponentes de Hardware y. ombinada, se requiere que el diseñador posea habi-. lidades en el uso de los lenguajes de programa ión se debe poseer la. ontener omo. C/C++ y HDL's [39℄,. además,. apa idad de dividir el sistema total en bloques fun ionales siguiendo. Top-Down. y diseñado, le permitan. rear. fun ionamiento de estos dos En esta etapa de. que al momento de tener el sistema totalmente espe i ado anales y formas de. omuni a ión para veri ar el. omponentes, de manera independiente y. o-diseño. se requiere un. ono imiento de. (Hardware y Software), para de esta manera generar los. orre to. ombinada.. ada una de las plataformas. anales o rutas de. omuni a ión. y veri a ión entre éstas dos entidades que ha en parte del diseño digital moderno, para este. aso espe i o, al implementar algoritmos de. ierta. omplejidad en las plataformas. anteriormente nombradas, se requieren herramientas o metodologías para el diseño, implementa ión y genera ión de pruebas del diseño total..

(35) CAPÍTULO 2.. En este. Data-path, que originalmente fue ontrolado FSM y al nal del trabajo se ontroló por un Soft-Core PLD y en ual se orrió un ódigo en C para realizar. aso, se generó un hardware tipo. por una máquina de estados nitos libre, que fue implementado en el. pruebas de veri a ión de fun ionamiento del sistema, además de tareas de tanto. 21. PLATAFORMAS EMBEBIDAS DE DISEÑO. on la plataforma embebida software. omo. omuni a ión. on algunas pruebas realizadas. on el uso. de un PC. Por otro lado, uidado en realizar. uando se generó la solu ión tipo software embebido, se tuvo espe ial ada una de las partes o fun iones del mismo de tal manera que pudiera. ser implementado en una apli a ión de mas alto nivel, mediante el uso de fun iones y métodos estándar que permitieren el uso de memoria dinámi a y reuso del esto se planeó teniendo en. ódigo. Todo. uenta que al nal del diseño se pudiera utilizar el. omo una librería que fuese llamada en otra apli a ión y a futuro en sistemas. (Sistemas Operativos en Tiempo Real).. on. ifrador. RTOS. 2.2. Plataformas soporte PLD's. aptos para portar el al-. optimizado para este prototipo, teniendo en. uenta la arquite tura,. Se estudiaron mi ropro esadores, mi ro ontroladores y goritmo. PRESENT. pre io,. ompiladores disponibles, lenguajes de programa ión soportados, memoria, velo i-. dad y fa ilidad de adquisi ión en Colombia [11℄.. 2.2.1. Plataformas embebidas software 1. Multipro esador PROPELLER, del. ual se ven las. ara terísti as en la tabla2.1, es. un multipro esador produ ido por Parallax In . Posee una arquite tura úni a, que ontiene o ho pro esadores que los o ho pro esadores,. omparten pines de salida y re ursos. Cada uno de. ono idos. omo COG, es de 32 bits [11℄.. Tabla 2.1: Cara terísti as del multipro esador PROPELLER. Microprocesador Lenguaje Soporta ANSI C/C++ Compilador Arquitectura MIPS Ancho del busde datos Memoria Velocidad de reloj Sistema de desarrollo Empaquetado Perifericos disponibles Disponibilidad en el pais Precio chip (COP). Propeller Spin, Asm-Propeller No Propeller Tool Multinucleo 20-160 32bits 2Kb RAM cada COG. 32Kb RAM 32Kb ROM 20 Mhz Si DIP 40 pines y QFN 44 KeyBoard-Mouse PS/2, VGA, AUDIO,UART Si 30000. Fuente:Parallax. In ..

(36) CAPÍTULO 2.. 22. PLATAFORMAS EMBEBIDAS DE DISEÑO. 2. Mi ro ontroladores Mi ro hip PIC16F/PIC18F/PIC24FJ/PIC32, es una de las familias de dispositivos más usados en Colombia, en sus diferentes gamas y tipo de. on todo. ara terísti as y empaquetados. En la tabla 2.2 se muestra una visión general. de los dispositivos produ idos por Mi ro hip In ., los. uales, son de uso masivo en. el país. Además, varias empresas representan y distribuyen estos produ tos. Di hos dispositivos tienen un amplio respaldo y las universidades poseen las li en ias de sus ompiladores en C/C++, lo que ha e que sean muy atra tivos y de fá il uso. En este. aso se. onserva una. importante su. ompatibilidad en. uando al uso de sus pines y lo mas. ompilador es estándar para las familias 16F, 18F y 24F. Tabla 2.2: Cara terísti as de los PIC's. Microprocesador. PIC16F. PIC18F. PIC24FJ. PIC32. Lenguaje Soporta ANSI C/C++ Compilador Arquitectura MIPS Ancho del bus de datos Memoria Velocidad max de reloj Sistema de desarrollo Empaquetado. ASM, C/C++ Si Mplab XC8, Picc CCS RISC Microchip 5 8 bits. ASM, C/C++ Si Mplab C18, Picc CCS RISC Microchip 10 8 bits. ASM, C/C++ Si Mplab XC16, Picc CCS RISC Microchip 20 16 bits. ASM, C/C++ Si Mplab XC32 MIPS 124 32 bits. 0.5-2Kb RAM 1-32Kb ROM. 0.5-4Kb RAM 1-96Kb ROM. 2K-16Kb RAM 8-128Kb ROM. 8K-32Kb RAM 32-512Kb ROM. 20 Mhz NO DIP/SOIC/QFN UART,SPI, I2C, ADC10Bit,PWM Si 5000-10000. 40 Mhz SI DIP/SOIC/QFN. 48 Mhz SI DIP/SOIC/QFN. 80 Mhz SI TQFP/QFN/XBGA. Perifericos disponibles Disponibilidad en el pais. Precio chip (COP). Fuente:Mi. PIC16 +CAN, USB Si 13000-35000. IGUAL PIC18F Si 13000-40000. IGUAL PIC18F NO 5-10 USD. ro hip In ., Su onel, Sigma Ele tróni a. 3. Mi ro ontroladores Atmel, son una de las familias más fuertes y signi ativas en el mer ado de 8 bits a nivel mundial, siendo la familia AVR una de las más signi ativas y. on mejor arquite tura en esta gama, ésta. ompañía fabri a los dispositivos ha e. ya varios años, pero en el último lustro ha mejorado bastante su. ampo de a. ión. gra ias a la in lusión del módulo Qtou h; en la tabla 2.3 se muestran algunas de sus prin ipales. ara terísti as. Tabla 2.3: Cara terísti as de los AVR's. Microprocesador Lenguaje Soporta ANSI C/C++ Compilador Arquitectura MIPS Ancho del bus de datos Memoria Velocidad max de reloj Sistema de desarrollo Empaquetado. AVRTiny ASM, C/C++ Si AVR studio RISC 20 8 bits 0.5-2Kb RAM 2-8Kb ROM 20 Mhz NO DIP/SOIC/QFN. AVRMega ASM, C/C++ Si AVR studio RISC 20 8 bits 1-16Kb RAM 16-128Kb ROM 20 Mhz NO DIP/SOIC/QFN. AVR32 ASM, C/C++ Si AVR-GCC,Avr_OS, AVR Studio RISC 33 32 bits hasta 32Kb RAM 256Kb ROM 66 Mhz SI LQFP. Perifericos disponibles Disponibilidad en el pais Precio chip (COP). UART,SPI, I2C, ADC10 bits. Igual Tiny +PWM, Qtouch,RTC. QTOUCH, UART, SPI, ADC12. Si 2500-5000. Si 5000-23000. Si 15000-27600. Fuente:Atmel. In ., Sigma Ele tróni a.

(37) CAPÍTULO 2.. 4. Texas Instruments, históri amente una de las experien ia en la produ bastante fuerte, en. 23. PLATAFORMAS EMBEBIDAS DE DISEÑO. ompañías mas grandes y. on mayor. ión de mi ro ontroladores, tiene una familia que ha sido. uanto al manejo y. onsumo de poten ia. omo lo es el MSP430,. además de esto, di ha empresa a adquirido la li en ia del nú leo ARM y a puesto una serie de periféri os y hardware adi ional,. on varios sistemas de desarrollo bastante. e onómi os. En la tabla 2.4 se muestra un listado de sus. ara terísti as.. Tabla 2.4: Cara terísti as de los Texas. Microprocesador Lenguaje Soporta ANSI C/C++ Compilador Arquitectura MIPS Ancho del bus de datos Memoria Velocidad max de reloj Sistema de desarrollo Empaquetado. MSP430 ASM, C/C++ Si. TI Stellaris ASM, C/C++ Si. IAR Kic start, Code Composer. IAR Kic start, Code Composer. RISC 16 16 bits 0.5Kb RAM 8-16Kb ROM 16 Mhz SI DIP/SOIC. ARM Cortex M 0 32 bits hasta 32Kb RAM 256Kb ROM 80 Mhz SI LQFP. Perifericos disponibles. UART,SPI, I2C, ADC10 bits, IrDA, ultra lo po er. igual MSP 30 +8 UART, I2C, SPI, US. Disponibilidad en el pais Precio chip (COP)-KIT. Si 2500-3 000. Si 3 000-82000. Fuente:Texas. In ., Ele tronilab. o. 5. Cypress Semi ondu tors, es una de las. ompañías que más ha in ursionado en el. mer ado de éstos dispositivos en los últimos años, gra ias a la versatilidad de sus dispositivos, tiene la gran ventaja de poseer bloques re ongurables análogos y digitales, lo que ha e que sea perfe to para trabajo. on señales mixtas y le permite tener. un sin número de periféri os según las ne esidades del usuario. Di has. ara terísti as. se muestran en la tabla 2.5. Estos bloques re ongurables apare en desde la familia Pso 1 de 8 bits, junto nú leos ARM. on las familias Pso 4 y Pso 5 al adquirir la li en ia de los. ortex M0 y M3 respe tivamente, lo que lo ha e. a las herramientas de programa ión, librerías y. RTOS.. 6. FreeS ale, a tualmente ha sido una de la empresas y módulos extra en sus. uanto. on mayor in lusión de periféri os. hips y sus sistemas de desarrollo. En la tabla 2.6 se muestran. dos de sus sistemas de desarrollo más desta ados osto, tomando en. ompatible en. on distribu ión en el país de bajo. uenta sus módulos y fun ionalidades. Por otro lado, un ítem. importante y que lo ha e muy atra tivo, es su proto olo de programa ión tipo SDA, el. uál le permite ser dete tado. omo un dispositivo de alma enamiento masivo y la. programa ión del dispositivo úni amente se resume a mover un ar hivo a su Una de las. ara terísti as que ha e que estos sistemas de desarrollo sean espe ialmen-. te atra tivos, es que son parti ipes del proye to Mbed (www.mbed.org), el fa ilidades de programa ión por su ya que su. arpeta.. ódigo libre y abierto, el. ual da. ual no requiere li en ia,. ompilador es online. Éste proye to tiene la gran ventaja de soportar múlti-. ples plataformas ARM, ha iendo que el. ódigo sea totalmente portable, tomando las.

Figure

Figura 1.1: Pro
eso Criptográ
o
Figura 1.3: Esquema de 
riptografía Simétri
a
Figura 1.6: Cifrado en Flujo
Figura 1.7: Cifrado en Bloque
+7

Referencias

Documento similar

El ratón de ordenador fue creado por Douglas Engelbart y Bill English en los años 60 en el Stanford Research Institute (California) y mejorado posteriormente por Xerox en sus

Una de las cuestiones clave para la implementación de este modelo de gestión es establecer el conjunto de herramientas tecnológicas (tanto hardware como software) necesarias

El desarrollo de la investigación está dirigido a la implementación de un sistema para monitorear los software y hardware de las computadoras en la Dirección

Estado, con información almacenada y con un dato adicional, C) Pruebas de integración del software y hardware a través de lectura de código QR y reconocimiento del

Herramienta tecnológica que coadyuva en la administración de los procesos de las y los militantes y simpatizantes, basada en un conjunto de componentes (hardware y

IV. Está relacionada con la ingeniería de sistemas, dado que al construir software en general estamos construyendo a la vez un sistema compuesto al menos por software, hardware

Las solicitudes de reconocimiento presentadas, en las que se aleguen créditos obtenidos en títulos universitarios oficiales de Máster Universitario o Doctor (Períodos de

En el contexto del proyecto de desarrollo de una metodología de codiseño hardware/software para sistemas de procesamiento radar, se presenta en este capítulo, inicialmente