Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DEPARTAMENTO DE POSGRADO
Directores:
M. en C. María Aurora Molina Vilchis
Dr. Ramón Silva Ortigoza
La seguridad en las Wireless Sensor Networks (WSN) es una de las razones que
están limitando su desarrollo e implementación práctica. Si bien los Mobile Transmission
Elements (MOTE), núcleo de las WSN, han avanzado en capacidades de procesamiento
y consumo de energía; las redes inalámbricas sin infraestructura que los soportan, hasta
hoy, sólo han atendido aspectos básicos sobre los protocolos de ruteo requeridos, pero no
así los protocolos de seguridad necesarios en el umbral entre las capas física y de enlace de
datos. Los ataques a los que pueden estar sujetas estas redes no son diferentes a los que se
presentan en redes como Internet, no obstante los objetivos que persiguen los adversarios
pudieran causar mucho más daño directo, dadas las aplicaciones que tienen las WSN
sobre todo en el aspecto militar, automatización del hogar o domótica, salud y ecología.
Es por ello que este trabajo tiene como objetivo el modelar, simular e implementar un
protocolo de autenticación de nodos basado en el esquema de infraestructura de llave
pública o PKI para redes WSN experimentales con topología de estrella.
Abstract
Security in Wireless Sensor Networks (WSN) is one of the main factors for it’s under
development on practical applications. Even thought, the Mobile Transmission Elements
(MOTE), main element in this kind of nets, have developed better processing capacities
and reduced their energy consumptions, but there are only basic schemes for security on
the WSN. It is required to WSN to have security schemes on the physical and linking
layer, related to the OSI model. Attacks on WSN are not different to those on any
network, but they could be more harmful because of the kind of duties that they handle.
This is the main reason to research on security for WSN, focusing on node authentication.
The main objective on this work is developing, modeling and simulate an authentication
protocol for experimental WSN based on Public Key Infraestructure in a star topology.
Dedicatoria
A los amigos, siempre prestos en la palabra o en el acto de apoyo. Todos ellos reivin-
dican y dan sentido a la palabra.
A los olvidados, todos aquellos que con su interacción diaria facilitan las labores y
los éxitos de los que intentamos ver lejos. Estamos sin duda sentados en hombros de
gigantes.
Agradecimientos
A mi segundo director de tesis, el Dr. Ramón Silva Ortigoza, por compartir su visión
de la ciencia y la tecnología. Por sus posiciones contrastadas y el respeto a toda prueba
ofrecido siempre generosamente.
A mis revisores, la Dra. Magdalena Marciano Melchor, el Dr. Edgar Alfredo Portilla
Flores, el Dr. Víctor Manuel Silva García y el M. en C. Juan Carlos Herrera Lozada por
el tiempo dedicado a la lectura, análisis y aportaciones a este trabajo.
Al Dr. Miguel Lindig Bos, por su apoyo y confianza como amigo y jefe.
A todos mis amigos, compañeros y alguna vez subordinados. A los seis que decidieron
emprender esta aventura conjuntamente.
A mis maestros, por mostrarnos día a día el compromiso que requiere la digna labor
de enseñar, mi agradecimiento y reconocimiento por ello.
Índice general
1. Introducción 1
1.1. Origen y evolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Wireless Sensor Networks . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Objetivo del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.6. Recursos empleados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7. Organización del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2. Autenticación en la WSN 19
2.1. Arquitectura de la WSN . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2. Redes de un solo salto versus redes de múltiples saltos . . . . . . . . . . . 20
2.3. Movilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1. Metas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.2. Modelo de seguridad por capas en la WSN . . . . . . . . . . . . . 25
2.4.3. Autenticación de nodos . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.4. Primitivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.5. Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4.6. Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5. Infraestructura de clave pública (PKI) . . . . . . . . . . . . . . . . . . . 29
2.5.1. El problema de la factorización de números grandes . . . . . . . . 30
2.5.2. Cálculo de logaritmos discretos en un campo finito grande. . . . . 31
2.5.3. La desaparición de la criptografía simétrica . . . . . . . . . . . . . 32
2.5.4. Estructura de PKI . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.5. Consideraciones sobre PKI . . . . . . . . . . . . . . . . . . . . . . 33
2.5.6. Esquemas criptográficos de clave pública . . . . . . . . . . . . . . 34
2.5.7. Métodos de generación de claves . . . . . . . . . . . . . . . . . . . 35
2.5.8. Problemas de distribución de claves . . . . . . . . . . . . . . . . . 37
2.5.9. Ataques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.10. Requisitos para la implementación en los MOTE . . . . . . . . . . 41
ix
x ÍNDICE GENERAL
5. Conclusiones 83
5.1. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.2. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.3. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Referencias 85
A. Matemático 93
A.1. Número primo fuerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
A.2. Algoritmo de Gordon para la generación de primos fuertes [1] . . . . . . 93
A.2.1. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
A.3. Algoritmo extendido de Euclides [1] . . . . . . . . . . . . . . . . . . . . . 94
A.4. Teorema de Fermat [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
A.5. Exponenciación modular [1] . . . . . . . . . . . . . . . . . . . . . . . . . 95
A.5.1. Documentos de soporte . . . . . . . . . . . . . . . . . . . . . . . . 96
F. Programas 135
F.1. MTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
F.1.1. Algoritmo de acuerdo de la llave MTI1 . . . . . . . . . . . . . . . 135
F.2. RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
F.2.1. Código de encripción/decripción . . . . . . . . . . . . . . . . . . . 138
F.2.2. Firma HASH basada en SHA-1 . . . . . . . . . . . . . . . . . . . 144
F.3. Forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
F.3.1. Código base de la forma . . . . . . . . . . . . . . . . . . . . . . . 145
1
Se han eliminado todos los acentos en el código presentado, aunque en Visual Basic son soportados,
la herramienta de edición usada para el trabajo tiene limitantes con los caracteres a desplegar.
Índice de figuras
xiii
xiv ÍNDICE DE FIGURAS
Introducción
1
2 CAPÍTULO 1. INTRODUCCIÓN
1
Una red sin infraestructura es aquella que no requiere de puntos de acceso a la misma [6].
2
Mesoescala en Meteorología se refiere al estudio de sistemas del tiempo atmosférico cuyas dimen-
siones horizontales generalmente oscilan de cerca de 9 km a varios centenares de km. Ejemplos de
sistemas de mesoescala meteorológica son las brisas de mar, complejos mesoescalas convectivos, etc. [7].
3
Conjunto de reglas que especifican el intercambio de datos u órdenes durante la comunicación entre
sistemas [8].
1.2. WIRELESS SENSOR NETWORKS 3
clara al analizar hechos de la historia reciente que al parecer pasaron desapercibidos por
estar rodeados de cotidianidad. En 1973, algunas compañías retiran los cables telefónicos
terrestres y los reemplazan por torres de transmisión, dando origen al concepto de células
de comunicación y como resultado de ello las redes de telefonía celular [10], con más de
2.8 mil millones de celulares en uso y más de 1.6 millones introducidos cada día [2]. Para
1997, retirar los cables a las computadoras de escritorio dio paso a los equipos portátiles o
“laptops”, dispositivos que al ejercer esta “libertad” impulsaron de manera significativa
el desarrollo y uso de las redes inalámbricas. Solamente dos años después, en 1999 se
comenzó con la administración de tareas y el monitoreo de fenómenos de manera remota;
la representación del mundo físico llevada hacia el mundo digital. Pero el futuro no sólo
es brillante, también contiene oscuros. Lidiar con tantos dispositivos inalámbricos, de
acuerdo con [3], resultaría impráctico. Además, la seguridad y privacidad es todavía un
tema mayor no atendido del todo. Quizá el espectro radio eléctrico no será suficiente
para atender la demanda [11], y en el mediano plazo pueden aparecer sistemas que al
converger e interconectarse, crearán nuevos paradigmas con sus problemáticas asociadas.
En una red de sensores existen diferentes tipos de dispositivos, los cuales son identifi-
cados de acuerdo con las funciones que realizan dentro del sistema. Los estándares rela-
cionados, como el estándar del Institute of Electrical and Electronics Engineers (IEEE)
802.15.4, distinguen los dispositivos basándose en la complejidad de su hardware y en sus
capacidades [17]. Dicho estándar define dos clases de dispositivos físicos: el Full Function
Device (FFD) y el Reduced Function Device (RFD). La diferencia principal entre ambos
es la cantidad de componentes que contiene cada uno de ellos y cuánta funcionalidad
del estándar puede ser implementada. Por lo que el FFD tendrá la cantidad de memoria
y recursos necesarios para ejecutar todas las funciones y funcionalidades establecidas en
el estándar. Incluso podrá asumir responsabilidades adicionales en el esquema de red,
llegando a comunicarse con otro tipo de redes. Un RFD es un dispositivo de capacidades
reducidas, para abatir costos y complejidad en los dispositivos. Típicamente contiene
su interfaz física hacia el modem inalámbrico y ejecuta el protocolo de acceso al medio.
Más aún, generalmente sólo se puede asociar con un FFD. Basados en los FFD y RFD
se pueden definir una serie de dispositivos lógicos. Los dispositivos lógicos se conforman
de acuerdo con la combinación de las capacidades físicas y las responsabilidades que se
les asigna en la red. En este sentido, se pueden definir tres categorías de dispositivos
1.2. WIRELESS SENSOR NETWORKS 5
Coordinador
Full Function Device (FFD)
Reduced Function Device (RFD)
punto a punto con un mínimo de proceso de ruteo, ya que usa el ruteo multisalto. Esta
topología es ideal para aplicaciones con alta tolerancia a la latencia4 en los mensajes.
Otra de sus características es que se auto organiza y soporta la redundancia en la red,
lo que permite un alto grado de resistencia a las fallas y adicionalmente se auto reparan.
El cúmulo puede ser significativamente grande, comprendiendo hasta 255 subcúmulos
con hasta 254 nodos terminales en cada uno de ellos, para un total de 64770 nodos en la
IEEE 802.15.4. Este tipo de topología puede abarcar áreas muy amplias. Cualquier FFD
puede ser coordinador y solamente existe uno. El coordinador forma el primer cúmulo y
le asigna un identificador o Cluster ID (CID) con valor cero. Los cúmulos subsecuentes
son formados con una cabeza de cúmulo designada para cada uno. Generalmente, ca-
da red utiliza identificadores de 16 bits. En esta topología el nodo coordinador asume
responsabilidades que incluyen el administrar la lista de dispositivos asociados; el inter-
cambio de tramas o paquetes de datos entre dispositivos de la red; la asignación de las
direcciones de 16 bits, también conocida como dirección corta, a cada dispositivo de la
red; generación de señales periódicamente para identificar el estado de la red así como
los parámetros de los dispositivos asociados.
De acuerdo con [19] para cualquier uso práctico de las WSN la comunicación entre
nodos no es suficiente. La red tiene que tener la capacidad de interactuar con otros
dispositivos, por ejemplo aquellos conectados a Internet. Un escenario se muestra en la
Figura 1.3.
Internet
Usuarios
remotos
Nodo
Compuerta
Figura 1.3: Una red WSN con un nodo como compuerta habilitando el acceso a clientes
remotos vía Internet.
Desde este punto de vista, la WSN tiene la capacidad de intercambiar datos con
un algún otro dispositivo móvil o con alguna clase de compuerta que le provea de la
conexión física hacia Internet. Lo anterior tiene que ver con la capa física y la de enlace5 .
Independientemente de la topología utilizada en una WSN se requiere de una serie
4
En redes informáticas de datos se denomina latencia a la suma de retardos temporales dentro de
una red. Un retardo es producido por la demora en la propagación y transmisión de paquetes dentro
de la red.[18]
5
Se refieren a las capas manejadas en el modelo de referencia OSI.
1.2. WIRELESS SENSOR NETWORKS 7
de servicios, como por ejemplo el acceso a otro tipo de redes. Pero la acumulación y
el análisis de los datos no pueden ser realizados por los nodos sensores, sin importar
el tipo físico al que correspondan, por lo que se requiere de una estación base que
contenga las aplicaciones para tal propósito. La estación base también es utilizada para
la configuración de la red y en algunos casos incluso de los nodos.
La función de la compuerta, por otro lado, sí puede ser realizada por un FFD que
contenga los programas necesarios. La asignación del nodo que tendrá esta función se
puede identificar también de la Fig. 1.2. Para el caso de la topología en estrella Fig.
1.2(a), es obvio que será el nodo coordinador. Lo cual amplía las responsabilidades del
mismo y le añade procesamiento, sin mencionar que hace a la red más vulnerable al tener
un solo elemento con todas las responsabilidades; la pérdida del mismo haría colapsar la
red. Para la topología de malla Fig. 1.2(b), la compuerta puede ser asignada a cualquiera
de los nodos coordinadores, la selección final de su asignación pudiera estar relacionada
con criterios de cercanía hacia la estación base o bien la fortaleza de la señal de un
nodo coordinador con respecto de la red a la cual se quiere enlazar la WSN. En algunos
casos, la responsabilidad podría ser dinámicamente asignada a los nodos coordinadores
aludiendo a los criterios ya mencionados. Para una red en malla la pérdida de un nodo
coordinador no significa el colapso de la red e incluso la función de compuerta puede
ser relevada a otro nodo coordinador para mantener todas las funciones. Para el caso de
una red en clúster en árbol Fig. 1.2(c) la elección de la compuerta se basa también en la
selección del nodo coordinador que llevará esta responsabilidad, una vez más se puede
utilizar el criterio de cercanía hacia la estación base o la red alterna, sin embargo se
debe tener en cuenta la jerarquía de los nodos coordinadores, por lo que sería preferible
asignarla al nivel más alto de la jerarquía, es decir, el nodo coordinador con el CID más
bajo. Al igual que en la red de malla, la pérdida de un nodo coordinador no significa el
colapso de la red, a lo más una reorganización de la misma.
Con toda esta flexibilidad, características y funciones asociadas a las redes sin in-
fraestructura y por herencia a las WSN, se podría pensar que no existen puntos débiles
en ellas, situación que está muy lejos de la realidad. En [20] se identifican algunos de los
retos y debilidades que deberán superar las WSN para convertirse realmente en ubicuas6 .
Algunas de las limitaciones de las WSN, sin circunscribirse a ellas, son los problemas
de tamaño y capacidad de los nodos, factores de energía, costo de los nodos, factores
ambientales, factores en los canales de transmisión, la administración de la topología,
su complejidad y la distribución de nodos, la implementación bajo estándares en lugar
de soluciones propietarias, los problemas relacionados con la escalabilidad y problemas
de seguridad. Sin duda todos estos retos y debilidades son relevantes y deberán de ser
superados, sin embargo no todos tienen el mismo peso o influencia para la adopción
masiva de las WSN. Dependiendo de la aplicación, los aspectos de seguridad pueden ser
los críticos [22]. Las WSN deben habilitar la detección de intrusos y al mismo tiempo
ser tolerantes a las fallas para proveer una operación confiable, aunque es común que los
nodos sensores no estén protegidos en contra de manipulaciones o ataques.
6
La ubicuidad de las tecnologías está dada por la disponibilidad de servicios, procesos e información
vinculada a ellas en cualquier lugar y en todo momento [21].
8 CAPÍTULO 1. INTRODUCCIÓN
sostenido por más tiempo. Por lo que el Dr. Clark ha propuesto una nueva arquitec-
tura para la Internet y redes colaborativas que contemplen desde un inicio otro tipo
de elementos adicionales, como son: seguridad, protocolos, movilidad e instrumentación.
Con respecto a la seguridad la Internet debe autenticar a los equipos y personas que
se comunican. Los nuevos protocolos deberán integrar mejores acuerdos de ruteo entre
proveedores de servicios de Internet les permitirían colaborar en servicios avanzados sin
comprometer sus negocios. Con respecto de la movilidad, el asignar direcciones del pro-
tocolo de Internet a dispositivos pequeños como sensores, teléfonos y procesadores inter
construidos en automóviles les permitiría conectarse a la Internet de manera segura. Por
último, la instrumentación permitirá que todos los elementos activos de la red tengan
la posibilidad y habilidad de detectar y reportar problemas emergentes a los adminis-
tradores de las redes. Se puede deducir que el Dr. Clark identifica en sus trabajos, de
manera indirecta, que dispositivos tan básicos como los sensores pueden contribuir de
manera importante al caos existente en la red, más aún cuando él estima que en veinte
años la cantidad de dispositivos en la red será de un billón. De los cuales, la mayoría
serán dispositivos de capacidades reducidas como los sensores que conforman los nodos
de las WSN.
La propuesta de mejoras en la arquitectura y la consideración de elementos de seguri-
dad en nodos sensores o MOTES corresponde inicialmente a un grupo de investigación de
la Universidad de California en Berkeley [38]. En este trabajo no solamente se establece
la propuesta de una arquitectura genérica para MOTES, al mismo tiempo presentan
un prototipo y un sistema operativo basado en eventos que reside y funciona en el dis-
positivo. El sistema operativo denominado TinyOS, de un tamaño de 178 bytes, podía
propagar eventos en el tiempo que le tomaba copiar 1.25 bytes a su memoria. Otro punto
a resaltar, es que el documento es previo a las consideraciones del Dr. Clark y que en
si mismo se constituye como el primer documento de uso público sobre los desarrollos y
tecnologías de las WSN. Al igual que el Dr. Clark, el documento mencionado, conside-
raba en el 2005 que una de las limitantes de la evolución de la Internet era su falta de
seguridad, [30] coincide en que los aspectos de seguridad son también una de las causas
por las que las aplicaciones prácticas de las WSN no se han dado a la fecha. Relacionado
con los aspectos de seguridad en vehículos utilizando un esquema de autenticación con
preservación de la identidad, este trabajo utiliza técnicas de firma ciega que permiten
a los vehículos interactuar con infraestructura vial de manera anónima. Manifiestan al
mismo tiempo que existen pocos trabajos que atiendan aspectos de seguridad como la
privacidad y la autenticación en redes sin infraestructura. Este trabajo está fechado a
principios de 2008. El campo de la criptografía es el que se ocupa de dar solución a estas
necesidades, lo cual nos da pie para poder establecer una clasificación de los artículos
consultados. En una búsqueda exhaustiva y para fines de esta propuesta de protocolo
de tesis, se identificaron los siguientes trabajos relacionados con aspectos de autenti-
cación en WSN, redes Ad hoc y Mobile Ad hoc Networks (MANET). De los cuales,
6 están relacionados con autenticación de llave pública [27, 29, 31, 32, 39, 40], 4 con
autenticación de secreto compartido [24, 34, 41, 42], 2 con funciones hash [34, 43], 2 con
criptografía de umbral [33, 44], 2 en esquemas de confianza [26, 45] y los 3 restantes con
10 CAPÍTULO 1. INTRODUCCIÓN
esquemas mixtos [28, 30, 38]. En número total de referencias recuperadas para temas
de seguridad en WSN, MANET y Ad hoc fueron 85 y para temas relacionados con los
mismos tópicos, pero no necesariamente relacionados con seguridad, fueron un total de
529 referencias. De acuerdo con los datos estadísticos presentados, se coincide en que
son pocos los trabajos relacionados con aspectos de autenticación para las WSN. En
los párrafos siguientes se profundizará en lo expuesto en los trabajos seleccionados para
establecer el estudio del estado del arte.
Debido a que este trabajo se centra en la autenticación, sería conveniente definir
qué es y algunos conceptos relacionados. De acuerdo con [46] la palabra autentico se
refiere a algo que no es falso o una imitación, pero también es ampliamente aceptada
la acepción relacionada con la veracidad de un hecho. La autenticación consiste de dos
actos: primero, el acto de proporcionar pruebas de la autenticidad de la información que
es enviada o almacenada, y segundo, el acto de verificar las pruebas de autenticidad de
la información recibida o recuperada. La autenticación de un cliente significa que un
cliente deseando obtener acceso a una red presenta su identidad con un conjunto de cre-
denciales, como prueba de la autenticidad de la identidad presentada. Las credenciales
son entonces usadas por la red para verificar que la identidad realmente pertenece a ese
cliente. Intencionalmente se ha utilizado la palabra cliente, ya que la misma se puede
interpretar como un dispositivo o un ser humano. Por esta razón, la autenticación de
clientes debe ser dividida en dos categorías: autenticación de dispositivos y autenticación
de usuarios. Mientras que la autenticación de usuarios y dispositivos se encarga de ase-
gurar que los actores en el proceso de comunicación son legítimos y quiénes dicen ser. La
autenticación de los mensajes, por otra parte, se asegura de verificar la integridad de los
datos. Es decir, la protección de la integridad de los datos tiene por finalidad prevenir
el intento malicioso de corromper o modificar los datos de un mensaje. La autenticación
es un mecanismo mediante el cual también se puede proveer o determinar privilegios, a
esto se le llama autorización. El privilegio puede otorgar accesos a un recurso, como por
ejemplo el acceso a un medio de comunicación, a una base de datos, a una computadora
o a muchos otros servicios provistos por una red.
La eficiencia de una WSN depende de que los datos sensados sean correctos. Al mis-
mo tiempo, la seguridad es importante para prevenir que agentes externos (personas o
dispositivos) puedan recuperar información correcta de ella. Se proponen los mecanismos
de autenticación como contramedida de ataques internos y externos. La colaboración vo-
luntaria entre nodos asume el acceso al medio, el descubrimiento de rutas y el reenvío de
paquetes entre otros servicios. Cuando los nodos son autónomos, no quieren compartir
información o son maliciosos en una red de gran escala, la suposición inicial deberá cam-
biar necesariamente. Por lo cual también es requerida la autenticación de los nodos. En
[24] se proponen dos protocolos para la autenticación entre sensores, uno directo y otro
cooperativo. El directo utiliza un esquema estático y el cooperativo uno adaptivo. Ambos
protocolos garantizan implícita y probabilísticamente la autenticación sin proceso signi-
ficativo en los nodos con o sin la presencia de una estación base. El esquema de seguridad
utiliza una técnica de generación pseudoaleatoria de llaves basada en el identificador de
sensor como semilla. En [42] se presenta la problemática del uso de llaves de acuerdo
1.3. ESTADO DEL ARTE 11
a la misma de forma directa; ya que puede fallar durante el tiempo de vida del protocolo
o incluso puede ser atacada, comprometiendo todo el sistema. Se propone el distribuir
en una serie de nodos alternos el papel de PKG, de esta manera no habría un solo PKG
en la red. Incluso nuevos elementos podrían serlo bajo ciertas circunstancias de arquitec-
tura, permisos y requerimientos de hardware satisfechos. Adicionalmente, proponen un
acuerdo de llaves en las contrapartes de manera no interactiva. Para [27], es más viable
un sistema de autenticación multiusuario mediante broadcast7 el cual permite a muchos
usuarios autenticarse y unirse a la WSN dinámicamente. Objeta que los mecanismos
de llave pública proveen estos servicios pero no cumplen con la seguridad, escalabilidad
y eficiencia simultáneamente. Presenta un esquema de autenticación llamado Identity-
based Multi-user Broadcast Authentication Scheme (IMBAS), basado en la identidad
y un broadcast multiusuario. El broadcast lo dividen en dos categorías que emplean
dos primitivas criptográficas diferentes. Los usuarios del broadcast se aseguran con una
firma basada en identidad sin la necesidad de par (pairing-free); el emisor del broadcast
es asegurado mediante una firma Schnorr8 con recuperación parcial de mensaje para op-
timizar la eficiencia. La llave privada de los usuarios es protegida mediante contraseña
para resistir posibles ataques.
Como se ha descrito, para asegurar la interoperabilidad con redes actuales, se ha
reutilizado mucha de la interacción entre cliente-servidor de las tecnologías de Internet
con pequeños cambios para propiciar la comunicación entre pares que se da en la redes
Ad hoc. Se desarrollaron métodos para el descubrimiento de servicios, manejo de se-
siones y seguridad que puedan ser utilizados en redes sin infraestructura. El marco de la
arquitectura propuesto en [29] habilita el uso seguro y dinámico de los servicios en redes
Ad hoc. Se basa en tres piedras fundamentales: administración local de los dispositivos
así como de la autorización y autenticación de los mismos, descubrimiento seguro de
servicios y administración segura de las sesiones. Los cuales están presentes en el uso se-
guro de cualquier servicio y son tradicionalmente utilizados en las arquitecturas basadas
en servidores. El marco utiliza un esquema de llave pública para la autenticación. Una
de la ventajas que se aprecian es que usuarios que se conocieron previamente se pueden
autenticar entre ellos, aún si no hay una aplicación específica de por medio y toda la
criptografía relacionada a la autenticación es realizada localmente. Un usuario o nodo
debe tener la tabla de certificados de los demás usuarios o en su caso obtenerla de la red
para luego verificarla de manera local.
Asegurar una red sin infraestructura de una manera completamente auto organizada
es efectivo y requiere de poco procesamiento, pero falla cumpliendo con la iniciación de
la confianza, es decir, en la autenticación. La propuesta de [32] defiende que es nece-
sario construir una relación de confianza bien establecida sin asumir nada y propone un
7
Broadcast, en castellano difusión, es un modo de transmisión de información donde un nodo emisor
envía información a una multitud de nodos receptores de manera simultánea, sin necesidad de reproducir
la misma transmisión nodo por nodo [47].
8
En criptografía, una firma Schnorr es una firma basada en la intratabilidad de ciertos problemas de
logaritmos discretos. Esta considerada como el esquema de seguridad más simple que pueda considerarse
segura entre los modelos aleatorios, es eficiente y genera firmas cortas [48].
14 CAPÍTULO 1. INTRODUCCIÓN
1.5. Metodología
Para alcanzar el objetivo, se propone la siguiente metodología u objetivos particu-
lares:
Autenticación en la WSN
En este capítulo se presentan los aspectos teóricos y definiciones sobre los aspectos
físicos y lógicos de las redes WSN, así como de los aspectos de seguridad involucrados en
el trabajo; en dónde se establece el concepto de seguridad, sus metas, alcances, métodos,
etc. Por último, se trata la definición y composición de la infraestructura de llave pública
(PKI), fundamento del protocolo propuesto en el capítulo 4, el cual es una combinación
de una serie de protocolos presentados durante el capítulo 3.
Cuando los MOTE son introducidos a un contexto de red inalámbrica, se pueden
presentar diversos escenarios de aplicación a alto nivel. Escenarios concretos con obje-
tivos de optimización y de organización dan origen a su vez a arquitecturas o arreglos
funcionales de los MOTE denominadas arquitecturas de las WSN. En ellas se involucran
los mecanismos de los protocolos y principios que constituyen la diferencia de las WSN
con respecto de otro tipo de redes. Para que las capacidades de las WSN puedan ser
aprovechadas es necesaria una interfaz de servicio adecuada, así como su integración en
redes de amplio contexto.
19
20 CAPÍTULO 2. AUTENTICACIÓN EN LA WSN
que puede proveer información. Esto es, típicamente un nodo sensor; incluso puede ser
un nodo actuador que suministra retroalimentación de su operación, esto es, un RFD.
Una pila o sumidero, por otra parte, es el nodo en dónde se requiere la información,
generalmente un FFD. Y esta a su vez puede ser clasificada en tres opciones: 1) puede
pertenecer a la red sensores como un nodo sensor/actuador cualquiera. 2) puede tratarse
de un dispositivo externo utilizado para interactuar con la red, como una computadora
portátil o un dispositivo de mano. 3) puede ser un dispositivo externo que permite la
comunicación con otro tipo de redes haciendo las veces de compuerta. Las solicitudes de
información pueden provenir de cualquier dispositivo que tenga acceso a la red de origen
del dispositivo. Esta clasificación se puede observar de manera gráfica en la Figura 2.1.
Figura 2.1: Tres tipos de sumideros en una red de sensores de un solo salto.
sumidero, como una solución ante el problema de la faltante de línea de vista. Este con-
cepto se ilustra en la Figura 2.2 y es particularmente útil en las WSN ya que los nodos
sensores pueden actuar como estaciones repetidoras sin la necesidad de equipamiento
adicional. Dependiendo de la aplicación, resulta altamente probable el encontrar una
estación repetidora intermedia entre una fuente y un sumidero, sin embargo, y sin im-
portar lo corto de una ruta entre ambos, no existe ninguna garantía de que ésta exista.
Mientras que el uso de la técnica de multisalto resulta evidente para resolver los
problemas de alcance, no resulta tan obvio que aporte mejoras sustanciales en el uso
eficiente de la energía utilizada en la comunicación. El razonamiento detrás de esta
afirmación está relacionado con el hecho de que la atenuación de las señales de radio
es al menos cuadrática, en la mayoría de los ambientes (usualmente es mayor), por lo
que utilizar repetidores consume menos energía que la que requeriría una comunicación
directa.
Debe señalarse que las WSN operan en el paradigma de store and forward (almacena
y reexpide)1 . En este modelo, un nodo debe recibir correctamente un paquete de datos
antes de poder retransmitirlo. Alternativamente, aproximaciones novedosas incluso in-
tentan aprovechar la recepción de paquetes con error, en dónde múltiples nodos envían
el mismo paquete y cada transmisión individual no puede ser recibida, pero colectiva-
mente, un nodo puede reconstruir el paquete original con partes de las transmisiones.
1
Es una técnica en telecomunicaciones en la cual información es enviada a una estación intermedia
dónde es retenida para ser reenviada con posterioridad a la estación final o a otra estación intermedia.
La estación intermedia o nodo, en un contexto de red, verifica la integridad del mensaje antes de hacer
su reenvío. En general, esta técnica es utilizada en redes con intermitencia en la conexión, es especial
en sitios agrestes o bien con alta movilidad. También es preferida en situaciones en dónde se presentan
grandes retrasos en la transmisión, dónde la transmisión es variable, tiene alta tasa de errors o bien si
una conexión punto a punto no es viable [50].
22 CAPÍTULO 2. AUTENTICACIÓN EN LA WSN
Figura 2.3: Múltiples fuentes y/o múltiples sumideros. Note cómo, en el escenario de
la mitad baja, ambos sumideros y fuentes activas son utilizados para enrutar datos a
ambos extremos de la red.
2.3. Movilidad
En los escenarios mencionados todos los participantes son estacionarios. Pero una de
las virtudes de la comunicación inalámbrica es su habilidad para soportar participantes
móviles. En las WSN dicha movilidad puede aparecer de tres formas:
2.4. SEGURIDAD 23
1. Movilidad del nodo. La movilidad del nodo depende de la aplicación, por ejemplo,
en control ambiental la movilidad es nula; pero en la observación de fauna silvestre
es la regla común.
2. Movilidad del sumidero. Aunque esto puede ser considerado como un caso especial
de movilidad de nodo, el aspecto importante a tomar en cuenta es que el sumidero
puede no ser parte de la red de sensores, por ejemplo, la solicitud de una per-
sona con un dispositivo de mano caminando por un edificio inteligente. En el caso
más simple, el solicitante puede interactuar con la WSN en un punto y completar
su interacción antes de moverse. En muchos casos, las interacciones consecutivas
pueden tratarse por separado, como peticiones sin relación. Dónde el solicitante
de información puede tener interacción con todos los nodos y no solamente con
algunos de ellos, lo cual constituye una selección de diseño en las capas de los
protocolos de comunicación. Un sumidero móvil resulta particularmente intere-
sante, sin embargo, si la información solicitada no se encuentra de manera local
debe ser recuperada de alguna estación remota de la red. Si el solicitante tiene la
limitante de únicamente comunicarse con los nodos a su alcance, quizá se tendría
que desplazar a otro punto para tener acceso a los datos solicitados. Una red en-
tonces podría ser diseñada para ofrecer asistencia a los solicitantes móviles de tal
manera que sus solicitudes de datos los siguieran y alcanzaran sin importar sus
movimientos.
El diseño de una WSN y por ende su arquitectura debe brindar soporte apropiado
para la aplicación específica en la cual será utilizada ya que está determinará la forma o
formas de movilidad que pueden darse. Si bien la movilidad de eventos es menos común,
no resulta ajena a muchas aplicaciones básica como los sistemas físicos de detección de
intrusos o de presencia.
2.4. Seguridad
2.4.1. Metas
Dado que las WSN pueden ser instaladas en diferentes ambientes, la seguridad es
un asunto importante que debe ser atendido; para que éstas funcionen adecuadamente,
24 CAPÍTULO 2. AUTENTICACIÓN EN LA WSN
Figura 2.4: Área de nodos sensores detectando un evento (elefante) que se mueve a través
de la red.
sobre todo en ambientes hostiles como campos de batalla o incluso en aplicaciones del
hogar [51]. Sin importar la aplicación, cuando se habla de seguridad, usualmente se
tienen que cumplir las siguientes metas u objetivos:
Autenticación. Asegurar que los datos son enviados realmente por el que reclama
ser el autor.
Capa de
Aplicaciones Agregación segura
Figura 2.5: Pila del protocolo en las WSN y las defensas de su seguridad.
del modelo de referencia OSI3 , en ella se establecen las diferentes capas o niveles que
intervienen en la comunicación de las WSN. En la columna derecha se presentan las
contramedidas que se pueden establecer para evitar ataques en cada una de las capas.
Todo ello relacionado con dos objetivos principales, preservar la autenticación y detectar
intrusiones.
Independientemente de los ataques que se puedan realizar al protocolo criptográfico,
se pueden ejecutar ataques a la infraestructura, como se puede observar en la Figura 2.5,
por ejemplo, en la capa física se puede efectuar el jamming (boqueo o interferencias),
el atacante simplemente distorsiona la comunicación de radiofrecuencia. Una forma de
hacerlo es colocando nodos sensores cerca de los nodos de la red que transmitirán con-
tinuamente señales de radio en la frecuencia de radio de la red. Especialmente cerca
del nodo llamado sink o sumidero, afectando la comunicación con los nodos sensores de
la red. Para evitar esto es posible usar esquemas de modulación robustos a las interfe-
rencias, por ejemplo técnicas de frequency hopping o direct-sequence spread spectrum
[54, 55, 56].
En la capa MAC (Medium Access Control), un ataque puede tomar conocimiento de
la cantidad de energía para perturbar los protocolos de la capa de enlace, especialmente
los protocolos MAC, sobre todo en los basados en paquetes RTS/CTS tales como los
protocolos PAMAS y S-MAC. Siempre que el nodo reciba un RTS proveniente de un nodo
, puede responder el atacante con una señal para interferir cualquier CTS que pueda
enviar el nodo . Como consecuencia no tiene oportunidad de transmitir. En general
no hay una medida efectiva contra este tipo de ataques. El atacante puede explorar los
protocolos MAC para preservar la energía [57, 58].
La capa de red no es ajena a ataques, existen diversos tipos que se describen a
continuación [59, 60]: 1) Ataque a un nodo de salida. Se presenta cuando un nodo, que
sirve como intermediario o como punto de colección o agregación, deja de funcionar
por causa de un ataque malicioso. 2) Corrupción de mensajes. Los ataques contra la
integridad de un mensaje ocurren cuando un intruso se inserta entre el origen y el
destino para modificar el contenido de un mensaje. 3) Negación de servicio. Este tipo
de ataque puede presentar las siguientes formas: ataque por interferencia en el enlace de
radio o puede tratar de agotar los recursos para que el nodo pierda la ruta de los datos.
En [61] se identifica algunos ataques DoS que incluyen los ataques denominados “el hoyo
negro”, “agotamiento de recursos”, “hoyos sumidero”, “introducción de loops de ruteo”,
“hoyos de gusano”, e “inundación de mensajes HELLO” que son utilizados para atacar
los protocolos de ruteo. 4) Análisis de tráfico. Aunque las comunicaciones pueden ser
encriptadas, en un análisis de causa y efecto, los patrones de tráfico y la actividad de
los sensores pueden revelar información útil para el adversario o para destruir la misión
de la red. La transmisión de direccionamiento y ruteo en claro puede ayudar al análisis
de tráfico. El análisis de tráfico es el término que se refiere a las capturas y análisis del
3
El modelo de referencia de Interconexión de Sistemas Abiertos (Open System Interconnection, OSI)
lanzado en 1984 fue el modelo de red descriptivo creado por la International Standard Organization;
esto es, un marco de referencia para la definición de arquitecturas de interconexión de sistemas de
comunicaciones [53].
2.4. SEGURIDAD 27
2.4.4. Primitivas
Desde el punto de vista del verificador, la salida de un protocolo4 de autenticación
es la aceptación de la identidad del demandante, o bien la terminación sin aceptación
(repudio). Más específicamente, los objetivos de un protocolo de identificación incluyen:
1) En caso de contrapartes honestas A y B; A es capaz de autenticarse exitosamente
ante B, B completará en protocolo aceptando la identidad de A. 2) B no puede reutilizar
un intercambio de identificación con A para tratar de identificar a un tercero C, esto
1
es llamado transferibilidad. 3) La probabilidad es mínima, como máximo 280 cuando se
trabaja con la función Hash-SHA, de que una contraparte C distinta de A, ejecutando el
protocolo y tomando el papel de A pueda causar que B complete y acepte la identidad
de A, esto es llamado falsificación de identidad. Sin importar el número de procesos de
autenticación llevados a cabo, los puntos previos deben conservarse como verdaderos en
todo momento. Esto puede observarse en la Figura 2.6.
4
Conjunto de reglas que especifican el intercambio de datos u órdenes durante la comunicación entre
sistemas [8].
28 CAPÍTULO 2. AUTENTICACIÓN EN LA WSN
A B A B C B
A A A
Llave de A Llave de C Llave de A
2.4.5. Métodos
Los mecanismos o métodos de autenticación utilizados pudieran ser considerados co-
mo inadecuados desde el punto de vista de la seguridad informática en la actualidad.
Sin embargo, son necesarios para poder entender métodos de autenticación más sofistica-
dos como el protocolo de autenticación extensible (Extensible Authentication Protocol,
EAP), especialmente porque éste fue originalmente diseñado como una extensión de los
métodos básicos.
De acuerdo con [51] por mucho tiempo los usuarios han obtenido acceso a redes
mediante conexiones alámbricas dónde se utilizan servicios de marcado hacia los mo-
duladores demoduladores (modem) de los proveedores de servicio. La mayor parte de
estos servicios utilizan un Point-to-Point Protocol (PPP) que fue diseñado para proveer
una serie de funcionalidades en la capa de enlace del modelo de referencia OSI. En
este protocolo se aceptan varios métodos de autenticación, principalmente el Password
Authentication Protocol (PAP) y el Challenge Handshake Protocol (CHAP).
Un método de autenticación muy popular surgido del mundo de la telefonía celular
(GSM) es el Subscriber Identity Module (SIM). El SIM es una tarjeta inteligente de
hardware que es configurada para la identidad específica de un subscriptor y la cual es
insertada en el aparato celular.
Más recientemente, se ha compensado a utilizar la infraestructura de llave pública
(Public Key Infraestructure), la cual puede autenticar tanto mensajes como usuarios.
Dentro de los métodos criptográficos, también encontramos a las firmas digitales, los
certificados y las funciones Hash.
2.4.6. Evaluación
Los métodos mencionados evalúan las credenciales presentadas de diversas formas
antes de autenticar usuarios, mensajes o dispositivos. En el PAP, un demandante pro-
porciona sus credenciales (usuario y palabra clave) hacia el verificador. El verificador
genera una solicitud de autenticación encapsulando las credenciales del usuario en un
marco del protocolo que tendrá como respuesta cualquiera de los estados ya mencionados
con anterioridad. Es importante mencionar que aunque las credenciales son encapsuladas,
la información esté en texto claro, es decir, sin protección alguna. Por ello algunos proto-
2.5. INFRAESTRUCTURA DE CLAVE PÚBLICA (PKI) 29
colos más recientes como Remote Access Dial-In User Service (RADIUS) protegen estos
datos ocultándolos. Para evitar el enviar información sensible sin protección, el protocolo
CHAP fue una respuesta inicial. En lugar de directamente preguntar por una palabra
clave, el servidor genera un valor aleatorio (el reto) y espera que el usuario provea una
respuesta al reto basado en su conocimiento de un secreto que ambos comparten. El
usuario toma el reto y usando la clave compartida calcula la respuesta. El verificador
realiza los mismos cálculos y compara los resultados, si ambos resultados concuerdan, el
usuario es autenticado. Ambos protocolos, PAP y CHAP, contrario a la creencia general,
son únicamente de autenticación y no contienen componente alguno de encripción.
Debido a la poca flexibilidad de PPP en los mecanismos de autenticación, se optó
por desarrollar el EAP. EAP da la posibilidad de elegir uno de los dos métodos de
autenticación (PAP o CHAP) así como los parámetros de autenticación, como la función
hash a utilizar, durante la fase de negociación del protocolo. Cuando EAP es utilizada,
esto se hace en la fase de autenticación del protocolo por lo que la autenticación real se
hace en sus fases posteriores.
Otro procedimiento es la autenticación basada en SIM, la cual está basada esen-
cialmente en mecanismos de reto/respuesta, la tarjeta SIM es presentada con un reto
aleatorio llamado RAND (128 Bits) por la parte verificadora. El procesador criptográfico
del SIM genera una respuesta denominada (SRES) basada en un algoritmo específico
y una llave que está grabada en su memoria. El servidor de la parte verificadora
conserva una copia de la llave y realiza la misma operación del , compara los
resultados con los de la recibida del SIM para realizar la autenticación. Además
de la , la tarjeta produce una llave de encripción () que es utilizada para la
encripción del tráfico en el enlace inalámbrico, lo cual se puede expresar de la manera
siguiente:
[ ] = ( ) (2.1)
La tripleta ( ) nos permite un método de autenticación que no sólo
sirve para el propósito inicial, sino que además provee de mecanismos de encriptación
y aunque es considerado como un método de autenticación de usuarios, en realidad es
un método de autenticación de dispositivos. Ya que la tarjeta SIM puede ser removida
del teléfono y ser usada por un usuario diferente, con las ventajas y desventajas que ello
pueda acarrear. La realidad en estos dispositivos es que aún contando con la posibilidad
de trabajar con una clave de usuario programada por el usuario para accesar los servi-
cios contratados, esta posibilidad es pocas veces utilizada. Se sustituye por mecanismos
dependientes del aparato telefónico que son fácilmente franqueables o simplemente no
se usan por considerarlos poco prácticos. En dispositivos limitados como los MOTE su
implantación es inviable, al menos en la actualidad.
de realizar siete multiplicaciones de una reducción modular grande, realizamos tres mul-
tiplicaciones más pequeñas y tres reducciones modulares simples, como se aprecia a
continuación:
8 mod = ((2 mod )2 mod )2 mod (2.4)
7
Un campo consiste de un conjunto y de dos operaciones suma: + → y producto: × →
tales que cumplen con las propiedades conmutativas, asociativas, inversos para la suma y el producto;
así como con el nulo aditivo y multiplicativo y adicionalmente con la distributividad del producto sobre
la suma [68].
32 CAPÍTULO 2. AUTENTICACIÓN EN LA WSN
Los usuarios y entidades finales son aquellos que poseen un par de claves (pública
y privada) y un certificado asociado a su clave pública. Utilizan un conjunto de
aplicaciones que hacen uso de la tecnología PKI para validar firmar digitales, cifrar
documentos para otros usuarios, etc. [62].
Las operaciones criptográficas de clave pública, son procesos en los que se utilizan
algoritmos de cifrado que son conocidos y están accesibles para todos. Por este motivo la
seguridad que puede aportar la tecnología PKI está fuertemente ligada a la privacidad
de la llamada clave privada y los procedimientos operacionales o Políticas de seguridad
aplicados, ya que ni los algoritmos de cifrado más fuertes sirven de nada, si por ejemplo
una copia de la clave privada protegida por una tarjeta criptográfica (smart card) se
guarda en un disco duro convencional de una computadora conectada a Internet.
1 2 3 4 5 6
A crea un mensaje A encripta el A envía el mensaje B recupera el mensaje B desencripta el mensaje B lee el mensaje
para B mensaje con la (SMTP, X.400,etc.) (SMTP, X.400,etc.) de A con su propia llave
llave pública de B privada
n S
o h u e
J
ll
Bi
RED
Para: B Para: B
A B C D A B C Llave pública
Sellado del A firma el Se comprime el Encripción del Decompresión Se examina el sello B verifica la firma
mensaje mensaje con su mensaje mensaje con una del mensaje para verificar la de A con la llave
(MD5,SHA1) llave privada (Zip, Rar) llave de sesión (Unzip) integridad del pública de A
(RSA,DSA) aleatoria (IDEA, CAST, mensaje (RSA,DSA)
Triple DES) y la llave (MD5,SHA1) Llave privada
pública de B
(RSA, Diffie-Hellman)
importar el método utilizado, alguna forma de etiquetado de las llaves es necesaria para
guiar a las partes involucradas en el uso de las claves establecidas. Diferentes aplicaciones
podrían requerir diferentes etiquetas para el mismo tipo de llave.
Aunque los dos métodos previos usan métodos electrónicos de comunicación ya sea
para el transporte o el acuerdo de las llaves, no se puede garantizar que no existirá
la intervención manual de un administrador. Por ejemplo: Cuando se usa el método
de empaquetamiento de la llave, las partes deben de haber establecido un esquema de
confianza, ya que ambas comparten la llave del empaquetado. Esta llave de empaquetado
pudo haber sido establecida y almacenada en ambas máquinas por el administrador.
Cuando partes de las llaves son transportadas para que puedan ser combinadas con otros
secretos para generara las claves de sesión, esos “otros secretos” pueden ser secretos de
largo término establecidos por los administradores. Cuando los métodos DH e IKE son
usados alguna clase de autenticación es requerida entre las dos partes para asegurar
que ambas partes son quien dicen ser, de tal manera que las llaves se establezcan entre
pares legítimos. Esta autenticación es frecuentemente realizada sobre las bases de un
conocimiento previo pre establecido, esto se llama secreto pre compartido y algunas veces
es establecido por un administrador. La única forma de evitar cualquier establecimiento
manual de llaves es mediante el uso de llave pública en el método de llave de transporte.
El método más reconocido de distribución manual de llaves es la configuración de
palabras clave usadas para la autenticación de señales. Un usuario puede presentar su
palabra clave para su uso en PAP, o bien utilizar la palabra clave para generar la res-
puesta a un reto en CHAP.
La Figura 2.10 muestra la forma en que opera un sistema de encripción asimétri-
co con una administración de llaves centralizada o nodo certificador. En este caso, la
Figura 2.10(a) representa el modelo de encripción y la Figura 2.10(b) el proceso de
desencripción, orientado a la autenticación de la información.
Llavero E
de B
D
Transmisión
cifrada
Entrada Salida
Texto Claro Algoritmo de Algoritmo de Texto Claro
encripción desencripción
a) Encripción
Llavero E
de A
D
Transmisión
cifrada
Entrada Salida
Algoritmo de Algoritmo de
Texto Claro Texto Claro
encripción desencripción
b) Autenticación
llaves; en la Fig. 2.11(b) dónde los usuarios fueron seccionados en dos partes, se requiere
la distribución de 12 llaves; para el caso de un sistema máximo véase la Fig. 2.11(c), en
donde cada miembro del grupo requiere comunicación con todos los demás miembros, se
requiere la distribución de 21 llaves.
a b c
KDC
para la distribución. Debido a la naturaleza recursiva del problema, los sistemas crip-
tográficos de llave secreta no pueden resolver este problema solos. Por lo que fue desa-
rrollada la PKI para atender esta problemática y otras adicionales.
2.5.9. Ataques
Al igual que en la encripción simétrica, la encripción de llave pública es vulnerable
a los ataques11 de fuerza bruta. La contramedida utilizada es la misma en ambos casos,
el uso de llaves grandes. Sin embargo, los sistemas de llave pública dependen del uso de
ciertas funciones matemáticas inversibles. La complejidad de cálculo de esas funciones no
debe escalar linealmente con respecto del número de bits de la llave sino más rápido. Por
lo que el tamaño de la llave debe ser lo suficientemente grande para hacer que un ataque
de fuerza bruta sea impráctico pero lo suficientemente pequeño para que la encripción
y decripción sea práctica. Otra forma de ataque es tratar de encontrar alguna forma de
calcular la llave privada una vez obtenida la llave pública. A la fecha, no ha sido probado
matemáticamente que esta forma de ataque no sea factible para algún algoritmo de llave
pública, por lo que todos ellos pueden ser objeto de intentos. La historia del criptoanálisis
ha mostrado que un problema que parece irresoluble desde una perspectiva, puede tener
una solución si se ve de una manera totalmente diferente. Finalmente, existe una forma
de ataque particular de los sistemas de llave pública, el cual, en esencia, es un ataque de
mensaje probable. Supóngase que un mensaje que debe ser enviado consiste de una llave
de 56 bits. Un adversario podría encriptar todas las posibles llaves de 56 bits usando
la llave pública y con ello poder descubrir la llave encriptada al cotejar el texto cifrado
transmitido. En este caso, sin importar lo largo de la llave del esquema de llave pública,
el ataque se reduce a un ataque de fuerza bruta sobre una llave de 56 bits.
11
Un ataque es un asalto a la seguridad de un sistema que se deriva de una amenaza inteligente, la
cual es un intento deliberado (especialmente en el sentido de método o técnica) para evadir los servicios
de seguridad y/o violar las políticas de seguridad de un sistema [77].
2.5. INFRAESTRUCTURA DE CLAVE PÚBLICA (PKI) 41
Las condicionantes que determinan la selección del hardware son varias. El tipo de
aplicación, por ejemplo, determina el consumo de energía que tendrá el dispositivo, así
como su tiempo de procesamiento de información. Otro punto determinante en extremo,
es la disponibilidad del dispositivo, es decir, la posibilidad de poder contar con él. Algunos
de los dispositivos relacionados en la tabla o en el Apéndice C, están a nivel de prototipo
42 CAPÍTULO 2. AUTENTICACIÓN EN LA WSN
o bien son propiedad de instituciones, por lo que no son de carácter comercial. Aún
en los de carácter comercial se tienen limitantes para su adquisición, desde problemas
de localidad, pasando por problemáticas de precio o bien de regulaciones en diferentes
países.
Estableciendo la diferencia entre dispositivos FFD y RFD, la selección de un hard-
ware debe ir encaminada hacia una familia de dispositivos que compartan no sólo su
arquitectura, si no que adicionalmente permitan esta flexibilidad de agregar o retirar
componentes, o al menos tener la posibilidad de inhabilitarlos para que no consuman
recursos de ella.
La complejidad del cálculo de las llaves utilizadas en los esquemas de llave pública y
la necesidad de una distribución eficiente de las llaves, así como su resguardo son tareas
que podrían estar al alcance de las capacidades actuales de los dispositivos mostrados
en la Tabla 2. Sin embargo, el tiempo de cálculo y el consume de recursos de energía que
son dos bienes preciados para funciones operativas se verían afectados, para descargar
el trabajo de cálculo de los MOTE, las WSN basadas en EB resuelven muchas de las
limitaciones que pudiera presentar el cálculo de las claves y la generación y distribución
de los certificados. La EB puede verse entonces como una AC.
Capítulo 3
El presente capítulo tiene por objetivo presentar los componentes que serán utilizados
para la construcción de la propuesta de protocolo discutida en el capítulo siguiente.
Durante el desarrollo del capítulo 3 se presentan los algoritmos que serán utilizados, así
como la arquitectura de los dispositivos seleccionados y algunas de las interacciones que
se establecerán entre ellos.
Sistema de Sistema de
localización movilización
MOTE
Memoria
CPU
FLASH
Comunicación Transmisor/
de datos Receptor
Sensor
Fuente de energía
43
44 CAPÍTULO 3. PROTOCOLO DE AUTENTICACIÓN DE NODOS
P2_3
P2_2 32/64/128 KB
FLASH
P2_1
8051 CPU MEMORY
P2_0 DMA CORE ARBITRATOR
8 KB
P1_7 SRAM
P1_6
I/O CONTROLLER
P1_5
IRQ FLASH
P1_4 CTRL WRITE
P1_3
ADC AES
P1_2 AUDIO/DC ENCRIPTION RADIO REGITERS
8 CHANNELS &
P1_1 DECRIPTION
P1_0
CSMA/CA STROBE
PROCESSOR
P0_7
P0_0
TIMER 2
(IEEE 802.15.4 MAC TIMER)
SYNTHESIZER
FREQUENCY
RECEIVE TRANSMIT
CHAIN CHAIN
TIMER 3 (8-bit)
TIMER 4 (8-bit)
RF_P RF_N
Rápido
Video
Datos
WiFi Voz
802.11
a/b/g/n
Celular
Bluetooth
802.15.1
ZigBee
802.15.4
Lento
Cerca Lejos
Rango
Octetos: 2 1 4 a 20 n 2
Número
Información de la
Subcapa Control
de marco
de
Secuencia dirección Carga de paga FCS
MAC de datos
PPDU
Está trama puede albergar hasta 104 bytes de información de datos, su tamaño
máximo es de 127 bytes. Tiene un número de secuencia para permitir el re ensamblado
y la retransmisión. Adicionalmente incluye una Frame Check Sequence (Secuencia de
Verificación de la Trama o FCS) la cual establece una estructura robusta para prevenir
errores en la transmisión. Para el caso de la trama de reconocimiento o aceptación de
3.1. REQUISITOS DE DISEÑO 47
Octetos: 2 1 2
Número de
Control de
Subcapa marco
Secuencia FCS
de datos
MAC
MHR MFR
Octetos: 4 1 1 5
Capa Delimitador
Secuencia Longitud
Inicio de MPDU
Física Preámbulo del marco
Marco
11
PPDU
Octetos: 2 1 4 a 20 1 n 2
Número
Información de la
Subcapa Control
de marco
de
Secuencia dirección
Tipo de
comando Carga de paga FCS
MAC de datos
PPDU
Octetos: 2 1 4 a 10 2 k m n 2
Número Número
Información de la
Subcapa Control
de marco
de
Secuencia dirección
Control
de marco
de
Secuencia
Tipo de
comando Carga de paga FCS
MAC de datos de datos
Octetos: 4 1 1 7 + (4 ó 10) + k + m + n
Capa Secuencia
Delimitador
Longitud
Preámbulo
Inicio de
del marco PSDU
Física Marco
PPDU
entre dispositivos afines, es decir, un nodo solicita información o que se ejecute algún
comando y que los resultados le sean comunicados, aunque sea solo el acuse de recibido.
La segunda forma, es estableciendo una comunicación entre un dispositivo y un equipo
de cómputo, con lo cual, adicionalmente, se puede establecer comunicación con otros
nodos en la red.
Llaves Nodos
(en1, dn1)
(en2, dn2)
(en3, dn3)
Certificados ... (en1, dn1)
Genera
Administra
Firmas Revoca n1
SEB Tarjeta de desarrollo (en2, dn2)
Certificados n2
(en3, d n3)
n3
(en4, d n4)
Estación Base
(eEB, d EB ) n4
(en5, d n5)
n5
Los 16 canales de la banda ISM en 2.4 GHz, que es la banda más utilizada ac-
tualmente, están separados por 5 MHz entre cada uno de ellos y todos son altamente
tolerantes al ruido electromagnético, de hecho, el protocolo tiene el mejor comportamien-
to en entornos con baja Signal-Noise Ratio (Relación Señal-Ruido o SNR) como se puede
ver en la Figura 3.10.
Para evitar los ataques involuntarios de negación de servicio, el protocolo ZigBee,
como otras tecnologías inalámbricas debe dividir el ancho de banda disponible para ser
compartido entre todos los usuarios y señales, para lo cual se utilizan varios métodos
para la división de recursos: el Frequency Division Multiple Access (Acceso Múltiple por
División de Frecuencia o FDMA), el Time Division Multiple Access (Acceso Mútliple
3.3. NECESIDADES DE AUTENTICACIÓN 51
1E-0
Bluetooth
ZigBee
1E-9
-10 0 +15
por División de Tiempo o TDMA), o el Code Division Multiple Access (Acceso Múltiple
por División de Código o CDMA) y dentro de este último una variación denominada
Direct Sequence Code Division Multiple Access (Acceso Múltiple por División de Código
de Secuencia Directa o DS-CDMA). Todos estos métodos de acceso múltiple tienen
ventajas y desventajas, por ello, el protocolo ZigBee utiliza la combinación de dos de
ellos, FDMA y DS-CDMA, obteniendo como consecuencia una mayor robustez ante el
ruido o interferencias como se puede ver en la Figura 3.11.
los dispositivos para hacer migraciones dinámicas de canal con confirmación hacia los
miembros autenticados de la red. De esta manera, ante la saturación de uno de los
canales, la red completa se movería de frecuencia y podría contrarrestar el ataque.
Como se puede observar, los beneficios de los esquemas de seguridad en las WSN
son amplios, en especial aquellos relacionado con la autenticación de los nodos. Una
infraestructura para la autenticación basada en PKI conlleva múltiples beneficios que
pueden ser utilizados para contrarrestar ataques como los mencionados y otros más.
→ : mod (3.1)
← : mod (3.2)
3.4. DISEÑO DEL PROTOCOLO DE ACUERDO DE LA LLAVE 53
3. Acciones del protocolo. Realizar los siguientes pasos cada vez que una llave com-
partida es requerida.
3. envía ( ) y a .
5. envía ( ) y a
6. calcula
y hará lo mismo
Como podrá intuirse, el protocolo MTI tiene el mismo problema contra ataques
pasivos que el protocolo Diffie-Hellman. La problemática real para ambos protocolos es
la presencia de adversarios activos. Podemos considerar entonces la siguiente amenaza:
Sin el uso de firmas durante el protocolo, podría parecer que no existe protección contra
ataques de “hombre en el medio”. Por lo que sería factible que pudiera alterar los
valores que se envían y Un escenario típico se muestra en la Figura 3.13.
En esta situación, y calcularán diferentes llaves: calculará
0
= + ´
mod (3.20)
56 CAPÍTULO 3. PROTOCOLO DE AUTENTICACIÓN DE NODOS
U W V
deben ser elegidos de una función con una entrada aleatoria a un proceso definido de
un conjunto de candidatos con cardinalidad suficiente tal que un ataque exhaustivo no
tenga éxito. En la práctica, los primos resultantes deben también ser de una longitud
determinada, para cumplir con especificaciones en los sistemas. La invención del cripto-
sistema RSA también añadió nuevas consideraciones y restricciones para la elección de
y para asegurar que RSA sea seguro ataques de criptoanálisis, de tal forma que la
noción de número primo fuerte fue definida. Es sabido que actualmente los números pri-
mos fuertes ofrecen un poco más de protección, comparada con la que ofrece la selección
aleatoria de números primos en la longitud requerida para su uso en RSA, los cuales
satisfacerán las restricciones con una alta probabilidad. Por otra parte, no son menos
seguros, y requieren de muy poco tiempo de cómputo adicional para su cálculo, por lo
que su uso implica muy poco esfuerzo adicional. La definición de número primo fuerte
se puede consultar en el Apéndice A de este trabajo.
Resumen: cada entidad crea una llave pública RSA y su correspondiente llave privada.
Cada entidad debe realizar lo siguiente:
1. Generar dos números primos y , cada uno del mismo tamaño. Preferentemente
grandes.
2. Calcular = y = ( − 1)( − 1)
3.7. Definiciones
Los enteros y en la generación de llaves RSA son llamados exponente de encripción
y exponente de decripción, respectivamente; mientras que es denominado módulo.
58 CAPÍTULO 3. PROTOCOLO DE AUTENTICACIÓN DE NODOS
deben ser suficientemente grandes. Por ejemplo, si se utilizará un módulo de 1024 bits,
y tienen que tener una longitud de 512 bits.
Otra de las restricciones para los números primos y es que la diferencia √− no
debe ser muy pequeña. Si − es pequeña, entonces ≈ y por lo tanto ≈ . Ya
que, podría ser factorizada eficientemente con una simple división de enteros nones
cercanos a la raíz . Si y son cercanas y aleatorias, entonces − tendrá la longitud
apropiada para evitar lo anterior.
Adicional a las restricciones ya mencionadas, algunos autores recomiendan que y
sean primos fuertes. Cada una de las condiciones expresadas tiene el propósito de
evitar el poder de métodos matemáticos desarrollados que pueden localizar los valores
utilizados, como lo son la factorización algorítmica de Pollard, la simple factorización
algorítmica o los ataques cíclicos. Como ya se ha mencionado, este tipo de números
agrega seguridad al sistema y solamente requiere de poco cálculo adicional.
Nb Nk N
AES-128 4 4 10
AES-196 4 6 12
AES-256 4 8 14
Clave de cifrado
Texto claro
ronda
inicial Texto claro
AddRoundKey
AddRoundKey
ronda
SubBytes InvSubBytes
final
Subclave de ronda
9 ShiftRows InvShiftRows
rondas
principales
MixColumns
InvMixColumns
AddRoundKey
AddRoundKey
9
rondas
InvSubBytes principales
SubBytes
AddRoundKey AddRoundKey
Al igual que DES, AES conlleva una serie de transformaciones, funciones, expan-
siones y utiliza cajas para asegurar la confusión y difusión de la información. Tiene tres
algortimos básicos: encripción, expansión de la llave y decripción.
62 CAPÍTULO 3. PROTOCOLO DE AUTENTICACIÓN DE NODOS
a) = [ − 1]
b) Si ( mod = 0)
h i
= ( ()) ⊕
a) = ()
b) = ()
c) = ( [ ( + 1) − 1])
d) = ns()
4. = ()
64 CAPÍTULO 3. PROTOCOLO DE AUTENTICACIÓN DE NODOS
5. = ()
En términos generales, estos son los procesos que realiza AES para encriptar y decrip-
tar. Los detalles del protocolo se pueden consultar en el Apéndice B de este trabajo. La
referencia hacia AES se debe principalmente a qué, como parte del protocolo propuesto
se utilizará el módulo de encripción incorporado en el microcomponente CC2430/31 que
está basado en AES-128. Este algoritmo se usará para encriptar y decriptar los mensajes
en los datos sensados por los nodos.
3.16. Certificados
En [86] se menciona que existen dos tipos principales de certificados: los de entidad
final y los de autoridad certificadora (Certificate Authority o CA). Los certificados de
entidad final son expedidos por una CA a una entidad o nodo que no expide certificados
a otras entidades. Mientras que los certificados de CA, se expiden a nodos que tam-
bién serán entidades certificadoras con el mismo tipo de certificado o incluso diferente.
Cualquiera que sea el caso, el certificado de una CA es distinguido por la presencia de
las denominadas restricciones básicas, un conjunto explícito de información que indica
que CA ha expedido dicho certificado. Los certificados pueden presentar a su vez varios
casos: los auto expedidos, los auto firmados y los certificados cruzados. Los certifica-
dos auto expedidos tienen en su sujeto y en el expedidor a la misma CA. Este tipo de
certificado puede ser utilizado para permitir operaciones especiales como la validación
de un nuevo par de llaves públicas cuando es solicitado por un nodo en la red. En este
caso, la nueva llave es contenida en el nuevo certificado, y la llave vieja es utilizada para
firmar el certificado, permitiendo confiar en la nueva llave. Un certificado auto firmado
es un caso especial del auto expedido. En este caso, la llave pública certificada por el
certificado corresponde a la llave privada usada para firmar el certificado. Por último, en
un certificado cruzado, el sujeto y el expedidor son diferentes. Los certificados cruzados
son utilizados por una CA para certificar la identidad de otra CA.
Número de versión
Número de serie
Firma
Llave privada
de la CA
Expedidor
Periodo de validez
Sujeto
Hash
Generación
de firma
Información pública
del Sujeto
Identificador único
del Expedidor
Identificado único
del Sujeto
Extensiones
Firma digital
de la CA
Para este trabajo, la entidad certificadora será la estación base, que es quién suscribirá
los certificados. Por lo que la información de la CA se construirá con los datos de la EB.
El sujeto será el nodo, sus datos serán incorporados al certificado, entre ellos, la llave
pública y su firma digital.
Para el diseño del formato del certificado se utilizarán las especificaciones del están-
dar X.509; considerando el que no puede ser un mensaje demasiado largo, de preferencia
debe ocupar la longitud útil de una trama a transmitir. El uso de las extensiones de-
penderá del espacio disponible en la trama y de si se incorporarán las funciones para la
administración, revocación, etc. de la CA.
3.17. DISEÑO DE LA CA 67
3.17. Diseño de la CA
En [86] se establece que una CA es la autoridad responsable de crear los certificados
de la entidades. Lo cual es mucho más que generar los certificados para que sirvan como
identificaciones electrónicas. Esto es comparable a la diferencia que existe entre una
oficina de expedición de pasaportes y un servicio de fotocopiado a color que puede ser
utilizado para reproducirlo. Solo porque los certificados puedan ser creados, no significa
que puedan ser utilizados o confiar en ellos. La CA implementa procedimientos para
verificar la identidad de un solicitante y para el registro de los certificados, los que
son usados para propósitos de identificación. La identidad es expedida por periodos
determinados de tiempo, y la CA tiene la posibilidad de revocar los certificados, avisando
a los usuarios de este hecho.
Tanto las llaves como los certificados tienen un periodo de vida y cumplen ciclos. La
administración de las llaves tienen relacionados procesos como: la creación, distribución,
protección, archivado y recuperación. Mientras que los certificados requieren de procesos
como: el registro, renovación y revocación.
Al utilizar la EB como CA esta deberá contener una base de datos en dónde se
almacenen, protejan y puedan ser recuperadas las llaves; ya sea para su distribución
o, en una fase inicial, para su creación. Los certificados también deberán de ser crea-
dos y responder a las solicitudes de comprobación y en su caso revocación. Por lo que
los aspectos operativos para el proyecto deben ser determinados con cuidado; dada la
complejidad de los procesos involucrados en todas estas funciones.
Capítulo 4
Implementación del protocolo
propuesto
69
70 CAPÍTULO 4. IMPLEMENTACIÓN DEL PROTOCOLO PROPUESTO
U V
Nodos
Tarjeta de desarrollo
Fase 4. Cifrado de bloques
Programación y claves
de pre acuerdo
Monitoreo y puente de
las comunicaciones n1
entre nodos
n2
n3
Estación Base
Autoridad Certificadora
n4
Fase 1. Establecimiento de la llave
Fase 2. Generación de llaves públicas n5
Fase 3. Firma digital
Fase 5. Administración de certificados
3. envió ( ) y a .
3. envió ( ) y a .
= mod (4.6)
Los nodos a su vez calcularon (4.8)
= mod (4.8)
Si = entonces fueron usadas como llaves secretas para cifrar las llaves públicas
y privadas en la EB y en los nodos respectivamente. Para reducir el consumo de energía
con el cálculo de las llaves y su verificación, los dispositivos al ser programados también
les fueron transferidos a la memoria no volátil, en una posición diferente para cada
dispositivo, valores que generaron llaves válidas y que fueron verificados mediante el uso
del algoritmo, arriba descrito, en la EB. El algoritmo fue implementado mediante un
código de Visual Basic el cual hizo todos los cálculos y los verificó, de tal manera que los
valores arrojados por el mismo fueron almacenados en la estructura de la base de datos
para su posterior asignación a los nodos. La forma utilizada se muestra en la Figura 4.2
y el resultado de una de sus corridas se aprecia en la Figura 4.3.
Los valores y las relaciones con los nodos fueron mantenidos en una base de datos
encriptada, la cual constituye el primer paso hacia la conformación de una entidad
certificadora formal, la cual está fuera de los alcances de este trabajo. La estructura,
relaciones, consultas y demás elementos de la base de datos están especificados en el
Apéndice E. Mientras que el código utilizado para la implementación de protocolo MTI
y su verificación se encuentran en el Apéndice F.
Figura 4.2: Forma para el cálculo de valores válidos para el acuerdo de la llave MTI.
4.3. Definiciones
Las llaves y en la generación de llaves RSA son llamados exponente de encripción
y exponente de decripción, respectivamente; mientras que es denominado módulo.
Esta cadena representa el caso extremo, en el cual se han utilizado todos los campos
y las capacidades de los mismos. Para el caso de las fechas, el estándar X.509 utiliza
formato extendido, el cual requeriría de 14 caracteres adicionales por campo, es decir,
28 caracteres, por lo que el objetivo de limitar el certificado a la capacidad de una trama
de protocolo no podría ser alcanzado. En este caso se tomaron las cero horas del día en
que se generó el certificado como hora de inicio de vigencia y la misma hora pero un
año después para el vencimiento del mismo. Para el caso de la firma Hash, fue factible
utilizar otros protocolos disponibles en las bibliotecas de encripción de la herramienta
de desarrollo, sin embargo, la reducción en el uso de caracteres es marginal, por lo que se
decidió utilizar SHA-1 sobre MD5, ya que la diferencia entre ambos es de 4 caracteres.
Dado que la administración de los certificados representan operaciones comunes a las
de la administración de bases de datos, se decidió utilizar las facilidades de un motor de
Bases de Datos Relacionales para construir el conjunto de tablas y relaciones que permi-
tieran la administración de los elementos y al mismo tiempo cumplieran con los requisitos
de diseño planteados por el proyecto. Si bien esta decisión aumenta la complejidad de la
propuesta, al no utilizar archivos de texto en ASCII puro, se consideró que se ganaba en
seguridad al tener la posibilidad de encriptar toda la estructura y los datos, además fue
el primer paso para el establecimiento de una entidad certificadora formal, objetivo que
se busca en la línea de investigación de Telemática. La posibilidad de encriptar la base
de datos nos permitió dispersar los conjuntos de datos que pudieran establecer patrones,
que a su vez dieran oportunidad a algún adversario para utilizar el análisis estadístico de
4.5. PROGRAMACIÓN DE LOS DISPOSITIVOS 75
datos y con ello atacar el protocolo. Aún tratándose de bases datos, la diferencia entre
manejarla encriptada o sin encripción es aparentemente una decisión simple, a la luz de
un analizador de aleatoriedad con visualización tridimensional (Cryptool), esta decisión
toma relevancia, sobre todo al tratarse de seguridad informática. Las imágenes de la
base de datos propuesta con y sin encripción a través del analizador de aleatoriedad se
muestran en las Figuras 4.5 y 4.6.
AES, la respuesta desde la EB que confirmaba la entrada del dispositivo a la red, así
como toda la comunicación entre dispositivos, utilizó la encripción del motor de AES.
Conclusiones
5.1. Recomendaciones
Para poder llevar a cabo la instalación del protocolo en los dispositivos CC2430/31
se tuvieron que configurar al menos dos equipos completos para la parte de diseño del
mismo. Sin embargo, se considera que para su implementación, a partir de los elementos
aportados por este trabajo, el uso de un solo equipo dedicado para ello es suficiente. Como
método alternativo, por demás recomendable, se encuentra el uso de máquinas virtuales.
En caso de conocer sobre la tecnología y contar con los medios para implementarla, ésta
aporta no solamente la posibilidad de la contención del desarrollo, adicionalmente se
puede “clonar” rápidamente, con lo cual se pueden hacer pruebas, y en caso de fallas
críticas, se puede volver al punto de inicio con la máquina original. La penalidad en este
caso, es que se requieren recursos de altas prestaciones, tanto de procesamiento, memoria
y almacenamiento de datos.
Para la instalación de la red de sensores y demás componentes, se recomienda aten-
der las indicaciones del Apéndice D. Las cuales paso a paso aclaran muchas de las dudas
que surgieron como problemas en esta fase de diseño inicial. La configuración del pro-
tocolo en los dispositivos puede ser llevada a cabo mediante el uso de las tarjetas de
demostración CC2430DB, sin embargo, el proceso de programación del dispositivo cam-
bia de manera significativa. En este trabajo nos circunscribimos a realizar todos estos
procesos mediante el uso de las tarjetas de desarrollo SmartRF04EB. De hecho, por
economía de tiempo y eliminación de limitantes de desarrollo, se recomienda el uso de
las tarjetas SmartRF04EB sobre la opción económica de las tarjetas CC2430DB.
5.2. Conclusiones
Dado que los métodos de autenticación en las redes WSN son prácticamente inexis-
tentes y que ello ha limitado de manera significativa su uso en aplicaciones de manera
general; la propuesta de un protocolo que atienda esta necesidad resulta pertinente. Si
bien, el protocolo teórico desarrollado se ha probado en una serie de dispositivos de una
83
84 CAPÍTULO 5. CONCLUSIONES
marca en particular, los estudios previos de los MOTE disponibles nos indican que el
protocolo puede ser implementado en su fase primaria, representada por los algoritmos
de la EB y la programación de los dispositivos, en muchos de ellos. La fase secundaria,
representada por la comunicación inalámbrica entre MOTE, puede contar o no con las
facilidades de la encripción de los mensajes mediante AES, esto dependerá de las carac-
terísticas de los dispositivos seleccionados, lo cual reduce la fortaleza del protocolo, pero
no lo elimina, debido a contención de los datos clave, ya que éstos nunca se revelan o
transmiten por medios no seguros.
El protocolo propuesto aporta una combinación de protocolos existentes con su res-
pectiva adecuación a las realidades tecnológicas de la época, con la adición de un poco
de ingenio para el “acomodo” de los mismos en sus interacciones. Todo ello como resul-
tado de un análisis cuidadoso y la experimentación, elementos pretendidos y deseados
para este tipo de trabajos. Su implementación ha sido viable en los dispositivos físicos
seleccionados.
Con respecto de los objetivos particulares, la modelación matemática y su imple-
mentación para la generación de claves resultaron exitosas. Los pseudocódigos son pre-
sentados en su totalidad, como base para su posterior implementación en el cualquier
lenguaje de programación. Igualmente, las funciones y programas fueron completados
exitosamente; y se integran al trabajo en el Apéndice correspondiente. La simulación
del protocolo fue dejada de lado para ser sustituida por la implementación física, la cual
resultó de acuerdo con las expectativas planteadas en un inicio. Los resultados de los tra-
bajos previos y lo de este trabajo han proporcionado material para la participación en el
décimo tercer congreso internacional de la Sociedad Mexicana de Instrumentación, A.C.
(SOMI) y en el congreso internacional APPLIEDMATH III, de matemáticas aplicadas de
la Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Azcapotzalco. En cuanto
a publicaciones internacionales, se han aceptado las propuestas enviadas a la revista
TELEMATIQUE revista electrónica de estudios telemáticos de la Universidad Rafael
Belloso Chacín, del estado Zulia en Venezuela y el trabajo enviado a la revista CIEN-
CIA E INGENIERIA NEOGRANADINA de la Universidad Militar de Nueva Granada
en Colombia.
certificados con base en el estándar X.509 y que utilicen una sola trama del protocolo
ZigBee o bien la posibilidad de coordinar la migración automática de toda la red WSN
de una frecuencia a otra, dentro de la gama asignada al protocolo, como mecanismo
de auto reparación (Auto Healing) en caso de ataques o de grandes interferencias en el
medio electromagnético.
Este es sólo el primero de una serie de trabajos que contribuirán a una tecnología
que cambiará de manera radical nuestra interacción con el mundo físico. El tiempo y las
leyes que rigen el mercado y los aspectos tecnológicos en él, darán cuenta de la utilidad
de nuestras aportaciones, con ello contamos; y a ello nos atenemos.
Bibliografía
[1] T. Economist, “The coming wireless revolution. when everything connects.” [En
línea]. http://www.economist.com/opinion/displaystory.cfm?story_id=9080024.
[2] T. Economist, “A world of connections.” [En línea]. http://www.economist.com
/specialreports/displaystory.cfm?story_id=9032088.
[3] T. Economist, “The hidden revolution.” [En línea]. http://www.economist.com
/specialreports/displaystory.cfm?story_id=9031982.
[4] FAS, “The sound surveillance system (sosus).” [En línea]. http://www.fas.org
/irp/program/collect/sosus.htm.
[5] E. H. Callaway, Wireless Sensor Networks: Architectures and Protocols. Florida
Atlantic University, Boca Raton, FL: CRC Press, 2004.
[6] Wikipedia, “Ad hoc.” [En línea]. http://es.wikipedia.org/wiki/Ad_hoc.
[7] Wikipedia, “Mesoescala.” [En línea]. http://es.wikipedia.org/wiki/Mesoescala.
[8] Wikipedia, “Protocolo de red.” [En línea]. http://es.wikipedia.org/wiki/Protocolo
_de_red.
[9] T. Economist, “A sense of things to come.” [En línea]. http://www.economist.com
/specialreports/displaystory.cfm?story _id=9032026.
[10] I. F. Akyildiz, W. Su, Y. Sankarasubramaniam, and E. Cayirci, “Wireless sensor
networks: A survey,” Computer Networks, vol. 38, pp. 393—422, 2002.
[11] T. Economist, “Marconi’s brainwave.” [En línea]. http://www.economist.com /spe-
cialreports/displaystory.cfm?story_id=9032066.
[12] J. Portilla, “Wireless sensor networks.” [En línea]. El Centro Electrónica industrial
Web site http://www.upmdie.upm.es/ jportill/Wireless_Sensor_Networks.html.
[13] A. Swami, Wireless sensor networks: Signal processing and communications pers-
pectives. England: John Wiley Sons, 2007.
[14] Wikipedia, “Wireless sensor network.” [En línea]. http://en.wikipedia.org /wi-
ki/Wireless_sensor_network.
87
88 BIBLIOGRAFÍA
[15] M. I, Handbook of Sensor Networks: Compact Wireless and Wired Sensing Systems.
United States of America: CRC Press, 2005.
[17] K. Sohraby, D. Minoli, and T. Znati, Wireless sensor networks: Technology, proto-
cols, and applications. New Jersey: John Wiley Sons, Inc., 2007.
[19] K. Holger, Protocols and architectures for wireless sensor networks. England: John
Wiley Sons, Inc., 2005.
[20] S. Kazem, Wireless sensor networks: technology, protocols, and applications. Eng-
land: John Wiley Sons, Inc., 2007.
[22] M. Ilyas, Handbook of sensor networks : compact wireless and wired sensing systems.
United States of America: CRC Press, 2004.
[23] P. Chandra, Bulletproof Wireless Security: GSM, UMTS, 802.11 and Ad Hoc Secu-
rity. England: Elsevier Inc., 2005.
[24] R. Di Pietro, L. V. Mancini, and A. Mei, “Random key-assignment for secure wire-
less sensor networks,” in SASN ’03: Proceedings of the 1st ACM workshop on Se-
curity of ad hoc and sensor networks, (New York, NY, USA), pp. 62—71, ACM,
2003.
[26] A. Boukerch, L. Xu, and K. EL-Khatib, “Trust-based security for wireless ad hoc
and sensor networks,” Comput. Commun., vol. 30, no. 11-12, pp. 2413—2427, 2007.
[27] X. Cao, W. Kou, L. Dang, and B. Zhao, “Imbas: Identity-based multi-user broad-
cast authentication in wireless sensor networks,” Comput. Commun., vol. 31, no. 4,
pp. 659—667, 2008.
[28] Y. Dong, A.-F. Sui, S. M. Yiu, V. O. K. Li, and L. C. K. Hui, “Providing distributed
certificate authority service in cluster-based mobile ad hoc networks,” Comput.
Commun., vol. 30, no. 11-12, pp. 2442—2452, 2007.
BIBLIOGRAFÍA 89
[30] C.-T. Li, M.-S. Hwang, and Y.-P. Chu, “A secure and efficient communication
scheme with authenticated key establishment and privacy preserving for vehicular
ad hoc networks,” Comput. Commun., vol. 31, no. 12, pp. 2803—2814, 2008.
[32] K. Ren, T. Li, Z. Wan, F. Bao, R. H. Deng, and K. Kim, “Highly reliable trust
establishment scheme in ad hoc networks,” Comput. Netw., vol. 45, pp. 687—699,
2004.
[33] S. Tripathy and S.Ñandi, “Defense against outside attacks in wireless sensor net-
works,” Comput. Commun., vol. 31, no. 4, pp. 818—826, 2008.
[34] Y.-R. Tsai and S.-J. Wang, “Two-tier authentication for cluster and individual sets
in mobile ad hoc networks,” Comput. Netw., vol. 51, no. 3, pp. 883—900, 2007.
[35] S. Avancha, J. Undercoffer, A. Joshi, and J. Pinkston, “Secure sensor networks for
perimeter protection,” Comput. Netw., vol. 43, no. 4, pp. 421—435, 2003.
[36] M.-Y. Hsieh, Y.-M. Huang, and H.-C. Chao, “Adaptive security design with mali-
cious node detection in cluster-based sensor networks,” Comput. Commun., vol. 30,
no. 11-12, pp. 2385—2400, 2007.
[37] D. Talbot and T. R. MIT, “Technology review the internet is broken.” [En línea].
http://www.technologyreview.com/Infotech/16051/?a=f.
[38] J. Hill, R. Szewczyk, A. Woo, S. Hollar, D. Culler, and K. Pister, “System architec-
ture directions for networked sensors,” SIGPLAN Not., vol. 35, no. 11, pp. 93—104,
2000.
[39] V. Daza, P. Morillo, and C. Ràfols, “On dynamic distribution of private keys over
manets,” Electron. Notes Theor. Comput. Sci., vol. 171, no. 1, pp. 33—41, 2007.
[41] Y. Jiang, C. Lin, M. Shi, X. S. Shen, and X. Chu, “A dos and fault-tolerant authenti-
cation protocol for group communications in ad hoc networks,” Comput. Commun.,
vol. 30, no. 11-12, pp. 2428—2441, 2007.
90 BIBLIOGRAFÍA
[42] M. S. G. Ateniese and G. Tsudik, “New multi-party authentication services and key
agreement protocols,” IEEE Journal on Selected Areas in Communications, vol. 18,
pp. 628—639, 2000.
[44] N. Saxena, G. Tsudik, and J. H. Yi, “Threshold cryptography in p2p and manets:
The case of access control,” Comput. Netw., vol. 51, no. 12, pp. 3632—3649, 2007.
[46] M.Ñakhjiri and M.Ñakhjiri, AAA and network security for mobile access: radius,
diameter, EAP, PKI, and IP mobility. England: John Wiley Sons, Inc., 2007.
[51] A. Molina and M. Acedo, Esta es la cita de las copias del libro. England: John
Wiley Sons, Inc., 2007.
[52] W. Stallings, Cryptography and Network Security Principles and Practices, Fourth
Edition. Upper Saddle River, NJ 07458: Pearson Education, Inc., 2006.
[55] H. Hashemi, “The indoor radio propagation channel,” Proceedings of the IEEE,
vol. 81, no. 7, pp. 943—968, 1993.
[56] J. Parsons, The indoor radio propagation channel. England: Pentech Press, 1992.
[59] H. Deng, W. Li, and D. Agrawal, “Routing security in wireless ad hoc networks,”
in IEEE Communications Magazine, vol. 40, pp. 70—75, 2002.
[60] H. Luo, P. Zefros, J. Kong, S. Lu, and L. Zhang, “Self-securing ad hoc wireless
networks,” in 7th IEEE Symposium on Computers and Communications (ISCC
’02, 2002.
[61] C. Karlof and D. Wagner, “Secure routing in wireless sensor networks: attacks and
countermeasures,” Elsevier AdHoc Networks, no. 1, 2003.
[63] M. Benantar, “The internet public key infrastructure,” IBM Syst. J., vol. 40, no. 3,
pp. 648—665, 2001.
[66] R. L. Rivest, A. Shamir, and L. Adleman, “A method for obtaining digital signatures
and public-key cryptosystems,” Commun. ACM, vol. 21, no. 2, pp. 120—126, 1978.
[67] N. Koblitz, A Course in Number Theory and Cryptography. New York: Springer-
Verlag, 1994.
[69] T. El Gamal, “A public key cryptosystem and a signature scheme based on discrete
logarithms,” in Proceedings of CRYPTO 84 on Advances in cryptology, (New York,
NY, USA), pp. 10—18, Springer-Verlag New York, Inc., 1985.
[70] B. Schneir, Applied Cryptography. New York: John Wiley Sons, Inc., 1996.
[72] IETF, “The internet engineering task force.” [En línea]. http://www.ietf.org.
[76] J. Kohl and B.Ñeuman, “The kerberos network authentication service.” [En línea].
http://www.ietf.org/rfc/rfc1510.txt.
[77] R. Shirey, Internet Security Glossary. United States: RFC Editor, 2000.
[78] T. I. Chipcon Products, “A true system-on-chip solution for 2.4 ghz IEEE
802.15.4/ZigBee.” [En línea]. http://focus.ti.com/lit/ds/symlink/cc2430.pdf.
[81] S. Farahani, ZigBee Wireless Networks and Transceivers. United States: Elsevier,
2008.
[84] D. Stinson, Cryptography: Theory and Practice. United States: CRC Press, 1995.
[86] A.Ñash, W. Duane, C. Joseph, and D. Brink, PKI: Implementing and Managing
E-Security. United States: McGraw-Hill, 2001.
Apéndice A
Matemático
93
94 APÉNDICE A. MATEMÁTICO
A.2.1. Justificación
Para verificar que el primo obtenido con el algoritmo de Gordon es un primo fuerte,
observemos primero (asumiendo 6= ) que −1 ≡ 1(mod ); que es derivado del teorema
de Fermat en donde: 0 ≡ 1(mod ) y 0 ≡ −1(mod ). Finalmente por la definición de
primo fuerte tenemos que:
2. Asignar 2 ← 1 1 ← 0 2 ← 0 1 ← 1
4. Asignar ← ← 2 ← 2
5. Regresar ( )
q r x y a b x2 x1 y2 y1
− − − − 4864 3458 1 0 0 1
1 1406 1 −1 3458 1406 0 1 1 −1
2 646 −2 3 1406 646 1 −2 −1 3
2 114 5 −7 646 114 −2 5 3 −7
5 76 −27 38 114 76 5 −27 −7 38
1 38 32 −45 76 38 −27 32 38 −45
2 0 −91 128 38 0 32 −91 −45 128
2. Asignar ←
3. Si 0 = 1 entonces asignar ←
a) Asignar ← 2 mod
96 APÉNDICE A. MATEMÁTICO
5. Regresar ()
B.1. Introducción
En este apéndice se explicará el algoritmo adoptado por la NIST como el nuevo
estándar avanzado de encripción AES (Advanced Encription Standard), después de una
selección entre varios algoritmos, utilizando criterios de evaluación especificados en [1].
AES remplazó a DES (Data Encription Standard), publicado en 1977 por la NIST, el cual
fue roto por RSA Laboratorys en 1997, con 70,000 computadoras conectados a Internet,
usando como técnica la "Fuerza bruta", aproximadamente en 96 días [2], el algoritmo
ganador Rijndael, fue desarrollado por los científicos Búlgaros, Dr. Joan Daemen y Dr.
Vincent Rijmen, cuyo diseño se basó en la resistencia contra todos los ataques conocidos,
velocidad, código simplificado en gran variedad de plataformas y simplicidad en el diseño.
Su diseño tiene en cuenta la estrategia publicada en el Wide Trail Strategy [3],
la que tiene tres transformaciones invertibles llamadas capas, las que dan resistencia
al criptoanálisis lineal y diferencial, estas son : La capa de mezcla lineal, garantiza
alta difusión en varios ciclos. La capa no-lineal que da propiedades de no linealidad al
criptograma, y la capa de adición de llave que actúa como un XOR entre la “RoundKey”
y el estado intermedio, las cuales serán expuestas en el transcurso del documento.
97
98 APÉNDICE B. ESTÁNDAR AVANZADO DE ENCRIPCIÓN (AES)
Número de Ciclos
En un ciclo se aplican las transformaciones que permiten encriptar el texto, cada ciclo
adicional que el encriptador use puede dar más seguridad, sin embargo la velocidad para
B.2. SISTEMAS DE ENCRIPCIÓN CON LLAVES SIMÉTRICAS 99
Formas de Operación
Un encriptador de bloques puede operar de cuatro diferentes formas:
Notación:
= 1 2 , donde es un texto y el bloque del texto.
( ) es el resultado de aplicar las transformaciones con llave al bloque .
es vector inicial que se genera aleatoriamente o muchas veces se especifica.
es el texto encriptado.
Electronic code Block (ECB) Mode: En este modo se aplica las transformaciones
a cada bloque y se concatenan los resultados en el mismo orden para obtener el texto
cifrado.
= ( )
= 1 + 2 + +
Cipher Block Chaining (CBC) Mode: En este modo se obtiene el primer bloque
cifrado 1 de la siguiente forma:
1 = ( ⊕ )
para los siguientes:
= ( ⊕ −1 )
el texto cifrado será :
= 1 + 2 + +
Cipher FeedBack (CFB) Mode: En este modo se obtiene el primer bloque cifrado
1 de la siguiente forma:
1 = ( )
1 = 1 ⊕ 1
= (−1 )
= ⊕
100 APÉNDICE B. ESTÁNDAR AVANZADO DE ENCRIPCIÓN (AES)
= 1 + 2 + +
Output FeedBack (OFB) Mode: En este modo se obtiene el primer bloque cifrado
1 de la siguiente forma:
1 = ( )
1 = 1 ⊕ 1
= (−1 )
= ⊕
= 1 + 2 + +
Las técnicas diferencial y lineal son conocidas como explotación de texto claro
conocido “know plaintext exploit”, ya que utilizan un texto conocido para ejecutar
los ataques.
Como principio general se dice que la magnitud del esfuerzo requerido para tener
éxito en un criptoanálisis debe ser mayor que la requerida para romperlo con el
ataque de “Fuerza bruta”.
a0,0 a0,1 a0,2 a0,3 a0,4 a0,5 k0,0 k0,1 k0,2 k0,3
a1,0 a1,1 a1,2 a1,3 a1,4 a1,5 k1,0 k1,1 k1,2 k1,3
a2,0 a2,1 a 2,2 a2,3 a2,4 a2,5 k2,0 k2,1 k2,2 k2,3
a3,0 a3,1 a3,2 a3,3 a3,4 a3,5 k3,0 k3,1 k3,2 k3,3
Nr Nb 4 Nb 6 Nb 8
Nk 4 10 12 14
Nk 6 12 12 14
Nk 8 14 14 14
SubBytes(Estado)
ShiftRow(Estado)
MixColumn(Estado)
AddRoundKey(Estado, RoundKey)
SubBytes(Estado)
ShiftRow(Estado)
AddRoundKey(Estado, RoundKey)
La transformación SubByte
Esta es una transformación de substitución de bytes no linear, operando en cada
estado independientemente, la tabla de substitución (S-box), es inversible y es equivalente
a realizar la siguiente multiplicación donde es un byte en el estado y su nueva posición
en un nuevo estado:
La aplicación a un estado esta denotada por SubBytes(Estado)
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
0 1 0 0 0 1 1 1 1 0 1
⎢ 1 ⎥ ⎢ 1 1 0 0 0 1 1 1 ⎥ ⎢ 1 ⎥ ⎢ 1 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ 2 ⎥ ⎢ 1 1 1 0 0 0 1 1 ⎥ ⎢ 2 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ 3 ⎥ ⎢ 1 1 1 1 0 0 0 1 ⎥ ⎢ 3 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ 4 ⎥ = ⎢ 1 1 1 1 1 0 0 0 ⎥ ⎢ 4 ⎥ + ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ 5 ⎥ ⎢ 0 1 1 1 1 1 0 0 ⎥ ⎢ 5 ⎥ ⎢ 1 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣ 6 ⎦ ⎣ 0 0 1 1 1 1 1 0 ⎦ ⎣ 6 ⎦ ⎣ 1 ⎦
7 0 0 0 1 1 1 1 1 7 0
El diseño se basó en un trabajo de K. Nyberg [6] el cual da tres criterios mínimos que
hay que tener en cuenta, estos son: inversibilidad de la función, la correlación máxima
entre entrada/salida es de 2−3 y el máximo valor en la tabla XOR debe ser 4.
El diagrama general del proceso se puede ver en la Figura B.4.
B.4. ALGORITMO RIJNDAEL 103
La transformación ShiftRows
En esta transformación las filas del estado son cíclicamente corridas diferentes dis-
tancias, la fila 0 no se mueve, la fila 1 es corrida 1 , la fila 2 es corrida 2 , la fila 3 es
corrida 3 bytes. Los valores de 1 2 3 dependen del tamaño del bloque y están
dados en la siguiente tabla:
De modo que la fila uno no se corre, la segunda fila se corre una columna, la tercera
dos, la cuarta tres.
En la transformación inversa son movidas a la posición ( + − ) mod donde
es la fila y el byte.
El diagrama general del proceso se puede ver en la Figura B.7.
La transformación MixColumns
N b c1 c2 c3
4 1 2 3
6 1 2 3
8 1 3 3
⎡ ⎤ ⎡ ⎤⎡ ⎤
0 02 03 01 01 0
⎢ 1 ⎥ ⎢ 01 02 03 ⎥ ⎢
01 ⎥ ⎢ 1 ⎥
⎢ ⎥ ⎢ ⎥
⎣ 2 ⎦ = ⎣ 01 01 02 03 ⎦ ⎣ 2 ⎦
3 03 01 01 02 3
La transformación inversa será :
La transformación AddRoundKey
La operación que se realiza es un XOR entre el estado y la RoundKey, que es derivada
de la llave del encriptador, y la función KeySchedule. El tamaño de la RoundKey es igual
al del bloque .
El diagrama general del proceso se puede ver en la Figura B.8.
B.4. ALGORITMO RIJNDAEL 105
1 5 9 13 1 5 9 13
2 6 10 14 6 10 14 2
3 7 11 15 11 15 3 7
4 8 12 16 16 4 8 12
Sin
cambio
a0,0 a0,1 a0,2 a0,3 a0,0 a0,1 a0,2 a0,3
ShiftRows
Shift 1 a1,0 a1,1 a1,2 a1,3 a1,1 a1,2 a1,3 a1,0
Expansión de la Llave:
La llave expandida esta denotada por [ × ( + 1)]. Las primeras palabras
son la llave del encriptador, Esta función depende del valor de , para ≤ 6, está
dado según:
a0,1 b0,1
a0,0 a0,2 a0,3 b0,0 b0,2 b0,3
a1,1 MixColumns b1,1
a1,0 a1,2 a1,3 b1,0 b1,2 b1,3
if (i % Nk == 0)
temp = SubByte(RotByte(temp)) ^Rcon[i / Nk];
W[i] = W[i - Nk] ^temp;
}
}
Selección de la llave:
B.4.4. El encriptador
El encriptador de Rijndael consiste en :
La expansión de la llave, − 1 ciclos y un ciclo final. En pseudo C sería :
Rijndael(State,CipherKey)
{
KeyExpansion(CipherKey,ExpandedKey) ;
AddRoundKey(State,ExpandedKey);
For( i=1 ; i<Nr ; i++ )
Round(State,ExpandedKey +Nb*i) ;
FinalRound(State,ExpandedKey + Nb*Nr);
}
Clave de cifrado
Texto claro
ronda
inicial Texto claro
AddRoundKey
AddRoundKey
ronda
SubBytes InvSubBytes
final
Subclave de ronda
9 ShiftRows InvShiftRows
rondas
principales
MixColumns
InvMixColumns
AddRoundKey
AddRoundKey
9
rondas
InvSubBytes principales
SubBytes
AddRoundKey AddRoundKey
Criptoanálisis a Rijndael
Los primeros ataques conocidos para este algoritmo de Encripción fueron publicados
en 1998 [7], el primer ataque únicamente logra romper la seguridad teóricamente de el
B.4. ALGORITMO RIJNDAEL 109
encriptador para 6 ciclos, más tarde Gilbert y Miner [8] en el año 2000 publicaron un
ataque para el encriptador cuando usa 7 ciclos. Recordemos que Rijndael usa 10, 12 ó
14 ciclos.
Otras técnicas usadas, como, la técnica de la suma parcial redujo considerablemente
la complejidad del ataque a los 6 ciclos, técnica que es posible usar también con 7 y 8
ciclos. En algunos casos donde se puede usar textos conocidos el factor de trabajo se ve
reducido. Todos estos ataques se han basado en los trabajos y en las técnicas del ataque
cuadrado, explicadas y publicadas en [9], y únicamente se han trabajado con tamaño de
bloque de 128-bits.
La técnica del ataque cuadrado puede ser usada en ataques contra el algoritmo de
Rijndael con 6, 7 y 8 ciclos y pretende encontrar la llave, utilizando 256 textos encripta-
dos, que solamente se diferencien en un byte, después aplicar MixColumn en el primer
ciclo y luego intercambiar el orden de las transformaciones MixColumn y AddRound-
Key en el último ciclo, con este cambio y un análisis empírico los investigadores Niels
Ferguson, John Kelsey, Stefan Lucks, Bruce Schneier, Mike Stay, David Wagner y Doug
Whiting, se dieron cuenta que el texto encriptado depende de cuatro bytes de la Round-
Key del último ciclo, y de esta manera reducir el número considerable de llaves posibles
para un texto encriptado. Sin embargo en esta técnica se puede ver que es necesaria una
gran cantidad de textos encriptados y un gran procesamiento para su análisis. Además
a pesar de que se tiene la misma estructura para tamaños de bloques mayores de 128,
su criptoanálisis debe ser tratado de diferente manera.
Esta tabla tomada de [10] nos muestra la poca factibilidad actual de lograr un ataque
exitoso contra el algoritmo de Rijndael, por ejemplo para el algoritmo con 6 ciclos el
ataque tiene una demora de 272 segundos esto es 149 745 258 842 898 años.
110 APÉNDICE B. ESTÁNDAR AVANZADO DE ENCRIPCIÓN (AES)
TAMANO_LLAVE=128
LLAVE = 000102030405060708090A0B0C0D0E0F
Encripcion :
TEXTO=000102030405060708090A0B0C0D0E0F
CT1=B5C9179EB1CC1199B9C51B92B5C8159D
CT2=2B65F6374C427C5B2FE3A9256896755B
CT3=D1015FCBB4EF65679688462076B9D6AD
CT4=8E17064A2A35A183729FE59FF3A591F1
CT5=D7557DD55999DB3259E2183D558DCDD2
CT6=73A96A5D7799A5F3111D2B63684B1F7F
CT7=1B6B853069EEFC749AFEFD7B57A04CD1
CT8=107EEADFB6F77933B5457A6F08F046B2
CT9=8EC166481A677AA96A14FF6ECE88C010
CT=0A940BB5416EF045F1C39458C653EA5A
Descripcion :
CT =0A940BB5416EF045F1C39458C653EA5A
PT1=CA68DA374E6E5A9ED58C87C330F3B6A8
PT2=AF28543EF9BB2904B8E097925B7FB021
PT3=8FEEF1D2F5A4C04C82B3020D45D306FB
PT4=0EEEADB5CB98BD03CB5DFF23FCFCB927
PT5=1996D9A1E5DB81D640066FEC0DF032DB
PT6=3EDF5A958DC4F61F9056CF85387C4DB7
PT7=F12CD33929119D9A15904239454D103F
PT8=D54BAF5EC8A6590B56E8F0EED5DD824F
PT9=63636363636363636363636363636363
PT=000102030405060708090A0B0C0D0E0F
========================================
TAMANO_LLAVE =192
LLAVE =000102030405060708090A0B0C0D0E0F1011121314151617
Encripcion :
TEXTO =000102030405060708090A0B0C0D0E0F
CT1=73727170777675743B25919A3F20979D
CT2=C673B27A311EC2EB64AD47FF53B233D7
CT3=0B5CC6BA34C807E6496D79B46826A1E8
CT4=005B53A5B660E280307883487E4D1A4D
CT5=88A105F0DDD45F3674DBC3DE1A211B03
CT6=EB5CD8B5FD8A3F33F03A70FB5C620C06
CT7=909913B09BD2CC5A70B6C647931F0A1F
CT8=6EB6CA10E395AFD646B02C5E9E745A9F
CT9=2CFD2FC41AF82B8DFB80E9BD1C989ECE
B.4. ALGORITMO RIJNDAEL 111
CT10=31C5D5E27EAF073E5C21ADAAEAA969D4
CT11=1DB94956A7268B0DE963D27E55868580
CT=0060BFFE46834BB8DA5CF9A61FF220AE
Decripcion :
CT =0060BFFE46834BB8DA5CF9A61FF220AE
PT1=C7799548F3FDF9984AD303B287A6C5AC
PT2=71411E8BA2CD0B1C0F46155D9C54F17A
PT3=9F2A71DB11E7BECA5A9274F60B4E7958
PT4=60B5B4C0144E67E751C07DBEDCEE4BA0
PT5=E97E516F5480FED58CAA61C34A4A750F
PT6=C4482E7BC1B9AF8C92FD6B05A232CF1D
PT7=63D0ECE34EBCA20604E3EDCDF3399852
PT8=2BE8B69B183C32F43BF7B48E454AC58D
PT9=B472A00EC795C3DA433737E9ED8F2516
PT10=8F38815EF53F8851E2B7A39275409DB8
PT11=63636363636363636363636363636363
PT=000102030405060708090A0B0C0D0E0F
========================================
TAMANO_LLAVE =256
LLAVE=000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
Encripcion :
TEXTO =000102030405060708090A0B0C0D0E0F
CT1=73727170777675747B7A79787F7E7D7C
CT2=4E5D32BB8B67FD1BD4CFEC9FFB20AC4F
CT3=96A212E486341549C4AAF7C843F0277A
CT4=0F45F284CDD0CB16E3EA81ECC891A4E1
CT5=E59BFC458A89063E0137BBE6DB63A058
CT6=1D958D960EA3143383C17D5CD87BA327
CT7=43843EF40D9219481935B77A586DB5DE
CT8=5AA5ABADBC40230CBA6124E9FAEEEFB5
CT9=DAD61937BDFD582927F14C990C5FC761
CT10=E8A48C5DEE5C0792AB6DFFF5B038529D
CT11=4B71E5A8BFB4E9A5312A18119E68E829
CT12=DCBA75CEE6589DDC0D289A172E8415B5
CT13=8A0E856B2074C1093104131D0628BFE8
CT=5A6E045708FB7196F02E553D02C3A692
Decripcion :
CT=5A6E045708FB7196F02E553D02C3A692
PT1=866AB8D58E34598BD75F9D8631F45EF0
PT2=B38DADA508E59BC2C745D9060BA31E82
PT3=9B4A165E283C004C6207644FE749C5E6
PT4=575429EF7AA1C69ACCCFD4A5FEF66AEE
PT5=BE0936D565EFDF95F42862FE2D06261E
112 APÉNDICE B. ESTÁNDAR AVANZADO DE ENCRIPCIÓN (AES)
PT6=1A4FA91DD796D5BFD43CB2526A5FD4DA
PT7=A40AFFCCAB780A90EC215DC3612AFA4A
PT8=D9A7EA6A7E9AE06E7CFBB0B2B9146F8E
PT9=76700CF8BD87495F11818947E86E1FCE
PT10=901868DA44ACCC691C8CC93B1A3A59E8
PT11=2F85CE843D8A91EA48B723AF0F4C54DB
PT12=8F38B610F5DAFF5121F3A392D2409DBC
PT13=63636363636363636363636363636363
PT=000102030405060708090A0B0C0D0E0F
[2] RSA97 Data Security Inc., “Goverment Encription Standard Takes a Fall.” RSA
Data Press Relace, Junio 17 1997.
[3] J. Daemen, “Cipher and Hash Function Design Strategies Based on Linear and
Diferential Cryptanalysis,” Doctoral Dissertartion, Marzo 1995, K.U.Leuven.
[4] Murphy, S., “The Cryptoanalisys of FEAL-4 whit 20 Choosen Plaintext,” journal
of criptology, No 3, 1990.
[5] Matsui, M., “Linear Criptoanlisys Method of DES Cipher,” proceedings, EURO-
CRYPT’93, 1993.
[7] Joan Daemen and Vincent Rijmen. “AES proposal: Rijndael” AES Round 1 Tech-
nical Evaluation, Documentation. NIST, Agosto 1998. http://www.esat.kuleuven.
ac.be/~rijmen/rijndael/
[9] J. Daemen, L. Knudsen, y V. Rijmen, “The block cipher Square”, Fast Software
Encryption ’97, páginas 149—165. 1997.
[10] Niels Ferguson, John Kelsey, Stefan Lucks, Bruce Schneier, Mike Stay, David Wag-
ner, and Doug Whiting, “Improved Cryptanalysis of Rijndael”, 2001.
Apéndice C
Características de los MOTE
113
114 APÉNDICE C. CARACTERÍSTICAS DE LOS MOTE
16 8 49 10 1024 16 5 2700
8 8 128 64 180 40 1 1800
8 8 128 4 512 50 2 1800
8 8 128 4 512 50 2 2200
8 4 128 4 512 18 2 500
16 8 48 10 1024 40 3 2580
16 12 128 5 512 17 1 4318
16 32 128 8 32768 20 5 5000
8 8 128 4 512 20 0 5000
Instalación de la red
La WSN está formada por nodos sensores, una compuerta (Gateway) y una estación
base. Para ello se utilizaron las tarjetas 5 tarjetas Texas Instruments, ver Fig. 1, de las
cuales 4 tarjetas CC2431EM para los sensores con sus respectivas tarjetas de baterías,
1 tarjeta de desarrollo SmartRF04EB para la compuerta. Para la estación base se usó
una computadora de escritorio de uso genérico.
Componente Descripción
CC2430/31 EM
SmartRF04EB
Computadora portátil
115
116 APÉNDICE D. INSTALACIÓN DE LA RED
Nodos
n1
Tarjeta de desarrollo
n2
n3
Estación Base
n4
n5
tiempo para proveer un ambiente portable a otros equipos, en caso de falla o para
desarrollos futuros, se instala una máquina virtual basada en productos de VMWare.
La versión de sistema operativo que se seleccionó fue Windows XP en una ver-
sión “Performance” o bien de alto rendimiento, lo cual implica retirar todos aquellos
manejadores y bibliotecas que no son requeridos, esto asegura que sea más rápida la
inicialización y el funcionamiento del sistema operativo.
Instalación de los controladores. Al intentar instalar los controladores para las tarje-
tas de los nodos y de la compuerta, se identificó que esta versión no contiene la biblioteca
del sistema operativo que permite activar el asistente que busca los controladores en las
bases de Internet. Aún localizando dichos controladores e iniciando la instalación de los
mismos a mano, el proceso no puede ser finalizado de manera correcta. La afectación
principal de esta limitante se refiere a la incapacidad de poder programar o establecer
comunicación entre los dispositivos y la computadora. Por lo que se decidió abandonar
esta versión de la máquina virtual ya que rompe con el objetivo principal del proyecto.
La configuración finalmente se realizó en la versión profesional de Windows XP con
todos sus componentes. En esta versión, se hace la instalación del paquete de servicio más
reciente, así como los boletines de seguridad y actualizaciones necesarios, dejando esta
versión a punto. La máquina virtual configurada con el sistema operativo es respaldada
en este punto, de tal forma que las copias que se puedan realizar de la misma sirvan
como un punto de partida en dónde no se requiera iniciar desde cero.
Instalación de las aplicaciones. A continuación se hizo la descarga e instalación de
las aplicaciones del fabricante de las tarjetas, la pila del protocolo ZigBee, el analizador
de protocolos1 , el grabador de datos hacia las tarjetas de desarrollo, un monitor de las
tarjetas y la herramienta de desarrollo IAR2 que cuenta con una licencia de 30 días.
SampleApp tiene por objetivo el envío un mensaje en difusión hacia todos los nodos
conectados a la red ZigBee para que enciendan y apaguen uno de los diodos emisores
que contienen las tarjetas de desarrollo y demostración.
Se identifica que la estructura de la herramienta de desarrollo establece un perfil para
la aplicación y al mismo tiempo para el tipo de dispositivo que intervendrá en él, que
define su papel en la red y para el tipo de tarjeta o dispositivo que se empleará. Es decir,
existe una versión del desarrollo para un nodo Coordinador en una tarjeta de desarrollo
y su equivalente para la tarjeta de demostración. Lo anterior se repite para los nodos
ruteadores o terminales.
Explorando los ejemplos provistos, se identifica que existe otro dispositivo adicional
denominado tarjeta de baterías. Los cuales son los dispositivos adicionales del kit de de-
sarrollo y que sólo se pueden activar para ciertos ejemplos, como la demo de localización
y seguimiento de nodos.
A continuación se compiló la aplicación SampleApp y se descargó a las tarjetas
en dos versiones, coordinador y dispositivo final. Al reiniciar las tarjetas se estableció
entre ellas la conexión e identificación para formar la red. Al accionar los interruptores
programados, se verificó que los dispositivos enviaran los mensajes y las repuestas de
1
Packet Sniffer de Texas Instruments.
2
Descargado del sitio www.iar.com y correspondiente a la tarjeta de desarrollo ya mencionada.
118 APÉNDICE D. INSTALACIÓN DE LA RED
recepción afirmativas, esto se verifico con el encendido intermitente de los diodos emisores
de luz (LED) en ambos dispositivos, confirmando la comunicación en dos vías.
Activación del nodo coordinador. El siguiente paso fue la activación del nodo coordi-
nador. La verificación de la existencia del nodo coordinador en la red se realizó cuando
todos los dispositivos se identificaron con éste y pasaron sus emisores a estado fijo. En
este punto, el nodo coordinador funge como compuerta estableciendo la comunicación
entre los nodos y la EB.
Por último se solicita la información general del dispositivo. Ver figura D.6.
Dentro del formato o estructura del protocolo serial se especifica que la longitud
mínima de un mensaje válido es de 5 bytes. El byte faltante lo constituye la secuencia
120 APÉNDICE D. INSTALACIÓN DE LA RED
de verificación del marco (FCS). La cual se construye con la operación XOR de todos
los bytes con excepción del byte de inicio de paquete (SOP). Para este caso, el XOR de
00 con 08 y su resultado con 00, por lo que el FCS tendrá un valor de 08. Ver Fig. D.9.
Al enviar otra secuencia, esta vez solicitando la dirección extendida del dispositivo,
para lo cual se construye la cadena: 02 00 11 00 11, el dispositivo respondió. Ver Fig.D.10.
Con este último experimento se concluyeron las pruebas de transmisión. Por lo que
se decidió integrar las peticiones a un programa en Visual Estudio, a fin de controlar el
envío y recepción de mensajes desde una aplicación propia.
D.2.3. Programación
Se optó por la programación en Visual Basic por las facilidades que presenta el
manejo de puerto serial. Para establecer una aplicación básica, se declaró una aplicación
con tres elementos básicos; un botón de acción, una caja de texto y un objeto de puerto.
El botón de acción envió la secuencia de bytes que solicita la versión del dispositivo. La
caja de texto se usó para el despliegue de la respuesta del dispositivo; y el objeto de
puerto se usó para activar el puerto de comunicación y los procesos asociados. Ver Fig.
D.11.
En el botón de acción se declaró la secuencia utilizando una variable tipo byte con
un arreglo que represente la secuencia antes probada: 02 00 08 00 08. Para transferir el
D.2. CONFIGURACIÓN DE LA RED 121
valor, se puede realizar de manera decimal con la función CByte, en caso de requerir
notación hexadecimal se puede utilizar la secuencia &H2, equivalente a CByte(2).
Con el puerto activado, la secuencia para enviar los datos de la variable es: Serial-
Port1.Write(data, 0, data.Length). Para dar tiempo a que el dispositivo responda y la
memoria de entrada tenga datos, se debe hacer una pausa, un segundo aproximadamente
para lograrlo se envía System.Threading.Thread.Sleep(1000).
Al activarse el evento de lectura de datos en el puerto, se hace el vaciado del buffer
en una variable. La cual debe ser ahora utilizada para el despliegue en la caja de texto.
Se identifica que no es factible el paso directo de la información del buffer hacia la caja
de texto, por violar las reglas de programación.
Al ajustar los valores y programación se obtiene la respuesta deseada, la cual confirma
el envío y recepción de datos correctos hacia el dispositivo.
Se decide interrumpir el proceso de programación del dispositivo para enfocar los
esfuerzos en la programación de los algoritmos de encripción del trabajo.
122 APÉNDICE D. INSTALACIÓN DE LA RED
Figura D.11: Aplicación de VB que solicita la versión del Firmware del dispositivo.
Apéndice E
Base de datos de los nodos
Todos los atributos son atómicos. Un atributo es atómico si los elementos del
dominio son indivisibles, es decir, mínimos.
Una columna no puede tener múltiples valores ya que los datos son atómicos. (Si a
cada valor de X le pertenece un valor de Y, entonces a cada valor de Y le pertenece un
valor de X)
Esta forma normal elimina los valores repetidos dentro de una base de datos y les
asigna un identificador único.
125
126 APÉNDICE E. BASE DE DATOS DE LOS NODOS
Cliente
ID Cliente Nombre Apellido Teléfono
123 Rachel Ingram 555‐861‐2025
456 James Wright 555‐403‐1659
789 Maria Fernandez 555‐808‐9633
Cliente
ID Cliente Nombre Apellido Teléfono
123 Rachel Ingram 555‐861‐2025
555‐403‐1659
456 James Wright 555‐776‐4100
789 Maria Fernandez 555‐808‐9633
Asumiendo, sin embargo, que la columna “Teléfono” está definida en algún tipo de
dominio de número telefónico (por ejemplo, el dominio de cadenas de 12 caracteres de
longitud), la representación de arriba no está en 1FN. La 1FN prohíbe a un campo
contener más de un valor de su dominio de columna.
Cliente
ID Cliente Nombre Apellido Teléfono 1 Teléfono 2 Teléfono 3
123 Osvaldo Ingram 555‐861‐2025
456 James Wright 555‐403‐1659 555‐776‐4100
789 Maria Fernandez 555‐808‐9633
La restricción de los números de teléfono por cliente a tres. Si viene un cliente con
cuatro números de teléfono, estamos obligados a guardar solamente tres y dejar el
cuarto sin guardar. Esto significa que el diseño de la base de datos está imponiendo
restricciones al proceso del negocio, en vez de (como idealmente debe ser el caso)
al revés.
Cliente
ID Cliente Nombre Apellido Teléfono
123 Rachel Ingram 555‐861‐2025
456 James Wright 555‐403‐1659, 555‐776‐4100
789 Maria Fernandez 555‐808‐9633
Figura E.4: Ampliación del tamaño del campo para albergar múltiples teléfonos.
128 APÉNDICE E. BASE DE DATOS DE LOS NODOS
Cliente
ID Cliente Nombre Apellido
123 Rachel Ingram
456 James Wright
789 Maria Fernandez
Teléfono del cliente
ID Cliente Teléfono
123 555‐861‐2025
456 555‐403‐1659
456 555‐776‐4100
789 555‐808‐9633
Habilidades de los empleados
Empleado Habilidad Lugar actual de trabajo
Jones Mecanografía 114 Main Street
Jones Taquigrafía 114 Main Street
Jones Tallado 114 Main Street
Bravo Limpieza ligera 73 Industrial Way
Ellis Alquimia 73 Industrial Way
Ellis Malabarismo 73 Industrial Way
Harrison Limpieza ligera 73 Industrial Way
Empleados
Empleado Lugar actual de trabajo
Jones 114 Main Street
Bravo 73 Industrial Way
Ellis 73 Industrial Way
Harrison 73 Industrial Way
Habilidades de los empleados
Empleado Habilidad
Jones Mecanografía
Jones Taquigrafía
Jones Tallado
Bravo Limpieza ligera
Ellis Alquimia
Ellis Malabarismo
Harrison Limpieza ligera
Ganadores del torneo
Torneo Año Ganador Fecha de nacimiento del ganador
Indiana Invitational 1998 Al Fredrickson 21 de julio de 1975
Cleveland Open 1999 Bob Albertson 28 de septiembre de 1968
Des Moines Masters 1999 Al Fredrickson 21 de julio de 1975
Indiana Invitational 1999 Chip Masterson 14 de marzo de 1977
Ganadores del torneo
Torneo Año Ganador
Indiana Invitational 1998 Al Fredrickson
Cleveland Open 1999 Bob Albertson
Des Moines Masters 1999 Al Fredrickson
Indiana Invitational 1999 Chip Masterson
Fecha de nacimiento del jugador
Jugador Fecha de nacimiento
Chip Masterson 14 de marzo de 1977
Al Fredrickson 21 julio de 1975
Bob Albertson 28 septiembre de 1968
Las anomalías de actualización no pueden ocurrir en estas tablas, las cuales están en
3NF.
La mayoría de las tablas 3NF están libres anomalías de actualización, inserción,
y borrado. Ciertos tipos de tablas 3NF, que en la práctica raramente se encuentran,
son afectadas por tales anomalías; éstas son tablas que no satisfacen la forma normal
de Boyce-Codd (BCNF) o, si satisfacen la BCNF, son insuficientes para satisfacer las
formas normales más altas 4NF ó 5NF.
132 APÉNDICE E. BASE DE DATOS DE LOS NODOS
El diagrama normalizado de las tablas propuestas para el manejo de los datos del
sistema se muestra en la Figura E.13.
Dado que la trasmisión de datos numéricos o cadenas de caracteres vía puerto serial
no tiene diferencia alguna, ya que se transmiten cadenas de 8 bits para conformar uno
de ellos. Las tablas de la base de datos se han construido en general con campos tipo
texto. Todas estas definiciones se pueden observar con detalle en las Figuras E.14, E.15,
E.16, E.17 y E.18.
Una vista, de un conjunto de datos de ejemplo, del sistema de bases de datos puede
construir la descripción de los certificados de los dispositivos en la EB, Figura E.19. Estos
datos son utilizados para construir la cadena de caracteres que viajarán en la parte útil
de la trama de ZigBee.
[2] Codd, E. F., “A Relational Model of Data for Large Shared Data Banks Commu-
nications of the ACM,” Vol. 13, No. 6, June 1970, pp. 377-387
F.1. MTI
F.1.1. Algoritmo de acuerdo de la llave MTI1
135
136 APÉNDICE F. PROGRAMAS
Dim contador#, alfa#, av#, bu#, bv#, ru#, rv#, su#, sv#, k1#, k2#
contador = 1
p = 29
alfa = 7
TextBox7.Text = p
TextBox13.Text = alfa
p1 = Val(TextBox7.Text)
Gen()
TextBox8.Text = au1
TextBox9.Text = av1
TextBox10.Text = ru1
TextBox11.Text = rv1
au = Val(TextBox8.Text)
av = Val(TextBox9.Text)
ru = Val(TextBox10.Text)
rv = Val(TextBox11.Text)
Loop
TextBox1.Text = bu
TextBox2.Text = bv
TextBox3.Text = su
TextBox4.Text = sv
TextBox5.Text = k1
TextBox6.Text = k2
End Sub
Dim z#
z = x - (Int(x / y) * y)
nMod = z
End Function
End Class
138 APÉNDICE F. PROGRAMAS
F.2. RSA
Module RSAv1
p = 0 : q = 0
Randomize()
N = p * q
PHI = (p - 1) * (q - 1)
E = mcd(PHI)
D = Euclides(E, PHI)
Loop
key(0) = E
key(1) = D
key(2) = N
End Sub
u1 = 1
u2 = 0
u3 = PHI3
v1 = 0
v2 = 1
v3 = E3
Do Until (v3 = 0)
q = Int(u3 / v3)
t1 = u1 - q * v1
t2 = u2 - q * v2
t3 = u3 - q * v3
u1 = v1
u2 = v2
140 APÉNDICE F. PROGRAMAS
u3 = v3
v1 = t1
v2 = t2
v3 = t3
z = 1
Loop
uu = u1
vv = u2
Euclides = inverse
End Function
Dim nE#, y#
Randomize()
nE = Int((N_UP - N_LW + 1) * Rnd() + N_LW)
top:
Dim x As Long
x = nPHI Mod nE
y = x Mod nE
If y <> 0 And EsPrimo(nE) Then
mcd = nE
Exit Function
F.2. RSA 141
Else
nE = nE + 1
End If
GoTo top
End Function
Dim lngCount#
Dim lngSqr#
Dim x#
Next
End Function
Dim y As Integer
y = 1
Do While p > 0
error1:
y = 0
End Function
Dim z#
F.2. RSA 143
z = x - (Int(x / y) * y)
nMod = z
End Function
enc = encSt
End Function
For z = 1 To Len(tIp)
ptr = InStr(z, tIp, "+")
tok = Val(Mid(tIp, z, ptr))
decSt = decSt + Chr(Mult(tok, dD, dN))
z = ptr
Next z
dec = decSt
End Function
’Crea el hash
bHash = s1Service.ComputeHash(bCadena)
Resumen = Convert.ToBase64String(bHash)
Return Resumen
End Function
End Module
F.3. FORMA 145
F.3. Forma
F.3.1. Código base de la forma
Imports System
Imports System.IO.Ports
Imports System.Text
Imports System.Security
Imports System.Security.Cryptography
Asc2hex = VHex
End Function
Asc2bin = VBin
End Function
Hex2Bin = "0001"
Case "2"
Hex2Bin = "0010"
Case "3"
Hex2Bin = "0011"
Case "4"
Hex2Bin = "0100"
Case "5"
Hex2Bin = "0101"
Case "6"
Hex2Bin = "0110"
Case "7"
Hex2Bin = "0111"
Case "8"
Hex2Bin = "1000"
Case "9"
Hex2Bin = "1001"
Case "a"
Hex2Bin = "1010"
Case "b"
Hex2Bin = "1011"
Case "c"
Hex2Bin = "1100"
Case "d"
Hex2Bin = "1101"
Case "e"
Hex2Bin = "1110"
Case "f"
Hex2Bin = "1111"
Case Else
MsgBox("Valor no admitido!")
End Select
End Function
keyGen()
txtP.Text = p ’P
148 APÉNDICE F. PROGRAMAS
txtQ.Text = q ’Q
txtPhi.Text = PHI ’PHI
txtE.Text = key(0) ’E
txtD.Text = key(1) ’D
txtN.Text = key(2) ’N
cmdDecrypt.Enabled = True
cmdEncrypt.Enabled = True
cmdHash.Enabled = True
End Sub
cmdKeyGen.Enabled = False
Text9.Text = enc(Text3.Text, key(0), key(2))
Text1.Text = Asc2hex(Text9.Text)
Text2.Text = Len(Text9.Text)
Text4.Text = Asc2bin(Text9.Text)
Text10.Text = ""
End Sub
boton = 1
End Sub
150 APÉNDICE F. PROGRAMAS
longitud = SerialPort1.BytesToRead()
Dim buffer1(longitud - 1) As Byte
SerialPort1.Read(buffer1, 0, longitud)
bufferIn = buffer1
valor = SerialPort1.ReadExisting()
bytes = valor.Length
strWeight = ByteArrayToString(bufferIn)
End Sub
For y = 1 To Len(hextext)
num = Mid(hextext, y, 2)
value &= Chr(Val("&h" & num))
y = y + 1
Next y
hex2ascii = value
End Function
Dim i As Integer
For i = Len(BinStr) To 1 Step -1
If Mid(BinStr, i, 1) = "1" Then
DecNum = DecNum + mult
End If
mult = mult * 2
152 APÉNDICE F. PROGRAMAS
Next i
BinToDec = DecNum
End Function
boton = 2
limpiar()
& vbCrLf & "Esperando datos del Chip CC3140" & vbCrLf & _
"Longitud de la respuesta: " & longitud & " bytes")
End Sub
boton = 3
limpiar()
’Depliegue en pantalla de los procesos de solicitud y respuesta
RichTextBox1.Text = ("Dato enviado " & ByteArrayToString(data) _
& vbCrLf & "Longitud enviada: " & data.Length & vbCrLf & "Esperando_
datos del Chip CC3140" & vbCrLf & "Longitud de la respuesta: " & _
longitud & " bytes")
End Sub
txtHash.Text = CreateHash(Text9.Text)
lblHash.Text = Len(txtHash.Text)
End Sub
Dim i As Integer
TextBox1.Text = ""
Text3.Text = ""
RichTextBox1.Text = ""
End Sub
Dim i As Integer
Dim iOutput As Integer = 0
For i = 1 To arrInput.Length - 1
iOutput = iOutput Xor arrInput(i)
Next
Return iOutput
End Function
convert = DecToHex(valor)
Return convert
End Function
End Class