You are on page 1of 28

XXIV COMCA

Congreso de Matemática Capricornio


5, 6 y 7 de Agosto de 2015, Iquique, Chile

Redes Neuronales Articiales Aplicadas a la


Seguridad de la Información
Dr. Iván F. Jirón Araya*
Departamento de Matemáicas

Universidad Católica del Norte

Antofagasta, Chile

Resumen
El estudio de las redes neuronales articiales comenzó en 1943 con un trabajo sobre neurosio-
logía y lógica matemática realizado por McCulloch y Pitts. Así, las redes neuronales articiales
se han desarrollado como modelos para representar y simular la forma en que el cerebro realiza
una tarea o función.
Dado el gigantesco aumento del uso de smartphones, tablets, notebooks e Internet como medios
de comunicación y colaboración es necesario desarrollar mecanismos de seguridad para proteger
la información privada de cada usuario. Ejemplos de esto son el comercio electrónico, transac-
ciones bancarias y protección de datos. Así, en los últimos años se ha explorado el desarrollo de
la criptografía basada en redes neuronales articiales.
En este curso se presentan los conceptos matemáticos fundamentales sobre las redes neuronales
articiales y su aplicación en la seguridad de la información, por ejemplo, intercambio de llaves.

* Parcialmente nanciado por la Vicerrectoría de Investigación y Desarrollo Tecnológico, U.C.N.


e-mail: ijiron@ucn.cl

1
1. Introducción
El estudio de las redes neuronales articiales comenzó en 1943 con un trabajo sobre neurosiología
y lógica matemática realizado por McCulloch y Pitts. Así, las redes neuronales articiales se han
desarrollado como modelos para representar y simular la forma en que el cerebro realiza una tarea
o función.
Las redes neuronales articiales consideran áreas de investigación en neurociencias, matemáticas,
estadística, ciencias de la computación y física.
La capacidad de aprender y almacenar el conocimiento adquirido hace de las redes neuronales
articiales tengas diversas áreas de aplicación, como en reconocimiento de patrones, sistemas de
sensores, procesamiento de señales, procesamiento de imagenes y criptografía, por mencionar algunas.
La gura 1 muestra un esquema de una neurona biológica, cuyos elementos fundamentales son
el cuerpo de la celula, estructuras formadas por la dendritas (que reciben los estimulos), el axón y
los terminales sinápticos, al nal del axón, que transmiten las señales de salida, que son impulsos
eléctricos. Estos impulso se inician en el cuerpo de la celula y se transmiten a través del axón a otras
neuronas. Estas señales de salida pueden estimular o inhibir a otras neuronas.

Figura 1: Esquema de una neurona biológica [2].

Dado el gigantesco aumento del uso de smartphones, tablets, notebooks e Internet como me-
dios de comunicación y colaboración es necesario desarrollar mecanismos de seguridad para proteger
la información privada de cada usuario. Ejemplos de esto son el comercio electrónico, transaccio-
nes bancarias y protección de datos. Así, en los últimos años se ha explorado el desarrollo de la
criptografía basada en redes neuronales articiales.
Sin duda que la Internet ha revolucionado nuestro estilo de vida y la importancia de esta herra-
mienta ha crecido en forma exponencial en los últimos veite años [1].
Hay mucha información circulando por Internet en correos electrónicos, Tweets, Facebook, videos,
fotos, comercio electrónico CyberDay, secretos militares, secretos industriales, etc. Pero la Internet
es una red pública e insegura, en la cual hay buenos y malos usuarios. Siempre hay noticias sobre
sitios web que han sido hackeados, clonación de tarjetas de crédito, adulteración de imágenes, etc.
Esto motiva la necesidad de proteger la información con mecanismo que impidan a los usuarios no
autorizados (los intrusos o hackers) acceder a ésta. Esta necesidad de protección de la información
es satisfecha por la Criptología, que es la ciencia de la Criptografía y el Criptoanálisis. En la Figura
2 se muestra una taxanomía breve.

2
Figura 2: Taxonomía breve de la Criptología.

La Criptografía es el estudio de técnicas matemáticas para ocultar el signicado de la información


almacenada en un medio o transmitida por un canal, ambos considerados inseguros, como por
ejemplo, un disco duro externo, una red wi e Internet. Entonces, se habla de criptosistemas o
sistemas de codicación para ocultar y proteger la información original en un mensaje encriptado o
cifrado.
Por otra parte, el Criptoanálisis es el estudio de técnicas matemáticas para extraer el signicado
de la información oculta en un mensaje encriptado. Así, el Criptoanálisis es importante cuando se
propone un nuevo criptosistema, para probar su fortaleza a los ataques. Aquí, se habla de quebrar
o romper el criptosistema, con el n de extraer la información original, y dejarla disponible para un
usuario no autorizado (el intruso).
En forma intuitiva la esencia de la Criptografía consiste en crear ciertas funciones que sean fáciles
de evaluar, pero cuya función inversa sea muy difícil de obtener con los medios computacionales
existentes. A estas funciones y sus inversas se les llama un criptosistema, como se dijo en el párrafo
anterior.
Por ejemplo, el número y clave de una tarjeta de crédito es información valiosa por 2 ó 3 años,
porque caduca o se cierra la tarjeta. Así, si un criptosistema será efectivo si puede proteger el
número y clave de la tarjeta de crédito por más de 3 años. Con este ejemplo, se quiere explicar que
un criptosistema es seguro si es capaz de proteger la información privada el tiempo suciente hasta
que pierda su valor.

3
2. Conceptos básicos sobre Redes Neuronales Articiales
Esta sección es un resumen de los aspectos básicos presentados en los cápitulos 1 al 4 del libro
de S. Haykin [2], mientras que las refenrencias [3] [4] están listadas como recomendación para una
lectura complementaria.
Comencemos por denir una red neuronal articial (RNA) como un procesador masivamente
distribuido y paralelo, es decir, es un computador capaz de desarrollar muchas tareas en forma
simultánea. Está formada por muchas unidades individuales de procesamiento llamadas neuronas.
La gura 3 muestra un modelo para una neurona, donde {x1 , x2 , · · · , xm } es el conjunto de
las señales de entrada, {wk1 , wk2 , · · · , wkm } es el conjunto de los pesos sinápticos de la k − ésima
neurona, el parámetro bk es llamado el bias de la k − ésima neurona, vk es el campo local inducido
o potencial de activación, ϕ (·) es la función de activación e yk es la señal de salida de la k − ésima
neurona.

