La criptografía neuronal es una rama de la criptografía dedicada al análisis de la aplicación de algoritmos estocásticos , especialmente algoritmos de redes neuronales artificiales , para su uso en cifrado y criptoanálisis .
Definición
Las redes neuronales artificiales son bien conocidas por su capacidad para explorar selectivamente el espacio de soluciones de un problema dado. Esta característica encuentra un nicho de aplicación natural en el campo del criptoanálisis . Al mismo tiempo, las redes neuronales ofrecen un nuevo enfoque para atacar algoritmos de cifrado, basado en el principio de que cualquier función puede ser reproducida por una red neuronal, lo que constituye una potente herramienta computacional de eficacia probada que puede utilizarse para encontrar la función inversa de cualquier algoritmo criptográfico.
Las ideas de aprendizaje mutuo, autoaprendizaje y comportamiento estocástico de las redes neuronales y algoritmos similares pueden utilizarse para diferentes aspectos de la criptografía, como la criptografía de clave pública , la resolución del problema de distribución de claves mediante la sincronización mutua de redes neuronales, el hashing o la generación de números pseudoaleatorios .
Otra idea es la capacidad de una red neuronal para separar el espacio en segmentos no lineales mediante un sesgo. Esto genera diferentes probabilidades de activar o no la red neuronal. Resulta muy útil en el caso del criptoanálisis.
Para designar un mismo campo de investigación se utilizan dos nombres: Neurocriptografía y Criptografía Neuronal.
El primer trabajo conocido sobre este tema se remonta a 1995, en una tesis de maestría en informática.
Aplicaciones
En 1995, Sebastien Dourlens aplicó redes neuronales al criptoanálisis DES , permitiendo que las redes aprendieran a invertir las tablas S del DES. Se destaca el sesgo en el DES estudiado mediante criptoanálisis diferencial por Adi Shamir . El experimento muestra que se puede encontrar aproximadamente el 50% de los bits de la clave, lo que permite hallar la clave completa en poco tiempo. Se han propuesto aplicaciones de hardware con múltiples microcontroladores debido a la facilidad de implementación de redes neuronales multicapa en hardware.
Khalil Shihab ofrece un ejemplo de protocolo de clave pública . Describe el esquema de descifrado y la creación de la clave pública, basados en una red neuronal de retropropagación . El esquema de cifrado y el proceso de creación de la clave privada se basan en álgebra booleana. Esta técnica presenta la ventaja de requerir poco tiempo y memoria. Sin embargo, una desventaja reside en las propiedades de los algoritmos de retropropagación: debido a la gran cantidad de conjuntos de datos de entrenamiento, la fase de aprendizaje de la red neuronal es muy larga. Por lo tanto, el uso de este protocolo es, hasta el momento, puramente teórico.
Protocolo de intercambio de claves neuronales
El protocolo más utilizado para el intercambio de claves entre dos partes A y B en la práctica es el protocolo Diffie-Hellman . El intercambio de claves neuronal, basado en la sincronización de dos máquinas de paridad de árbol, debería ser una alternativa segura a este método. La sincronización de estas dos máquinas es similar a la sincronización de dos osciladores caóticos en comunicaciones caóticas .

