lunes, 18 de marzo de 2013

Enigma



Una de las maravillas del pasado en lo que a criptografía se refiere es la máquina enigma inventada por ingenieros alemanes (aunque el verdadero mérito se lo lleva un holandés), cuya primera patente fue en 1919 y que resultó ser una verdadera revolución en el arte de encriptar.

Su primera versión comercial fue en 1923 con el nombre de Enigma-A, siendo su finalidad inicial facilitar la comunicación de documentos entre comerciantes y hombres de negocios de forma secreta.
Después de este modelo le siguieron tres más, hasta llegar al más importante de todos, La Enigma-D. Este modelo fue adaptado por la marina alemana por el 1929 y fue a parar a prácticamente todas las organizaciones secretas y militares nazis.





Funcionamiento.

La máquina Enigma era un dispositivo en parte mecánico en parte eléctrico, el cual, tenía un teclado como el de una máquina de escribir antigua, que le permitía controlar los interruptores y engranajes.

El nucleo era mecánico y se componía de varios rotores conectados entre sí (Un rotor es un disco circular plano con 26 contactos eléctricos en cada cara, uno por cada letra del alfabeto). Cada contacto de una cara esta conectado a un contacto diferente de la cara contraria. Cada uno de los rotores que tenía la máquina Enigma estaba cableado de forma diferente y los que utilizaba el ejército alemán poseían un cableado distinto al de los modelos comerciales.

En casi todas las versiones, en el interior de Enigma había tres ranuras para poder introducir los rotores. Cada uno de ellos se encajaba en la ranura correspondiente de forma que sus contactos de salida se conectaban con los contactos de entrada del rotor siguiente (como si fueran varios vagones de tren unidos).
El tercer y último rotor se conectaba, casi siempre, a un reflector que conectaba el contacto de salida del tercer rotor con otro contacto del mismo rotor para realizar el mismo proceso pero en sentido contrario y por una ruta diferente, o lo que es lo mismo, formaba un bucle.

Dicho reflector diferencia a la máquina Enigma de otras máquinas de cifrado basadas en rotores de la época. Este elemento, que no estaba en los primeros modelos, permitía que la clave que se usaba para cifrar se pudiera utilizar para descifrar el mensaje.
Por la parte eléctrica, Enigma se componía de una batería que se conecta a una de las lámparas, la cual representan las diferentes letras del alfabeto.

Cada vez que se introducía una letra del mensaje original, pulsando la tecla correspondiente en el teclado, la posición de los rotores variaba. Según esta variación, cada dos letras idénticas en el mensaje original, por ejemplo AA, le correspondían dos letras diferentes en el mensaje cifrado, por ejemplo QL. En casi todos los modelos de la máquina, los rotores avanzaban una posición con cada letra. Cuando se habían introducido 26 letras, por lo que, el primer rotor había completado una vuelta completa, se avanzaba en una muesca la posición del segundo rotor, y cuando éste finalizaba su vuelta, se variaba la posición del tercer rotor.
El número de pasos que provocaba el avance de cada uno de los rotores, era un parámetro que configuraban los operarios.

Debido a que cada rotor tenía un cableado diferente, la secuencia exacta de los alfabetos que se utilizaban para sustituir el texto, variaba en función de los rotores que estaban instalados en las ranuras, su posición inicial y el orden en que se instalaron.
A estos parámetros se les llamaba "configuración inicial" y se enviaban en libros, mensualmente, al principio, y con mayor frecuencia, conforme avanzaba la guerra, a los que usaban las máquinas.