Figura 3: Modelo de una neurona[2].

El campo local inducido se cálcula como


 
Xm m
X
vk =  xj wkj  + bk = xj wkj (1)
j=1 j=0

donde se puede considerar una señal x0 = 1 y un peso sináptico wk0 = bk .


Una RNA puede obtener el conocimiento desde la experiencia o proceso de aprendizaje, en forma
similar al cerebro, y lo alamacena en los pesos sinápticos de sus neuronas.

2.1. Funciones de Activación


La función de activación ϕ (·) limita la amplitud de la salida de una neurona a un valor nito,
que puede estar entre:
0 ≤ yk ≤ 1 ó −1 ≤ yk ≤ 1 (2)

1. Función de Heaviside: Corresponde al modelo de McCulloch-Pitts y tiene la propiedad del


todo o nada.

si vk ≥ 0

 1
yk = ϕ (vk ) = (3)
0 si vk < 0

4
Figura 4: Función de Heaviside.

2. Función lineal por torzos: Se dene como

si v ≥ 12

 1
y = ϕ (v) = v si − 12 < v < 1
2 (4)
0 si v ≤ − 12

Figura 5: Función lineal por trozos.

3. Función Sigmoidal: Es una función estrictamente creciente que tiene un comportamiento que
balancea lo lineal con lo no-lineal. Un ejemplo es la función Logística denida como

1
y = ϕ (v) = (5)
1 + e−av

5
Figura 6: Función sigmoidal.

2.2. Representación de Redes Neuronales con Grafos Dirigidos


Los grafos de ujo de señales (o grafos dirigidos de señales) proveen un método ordenado
para describir el ujo de las señales en una red neuronal. Las señales circulan por una red de enlaces
dirigidos que se interconectan en puntos llamados nodos.
Para estos grafos consideramos lo siguiente:

1) El j-ésimo nodo tiene asociada la señal xj .

2) Un enlace con nodo inicial en el j-ésimo nodo y nodo nal en el k-ésimo nodo tiene una función
de transferencia asociada, que especica la manera en que la señal yk depende de la señal xj
en el j-ésimo nodo. Ver las guras 7 y 8 .

3) El ujo de señales satisface tres reglas básicas:

Una señal se mueve en la dirección de la echa a lo largo de un enlace considerado. La gura


7 muestra un enlace sinaptico con una relación lineal entre las señales de entrada y de salida.
Mientras que la gura 8 muestra un enlace con una relación no lineal.

Figura 7: Enlace sinaptico lineal [2].

Figura 8: Enlace sinaptico no lineal [2].

6
La señal de salida de un nodo es la suma algebraica de todas las señales que entran en este
nodo. Esto es llamado convergencia sináptica. La gura 9 muestra esta regla.

Figura 9: Convergencia sinaptica [2].

Una señal en un nodo es transmitida a través de todos los enlaces que salen del nodo, en
forma independiente de las funciones de transferencia. Esto es llamado divergencia sináptica.
La gura 10 muestra esta regla.

Figura 10: Divergencia sinaptica [2].

Así, una neurona y una red neuronal pueden ser representadas por grafos dirigidos como muestran
las guras 11 y 12, respectivamente.

Figura 11: Modelo de una Neurona como un grafo dirigido [2].

Figura 12: Modelo de una Red Neuronal como un grafo dirigido [2].

7
Denición matemática de una RNA: Una red neuronal es un grafo dirigido formado por nodos
con interconexión sináptica y enlaces de activación, y tiene las siguientes propiedades:

a) Cada neurona es representada como un conjunto de enlaces sinápticos lineales, un bias aplicado
externamente y un enlace de activación posiblemente no-lineal. El bias es mostrado como un
enlace sináptico conectado a una entrada ja en x0 = 1.

b) Los enlaces sinápticos de una neurona le dan peso a sus respectivas señales de entrada.

c) La suma de las señales de entrada con sus respectivos pesos dene el campo local inducido de
una neurona.

d) El enlace de activación actúa sobre el campo local inducido de la neurona para producir una
salida.

El estado de la neurona se puede denir en términos de su campo local inducido o su señal de


salida.

2.3. Arquitectura de Redes Neuronales Articiales


La arquitectura de una RNA es un grafo dirigido que describe la organización e interacción entre
las neuronas que forman la red.
Hay fundamentalmente tres clases diferentes de arquitectura para una RNA:

I. Redes Feedforward de Capa Simple (Single-Layer Feedforward Networks).


La red está organizada en capas, y tiene una capa de entrada de nodos fuentes (estos nodos
no realizan cálculos) que transmiten sus señales a la capa de salida (nodos de cálculo) de
las neuronas, pero no viceversa. Así, la red se dice que es estrictamente de tipo feedforward
o acíclica. Y de capa simple se reere a la capa de salida formada por los nodos de cálculo
(neuronas). La gura 13 muestra esta arquitectura.

Figura 13: Modelo de una Red Neuronal Feedforward de Capa Simple [2].

II. Redes Feedforward Multi-Capas (Multilayer Feedforward Networks).


Se distingue por tener una o más capas ocultas, cuyos nodos de cálculo son llamados neuronas
ocultas o unidades ocultas. La función de las neuronas ocultas es hacer los cálculos entre la
entrada externa y la salida de la red en alguna forma útil. Los nodos fuentes en la capa de
entrada de la red proveen los respectivos elementos del patrón de activación (vector de entrada),
los cuales constituyen las señales de entrada aplicadas a las neuronas (nodos de cálculo) en la
segunda capa (la primera capa oculta). Las señales de salida de la segunda capa son usadas
como entradas para la tercera capa, y así sucesivamente para el resto de la red. Las neuronas