Máquina de paridad de árbol
La máquina de paridad de árbol es un tipo especial de red neuronal multicapa de alimentación directa .
Consta de una neurona de salida, K neuronas ocultas y K × N neuronas de entrada. Las entradas a la red toman tres valores:
Los pesos entre las neuronas de entrada y ocultas toman los siguientes valores:
El valor de salida de cada neurona oculta se calcula como la suma de todas las multiplicaciones de las neuronas de entrada y estos pesos:
Signum es una función simple que devuelve −1, 0 o 1:
Si el producto escalar es 0, la salida de la neurona oculta se asigna a −1 para garantizar un valor de salida binario. La salida de la red neuronal se calcula entonces como la multiplicación de todos los valores producidos por los elementos ocultos:
La salida de la máquina de paridad de árbol es binaria.
Protocolo
Cada parte ( A y B ) utiliza su propia máquina de paridad de árbol. La sincronización de las máquinas de paridad de árbol se logra en estos pasos.
- Inicializar valores de peso aleatorios
- Ejecute estos pasos hasta que se logre la sincronización completa.
- Generar vector de entrada aleatorio X
- Calcula los valores de las neuronas ocultas.
- Calcula el valor de la neurona de salida.
- Compara los valores de ambas máquinas de paridad de árbol.
- Los resultados son los mismos: se aplica una de las reglas de aprendizaje adecuadas a los pesos.
- Los resultados son diferentes: vaya a 2.1
Una vez lograda la sincronización completa (los pesos w ij de ambas máquinas de paridad de árbol son iguales), A y B pueden usar sus pesos como claves. Este método se conoce como aprendizaje bidireccional. Se puede utilizar una de las siguientes reglas de aprendizaje [ 1 ] para la sincronización:
- Regla de aprendizaje hebbiana:
- Regla de aprendizaje antihebbiana:
- Paseo aleatorio:
Dónde:
- side lo contrario
Y:
- es una función que mantiene elen el rango
Ataques y seguridad de este protocolo
En cada ataque se considera que el atacante E puede interceptar mensajes entre las partes A y B , pero no tiene la oportunidad de modificarlos.
Fuerza bruta
Para realizar un ataque de fuerza bruta, el atacante debe probar todas las claves posibles (todos los valores posibles de los pesos wij). Con K neuronas ocultas, K × N neuronas de entrada y un límite de pesos L , se obtienen (2L+1) KN posibilidades. Por ejemplo, la configuración K = 3, L = 3 y N = 100 nos da 3 × 10²⁵³ posibilidades de clave, lo que hace que el ataque sea imposible con la potencia informática actual.
Aprendiendo con mi propia máquina de paridad de árboles
Uno de los ataques básicos puede ser realizado por un atacante que posee la misma máquina de paridad de árbol que las partes A y B. Su objetivo es sincronizar su máquina de paridad de árbol con la de estas dos partes. En cada paso, existen tres situaciones posibles:
- Salida(A) ≠ Salida(B): Ninguna de las partes actualiza sus ponderaciones.
- Salida(A) = Salida(B) = Salida(E): Las tres partes actualizan los pesos en sus máquinas de paridad de árbol.
- Salida(A) = Salida(B) ≠ Salida(E): Las partes A y B actualizan sus máquinas de paridad de árbol, pero el atacante no puede hacerlo . Debido a esta situación, su aprendizaje es más lento que la sincronización de las partes A y B.
Se ha demostrado que la sincronización entre dos partes es más rápida que el aprendizaje de un atacante. Esto se puede mejorar aumentando la profundidad sináptica L de la red neuronal. De esta forma, el protocolo se vuelve suficientemente seguro y un atacante solo puede descubrir la clave con una probabilidad muy baja.
Otros ataques
En los sistemas criptográficos convencionales, la seguridad del protocolo se mejora aumentando la longitud de la clave. En el caso de la criptografía neuronal, se mejora incrementando la profundidad sináptica L de las redes neuronales. Modificar este parámetro aumenta exponencialmente el coste de un ataque exitoso, mientras que el esfuerzo para los usuarios crece polinómicamente. Por lo tanto, vulnerar la seguridad del intercambio de claves neuronales pertenece a la clase de complejidad NP.
Alexander Klimov, Anton Mityaguine y Adi Shamir afirman que el esquema original de sincronización neuronal puede ser vulnerado mediante al menos tres ataques diferentes: geométrico, análisis probabilístico y el uso de algoritmos genéticos. Si bien esta implementación en particular es insegura, las ideas que sustentan la sincronización caótica podrían conducir a una implementación segura. [ 2 ]
Máquina de paridad de permutación
La máquina de paridad de permutación es una variante binaria de la máquina de paridad de árbol. [ 3 ]
Consta de una capa de entrada, una capa oculta y una capa de salida. El número de neuronas en la capa de salida depende del número de unidades ocultas K. Cada neurona oculta tiene N neuronas de entrada binarias:
Los pesos entre las neuronas de entrada y las ocultas también son binarios:
El valor de salida de cada neurona oculta se calcula como la suma de todas las disyunciones exclusivas (o exclusivo) de las neuronas de entrada y estos pesos:
(⊕ significa XOR).
La funciónes una función umbral, que devuelve 0 o 1:
La salida de una red neuronal con dos o más neuronas ocultas se puede calcular como la disyunción exclusiva de los valores producidos por los elementos ocultos:
También son posibles otras configuraciones de la capa de salida para K>2. [ 3 ]
Esta máquina ha demostrado ser lo suficientemente robusta contra algunos ataques [ 4 ], por lo que podría usarse como medio criptográfico, pero se ha demostrado que es vulnerable a un ataque probabilístico. [ 5 ]
Seguridad frente a las computadoras cuánticas
Una computadora cuántica es un dispositivo que utiliza mecanismos cuánticos para realizar cálculos. En este dispositivo, los datos se almacenan como cúbits (dígitos binarios cuánticos). Esto le otorga a una computadora cuántica, en comparación con una computadora convencional, la capacidad de resolver problemas complejos en poco tiempo, como el problema del logaritmo discreto o la factorización. Gracias a esta propiedad, se están buscando algoritmos que no se basen en ninguno de estos problemas de teoría de números.
El protocolo de intercambio de claves neuronales no se basa en ninguna teoría numérica. Se basa en la diferencia entre la sincronización unidireccional y bidireccional de las redes neuronales. Por lo tanto, algo como el protocolo de intercambio de claves neuronales podría dar lugar a esquemas de intercambio de claves potencialmente más rápidos. [ 2 ]
Véase también
Referencias
- ↑ Singh, Ajit; Nandal, Aarti (mayo de 2013). "Criptografía neuronal para intercambio de claves secretas y cifrado con AES" (PDF) . Revista internacional de investigación avanzada en informática e ingeniería de software . 3 (5): 376– 381. ISSN 2277-128X .
- 1 2 Klimov, Alexander; Mityagin, Anton; Shamir, Adi (2002). "Análisis de criptografía neuronal" (PDF) . Avances en criptología . ASIACRYPT 2002. LNCS . Vol. 2501. pp. 288–298 . doi : 10.1007/3-540-36178-2_18 . ISSN 0302-9743 . Recuperado el 15 de noviembre de 2017 .
- 1 2 Reyes, OM; Kopitzke, I.; Zimmermann, K.-H. (abril de 2009). "Máquinas de paridad de permutación para sincronización neuronal". Journal of Physics A: Mathematical and Theoretical . 42 (19) 195002. Bibcode : 2009JPhA...42s5002R . doi : 10.1088/1751-8113/42/19/195002 . ISSN 1751-8113 . S2CID 122126162 .
- ↑ Reyes, Oscar Mauricio; Zimmermann, Karl-Heinz (junio de 2010). "Máquinas de paridad de permutación para criptografía neuronal". Physical Review E. 81 ( 6) 066117. Bibcode : 2010PhRvE..81f6117R . doi : 10.1103/PhysRevE.81.066117 . ISSN 1539-3755 . PMID 20866488 .
- ↑ Seoane, Luís F.; Ruttor, Andreas (febrero de 2012). "Ataque exitoso a la criptografía neuronal basada en máquinas de paridad de permutación". Physical Review E . 85 (2) 025101. arXiv : 1111.5792 . Bibcode : 2012PhRvE..85b5101S . doi : 10.1103/PhysRevE.85.025101 . ISSN 1539-3755 . PMID 22463268 . S2CID 17187463 .
- Neurocriptografía 1995 - La primera definición de la neurocriptografía (neurocriptografía de IA) aplicada al criptoanálisis DES por Sebastien Dourlens, Francia.
- Criptografía neuronal : descripción de un tipo de criptografía neuronal en la Universidad de Würzburg , Alemania.
- Kinzel, W.; Kanter, I. (2002). "Criptografía neuronal". Actas de la 9.ª Conferencia Internacional sobre Procesamiento de Información Neuronal . ICONIP '02. pp. 1351–1354 . arXiv : cond-mat/0208453 . doi : 10.1109/ICONIP.2002.1202841 . - Uno de los artículos más destacados que introduce el concepto de utilizar redes neuronales sincronizadas para lograr un sistema de autenticación de clave pública.
- Li, Li-Hua; Lin, Luon-Chang; Hwang, Min-Shiang (noviembre de 2001). "Un esquema de autenticación remota de contraseñas para arquitectura multiservidor utilizando redes neuronales". IEEE Transactions on Neural Networks . 12 (6): 1498– 1504. doi : 10.1109/72.963786 . ISSN 1045-9227 . PMID 18249979 . - Posible aplicación práctica de la criptografía neuronal.
- Klimov, Alexander; Mityagin, Anton; Shamir, Adi (2002). "Análisis de criptografía neuronal" (PDF) . Avances en criptología . ASIACRYPT 2002. LNCS . Vol. 2501. pp. 288–298 . doi : 10.1007/3-540-36178-2_18 . ISSN 0302-9743 . Consultado el 15 de noviembre de 2017 . - Análisis de la criptografía neuronal en general, centrándose en las debilidades y los posibles ataques que pueden surgir al utilizar redes neuronales sincronizadas.
- Sincronización neuronal y criptografía - Andreas Ruttor. Tesis doctoral, Bayerische Julius-Maximilians-Universität Würzburg, 2006.
- Ruttor, Andreas; Kinzel, Wolfgang; Naeh, Rivka; Kanter, Ido (marzo de 2006). "Ataque genético a la criptografía neuronal". Physical Review E. 73 ( 3) 036121. arXiv : cond-mat/0512022 . Bibcode : 2006PhRvE..73c6121R . doi : 10.1103/PhysRevE.73.036121 . ISSN 1539-3755 . PMID 16605612. S2CID 27786815 .
- Khalil Shihab (2006). "Una red neuronal de retropropagación para la seguridad de redes informáticas" (PDF) . Journal of Computer Science 2 : 710–715 . Archivado del original (PDF) el 12 de julio de 2007.
- Teoría de la criptografía
- Redes neuronales artificiales