Como lo hacían.
Si la "configuración inicial" estuviera disponible, un criptoanalista podría poner un equipo Enigma con la misma configuración y descifrar el mensaje. Uno podría mandar libros de configuración para usarlos, pero se podrían interceptar. En cambio, los alemanes establecieron un sistema bastantes inteligente que combinó ambos diseños.
Cada inicio de mes, se dio a los operadores del enigma un nuevo libro que contenía las configuraciones iniciales para la máquina.
Por ejemplo, en un día particular las configuraciones podrían ser poner el rotor número 7 en hendidura 1, No. 4 en hendidura 2, y 6 en la 3. Éstos estarían rotados para que la hendidura 1 esté en la letra X, hendidura 2 en la letra J y hendidura 3 en la A. Como los rotores se permitían en las máquinas, con tres rotores en tres hendiduras tienes 3 x 2 x 1 = 6 combinaciones para considerar. Como cada rotor contiene las 26 letras del alfabeto y éstas se pueden repetir en la encriptación, tendremos 26 x 26 x 26 = 17.576 alfabetos de sustitución para cualquier combinación y orden de rotores dada. Por tanto, tendremos en total, 17.576 x 6 = 105.456 posibles alfabetos de sustitución.
También había un anillo para cada rotor que aún agrega más variaciones.
El operador seleccionaría otras configuraciones para los rotores, esta vez definiendo sólo las posiciones de los rotores. Un operador en particular podría seleccionar ABC, y estas posiciones se convierten en la configuración del mensaje para esa sesión de cifrado. Solo tendrían que teclear la configuración del mensaje en la máquina que aún está con la configuración inicial.
Para más seguridad, lo tecleaban dos veces. Los resultados se codificaban para que la secuencia ABCtecleada dos veces se convirtiera, por ejemplo, en XHTLOA. El operador giraba los rotores en la configuración del mensaje, ABC y tecleaba el resto del mensaje para envíarlo por radio.
En el extremo receptor el funcionamiento se invierte. El operador pone la máquina en la configuración inicial e introduce las primeras seis letras del mensaje. Al hacer esto, vería ABCABC en la máquina. Entonces giraba los rotores en la posición ABC y teclea el resto del mensaje cifrado, descifrándolo.
Este sistema era increible ya que el análisis criptográfico o criptoánalis se basa en algún tipo de análisis de frecuencias. Por tanto, aunque se enviarían muchos mensajes cualquier día con seis letras a partir de la configuración inicial, se asumía que esas letras eran al azar. Mientras que un ataque en el propio cifrado era posible, en cada mensaje se usó un cifrado diferente y hacía que el análisis de frecuencia fuese inútil en la práctica. Hoy en día, con cualquier ordenador casero, las cosas podrían haber sido diferentes, pero a mano...
El Enigma fue muy seguro. Tanto, que los alemanes se confiaron mucho en él. El tráfico cifrado con Enigma incluyó de todo, desde mensajes de alto nivel sobre las tácticas y planes, a trivialidades como informes del tiempo e incluso las felicitaciones de cumpleaños.


Simulador 

ENIGMA

Video


Referencias

Cifrado Feistel


Cifrado por Bloques

La criptografía simétrica (o privada) es el sistema de criptografía más antiguo. Se utiliza desde los tiempos de Julio Cesar hasta la actualidad.
Se caracteriza por usar la misma clave para encriptar y desencriptar.
Toda la seguridad está basada en la privacidad de esta clave secreta, llamada simétrica porque es la misma para el emisor y el receptor.
Cifrado de producto
Los algoritmos de cifrado simétricos se apoyan en los conceptos de confusión (tratar de ocultar la relación que existe entre el texto claro, el texto cifrado y la clave, es decir, realizar sustituciones simples) y difusión (trata de repartir la influencia de cada bit del mensaje original
lo más posible entre el mensaje cifrado, es decir, realizar permutaciones) que se combinan para dar lugar a los denominados cifrados de producto.
Estas técnicas consisten básicamente en trocear el mensaje en bloques de tamaño fijo, y aplicar la función de cifrado a cada uno de ellos.

Principios de cifrado convencional

Un esquema de cifrado tiene 5 ingredientes:

  • Texto “en claro”
  • Algoritmo de cifrado
  • Clave secreta
  • Texto cifrado
  • Algoritmo de descifrado

La seguridad depende de secreto de la clave, no del algoritmo
Estrategia de ataque:

  • Solo texto cifrado y algoritmo
  • Texto claro conocido