8
en cada capa de la red tienen como entradas sólo las señales de salida de la capa precedente.
El conjunto de señales de salida de las neuronas en la capa de salida (última) de la red forman
la respuesta total de la red al patrón de activación dado por los nodos fuentes en la capa de
entrada (primera capa). La gura 12 muestra esta arquitectura.
III. Redes Recurrentes (Recurrent Networks)
Estas redes se distinguen por tener a lo menos un loop de retroalimentación (feedback).
En la gura 14, la red no tiene loops de auto-retroalimentación, ya que para ninguna neurona
su propia salida alimenta su entrada. Y no existe una capa oculta. Por otra parte, en la gura
15, hay neuronas ocultas y la retroalimentación se origina desde las neuronas ocultas como
también de las neuronas en la salida.

Figura 14: Modelo de una Red Neuronal Recurrente [2].

Figura 15: Modelo de una Red Neuronal Recurrente con neuronas ocultas [2].

La estructura de recurrencia tiene un impacto profundo en la capacidad de aprendizaje de la


red y en su rendimiento. Las unidades de retardo producen un comportamiento dinámico no
lineal, asumiendo que la red neuronal contiene unidades no-lineales.

2.4. Representación del conocimiento


El conocimiento está constituido por la información guardada y los modelos usados por una
persona o máquina para interpretar, predecir y responder adecuadamente al mundo exterior. Así, la
representación del conocimiento responde dos preguntas básicas:

1. ¾Qué información se hace explícita, realmente?


2. ¾Cómo es codicada físicamente la información para ser usada posteriormente?

9
En el mundo real de las aplicaciones de máquinas inteligentes, se dice
que una buena solución depende de una buena representación del conocimiento.

Figura 16: Tarea principal de una RNA.

El conocimiento del mundo tiene dos tipos de información:

Información previa: el estado del mundo conocido, ¾qué es conocido? y ¾qué ha sido cono-
cido?
Observaciones (o medidas) del mundo: son obtenidas por medio de sensores, que examinan
el ambiente en el cual la red neuronal está operando.

Las observaciones pueden estar distorsionadas debido al ruido de los sensores y las imperfecciones
del sistema.
Así, las observaciones obtenidas forman un conjunto de información, desde el cual son obtenidos
los ejemplos para entrenar a la red neuronal. Los ejemplos pueden ser:

a) Etiquetados: cada ejemplo representa una señal de entrada que está pareada con la correspon-
diente respuesta deseada.
b) No etiquetados: los ejemplos consisten de realizaciones diferentes de la señal de entrada por sí
misma.

Los ejemplos Etiquetados o No etiquetados representan el conocimiento acerca del ambiente de


interés, que una red neuronal puede aprender a través del entrenamiento.

Denición del conjunto de entrenamiento: El conjunto de entrenamiento está dado por

T = {(x, y) / x es una señal de entrada e y es la señal de salida asociada con x} (6)

El conjunto de entrenamiento T es usado en el proceso de diseño de una RNA y que consiste en:

10
Aprendizaje: seleccionamos una arquitectura para la RNA adecuada para al problema, con-
siderando una capa de entrada con nodos fuentes y una capa de salida. Se entrena con un
subconjunto de datos de T .
Generalización: el performance de reconocimiento de la red entrenada es probado con datos
(o ejemplos) que no se usaron durante el aprendizaje. Entonces, el performance de la red
es probado comparando la respuesta entregada por la red y la respuesta verdadera, que es
conocida previamente.

En la etapa de aprendizaje se deben considerar casos verdaderos y falsos, para que la RNA pueda
disminuir la cantidad de respuestas confusas.

2.5. Procesos de Aprendizaje


Una RNA tiene la habilidad de aprender de su medio ambiente, y mejorar su performance a
través del aprendizaje. El mejoramiento del performance se realiza a través del tiempo de acuerdo
con una medida preestablecida.
Existen varias deniciones del concepto de aprendizaje, según el punto de vista que se utilice.

Denición del aprendizaje: El aprendizaje es un proceso a través del cual los parámetros libres
(sus pesos sinápticos y nivel del bia) de una RNA son adaptados mediante un proceso de
estimulación producido por el medio ambiente, en el cual está inmersa la red. El tipo de
aprendizaje está determinado por la manera en que los parámetros libres son modicados.

Según esta denición el aprendizaje de una RNA tiene tres etapas, que son mostradas en la gura
17.

Figura 17: Tres etapas de aprendizaje de una RNA.

Proceso de aprendizaje por corrección de error.


En la gura 18 se muestra una RNA con una sola neurona (nodo de cálculo) en la capa de salida,
llamada la k − ésima neurona, de una RNA feedforward. La k − ésima neurona es estimulada por

11
el vector señal x(n) , que es producido por una o más capas de neuronas ocultas, las cuales a su vez
son estimuladas por un vector de entrada aplicado a los nodos fuentes (capa de entrada) de la RNA.
El parámetro n representa un tiempo discreto, es decir, un paso de tiempo en un proceso iterativo
para ajustar los pesos sinápticos de la k − ésima neurona. La señal de salida de la k − ésima neurona
es yk (n), y representa la única salida de esta red neuronal. La señal de respuesta deseada o salida
objetivo de la k − ésima neurona es dk (n). Las señales yk (n) y dk (n) son comparadas, a través de
la señal de error denida como,

ek (n) = dk (n) − yk (n) (7)

Figura 18: Aprendizaje por corrección de error de una RNA [2].

La señal de error ek (n) acciona un mecanismo de control, que aplica una secuencia de ajustes
correctivos en los pesos sinápticos de la k − ésima neurona, tal que la señal yk (n) se aproxime a la
señal dk (n) paso a paso. Para esto se minimiza la función de costo o índice de performance dada
por:
1 2
ε (n) = e (n) (8)
2 k
A esto se le llama la Regla Delta o Regla de Widrow-Ho.
Sea wkj (n) es el valor del j − ésimo peso sináptico de la k − ésima neurona excitado por la
componente xj (n) del vector señal x(n) en el tiempo n. Siguiendo la regla delta el ajuste del peso
sináptico wkj (n) en el tiempo n, se dene como:

