Implementación de Un Piloto de Cifrado Homomórfico en Redes de Sensores
Implementación de Un Piloto de Cifrado Homomórfico en Redes de Sensores
Implementación de Un Piloto de Cifrado Homomórfico en Redes de Sensores
INDUSTRIALES Y DE TELECOMUNICACIÓN
UNIVERSIDAD DE CANTABRIA
IMPLEMENTACIÓN DE UN PILOTO DE
CIFRADO HOMOMÓRFICO EN REDES DE
SENSORES
Homomorphic Ciphering Proof of Concept
applied to Wireless Sensor Networks
Graduado en
Ingeniería de Tecnologías de Telecomunicación
Autor: Marta Méndez Simón
Octubre - 2016
E.T.S. DE INGENIEROS INDUSTRIALES Y DE TELECOMUNICACION
Abstract
ETS de Ingenieros Industriales y de Telecomunicación
Departamento de Ingenierı́a de Comunicaciones (DICOM)
A Boeing 787 aircraft generates 240TB on a 6-hour flight. 48 hours of video are uploaded
to YouTube every minute. Around 305.000 observations are made on SmartSantander
every single day... In a world where information is generated at such pace, it is essential
to deliver solutions that ease this traffic burden, by processing the data and providing
meaningful information to the end user. The Internet of Things being a giant network of
connected ’things’ (cellphones, lamps, engines... to even humans themselves) generates
huge amounts of data on a daily basis. The analyist firm Gartner says that by 2020
there will be over 28.5 billion connected devices. But having these much information
and not being able to derive any conclussions about it, leaves us with a great amount of
meaningless data.
Wireless Sensor Networks are a keyplayer in this so-called Internet of Things. Amongst
its applications we find area monitoring, health care monitoring, environmental sensing,
forest fire detection... to mention a few. Nodes in a WSN are characterized by very
limited computing capabilites. Power consumption constraints become a major concern,
therefore implying that communications should be kept at a minimum.
On the other hand, we are faced with security and privacy issues, which are a must in
nowadays world. With so many connected devices, how can we asure confidentiality on
our sensitive information? Wireless Sensor Networks, due to the limited power resources,
discard the use of conventional security solutions, such as AES. We must figure out a
way to keep eavesdroppers unaware of the sensed data being monitorized in these kind
of networks. The definition of secure and privacy aware solutions, that ensure at the
same time limited power consumption on transmitted data, poses a great challenge.
The level of engineering required to propose a solution that meets these restrictive
constraints is remarkable. We propose a special kind of encryption, with homomorphic
capabilities, that relies only on modular additions. These simple, non-expensive opera-
tions in computing terms make them perfectly suitable for WSNs. We propose a hybrid
mesh/sensor network scheme that delivers a transparent multi-hop wireless backhaul
able to handle in a secure way different kinds of data (temperature, humidity...) coming
from different kinds of wireless sensor networks. In such a scheme, end-to-end privacy
is ensured, as only sensor nodes and the server encrypt and decrypt the values. Forwar-
ding intermediate nodes, such as gateways, are kept unaware of the clear data being
transmitted, and are allowed to perform additions directly on the encrypted texts.
We have taken this scheme one step further, and implemented it on one of SmartSan-
tander testbed’s labs.
Agradecimientos
Quisiera agredecer sinceramente a mi director de Trabajo de Fin de Grado, el Catedrático
Luis Muñoz Gutiérrez, su esfuerzo y guı́a a la hora de plantear y llevar a buen fin este
trabajo; y por proponerme un tema con tanto potencial y de tal actualidad como es el
cifrado homomórfico.
Por otra parte, querrı́a destacar y agradecer la ayuda de Juan Ramón Santana Martinez,
quien ha seguido dı́a a dı́a el desarrollo de este trabajo, y ha sido el punto de referencia
a la hora de implementar el esquema en el entorno de SmartSantander.
iv
Índice general
Abstract ii
Agradecimientos iv
Abreviaciones ix
1 Introducción 1
1.1 Desafı́os de las Wireless Sensor Network (WSN) . . . . . . . . . . . . . . . 2
3 Cifrado Homomórfico 8
3.1 Bases del Cifrado Homomórfico . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 Definición Cifrado Homomórfico . . . . . . . . . . . . . . . . . . . 13
3.1.2.1 Cifrado Homomórfico Aditivo . . . . . . . . . . . . . . . . 13
3.2 Agregación en WSN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Escenarios de agregación de datos . . . . . . . . . . . . . . . . . . . . . . 16
3.3.1 No Agregación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.2 Agregación salto a salto con descifrado . . . . . . . . . . . . . . . . 17
3.3.3 Agregación salto a salto sin descifrado . . . . . . . . . . . . . . . . 18
3.3.3.1 Cálculo de la Media . . . . . . . . . . . . . . . . . . . . . 19
3.3.3.2 Cálculo de la Varianza . . . . . . . . . . . . . . . . . . . . 19
3.3.3.3 Tamaño de los valores M y M’ . . . . . . . . . . . . . . . 20
v
Tabla de Contenidos vi
Bibliografı́a 47
Índice de figuras
vii
Índice de cuadros
viii
Abreviaciones
ix
Dedicado a mi abuelo José Simón Quintana, Dr. Ingeniero de
Telecomunicación.
x
Capı́tulo 1
Introducción
En paralelo a las WSNs se fue desarrollando la idea del IoT, referida a aquellos objetos
identificables de forma única y a sus respectivas representaciones virtuales en el contexto
de Internet. Estos objetos incluyen desde enormes edificios, plantas industriales, aviones,
coches, máquinas... hasta seres humanos, animales y plantas, o incluso partes especı́ficas
de sus cuerpos. En 2015, 13.5 mil millones de dispositivos IoT se encontraban conectados;
varios estudios apuntan a que este número ascenderá en 2020 a 38.5 mil millones; una
subida del 285 %.
1
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 2
coste y bajo consumo de energı́a de los nodos sensores de las WSNs, permitirá al IoT
llegar a los objetos más pequeños, instalados en cualquier tipo de ambiente, a un coste
razonable.
Una red de sensores inalámbrica (WSN) es una red formada por un gran número de
nodos sensores desplegados entorno a un fenómeno fı́sico para monitorizarlo. El objetivo
final de la red es poder inferir una decisión ligada a un determinado fenómeno o con-
texto, lo que requiere de la máxima coordinación y detección a nivel de sensor. Por otra
parte, las WSNs son conocidas por actuar bajo restricciones tecnológicas severas: los
nodos individuales presentan recursos limitados en cuanto a computación, comunicación
y energı́a (baterı́a).
Las comunicaciones en las WSNs suelen ser inalámbricas multi-salto, donde todos los
nodos de la red participan y cooperan. Debido a la naturaleza ad-hoc de las mismas,
los nodos no se limitan a enviar sus datos y a recibir instrucciones, sino que pasan a
ser infraestructura propia de la red, reenviando los datos recibidos de otros sensores
vecinos. Para llevar a cabo tal retransmisión de los datos, es esencial el árbol de entrega
(delivery tree), generado tras el despliegue de los nodos de la red, y que indica el camino
desde el sumidero (nodo encargado de recoger los datos sensados y puente entre la
WSN y el mundo exterior) hacia cada uno de los nodos sensores. De tal forma, los
paquetes recibidos por un sensor serán redireccionados hacia el sumidero, atravesando
todos aquellos nodos que se encuentren a lo largo de la ruta marcada por el delivery tree.
Las WSNs suelen desplegarse en zonas públicas o ambientes hostiles, por lo que son
potencialmente vulnerables a distintos ataques de seguridad (de gestión de claves, pri-
vacidad, control de acceso, autenticación, Denial Of Service - DoS...); que hay que tener
en cuenta y remediar. El primer desafı́o de las WSNs que hemos mencionado, ligado
a su escasa baterı́a, lo solventábamos aplicando esquemas de agregación de datos. Es-
ta agregación es especialmente vulnerable a atacantes que quieran inyectar información
falsa o forzar valores agregados dentro de la red sin ser detectados. Aunque se podrı́an
implementar muchos servicios de seguridad en esta capa de agregación, serı́a a base de
sacrificar en consumo de energı́a, perdiendo el sentido de la agregación en un primer
lugar. Soluciones tı́picas como el cifrado de clave pública quedan descartadas por la alta
carga computacional que conllevan. Nos encontramos por tanto con nuestro segundo
desafı́o: garantizar la seguridad y privacidad en WSNs.
Ya hemos mencionado que para maximizar el tiempo de vida del sensor es esencial mi-
nimizar el número de bits enviados por dispositivo. Un enfoque consiste en ir agregando
los datos recibidos de otros sensores con los propios del sensor, a lo largo del camino
marcado por el delivery tree. Hay que tener en cuenta que esta agregación de datos no
es equivalente a almacenar las medidas individuales de cada sensor. De tal manera, en
algunas aplicaciones (como en control de acceso perimetral) la agregación carecerá de
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 4
sentido porque se perderı́an las medidas individuales de cada sensor, que son las que
realmente resultan de interés. Por el contrario, muchos otros escenarios de redes de sen-
sores, como aquellos que monitorizan un microambiente entero (temperatura o actividad
sı́smica), no requieren los datos medidos por cada sensor, sino que se benefician más de
cantidades estadı́sticas: la media, la mediana, la varianza...
1
Utilizamos los términos downstream y upstream para referirnos a ’desde’ y ’hacia’ el sumidero
respectivamente.
Capı́tulo 2
2.1 Objetivos
5
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 6
Para lograr este objetivo, empleamos el algoritmo definido por Castelluccia [6] basado en
el cifrado homomórfico, y que permite la agregación eficiente de los datos cifrados. Al usar
únicamente sumas modulares, es especialmente útil para dispositivos con limitaciones de
CPU (Central Processing Unit) como son nuestros nodos sensores. El gateway sumará
las medidas recibidas de la WSN, y será el sumidero quien descifre y compute las medidas
estadı́sticas: media y varianza.
Asumiremos que cada uno de los n sensores comparte una clave diferente de larga du-
ración con el sumidero, y que la distribución de las mismas ya viene dada.
Tal y como refleja Castelluccia en su artı́culo [6], aunque estemos consiguiendo cifrado
extremo a extremo, asumiremos autenticación salto a salto. De forma opuesta al cifrado,
los esquemas de autenticación que a su vez permitan la agregación parecen ser complejos,
quizá imposibles, de diseñar. Es más, incluso si existiera un esquema tal de agregación,
no resulta claro cómo de útil podrı́a ser realmente en la práctica, ya que en una WSN
el atacante puede influir fácilmente en la agregación simplemente actuando sobre el am-
biente que se está midiendo (por ejemplo incrementando artificialmente la temperatura
alrededor de un sensor). En este tipo de ataque no hace falta que el atacante compro-
meta ningún nodo. En las WSN, la autenticación no garantiza la originalidad de los
datos, sino que puede usarse para control de acceso (por ejemplo previniendo a nodos
no autorizados de inyectar paquetes falsos en la red). Este control de acceso puede ser
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 7
generado de forma eficiente con autenticación salto a salto, de forma que no se requiera
invocar la autenticación extremo a extremo. Se han definido ciertos mecanismos como
SAWN (Secure Aggregation for Wireless Networks) [9] y posteriormente SEDAN (Se-
cure and Efficient Data Aggregation protocol for wireless sensor Networks) [10] para
garantizar la verificación salto a salto. En el caso de SEDAN, cada nodo puede verificar
inmediatamente la integridad de los datos de sus vecinos que estén a dos saltos, y la
agregación de los vecinos inmediatos; de forma que se evita la transmisión de datos falsos
inyectados en la red, ahorrando los limitados recursos energéticos de los sensores. SAWN
por otra parte, es un protocolo de agregación segura salto a salto basado en un meca-
nismo de verificación de dos saltos: su solución permite que cualquier nodo prevenga la
modificación de datos en el siguiente salto durante la agregación. En este trabajo, no
abordaremos directamente la autenticación salto a salto, y asumiremos que previamente
se ha aplicado algún mecanismo para tal fin.
2.2 Estructura
Cifrado Homomórfico
Todos conocemos la forma de proteger nuestros datos más privados y valiosos de acceso
no autorizado: cifrando aquellos. Cuando un bloque de información M se cifra bajo una
clave K para obtener un mensaje cifrado C = EncK (M ), solo el receptor intencionado
(que conoce la clave de descifrado correspondiente S) será capaz de revertir la función
de cifrado y recuperar el texto original utilizando el algoritmo de descifrado DecS (C) =
DecS (EncK (M )) = M .
Generalmente, el uso de cifrado para proteger los datos sensibles o valiosos puede ser muy
limitado e inflexible, puesto que los datos, una vez cifrados, actúan como una caja negra
para nosotros y todo lo que podemos hacer es mantenerla cerca para poder abrirla o
cerrarla a la hora de acceder y operar sobre los datos [11]. Aunque en muchos escenarios,
sea precisamente ese el objetivo que buscamos, cuando salimos de los modelos conven-
cionales de almacenamiento/recuperación, nos enfrentamos a un problema. Digamos que
queremos que un sistema remoto sea capaz de otorgar una funcionalidad más compleja,
como un sistema de base de datos que pueda indexar y buscar en nuestros datos, o que
responda a solicitudes relacionales semiestructuradas bastante complejas. Si empleáse-
mos la tecnologı́a de cifrado estándar, harı́amos frente al siguiente dilema: ¿almacenamos
nuestros datos sin cifrar y revelamos nuestra valiosa información al proveedor de ser-
vicios de almacenamiento?. ¿O lo ciframos y hacemos posible que el proveedor opere
sobre ello?. Si decidiéramos cifrar la información, el responder a una consulta tan simple
8
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 9
como un contador (por ejemplo el número de archivos que contienen una palabra clave)
requerirı́a descargar y descifrar el contenido de la base de datos en su totalidad.
De forma más general, podemos afirmar que los esquemas de cifrado homomórfico ofrecen
una mejora significativa en cuanto a eficiencia y seguridad computacional en ambientes
con múltiples individuos involucrados.
En este capı́tulo, analizaremos las bases del cifrado homomórfico como tal, y buscaremos
su aplicación práctica en un problema especı́fico: las redes de sensores.
3.1.1 Antecedentes
Homomórfico es un adjetivo que describe una propiedad del esquema de cifrado. Esta
propiedad, en términos sencillos, es la habilidad de llevar a cabo computaciones sobre el
texto cifrado sin tener que descifrarlo en un primer lugar.
El simple pero inseguro esquema de cifrado rot-13 (también conocido como Cifrado
César) [13], es parcialmente homomórfico, especı́ficamente con respecto a la operación
de concatenación. Este tipo de cifrado por sustitución consiste en reemplazar cada letra
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 10
del texto original por otra que se encuentra un número fijo de posiciones por delante
en el alfabeto. Dicho número será la clave secreta a usar en las funciones de cifrado
y descifrado. Si utilizamos como clave 13 y ciframos la palabra HELLO y la palabra
WORLD, obtendremos URYYB y JBEYQ respectivamente. Si concatenamos ambos
textos y procedemos a descifrarlos, llegaremos al resultado HELLOWORLD.
Al no haber sido necesario descifrar los dos fragmentos del texto antes de llevar a cabo
la operación de concatenación, podemos afirmar que rot-13 es homomórfico respecto a la
concatenación. En otras palabras, somos capaces de coger dos piezas cifradas y realizar
una operación sobre ellas, que resulta directamente en el texto cifrado que habrı́amos
obtenido concatenando ambas piezas sin cifrar y cifrándolas en conjunto.
Como refleja la Figura 3.1, la concatenación homomórfica (concatenar los dos fragmen-
tos cifrados) es en este caso la misma operación que la concatenación no-homomórfica
(concatenar dos fragmentos sin cifrar). No siempre se da esta situación. Lo importante
es que podamos llevar a cabo algún tipo de operación sobre la información inicial cifrada
que produzca una nueva información cifrada tal que, al descifrarla, equivalga al resultado
que se habrı́a obtenido de haber aplicado la operación directamente sobre el texto sin
cifrar.
Aunque rot-13 no sea para nada seguro, resulta que algunos sistemas criptográficos
ampliamente conocidos como seguros también presentan propiedades homomórficas. Tal
es el caso del RSA puro y sin relleno, homomórfico respecto a la multiplicación.
n=p∗q (3.3)
Por tanto, se pueden multiplicar directamente los dos datos cifrados c1 ∗c2 , y al descifrarlo
se obtendrá el mismo valor que se hubiera generado de haber multiplicado los dos valores
en claro sin cifrar, m = m1 ∗ m2 mód n.
Puede ser que, tras haber llegado al homomorfismo multiplicativo, Rivest et al [12] se
preguntaran qué podrı́a llegar a hacerse en caso de obtener un esquema completamente
homomórfico: un esquema con un algoritmo tan eficiente que permitiera realizar cual-
quier tipo de operaciones, no solo multiplicaciones. La respuesta: se podrı́an llevar a cabo
computaciones sobre cualquier tipo de dato cifrado. Por ejemplo, se podrı́an procesar
datos cifrados (llevar a cabo solicitudes, escrituras, o hacer cualquier cosa expresable
de forma eficiente como un circuito) sin poseer la clave de descifrado. Como aplicación
sugirieron las bases de datos privadas. En tal entorno, un usuario podrı́a almacenar su
información en un servidor desconfiable en una forma cifrada. Más adelante podrı́a reali-
zar solicitudes a los datos del servidor, de forma que el servidor expresase dicha solicitud
como un circuito a aplicar sobre los datos, y utilizase el algoritmo para construir una
respuesta a la solicitud del usuario (cifrada), quien entonces procederı́a a descifrarla.
Obviamente se desea una respuesta por parte del servidor más concisa que la solución
trivial, en la que el servidor simplemente devuelve toda la información cifrada al usuario
para que la procese por si mismo.
Aunque hay un gran número de esquemas de cifrado con una única operación homomórfi-
ca, hasta muy recientemente no estaba claro si el cifrado completamente homomórfico
era siquiera posible. Rivest, Adleman y Dertouzos sugirieron que tal esquema serı́a po-
sible en 1978, pero fueron incapaces de encontrar un esquema seguro. Otro esquema,
propuesto por Boneh et al [15] soporta dos operaciones, pero solo se puede ejecutar
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 12
una de las dos cada vez. Cuando se considera la complejidad de un lenguaje de pro-
gramación tı́pico, dos operaciones no parecen mucho, pero como estamos interesados en
operaciones que transforman la información (de forma opuesta a mantener un puntero a
la instrucción actual), resulta que soportar las operaciones and y or es suficiente como
para considerar un esquema completamente homomórfico, siempre y cuando se ejecuten
esas operaciones un número ilimitado de veces.
Desde entonces se han ido concibiendo aplicaciones con gran potencial que se basan en el
esquema de cifrado homomórfico completo. No fue hasta 2009 cuando realmente se llegó
a tener una propuesta teórica de este tipo de cifrado (hasta entonces pensado como ideal
e irrealizable) gracias al investigador de IBM Craig Gentry que propuso como parte de
su tesis doctoral de Stanford, el primer esquema de cifrado completamente homomórfico
[16].
Tal y como dice Scott Aaronson, catedrático asistente en Ingenierı́a Eléctrica e Informáti-
ca en el MIT (Massachussets Institute of Technology) “This is one of the biggest theo-
retical developments in cryptography in decades”. Y no podrı́a estar más en lo cierto, ya
que las aplicaciones prácticas son ilimitadas, sobre todo en el mundo del cloud computing
que está en moda hoy en dı́a. Podrı́amos fácilmente descargar carga computacional a un
tercero a quien no queramos confiar la naturaleza y valor de los datos, y recuperar los
resultados totalmente cifrados sin haber tenido que revelar ningún tipo de información
sensible.
Aaronson explica que, como los esquemas de cifrado homomórfico permiten llevar a ca-
bo operaciones sin necesidad de descifrado, al estar la información en la misma forma
(homomórfica) tanto cifrada como sin cifrar, las operaciones aplicadas sobre ésta son
equivalentes. Pero también hay que destacar que añadir complejidad al tipo de opera-
ciones permitidas debilita de forma crı́tica el sistema, ya que permite que se descubra
más información relativa a los datos cifrados.
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 13
El trabajo de Gentry hace uso del cifrado de clave pública aplicándole un modelo ma-
temático llamado ideal lattice, y un método de corrección de errores que permite llevar
a cabo tareas básicas de análisis sobre los datos, sin llegar a ver nunca dichos datos o los
resultados derivados de ellos en claro. No entraremos a analizar con detalle su propuesta,
al estar más allá del alcance de este proyecto.
De forma que dado c1 = Enck1 (m1 ) y c2 = Enck2 (m2 ), existe una clave k tal que:
c1 ⊗ c2 = Enck (m1 ⊕ m2 )
En otras palabras, el resultado de aplicar la función ⊕ a valores sin cifrar puede obtenerse
descifrando el resultado de ⊗ aplicado a los valores cifrados correspondientes.
Ya hemos comentado a alto nivel las posibilidades del cifrado homomórfico, especial-
mente del cifrado completamente homomórfico. El problema que queremos solventar,
destinado a reducir el consumo de energı́a y garantizar la privacidad extremo a extremo
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 14
en las redes de sensores; no precisa del esquema de cifrado homomórfico completo, sino
que resulta suficiente encontrar un algoritmo de cifrado (y su correspondiente descifrado)
homomórfico únicamente respecto a la suma.
Para ello, retomaremos la idea principal propuesta por Castelluccia [6] para obtener un
esquema de cifrado homomórfico aditivo; fundamentado en los siguientes puntos:
Cifrado
Descifrado
1. Si c1 = Enc(m1 , k1 , M ) y c2 = Enc(m2 , k2 , M )
c1 + c2 = Enc(m1 + m2 , k1 + k2 , M ) (3.6)
Las claves individuales ki generadas de forma aleatoria, tienen que ser conocidas por
cada nodo ni y el sumidero.
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 15
Las técnicas de agregación permiten reducir la cantidad de datos que se envı́an dentro de
una WSN, prolongando ası́ el tiempo de vida de los dispositivos. Los sensores individuales
registran medidas de forma periódica, que han de ser reunidas y procesadas para generar
una representación global de los datos de la WSN (por ejemplo la media y/o varianza de
la temperatura dentro de un área). Un enfoque natural consistirı́a en hacer que los nodos
sensores envı́en los valores recogidos a ciertos nodos especiales, llamémosles agregadores.
Cada agregador condensarı́a los datos recibidos antes de enviarlos al siguiente nodo o
sumidero. En términos de ancho de banda y consumo energético, la agregación resultarı́a
beneficiosa siempre y cuando el proceso no requiera mucha CPU.
Los agregadores pueden ser nodos especiales (con mayor capacidad en términos de
cómputo o energı́a) o nodos sensores normales. En este trabajo asumiremos que úni-
camente los gateway son agregadores, y que los datos se agregan en su camino de pro-
pagación hacia el sumidero. En esta configuración, debido a las limitadas capacidades
de los nodos y a que no queremos añadir mucha carga computacional que repercuta
negativamente en la eficiencia de la red; la agregación tiene que ser simple y no incluir
cálculos complicados o caros. De forma ideal, solo se requerirı́an unas pocas operaciones
aritméticas simples, como sumas y multiplicaciones 1 .
La agregación requiere que todos los sensores envı́en sus datos al sumidero dentro del
mismo periodo de muestra. Para ello, sus relojes han de estar más o menos sincronizados,
o bien tienen que ser capaces de responder a consultas explı́citas del sumidero.
Una forma natural y común de agregar datos consiste en sumar los valores mientras son
encaminados hacia el sumidero. Por supuesto, este tipo de agregación es útil cuando el
sumidero está interesado exclusivamente en medidas estadı́sticas. Como destacamos en
el Capı́tulo 1, algunas aplicaciones de WSN que precisan de todos los datos individuales
sensados, no se beneficiarán de estas técnicas de agregación. De forma similar, aquellas
aplicaciones que buscan valores lı́mite, como el mı́nimo o máximo, tampoco sacarán
provecho a la agregación.
Con la agregación por adición, el gateway suma todos los valores xi recibidos de sus k
hijos (definidos por el delivery tree) y envı́a la suma a su nodo padre. Al final, el sumidero
obtiene la suma total de todos los valores enviados por los n sensores. Al dividir la suma
por n (número total de sensores) obtiene la media de los datos medidos.
1
Enfoque de Castelluccia [6]
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 16
Esta simple agregación es muy eficiente, ya que cada gateway realiza únicamente k − 1
sumas aritméticas 2 . También es robusto porque no requiere de la participación de todos
los sensores para llevar a cabo la suma; siempre y cuando el sumidero conozca el número
total de sensores que participaron en la medida obtenida.
La agregación por adición también se puede utilizar para calcular la varianza, desviación
tı́pica, y muchos otros momentos sobre los datos medidos. Por ejemplo, en el caso de
!
la varianza, cada agregador no solo ha de calcular la suma S = ki=1 xi de los valores
individuales cifrados mandados por sus k hijos, sino también la suma de sus cuadrados:
!
V = ki=1 x2i . Cada nodo sensor tendrá que enviar dos valores al sumidero: la medida
cifrada y la medida al cuadrado cifrada. El sumidero calcula dos valores: la suma de de
las medidas (con lo que puede calcular la media), y la suma de los cuadrados (con lo
que puede calcular la varianza).
3.3.1 No Agregación
2
El gateway no contribuye con una medida propia, por tanto se necesitan k − 1 sumas
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 17
El sumidero puede recuperar el valor en claro de la suma cifrada que recibe, y derivar
ciertos valores estadı́sticos. Este modelo combina las caracterı́sticas positivas de la no
agregación (privacidad extremo a extremo) y la agregación hop-by-hop con descifrado
(eficiencia energética).
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 19
Cuando se usa el esquema anteriormente propuesto, cada sensor cifra sus medidas xi
para obtener cxi = Enc(xi , ki , M ).
Cada nodo sensor envı́a cxi a su padre, quien procede a agregar todos los cxj de sus k
hijos simplemente haciendo la suma (en módulo M); y envı́a el valor resultante a su nodo
padre. Finalmente, cuando llegamos al extremo del delivery tree, el sumidero computa
!
la suma de los datos recibidos por sus hijos y obtiene el valor Cx = ni=1 cxi mód M .
!n
Descifrando este valor Sx = Dec(Cx , K, M ) = Cx − K mód M , donde K = i=1 ki
puede derivar la media haciendo: Avg = Sx /n.
Ya hemos mencionado anteriormente que este esquema permite derivar otro tipo de datos
estadı́sticos como la varianza. Aplicando esperanzas llegamos a la siguiente expresión:
donde
n
"
E(x2 ) = x2i /n (3.8)
i=1
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 20
n
!
E(x) = xi /n (3.9)
i=1
.
En este caso, cada sensor i debe calcular yi = x2i (donde xi es la muestra medida) y
cifrar yi para obtener cyi = Enc(yi , ki′ , M ′ ). Además, ha de cifrar xi como hemos indicado
en la anterior sección, para que el sumidero sea capaz de calcular la media. El sensor
envı́a ambas medidas cyi y cxi a su padre; quien procede a agregar todos los cyj y los
cxj (de forma separada) de sus k hijos simplemente sumándolos. A continuación envı́a
los dos valores resultantes a su nodo padre. El sumidero termina con los valores Cx y
"n
Cy = i=1 cyi mód M . A partir de Cx derivará la media Av; y Cy lo utilizará para
"
calcular la varianza: Vx = Dec(Cy , K ′ , M ) = Cy − K ′ mód M , donde K ′ = ni=1 ki′ . La
varianza entonces se calcula como: V ar = Vx /n − Av 2 .
Como ya hemos comentado, M tiene que ser lo suficientemente grande como para prevenir
posibles desbordamientos. De tal forma, para calcular la media:
p = max(xi ) (3.10)
M =p∗n (3.13)
Por tanto, tendremos M = p ∗ n y una longitud de log2 (M ) = log2 (p) + log2 (n) bits por
cada valor cifrado xi .
En caso de querer calcular la varianza necesitaremos los anteriores log2 (M ) = log2 (p) +
log2 (n) bits para xi , además de los necesarios para x2i :
Es decir, un total de log2 (M ) = (2∗log2 (p)+log2 (n))+(log2 (p)+log2 (n)) = 3∗log2 (p)+
2 ∗ log2 (n) bits para poder sumar sin desbordamiento todos los cxi y cx2 .
i
Capı́tulo 4
21
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 22
Nivel IoT Los nodos IoT son los responsables del sensado del parámetro co-
rrespondiente (temperatura, CO, ruido, luminosidad, presencia de
coches, etc). La mayor parte de ellos se encuentran integrados en
repetidores, mientras que otros son autónomos y se comunican de
forma inalámbrica con su correspondiente repetidor (como es el caso
de los sensores de parking enterrados en el asfalto). Estos últimos,
debido a la falta de alimentación de energı́a continua, requieren del
uso de baterı́as. Los repetidores se localizan a cierta altura en faro-
las, semáforos, paneles de información, etc; para actuar como nodos
de reenvı́o que transmitan la información asociada a los distintos
parámetros medidos. Los nodos están equipados con dos interfaces
diferentes de comunicación, ambas actuando en 2.4 GHz: la primera
implementa el protocolo IEEE 802.15.4 de forma nativa, mientras
que la segunda implementa sobre IEEE 802.15.4 un protocolo pro-
pietario llamado Digimesh. Este protocolo crea automáticamente
una red mallada entre los nodos, permitiendo que se direccionen de
forma fácil y directa. Todos los nodos pueden actuar reenviando los
paquetes o como puntos finales, permitiendo por tanto comunica-
ciones multisalto entre el nodo origen y nodo destino.
Nivel Gateway Tanto los nodos IoT como los repetidores están configurados pa-
ra enviar toda la información de sensado (a través del protocolo
Digimesh), aprovisionamiento de servicio ası́ como gestión de red
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 23
4.1.1 Infraestructura
4.2 Recursos
• Placa base: Esta placa (llamada waspmote) se encarga del procesamiento y ges-
tión de memoria. Ofrece un conjunto de interfaces a las cuales fijar los sensores
(tanto analógicos como digitales); ası́ como los distintos módulos radio que per-
miten la comunicación con otros nodos. La waspmote está equipada con un mi-
crocontrolador ATmega1281, y diferentes tipos de memoria: 8KB SRAM, 4KB
EEPROM, 128KB FLASH y una memoria extra SD con 2GB de capacidad. De
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 25
• Dos módulos radio XBee-PRO: Ambos módulos creados por la compañia Digi
[20]. Operan en la banda de 2.4 GHz. La interfaz 802.15.4 se dedica a la experi-
mentación, mientras que la que incluye el protocolo Digimesh se reserva al servicio
de provisión de datos, control y gestión del tráfico.
4.2.2 Gateways
El dispositivo Gateway (llamado meshlium [21]) ofrece una mayor capacidad en términos
de procesador (500MHz) y memoria (256MB RAM y un disco duro de hasta 32GB). Está
equipado asimismo de dos interfaces: una Digimesh y otra 802.15.4. De forma adicional,
contiene interfaces Wi-Fi, GPRS y Ethernet para conectarse a Internet. Una vez que la
información de los nodos y repetidores alcanza el gateway, el gateway la hace accesible
de forma global.
El IDE-Waspmote [22] incluye todas las librerı́as del API [23] necesarias para compilar
los programas.
4.2.4 XCTU
XCTU [24] es una aplicación multiplataforma diseñada para permitir que los desarrolla-
dores interactuen con los módulos RF Digi a través de una interfaz gráfica fácil de usar.
Incluye las herramientas para configurar y testear los módulos RF Xbee.
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 27
En nuestro trabajo, emplearemos esta aplicación en una de las etapas iniciales para
comprobar la correcta recepción de las tramas (a las cuales se ha aplicado el cifrado
homomórfico) en el gateway.
La mayor parte de aplicaciones hoy en dı́a (tal y como el despliegue de nodos que nos
ocupa en este trabajo) están formadas por componentes ubicados en algún tipo de red,
bien LAN o Internet. La mayor parte de desarrolladores terminan enfrentándose a algún
tipo de mensajerı́a en dichas aplicaciones. Algunos utilizan productos de mensajerı́a de
cola ya existentes; pero la mayor parte del tiempo acaban desarrollándolo ellos mismos
usando TCP o UDP. Aunque estos protocolos no son difı́ciles de utilizar, hay una gran
diferencia entre enviar unos pocos bytes de A a B, a hacer mensajerı́a de una forma
fiable.
Haremos uso de ZeroMQ [25], una librerı́a de mensajerı́a que actúa como un framework
de concurrencia. Ofrece a las aplicaciones una única API de sockets para trabajar, sin
importar el transporte real subyacente (TCP, multicast, in-process, inter-process). Per-
mite conectar sockets con patrones N-to-N: FAN-OUT, PUB-SUB, distribución de tareas
y REQUEST-REPLY. Es lo suficientemente rápido como para emplearse en productos
clusterizados. Su modelo ası́ncrono I/O permite desarrollar aplicaciones multicore esca-
lables, construido como tareas ası́ncronas de procesado de mensajes. Su API es sencilla
y se puede ejecutar sobre la mayor parte de sistemas operativos.
En este esquema, los datos se publican junto a un topic, y los subscribers normalmente
establecen un filtro con aquellos topics que les interesan.
Este patrón de mensajerı́a será recurrente en el desarrollo del trabajo. Nos encontraremos
frente a escenarios del tipo A, donde el gateway actuará como subscriber de las tramas
enviadas por los nodos (publishers); y pasarán a tomar el papel de publishers cuando
envı́en tramas hacia el servidor, quien se suscribirá a sus respectivos topics.
El esquema de la Figura 4.7 representa el modelo de red que nos ocupa. Como puede
apreciarse, tenemos diferentes clústeres de sensores que explotan un troncal inalámbrico
multisalto para enviar sus datos medidos al sumidero de la red. Cada cluster está com-
puesto por un número variable de nodos y un gateway. Cada gateway será encargado
de reunir los mensajes cifrados recibidos de los nodos sensores locales a su cluster, y de
implementar nuestro esquema seguro de agregación.
Las tramas enviadas por los nodos sensores mantendrán el formato de las de servicio de
SmartSantander (ver Figura 4.9), con las siguientes salvedades:
• Frame Type (1-byte). Llevará en vez del valor por defecto 0x00, el valor 0x66 para
indicar que el payload contiene las medidas xi y x2i cifradas.
2
Todos los valores (dentro del payload) se envı́an como strings
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 31
Por su parte, la comunicación de los nodos gateway con el servidor seguirá el formato de
las tramas genéricas de servicio de SmartSantander (ver Figura 4.10), con las siguientes
modificaciones:
– 0x67. Indica que la trama ha sido enviada por el gateway siguiendo el esque-
ma de cifrado homomórfico, por lo que el payload contendrá tres tripletas.
3
Al igual que en las tramas de los nodos sensores
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 32
Para obtener la media y la varianza, el gateway tiene que realizar los siguientes cálculos
con las medidas recibidas de sus nodos hijos:
n
!
Cx = c xi (4.1)
i=1
n
!
Cy = c x2 (4.2)
i
i=1
donde xi es el valor individual medido por el nodo sensor, cxi es el anterior valor cifrado,
cx2 el cuadrado de la medida cifrado, y n el número total de sensores que han colaborado
i
El sumidero tendrá que descifrar estos dos valores para calcular la media E(x) y la
varianza V ar(x) de los datos medidos:
Dec(Cx , K, M ) Cx − K mód M
E(x) = = (4.3)
n n
Dec(Cy , K, M ) Cy − K mód M
E(x2 ) = = (4.4)
n n
"n
teniendo en cuenta que K = i=1 ki , y cada ki se corresponde con la clave compartida
entre cada nodo i y el sumidero.
En el escenario concebido para este piloto, cada nodo sensor muestrea periódicamente
(cada 30 segundos) la temperatura ambiente. Las muestras se envı́an entonces al gateway,
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 33
4.6 Implementación
4.6.1 Nodos
En el entorno del laboratorio, encenderemos los diez nodos sensores para que comiencen
a monitorizar la temperatura y envı́en sus muestras cifradas.
Los nodos hacen uso de las librerı́as de SmartSantander programadas en C++, las
aportaciones hechas en este trabajo se encuentran en los archivos SmartSantander.cpp
y SmartSantander.h.
Cada nodo:
4.6.2 Gateway
El gateway seguirá la lógica del código desarrollado para esta aplicación gateway subscription.c
y reflejado en la Figura 4.12
Cada gateway:
(a) Inicializa el array con los ID de los nodos a cero, asi como el array que
almacena los cálculos, sum encrypted value for type donde la posición 0
!
guarda el tipo de sensor, la posición 1 Cx = ni=1 cxi mód M y la posición 2
!
Cy = ni=1 cyi mód M
(b) Entra en un bucle de duración 1 minuto, donde:
i. Recibe las tramas de los nodos sensores a las que se ha suscrito, que siguen
el formato de los mensajes multiparte de ZMQ; y analiza la segunda parte,
que es la trama de la Seccion 4.4.1
ii. Extrae el ID del nodo, tipo de sensor, tipo de trama y longitud del payload
iii. Analiza el payload solo de aquellas tramas cuyo tipo de trama sea 0x66
iv. Almacena el tipo recibido en TLV, y lleva a cabo la suma si el tipo se
encuentra dentro del array de tipos cifrados conocidos por el gateway (en
nuestro caso únicamente la temperatura)
v. Añade el node ID al array de IDs de los sensores
(c) Cuando el minuto expira, comprueba que la cuenta de nodos sea mayor que
cero, y crea la trama a enviar al servidor, siguiendo el formato definido en la
Sección 4.4.2, donde:
i. Rellena un buffer con los el ID de SmartSantander 0xBBBB, el ID del
nodo 0xAAAA, el número de secuencia 0xAA, el tipo de sensor 0x67, el
tipo de trama 0x00
ii. Añade el payload con las tres tripletas:
A. (T,L,V) - (0x02, length(Cx ), ASCII(Cx )
B. (T,L,V) - (0x91, length(Cy ), ASCII(Cy ))
C. (T,L,V) - (0x99, length(nodeCount ∗ 2), ASCII(nodeIDs))
iii. Copia la trama a un array del tamaño exacto
(d) Abre un socket con el servidor, mu.tlmat.unican.es en el puerto 8083 y envı́a
un mensaje multiparte de tres partes:
i. 0x03
ii. MDEV.smartsantander.eu
iii. La trama creada anteriormente
(e) Cierra el socket con el servidor
4. En caso de salir del bucle infinito (no deberı́a darse tal y como está programado),
cerrar el socket a localhost y el contexto ZMQ.
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 36
4.6.3 Servidor
El servidor hará uso del programa gateway subscription.c que sigue el siguiente algoritmo
reflejado en la Figura4.13.
El servidor:
1. Lee del archivo node keys.txt las claves compartidas con cada nodo, junto al ID
del mismo
2. Abre el socket a localhost con puerto 8086 haciendo uso de las librerı́as ZMQ
(a) Recibe las tramas de los gateway a las que se ha suscrito, que siguen el formato
de los mensajes multiparte de ZMQ; y analiza la tercera parte de los mismos,
que se corresponde con la trama de la Seccion 4.4.2
(b) Extrae el tipo de sensor y analiza el payload solo de aquellas en las que sea
0x67
(c) Lee las tres tripletas y almacena su valor
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 37
(d) Calcula la clave maestra (K) sumando las claves (ki ) correspondientes a cada
ID de nodo leı́do de la tercera tripleta TLV
(e) Descifra la suma (Cx ) de la primera tripleta haciendo: Sx = Dec(Cx , K, M ) =
Cx − K mód M
(f) Descifra la suma (Cy ) de la segunda tripleta haciendo: Vx = Dec(Cy , K ′ , M ) =
Cy − K ′ mód M
(g) Calcula la media como: Avg = Sx /n donde n es el número de nodos
(h) Calcula la varianza como: V ar = Vx /n − Av 2
(i) Abre la conexión con la base de datos MySQL
(j) Inserta en la tabla homomorphic cipher results el valor de la suma cifra-
da, la suma del cuadrado cifrado, la suma descifrada, la suma del cuadrado
descifrada, la media, la varianza, los IDs de los nodos, y la clave maestra
(k) Cierra la conexión con la base de datos
5. En caso de salir del bucle infinito (no deberı́a darse tal y como está programado),
cierra el socket con localhost y el contexto ZMQ
Se ha creado una base de datos en el servidor, con una única tabla, homomorp-
hic cipher results cuya estructura es la mostrada en la Tabla 4.1.
Tipo Nombre
encrypted sum float
sum float
encrypted square sum float
square sum float
average float
variance float
nodes varchar(255)
key int(11)
timestamp timestamp PK
4.7 Ejecución
La Figura 4.14 refleja una ejecución real en el Gateway dentro del ambiente del labo-
ratorio. De los 10 nodos que han enviado tramas, únicamente 7 han implementado el
protocolo de cifrado homomórfico. Cada vez que el gateway recibe una trama de un
nodo, comprueba si sigue nuestro esquema de cifrado, y en caso de hacerlo la analiza y
suma sus valores a los contadores:
7
!
Cx = cxi = 37228,85 (4.6)
i=1
7
!
Cy = cyi = 40676,2151 (4.7)
i=1
Los valores de las expresiones 4.6 y 4.7 son los que el gateway procederá a enviar al
servidor, seguido de los identificadores de los 7 nodos.
5
Tanto las medidas como la suma son redondeadas a dos decimales
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 39
Tomemos como referencia la trama enviada por el nodo con identificador 271A (FIgura
4.15), que el gateway ha analizado y ha devuelto información. Lo primero que ha hecho
ha sido comprobar que el frame type vale 0x66, ya que al tomar ese valor, puede afirmar
que el payload sigue la estructura del esquema de cifrado homomórfico. A continuación
procede a leer del payload las dos tripletas TLV con tipos 0x02 (temperatura cifrada)
y 0x92 (temperatura al cuadrado cifrada) que toman los valores 7322,87 y 7779,2968
respectivamente; y lo suma a sus contadores.
Vamos a inferir los valores en claro que midió el sensor - para lo cual emplearemos la
clave compartida entre el nodo 271A y el servidor, desconocida en todo momento por el
gateway:
con M = 4293999999. La temperatura inicial que midió el sensor era 21, 87o C.
La Figura 4.16 refleja la misma ejecución pero en el lado del servidor. La primera trama
se corresponde con aquella que generó el gateway con los datos recibidos de sus 10 nodos
hijos (Figura 4.14). Analizando la estructura de tramas SmartSantander que definimos
en la Sección 4.4.2, extraemos las tres tripletas TLV del payload. En esta ocasión los
tipos serán 0x02, 0x92 y 0x99 - suma de temperatura cifrada, suma de temperaturas
al cuadrado cifradas y array con los identificadores de los nodos respectivamente. Si
leemos los ID, podemos comprobar que efectivamente hemos recibido las medidas de los
7 nodos que enviaron tramas al gateway. El servidor, al conocer las claves individuales
compartidas con cada uno de esos sensores, calcula la clave maestra (4.10) y descifra los
valores recibidos (4.11, 4.12):
7
!
K= ki = 37070 (4.10)
i=1
La Tabla 4.2 contiene las claves compartidas con cada uno de los nodos y los valores
cifrados que enviaron al gateway. A partir de ambas podemos descifrar estos valores
individualmente, y realizar la suma de todos ellos en claro. Como podemos observar,
obtenemos el mismo valor 158.8 y 3606.2151 que calculó el servidor en 4.11 y 4.12.
Podemos por tanto afirmar que el cifrado de nuestro protocolo se comporta de forma
homomórfica respecto a la operación suma.
Tras descifrar los datos recibidos por cada uno de los gateway, el servidor inserta los
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 42
NodeID Clave cx c x2 x x2
271A 7301 7322.87 7779.2968 21.87 478.2968
2712 9571 9594.22 10110.1679 23.22 639.1679
271C 4775 4796.54 5238.9716 21.54 463.9716
2714 1680 1702.38 2180.8642 22.38 500.8642
2711 8931 8954.48 9482.3105 23.48 551.3104
271B 3701 3723.77 4219.4726 22.77 518.4726
2713 1111 1134.54 1665.1315 23.54 554.1315
SUMA 37228.8 40676.2151 158.8 3606.2151
valores en una base de datos. La Figura 4.17 es un extracto de los contenidos en dicha
base de datos, correspondientes a esta ejecución.
Podemos diferenciar dos claras lı́neas de trabajo posteriores a este trabajo: una primera
enfocada a las redes de sensores y a la aplicación de técnicas de cifrado homomórfico; y
otra relacionada con las potenciales aplicaciones del cifrado homomórfico.
5.1 WSNs
43
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 44
En el Capı́tulo 3 dimos una primera visión del cifrado homomórfico. Un trabajo futuro
deberı́a analizar con un mayor nivel de detalle el esquema de cifrado completamente
homomórfico propuesto por Gentry. Aunque la base matemática y técnica de su primera
propuesta [16], basada en ideal lattices, no fuera sencilla; el esquema posteriormente
creado junto a Marten van Dijk, Shai Halevi y Vinod Vaikuntanatha [17], hace uso
de operaciones aritméticas simples tales como la división, con algunas variaciones poco
comunes pero fáciles de abordar.
Otra interesante lı́nea de actuación consiste en analizar las posibles aplicaciones de este
tipo de esquemas de cifrado. Algunas requieren de cifrado completamente homomórfi-
co (fully homomorphic encryption, mientras que otras necesitan algo de cifrado ho-
momórfico (somewhat homomorphic encryption) [26]. Un esquema completo permite
realizar cualquier computación sobre el texto cifrado, mientras que los esquemas algo
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 45
homomórficos son más restrictivos. El cifrado homomórfico aditivo que hemos aplicado
en SmartSantander pertenece a este segundo grupo, donde solo podemos llegar a aplicar
sumas sobre los datos medidos.
Imaginemos un escenario en el que una corporación tiene datos sensibles ası́ como algo-
ritmos propietarios que no quieren hacer públicos (por ejemplo algoritmos de predicción
de precios de bolsa en el sector financiero). En relación a la privacidad financiera,
[29] propone el uso de cifrado homomórfico para subir tanto los datos como el algoritmo
cifrados, de forma que se puedan subcontratar las computaciones a un servidor en la
nube.
Las elecciones son una de las actividades más importantes en las sociedades democráti-
cas. La mayor parte de los protocolos de voto electrónico [31] [32] [33] que se han
investigado se basan en técnicas de cifrado homomórfico. Una de las caracterı́sticas que
hacen que el cifrado homomórfico encaje tan bien en esta aplicación, es el recuento de
votos. En tal sistema, los votantes cifran su voto, y al estar cifrado se puede manejar
con cierta facilidad: no hay problemas para relacionar el voto con el votante. Los votos
se pueden acumular en un boletı́n público y cada uno puede comprobar que su voto se
Implementación de un Piloto de Cifrado Homomórfico en Redes de Sensores 46
ha contabilizado, y que nadie ha votado dos veces. Cuando se han obtenido todos los
votos, se aplica el cifrado homomórfico para sumar los votos, y se descifra la suma.
Como podemos ver, las aplicaciones del cifrado homomórfico son extensas y de gran
actualidad. Nosotros hemos implementado tan solo una de ellas en el ámbito de las
redes de sensores, pero la investigación en este tema puede avanzar enormemente.
Bibliografı́a
[1] L. Eschenauer and V. D. Gligor. A Key Management Scheme for Distributed Sensor
Networks. ACM CCS, pages 41–47, 2000.
[2] Sencun Zhu, Sanjeev Setia, Sushil Jajodia, and Peng Ning. An Interleaved Hop-by-
Hop Authentication Scheme for Filtering False Data in Sensor Networks. Security
and Privacy, 2004.
[3] Chris Karlof and David Wagner. Secure Routing in Wireless Sensor Networks:
Attacks and Countermeasured. Workshop on Sensor Network Protocols and Appli-
cations, 2003.
[4] Anthony D. Wood and Ohn A. Stankovic. Denial Of Service in Sensor Networks.
IEEE Computer, pages 54–62, 2002.
[5] Robert Riggio and Sabrina Sicari. Secure Aggregation in Hybrid Mesh/Sensor
Networks. 2009.
[8] R. L. Rivest. The RC5 Encryption Algorithm. Proceedings of the Second Interna-
tional Workshop on Fast Software Encryption (FSE), pages 86–96, 1994.
[9] Lingxuan Hu and David Evans. Secure Aggregation for Wireless Networks. Works-
hop on Security and Assurance in Ad hoc Networks, 2003.
[10] Miloud Bagaa, Noureddine Laslaa, Abdelraouf Ouadjaout, and Yacine Challal. SE-
DAN: Secure and Efficient Data Aggregation protocol for wireless sensor Networks.
IEEE Local Computer Networks / Workshop on Network Security, pages 1053–1060,
2007.
[12] L. Adleman R. Rivest. and M. Dertouzos. On Data Banks and Privacy Homomorp-
hism. Foundations of Secure Computation, pages 169–180, 1978.
[13] C. Swenson. Modern Cryptanalysis: Techniques for Advanced Code Breaking, edi-
tor= John Wiley Sons ISBN = 9780470135938.
[14] R. Rivest. A. Shamir and L. Adleman. A Method For Obtaining Digigtal Signatures
and Public-Key Cryptosystems. Communications of the ACM, pages 120–126, 1978.
[24] XCTU Next Generation Configuration Platform for Xbee RF Solutions. URL
https://www.digi.com/products/xbee-rf-solutions/xctu-software/xctu.
[33] S. Shukla S. S. Shinde and D.K. Chitre. Secure E-voting Using Homomorphic Tech-
nology. International Journal of Emerging Technology and Advanced Engineering.