Fundamentos

  • Opera sobre un bloque de texto plano de n bits para producir un texto cifrado de n bits.
  • Típicamente, la longitud de un bloque es de 64 bits.
  • Pueden adaptarse para funcionar como cifradores de flujo (más generales y mayor aplicabilidad)
  • Para que sea reversible (descifrado), cada entrada debe producir un bloque de texto cifrado único

Redes Feistel

Horst Feistel fue uno de los primeros no militares investigadores en el campo de la criptografía.
En 1973 se publicó un artículo llamado “Cryptography and Computer Privacy” en la revista llamada “Scientific American”, en el que trató de cubrir los aspectos más importantes de la máquina de cifrado e introdujo lo que hoy se conoce como la "Red de Feistel”.
Esta estructura presenta unas características muy interesantes entre las que destaca que la codificación y la decodificación sean muy similares o en ciertos casos idénticos (autoreversivilidad). A la hora de implementar los sistemas en hardware, esta propiedad consigue reducir la complejidad y el coste de los circuitos, siendo sólo necesario modificar la clave.





Muchos de los cifrados de producto tienen en común que dividen un bloque de longitud n en dos mitades, L y R. Se define entonces un cifrado de producto iterativo en el que la salida de cada ronda se usa como entrada para la siguiente según la relación
Este tipo de estructura se denomina Red de Feistel, y es empleada en multitud de algoritmos, como DES, Lucifer, FEAL, CAST, Blowfish, etc.
Para descifrar bastará con aplicar el mismo algoritmo, pero con las Ki en orden inverso.
La propuesta de Feistel propuso alterna sustituciones y permutaciones, es una aplicación práctica de una propuesta de Claude Shannon en 1945 para desarrollar un cifrado producto que alterna funciones de confusión.

Difusión y confusión

Difusión: Pretende disipar la estructura estadística del texto plano en el texto cifrado
El cambio de un bit en el texto plano afecta al valor de muchos dígitos del texto cifrado, cada bit del texto cifrado se ve afectado por muchos dígitos del texto plano, esto se consigue aplicando repetidamente permutaciones antes de las funciones de sustitución empleadas.
Confusión: Pretende hacer la relación entre las estadísticas del texto cifrado y el valor de la clave lo más compleja posible, para evitar el descubrimiento de la clave.
La manera en que se utiliza la clave para cifrar el texto debe ser tan compleja que sea difícil deducir la clave y se consigue mediante la utilización de un algoritmo de sustitución complejo.

Funcionamiento de una Red Feistel

1. Se divide el bloque inicial en dos partes: izquierda (L) y derecha (R).
2. A la parte derecha se le aplica una función f que aporte la confusión y la difusión adecuada. En esta función un lugar importante lo ocupa la clave (ki), ésta debe permanecer en secreto y sólo la deben conocer el emisor y el receptor del mensaje.
3. El resultado de esta función es aplicado a la parte izquierda del bloque mediante un XOR
4. Se intercambian las dos partes y se itera el proceso, esta vez con los papeles cambiados.
La estructura de la decodificación es exactamente la misma que la de la codificación. Comprobamos que simplemente con cambiar las claves de orden podemos obtener el bloque original y en ningún momento se ha necesitado la inversa de la función f.
El último intercambio no se suele hacer, o si se hace (por ejemplo con una implementación mediante iteración) se deshace. Normalmente se toma un número de rondas mayor o igual a tres y suele ser par. La red de 16 rondas mostrada corresponde a la utilizada por el sistema DES, también es la que utiliza Blowfish.

Reversibilidad del algoritmo

El algoritmo debe ser reversible: supongamos que se trata de una cajanegra que tiene como entrada un bloque y como salida el bloque codificado. Tiene que ser posible enlazar ese bloque codificado con una caja negra idéntica en estructura (cambiando las claves lógicamente) que aplicado al bloque codificado nos devuelva el bloque original.

EJEMPLO



Bibliografía

Handbook of Applied Cryptography, A. Menezes, P. van Oorschot, S. Vanstone
Libro electrónico de seguridad informática y criptografía, Dr. Jorge Ramió Aguirre, Dr. Josep María Miret Biosca