4wkj (n) = ηek (n) xj (n) (9)


donde η > 0 es una constante de proporcionalidad que determina la tasa de aprendizaje cuando
se avanza de un paso a otro en el proceso de aprendizaje. Así, η es llamado la tasa de aprendizaje.
La regla delta asume que la señal de error se puede medir directamente desde alguna fuente externa
que es está accesible para la k − ésima neurona, es decir, la k − ésima neurona es visible desde el
mundo exterior.
La ecuación (9) establece que los ajustes que se aplican a los pesos sinápticos son proporcionales
al producto entre el error obtenido y la señal de entrada.
El proceso de aprendizaje por corrección de error es local a la k − ésima neurona, ya que los
ajustes de los pesos sinápticos se desarrollan en torno a la k − ésima neurona. Entonces, el valor
actualizado para el peso sináptico wkj de la k − ésima neurona se calcula como:

wkj (n + 1) = wkj (n) + 4wkj (n) (10)

Proceso de aprendizaje basado en memoria.


Aquí todas las experiencias pasadas son almacenadas explícitamente en una memoria de tamaño
grande, con ejemplos input-output correctamente clasicados:

12
n−→  o
x i , di / i = 1, . . . , N

−→
donde x i es un vector de entrada y di es la salida deseada correspondiente.
−→
Cuando se clasica un vector de prueba x test , que no ha sido visto previamente por la red, se
−→
recuperan y analizan todos los datos de entrenamiento en una vecindad (local) del vector x test .
Así, para el aprendizaje basado en memoria existen dos elementos importantes:
−→
El criterio usado para denir la vecindad (local) del vector x test .

La regla de aprendizaje aplicada a los ejemplos de entrenamiento en la vecindad (local) del


−→
vector x test .

Los algoritmos dieren en la forma como denen estos dos elementos.


−→
Una regla para denir la vecindad del vector x test es elegir los ejemplos de entrenamiento
−→
inmediatamente cercanos al vector x test . Luego, una colección de ejemplos de entrenamiento
−→
X N = {x1 , x2 , · · · , xN } está en una vecindad de x test si
−→ −→
d( xtest , X N ) = min{d( x test , xi ) : i = 1, · · · , N }
−→ −→
donde d( x test , xi ) es la distancia euclidiana entre x test y xi .
Hasta aquí hemos revisado sólo dos procesos de aprendizaje de muchos. Otros ejemplos son:
aprendizaje de Hebbian, aprendizaje competitivo, aprendizaje de Boltzmann, etc.

2.6. Pereceptron de capas multiples


Un perceptrón de capas multiples, o multicapa, es una RNA que consiste de una capa de entrada
formada por unidades sensoriales (nodos fuentes), una o más capas ocultas de nodos de cálculo y
una capa de salida de los nodos de cálculo. La señal de entrada se propaga por la red en dirección
hacia adelante (forward) capa por capa.
El perceptrón multicapa es entrenado usando el algoritmo de propagación del error hacia atrás
(error back-propagation algorithm), que está basado en la regla de aprendizaje de corrección de error
(error-correction learning rule), mostrada en la gura 19.

13
Figura 19: La regla de aprendizaje de corrección de error (error-correction learning rule).

Características del perceptrón multicapa:

Cada neurona en la red tiene una función de activación no lineal diferenciable en todas partes.
La más común es la sigmoidal no lineal denida por la función logística en la ecuación (5) con
a = 1.

La red tiene una o más capas ocultas que no pertenecen a la entrada ni a la salida. Estas
capas ocultas le permiten a la red aprender tareas complejas a través de la extracción de
características válidas desde los patrones (vectores) de entrada.

La red tiene un alto grado de conectividad, determinado por las sinapsis en la red. Un cambio
en la conectividad de la red requiere hacer un cambio en la población de conexiones sinápticas
o de sus pesos respectivos.

La gura 20 muestra una RNA correspondiente a un perceptron multicapas totalamente conec-


tado, esto es, una neurona en cualquier capa tiene enlaces con todas las neuronas o nodos de la
capa anterior a la suya. Las señales se mueven de izquierda a derecha, es decir, en la dirección hacia
adelante(forward direction).

Figura 20: Grafo de un perceptron multicapa, con dos capas ocultas [2].

14
En la gura 21 se muestra el movimiento de las señales a través de la red en dirección forward,
usando echas de línea sólida. Mientras que el movimiento de las señales de error es en dirección
contraria, es decir, en sentido backward y se describen con echas de líneas segmentadas.

Figura 21: Dirección forward y backward en una RNA [2].

Cada neurona oculta o de salida (nodos de cálculo) de un perceptrón multicapas está diseñada
para realizar dos cálculos:

1. Calcular la función de señal que aparece en la salida de una neurona, que se expresa como una
función continua no lineal de la señal de entrada y pesos sinápticos asociados con esta neurona.
2. Calcular una estimación del vector gradiente (los gradientes de la supercie de error con respec-
to a los pesos conectados a las entradas de una neurona), el cual es necesario para propagación
hacia atrás a través de la red.

2.6.1. Algoritmo Back-propagation


La señal de error en la salida de la j − ésima neurona en la iteración n (presentación del n− ésimo
ejemplo de entrenamiento) se dene como:

ej (n) = dj (n) − yj (n) (11)


donde la j − ésima neurona es un nodo de salida.
El valor total instantáneo del error se calcula sumando el cuadrado del error para todas las
neuronas en la capa de salida (las únicas neuronas visibles para las cuales la señal de error puede
ser directamente calculada), y está dado por:
1X 2
ε (n) = ej (n) (12)
2
j∈C

para C el conjunto de todas las neuronas en la capa de salida de la red. Y el valor promedio del
error se calcula como:
N
1X
εav = ε (n) (13)
N n=1
donde N es el número total de ejemplos de entrenamiento. Así, para un conjunto de entrenamiento
T el valor promedio del error εav se considera como una función de costo para medir el performance
del aprendizaje.
El objetivo de un proceso de entrenamiento es minimizar εav ajustando los pesos sinápticos y
bias. Para esto el método hace los ajustes patrón-por-patrón hasta completar la presentación de
todo el conjunto de entrenamiento T , esto se llama una época. Los ajustes en los pesos son hechos
de acuerdo con los respectivos errores calculados para cada uno de los patrones presentados a la red.

15
La gura 22 muestra el ujo de señales en la j − ésima neurona en la iteración n, donde las
señales de entrada son producidas en la capa a la izquierda de esta neurona. El campo inducido,
para m señales de entrada, está dado por:
m
X
vj (n) = yi (n) wji (n)
i=0

Igual que antes, en la ecuación (1), el bias está considerado en el peso sináptico wj0 (n) = bj y
con señal de entrada y0 = 1. Entonces, la señal de salida de la j − ésima neurona en la iteración n
es obtenida como yj (n) = ϕj (vj (n)) .

Figura 22: Flujo de entrada y salida en la j-ésima neurona [2].

Considerando a ε (n) como una función de los pesos sinápticos de la j − ésima neurona en la
iteración n, esto es,
ε (n) = f (wj0 (n) , wj1 (n) , · · · , wjm (n))
El algoritmo hace ajustes 4wji (n) en los pesos sinápticos wji (n) de la j − ésima neurona en la
iteración n que son proporcionales a la derivada parcial

∂ε (n) ∂ε (n) ∂ej (n) ∂yj (n) ∂vj (n)


= = −ej (n) ϕ0j (vj (n)) yi (n)
∂wji (n) ∂ej (n) ∂yj (n) ∂vj (n) ∂wji (n)
que se calcula de acuerdo a la regla de la cadena para derivadas parciales de campos escalares.
Y representa la variación de ε (n) con respecto al peso wji (n), es decir, determina la sensibilidad en
la dirección del peso wji (n) en el espacio de los pesos sinápticos.
Según la Regla Delta los ajustes 4wji (n) en los pesos sinápticos están denidos como:

∂ε (n)
4wji (n) = −η (14)
∂wji (n)
donde η > 0 es una constante de proporcionalidad que determina la tasa de aprendizaje del
algoritmo Back-propagation.
La ecuación (14) representa al gradiente descendiente de ε (n), e indica la dirección de busqueda
para minimizar el valor de ε (n).

16
Considerando el gradiente local δj (n) para la j − ésima neurona en la iteración n denido como

∂ε (n) ∂ε (n) ∂ej (n) ∂yj (n)


δj (n) = − =− = −ej (n) (−1) ϕ0j (vj (n)) = ej (n) ϕ0j (vj (n))
∂vj (n) ∂ej (n) ∂yj (n) ∂vj (n)

se pueden reescribir los ajustes 4wji (n) en los pesos sinápticos de la ecuación (14) en la siguiente
forma

4wji (n) = ηδj (n) yi (n) (15)


Hasta aquí se puede destacar que el cálculo de la señal de error ej (n) es importante en el
cálculo de los ajustes en los pesos sinápticos. Para realizar este cálculo se consideran dos situaciones
relacionadas con la posición de la neurona dentro de la RNA:

a) La k − ésima neurona está en la capa de salida, como se muestra en la gura 23. Entonces, la
señal de error ek (n) se cálcula usando directamente la fórmula (11), ya que se conoce la señal
deseada dk (n), y con ek (n) se determina el valor de δk (n).

b) La j − ésima neurona está en una capa oculta, como se muestra en la gura 23. En esta posición
no se conoce la señal deseada dj (n). Entonces, el gradiente local δj (n) para la j − ésima
neurona se reescribe en la fórmula (16).

∂ε (n) ∂yj (n) ∂ε (n) 0


δj (n) = − =− ϕ (vj (n)) (16)
∂yj (n) ∂vj (n) ∂yj (n) j
Luego de aplicar la regla de la cadena y las fórmulas anteriores se deduce que

∂ε (n) X
= − δk (n) wkj (n)
∂yj (n)
k

Entonces, el gradiente local δj (n) para la j − ésima neurona oculta está dado por
X
δj (n) = ϕ0j (vj (n)) δk (n) wkj (n) (17)
k

17
Figura 23: Flujo de las señales a través de la j-ésima neurona oculta y la k-ésima neurona en la capa
de salida [2].

En la fórmula (17) el cálculo de ϕ0j (vj (n)) depende sólo de la j − ésima neurona, mientras que
los términos de la sumatoria δk (n) wkj (n) dependen de las neuronas que están en la capa continua
a la derecha de la j − ésima neurona, y que tienen un enlace directo con esta neurona cuyo peso
sináptico es wkj (n). Esta situación está representada en la gura 24.

Figura 24: Flujo de las señales de error en back propagation [2].

Otro elemento importante es la función de activación ϕ (v) que debe ser continuamente diferen-
ciable, un ejemplo es la función logística descrita en la subsección 2.1.
Como se dijo anteriormente los ajustes de los pesos sinápticos se hacen durante el entrenamiento
de RNA.
Un tipo de entrenamiento es el secuencial, en el cual los ajustes de los pesos sinápticos se hacen
después que un ejemplo de entrenamiento ha sido presentado a la red, comenzando por el primero y
siguiendo el orden secuencial hasta el último de los ejemplos de entrenamiento.
Finalmente, el Algoritmo Back-propagation se detiene cuando la norma Euclideana del vector
gradiente
∇ε (n) = ∇f (wj0 (n) , wj1 (n) , · · · , wjm (n))

18
alcanza valor sucientemente pequeño, por ejemplo,

k∇ε (n)k < β 0<β<1