Enlaces de internet.


  • www.schneier.com/blowfish.html
  • www.kriptopolis.com
  • www.rsasecurity.com
  • www.monografias.com/trabajos20/cifrado-en-bloques/cifradoen- bloques.shtml.
  • http://cs-exhibitions.uni-klu.ac.at/index.php?id=261.
  • http://es.knowledger.de/0105290/CifraDeFeistel.
  • http://spi1.nisu.org/recop/al01/alberto/tema2.html.

viernes, 1 de marzo de 2013

Bring Your Own Device


BYOD

Bring Your Own Device 

(Trae Tu Propio Dispositivo)

Es una política empresarial donde los empleados llevan sus propios dispositivos (laptops, tablets y  smart phones a su lugar de trabajo para tener acceso a recursos de la empresa tales como correos electrónicos, bases de datos y archivos en servidores así como datos y aplicaciones personales. También se le conoce como "Bring your own technology" (Trae tu propia tecnología), ya que de esta manera se expresa un fenómeno mucho más amplio ya que no sólo cubre al equipo sino que también cubre al software.

 

Ventajas

Organización
Una organización que adopta la política BYOD ahorra dinero en equipos de altos costos que tendría que adquirir para sus empleados. Los empleados podrían tener más cuidado de los equipos si los ven como de su propiedad. Las organizaciones podrían tomar acceder a las nuevas tecnologías mas rápidamente.

Empleados
Los empleados que trabajan en organizaciones con esta política pueden decidir que tecnología utilizar, lo que es preferible que forzarlos a utilizar la que la organización elija. Esto podría mejorar la moral y la productividad de los empleados. Los empleados tienen el control de las características.

Desventajas

Organización
La información de la organización se encuentra a menudo menos segura que si se encontrara en un equipo controlado por la misma organización. Los expertos en seguridad le han llamado también 'bring your own danger' (Trae tu propio peligro) y 'bring your own disaster' (Trae tu propio desastre). A pesar de que los costos del hardware podrían reducirse, pero se generá un costo administrativo. El esfuerzo puede ser mayor ya que el hardware no esta completamente controlado por  el departamento de TI (integración a la red de la organización, solución de incidentes, etc.).

Empleados
Debido a cuestiones de seguridad, los empleados no pueden tener control total sobre sus dispositivos, así como la organización debe asegurar que la información privada se mantenga siempre segura.


Soluciones

Para disminuir los riesgos que implican la adopción de la política BYOD, las empresas ha comenzado tomar algunas medidas para controlar la seguridad:
1-      Crear políticas y protocolos de privacidad y seguridad en cuanto al acceso de la información dentro de la organización.
2-      Uso de aplicaciones web, de esta manera, tanto los datos como la aplicación reside en un servidor Web seguro, sin dejar nada en el equipo del usuario.


Comentario

Esta política proporciona una buena oportunidad por ejemplo para aquellas empresas que están comenzando y no tienen el capital para equipar sus instalaciones. Sin embargo, también representa un gran riesgo para la organización. Este tema es causa de discusión ya que habrá quienes los defienden y creen que sus ventajas superan a las desventajas, pero también existen los que piensan lo contrario.

Poniéndose del lado de los empleados, podríamos encontrar un problema, al llevar cada quien su propio dispositivo podrían generarse ciertos roces o problemas ya que alguien podría llevar un dispositivo mas moderno. En este sentido es bueno que al ser la organización quien proporcione los equipos, todos son iguales y no hay lugar a envidias de esa naturaleza.

Ahora, del lado de la organización, este tema debe poner nerviosos a los directivos y sobre todo al personal del departamento de TI, ya que son ellos quienes deben garantizar la seguridad de la información de la organización y una tendencia como está solo lograría complicar el asunto de la seguridad, aun más. 

Sin duda, se puede aprovechar esta política que están adoptando las organizaciones pero es fundamental analizar todos lo ángulos y tratar de cubrir las desventajas que la acompañan estableciendo políticas de seguridad que a demás no obstruyan las ventajas de la misma.