19
3. Criptografía
Esta sección presenta algunos elementos básicos de la criptografía. Para profundizar se recomien-
da la lectura de las referencias [5] [6] [7] [8] [9] [10] [11].
La Figura 25 muestra el esquema básico de un criptosistema para un canal inseguro (llamado CA-
NAL), que está constituido por dos usuarios autorizados (Alice y Bob) y un usuario no autorizado
(Eve) que puede escuchar todo lo que se transmite por el CANAL. Para una comunicación segura Ali-
ce y Bob deben acordar el uso de un criptosistema, es decir, un método de encriptación (E k (m) = c)
para ocultar el mensaje original m en un mensaje encriptado c, y un método de desencriptación
(D k (c) = m) para recuperar desde c el mensaje original m. Estos métodos son llamados algorit-
mos de encriptación y de desencriptación, respectivamente. Ambos algoritmos usan una clave o llave
secreta k , que sólo conocen Alice y Bob.
¾Qué pasa con Eve? Bueno por algún medio ella logra conocer el criptosistema acordado por
Alice y Bob, pero no sabe cuál es la llave secreta k , que ellos comparten. Entonces, los ataques que
hace Eve tienen como objetivo descubrir la llave secreta k . Lo más importante es que el algoritmo de
encriptación sea fácil de utilizar con la llave secreta k , y por el contario el algoritmo de desencriptación
sea muy dícil y casi imposible de utilizar si no se conoce la llave secreta k .
La Figura 25 corresponde a un criptosistema simétrico o de llave simétrica, esto es, Alice y Bob
deben usar la misma llave secreta k en los algoritmos de encriptación y de desencriptación. Lo que
plantea el gran problema del intercambio de la llave secreta k entre ellos. Por ejemplo, que Alice le
entregue la llave k en forma segura a Bob, de manera que Eve no la pueda descubrir. Debido a que
todos los canales de transmisión son inseguros, un cartero puede ser sobornado o torturado para que
entregue la llave secreta k , una conversación teléfonica puede ser escuchada, un servidor de correo
electrónico puede ser atacado, etc.
Algunos objetivos de la criptografía son:

a) La privacidad o condencialidad de la información signica que ésta está disponible sólo para
aquellos usuarios autorizados para conocerla. Por ejemplo, el número de una tarjeta de crédito
y su contraseña.

b) La integridad de la información consiste en prohibir hacer cambios en la información a los usuarios


no autorizados, es decir, a los intrusos. Por ejemplo, cambiar la contraseña de la cuenta corriente
de otro usuario.

c) La autenticación de un usuario se consigue vericando la identidad del usuario que trata de


acceseder a la información.

d) La autenticación de un mensaje se consigue vericando la identidad de la fuente del mensaje.


Por ejemplo, un correo electrónico con enlaces falsos, que buscan hacer Phishing o suplantación
de identidad.

e) La rma digital es un medio para identicar y diferenciar a un usuario en particular del resto de
los usuarios.

f) La no-repudiación es un mecanismo para que los usuarios no puedan negar o descirtir de sus
acciones. Por ejemplo, negar la compra de un bien a través de un sitio web, después de haberlo
recibido.

20
Figura 25: Esquema de un Criptosistema

21
3.1. Criptografía de llave pública
En esta sección se presentan tres soluciones al gran problema del intercambio de la llave secreta
entre los usuarios autorizados, debido a que todos los canales de transmisión son inseguros. Estos se
clasican dentro del problema del logaritmo discreto y la factorización de números gigantes en sus
factores primos. Existen otros tipos de problemas pero no se abordarán en este cursillo.
La Cripotgrafía de llave pública o asimétrica nace con el trabajo de Die y Hellman en 1976.

3.1.1. Algoritmo de Die-Hellman


La solución a este problema fue propuesta por Die y Hellman en 1976, con un esquema de
intercambio de llaves, en el cual Alice y Bob siguen los siguientes pasos:
1. Elijen un número primo p muy grande, y a continuación utilizan los elementos del campo Z∗p .
2. Elijen un entero α ∈ {2, 3, . . . , p − 2}
3. Publican p y α.
4. Alice selecciona su llave privada como un entero aleatorio y secreto ka < p, y calcula su llave
pública como A = αka mod (p), y la transmite a Bob.
Por su parte, Bob selecciona su llave privada como un entero aleatorio y secreto kb < p, y
cálcula su llave pública como B = αkb mod (p), y la transmite a Alice.
k ka k
5. Alice calcula (B) a = αkb mod (p) = αkb ka mod (p), mientras que Bob calcula (A) b =
k
αka b mod (p) = αka kb mod (p).


ka kb
6. La llave secreta que comparten ambos es k = (B) = (A) = αka kb mod (p), y que no fue
transmitida por ningún canal.
La seguridad de este esquema se basa en la dicultad de calcular el logaritmo discreto, en campos
nitos, de las llaves públicas A = αka mod (p) y B = αkb mod (p). Estos es, determinar el valor exacto
de las llaves secretas ka y kb .
Ejemplo: Bob elige p = 13, α = 6 ∈ {2, 3, . . . , 11}. Alice selecciona su llave privada ka = 5 < 13, y
calcula su llave pública como
A = 65 mod (13) = 7,776 mod (13) = 2 (18)

Por su parte, Bob selecciona su llave privada kb = 8 < 13, y cálcula su llave pública como

B = 68 mod (13) = 1,679,616 mod (13) = 3 (19)


5 5 8 8
Alice calcula (3) = 68 mod (13) = 9, mientras que Bob calcula (2) = 65 mod (13) = 9.
 

Entonces, Alice y Bob comparten la llave secreta común k = 9.

3.1.2. Algoritmo RSA

Otra solución para el problema del intercambio de llaves es algoritmo criptográco asimétrico
RSA (Rivest, Shamir y Adleman) publicado en 1978, que en la actualidad es ampliamente usado. Y
su fortaleza está en la dicultad de factorizar el producto de dos números primos gigantes.
Los algoritmos de encriptación y de desencriptación son realiazados usando un anillo entero
Zn = {0, 1, 2, . . . , n − 1} y aritmética modular.
El mensaje original m se representa como un elemento de Zn , que debe ser menor que n.
Generación de llaves: Para generar sus llaves pública y secreta Bob sigue los siguientes pasos:

22
1. Elige dos números primos distintos p y q extremadamente grandes (de 1024 bits o de 100
dígitos a lo menos), de igual longitud para garantizar la seguridad del sistema. A continuación
calcula

n = pq (20)
Atención: Los dos números primos p y q deben permanecer secretos.
2. Calcula

Φ (n) = (p − 1) (q − 1) (21)

3. Selecciona su llave pública (exponente) aleatoria k = e ∈ {1, 2, . . . , Φ (n) − 1} tal que gcd (e, Φ (n)) =
1.
4. Calcula su llave privada (exponente) d tal que

d · e ≡ 1 mod (Φ (n)) ⇐⇒ d ≡ e−1 mod (Φ (n)) (22)

y gcd (d, n) = 1.

Algoritmo de Encriptación:
Bob publica n y e.
Alice encripta un mensaje m para Bob de la siguiente forma:

c = E e (m) ≡ me mod (n)


donde m, c ∈ Zn .
Algoritmo de Desencriptación:
Bob recive el mensaje encriptado c y lo desencripta de la siguiente forma:
d
m = D d (c) ≡ cd mod (n) = (me ) mod (n) = med mod (n)


donde m, c ∈ Zn .

Ejemplo: Para p = 47 y q = 71, n = 3337. La llave pública e no debe tener factores en común con
Φ (3337) = (46) (70) = 3220. Así, Bob puede elegir e = 79. Entonces, calcula su llave privada
como d ≡ 79−1 mod (3220) = 1019.
Si Alice, quiere enviarle a Bob el mensaje m = 688 lo encripta usando la llave pública de Bob,
e = 79 y n = 3337. Calcula

c = E 79 (688) ≡ 68879 mod (3337) = 1570

A continuación, Bob recive el mensaje encriptado c = 1570, y lo descencripta calculando


1019
D 1019 (c) ≡ 15701019 mod (n) = 68879 mod (3337) = 688

Firma digital: Alice y Bob siguen los siguientes pasos:


a) Bob publica n y e.
b) Bob construye su rma digital de la siguiente manera: toma el mensaje m y calcula su rma
sb ≡ md mod (n), donde d es su llave privada.

23
c) Le transmite a Alice el par (m,sb ).
d) e
Alice calcula x ≡ (sb ) mod (n). Entonces,

x = m mod (n) =⇒ la rma sb es válida.


x 6= m mod (n) =⇒ la rma sb NO es válida.

Bob usa su llave privada d para rmar y Alice usa la llave pública e de Bob para vericar la
rma.

3.1.3. Algoritmo de ElGamal


En 1985 T. ElGamal modicó el esquema de Die-Hellman para encriptar y desencriptar un
mensaje. La seguridad de este algoritmo criptográco está basada en la imposibilidad de resolver el
problema del logaritmo discreto (discrete logarithm problem, DLP).
El algoritmo de ElGamal se utiliza sobre un el grupo Z∗p , con p un número primo gigante, que es
público.
Aquí Bob tiene como llave privada (secreta) x, con x < p. Y como llave pública (β, y) donde
β < p e y ≡ β x mod (p).
Alice encripta un mensaje m eligiendo en forma aleatoria k , que es un primo relativo con p − 1.
A continuación calcula

a = β k mod (p) y b = y k m mod (p)

Entonces, le manda a Bob el mensaje encriptado en el par (a, b).


Para desencriptar Bob hace los siguientes cálculos:
!
 k  k
(β x ) m
 
b y m
mod (p) = x mod (p) = x mod (p) = m
ax (β k ) (β k )

Ejemplo: Bob elige p = 13, β = 6, x = 5 y calcula y ≡ 65 mod (13) = 7776 mod (13) = 2. Publica p = 13,
β = 6 e y = 2.
Alice encripta el mensaje m = 10 eligiendo en forma aleatoria k = 4. Entonces, determina los
valores de

a = 64 mod (13) = 1296 mod (13) = 9 y b = 24 10 mod (13) = 160 mod (13) = 4

Entonces, le manda a Bob el mensaje encriptado en el par c = (a, b) = (9, 4).


Bob desencripta el mensaje encriptado c = (a, b) = (9, 4) de la siguiente forma:

4
! 4 !
65
 
4 (2) 10 10
mod (13) = mod (p) = mod (13) = 10 = m
95 (64 )
5
(64 )
5

Firma digital con ElGamal:


Bob selecciona un número primo p, y dos números aleatorios β y x, tales que β < p y x < p. Y
calcula
y ≡ β x mod (p)
Bob publica y , β y p.
Para rmar un mensaje m, Bob elige un número aleatorio secreto k que es un primo relativo con
p − 1, y calcula a = β k mod (p).
A continuación, usa el algoritmo extendido de Euclides para encotrar el valor de b en la ecuación:

24
m = (xa + kb) mod (p − 1)
El par (a, b) es la rma digital de Bob.
Alice verica la rma de Bob calculando:
a b
y a ab mod (p) = (β x ) βk mod (p) = β (xa+kb) mod (p) = β m mod (p)

Ejemplo: Bob elige p = 11, β = 2, x = 8 y calcula y ≡ 28 mod (11) = 256 mod (11) = 3.
Bob publica y = 3, β = 2 y p = 11, y mantiene secreto x = 8.
Para rmar el mensaje m = 5, selecciona un número aleatorio secreto k = 9 que es un primo
relativo con p − 1 = 10.
Calcula a = β k mod (p) = a = 29 mod (11) = 512 mod (11) = 6.
A continuación, usa el algoritmo extendido de Euclides para encotrar el valor de b en la
ecuación:
5 = (8 · 6 + 9 · b) mod (10) = (8 + 9 · b) mod (10)

resultando b = 3. Y el par (a, b) = (6, 3) es la rma digital de Bob.

25
4. Intercambio de llaves basado en redes neuronales articiales
En esta sección se presenta un esquema para el intercambio de llaves entre dos usuarios usando
un par de RNAs. Para más detalles se recomienda leer las referencias [12] [13] [14] [15] [16].
Como se dijo anteriormente el esquema usa dos RNAs del tipo feedforward, que pueden sincro-
nizar sus pesos sinápticos mediante el intercambio y aprendizaje, donde la salida de una alimenta la
entrada de la otra y viceversa.
La gura 26 muestra la arquitectura usada por el transmisor (S) y receptor (R), que en este caso
es un perceptron de doble capa, con K neuronas ocultas y N señales de entrada por cada neurona
oculta. Así, el vector de las señales de entrada tiene KN componentes xkj = ±1, con 1 ≤ k ≤ K y
1 ≤ j ≤ N . Las salidas de cada una de las neuronas ocultas son y1 , y2 , . . . , yK . No tiene sobreposición
entre las distintas señales. Los pesos sinápticos son números enteros wkj ∈ [−L, L], y representan al
j − ésimo peso de la k − ésima neurona oculta. Al número L se le llama la profundidad sináptica
de la red. Y la salida de cada red O es el resultado de multiplicar entre si todas las salidas de las K
neuronas ocultas, esto es,
O = y1 · y2 · . . . · yK
.

Figura 26: Arquitectura con K neuronas ocultas y N señales de entrada por neurona [12]

Las llaves privadas (secretas) del transmisor y receptor son los valores iniciales de los pesos
sinápticos de cada red. Donde wkj S
y wkj
R
son los pesos sinápticos del transmisor y del receptor,
respectivamente.
Cada red es entrenada con la salida de la otra, considerando un vector de señales de entrada
(xkj ) común y público para el transmisor y el receptor.
En la gura 26 se consideran K = 3 y N = 5. Así, la señal de salida, en cada red, se obtiene
como
 
XN
yk = signo  wkj xkj  k = 1, 2, 3
j=1

donde la función signo se dene de la siguiente forma

 1 si x > 0

signo (x) =
−1 si x < 0

Para el caso particular x = 0, el transmisor considera signo (x) = 1, mientras que el receptor
considera signo (x) = −1.
Luego, se calcula la señal de salida de cada red como sigue:

26
OS = y1S · y2S · y3S y OR = y1R · y2R · y3R
A continuación el transmisor y el receptor intercambia las señales de salida OS y OR de cada
red, para ser usadas en el entranamieto.
El entrenamiento sigue si OS · OR < 0, es decir, mientras sean distintas, y termina cuando ambas
redes tienen la misma salida.
Durante el entrenamiento los pesos son ajustado siguiendo la siguiente regla de aprendizaje, en
cada red:

O · yk > 0 =⇒ wkj = wkj − O · xkj


(23)
|wkj | > L =⇒ wkj = signo (wkj ) · L
Sólo se ajustan los pesos sinápticos pertenecientes a las neuronas ocultas que están en el mismo
estado que su unidad de salida, en cada ambas redes.
La seguridad de este método de intercambio de llaves está garantizada por los siguientes hechos:

a) Para una salida particular O desde una de las RNAs se tienen diferentes representaciones con las
salidas y1 , y2 , . . . , yK de las neuronas ocultas. Por ejemplo, para la gura 26, O = 1 puede
ser el resultado de multiplicar una de las conguraciones (1, 1, 1) , (1, −1, −1) , (−1, 1, −1) ,
(−1, −1, 1) . Por tanto, el intruso no puede determinar el vector de pesos sinápticos que se está
usando.

b) Como cada componente está acotada por la profundidad sináptica de la red L, el intruso no
puede invertir laa operaciones en las ecuaciones (23), ya que la red olvida.

27
Referencias
[1] Internet Live Stats, http://www.internetlivestats.com/.

[2] S. Haykin, Neural Networks. A Comprehensive Foundation, Second Edition, ISBN: 81-7808-
300-0. Pearson Prentice Hall. 1999.

[3] M. A. Arbib, The Handbook of Brain Theory and Neural Networks, Second Edition, ISBN:
0262011972. A Bradford Book THE MIT PRESS. 2003

[4] J. Hertz, A. Krogh, R.G. Palmer, Introduction to the Theory of Neural Computation,
ISBN: 0-201-51560-1. Addison-Wesley Publishing Company, 1990.

[5] S. Vaudenay, A Classical Introduction to Cryptography: Applications for Communications


Security, ISBN-13:978-1-4419-3797-1. Springer, 2010.

[6] C. Paar, J. Pelzl, Understanding Cryptography. A Textbook for Students and Practitioners,
ISBN:978-3-642-04100-6. Springer-Verlag, Berlin, 2010.

[7] B. Schneier, Applied Cryptography:Protocols, Algorithms, and Source Code in C, Second Edi-
tion, ISBN:0471117099. John Wiley and Sons, Inc. 1995.

[8] W. Diffie, M.E.Hellman, New directions in cryptography, IEEE Transactions on Information


Theory 22 (1976), pp. 644-654.

[9] R. Rivest, A. Shamir, L. Adleman, A Method for Obtaining Digital Signatures and Public-
Key Cryptosystems, Communications of the ACM, Vol. 21 (2), pp.120-126, 1978.

[10] T. ElGamal, A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Loga-
rithms, IEEE Transactions on Information Theory 31 (4): 469472, 1985.

[11] H. C. A. van Tilborg, Fundamentals of Cryptology. A Professional Reference and Interactive


Tutorial, ISBN: 0792386752. Kluwer Academic Publishers, 2002.

[12] I. Kanter, W. Kinzel, E. Kanter, Secure exchange of information by synchronization of


neural networks, Europhysics Letters, 57 (1), pp. 141147, 2002.

[13] Chao-Jung Cheng, Teh-Lu Liao, Jun-Juh Yan, Chi-Chuan Hwang, Synchronization of
neural networks by decentralized feedback control,Physics Letters A 338 (2005) 2835. Elsevier
B.V. 2005.

[14] S. Santhanalakshmi , T.S.B. Sudarshan, G. K. Patra, Neural Synchronization by Mutual


Learning Using Genetic Approach for Secure Key Generation, S.M. Thampi et al.(Eds.): SNDS
2012, CCIS 335, pp. 422431, Springer-Verlag Berlin Heidelberg 2012.

[15] N. Mu, X. Liao, An Approach for Designing Neural Cryptography, C. Guo, Z.-G. Hou, and
Z. Zeng (Eds.): ISNN 2013, Part I, LNCS 7951, pp. 99108. Springer-Verlag Berlin Heidelberg
2013.

[16] J. Giesl, R. Pisan, Neural Network Synchronization Protocol,Journal of Emerging Trends in


Computing and Information Sciences, Vol. 4, No. 1 Jan 2013, ISSN 2079-8407, 2013.

28

You might also like