   -=( 7A69#13 )=--=( art7 )=--=( Criptoanalisis basado en )=--=( Memonix )=-
                                ( fallos de hardware.      )          

	     
      ========================= Introduccion =========================      

 En el mundo de la criptologia se pueden distinguir dos campos que
 evolucionan paralelamente: criptografia y criptoanalisis, una se basa en el
 estudio de tecnicas para mantener secretas todo tipo de comunicaciones,
 mientras que la otra parcela tiene como objetivo descifrar todo ese tipo
 de comunicaciones 'aseguradas'.
 Todo este campo del saber esta fundamentado en diversos campos de la 
 Matematica como son la teoria de numeros, algebra lineal, estadistica, etc,
 por lo que se requiere para su total comprension un nivel bastante elevado
 de estas areas, cosa por la cual es un campo bastante profesionalizado,
 donde todas las investigaciones son llevadas a cabo por verdaderos 'gurus'.

 Debido a la estrecha relacion existente entre criptografia y criptoanalisis,
 se puede decir que los avances de uno llevan irrebocablemente a avances en
 el otro, por lo que un buen criptologo desarrollara sistemas criptograficos
 que ofrezcan un descifrado sencillo pero un descriptado lo mas dificil
 posible, intentando en todo lo posible que su sistema converga con un modelo
 de seguridad incondicional, donde el sistema es seguro frente a un atacante
 con tiempo y recursos computacionales ilimitados, lo cual como se puede
 suponer es inviable a nivel practico, aunque ya ha sido demostrado a nivel
 teorico (cifrado Vernam).

 Cuando un criptografo ha de desarrollar un sistema criptografico, ha de 
 tomar un cierto numero de decisiones, como pueden ser decidir el grado de
 'modularizacion', los modos de operacion, los protocolos constituyentes,
 la unificacion de autentificacion y encriptacion, o el tratamiento por 
 separado de cada uno de ellos, el orden de operacion de estos mismos, 
 el tamao de los bloques y de la clave, el tipo de procesadores en el que se
 espera un mayor rendimiento teniendo en cuenta las limitaciones de la RAM y
 la ROM, la robustez del algoritmo que suele implicar 'complejidad' frente a
 la 'simplicidad' que se ha de encontrar para que el algoritmo no sea dificil
 de programar, la 'modificabilidad' del algoritmo para trabajar con 
 diferentes niveles de seguridad, las tecnicas de administracion de las
 llaves, la eleccion del conjunto de operacion que seran usadas, el posible
 empleo de subllaves, el numero de iteraciones a usar, decidir si es
 aceptable el trabajar con estructuras lineales al igual que con funciones
 reversibles, el uso de tecnicas que preserven la entropia de las diversas
 partes del sistema, cual sera el proceso de generacion de las llaves y
 subllaves, si el sistema va a usar metodos simetricos o asimetricos, si se
 usaran metodos de cifrado en bloque o en flujo, teniendo en cuenta las 
 posibles opciones de diseo que siguen a su vez a cada una de las opciones,
 etc, etc, etc.

 Como se puede llegar a imaginar es un trabajo de diseo un tanto descomunal,
 por lo que cada una de las etapas de diseo requiere una cantidad de tiempo
 importante, ya que despues de que cada etapa o fase ha sido terminada se
 tiende a 'testear' el sistema frente a un conjunto de posibles 
 vulnerabilidades y ataques, aunque esto ciertamente es una practica 
 incorrecta, siendo el conjunto de ataques bastante extenso, entre los que
 podemos encontrar algunos mas interesantes que otros, como pueden ser por
 ejemplo los ataques que suelen llevar a cabo los criptoanalistas contra los
 cifrados en bloque, siendo los mas comunes en la actualidad los 
 criptoanalisis diferenciales y lineales, los cuales han sido desarrollados
 hace relativamente poco, pero no queda ahi toda la historia ya que
 ultimamente esta llegando el rumor de un nuevo tipo de criptoanalisis, los 
 llamados criptoanalisis basados en fallos de hardware.

 Como anexo decir que las soluciones criptograficas si estan debidamente
 desarrolladas en todos los aspectos de su diseo, son altamente utiles, pero
 esto desgraciadamente no suele ocurrir, ya que se suele olvidar que un
 sistema consta de una etapa de diseo, implementacion y instalacion, donde
 un importante porcentaje de sistemas falla en alguna de estas etapas, con lo
 que la seguridad del sistema se ve bastante mermada; a su vez una gran
 cantidad de sistemas se 'asegura' contra fallos y tecnicas de ataque ya
 conocidas lo que es otro tremendo error, ya que un buen producto ha de ser
 seguro incluso ante ataques que aun no han sido desarrollados, ya que los
 atacantes no tienen mas que esperar a la llegada de nuevas herramientas para
 romper cualquier tipo de sistemas, resumiendo se podria decir que la 
 mayoria de los productos son simplemente seguros criptograficamente pero no
 seguros en si, ya que se puede 'romper' un sistema sin romper la seguridad
 de ese sistema.

 En lo siguiente intentare dar una mera idea del funcionamiento de estos
 distintos tipos de criptoanalisis.

     ========================= Criptoanalisis ========================= 
     =========================  diferencial   =========================  

 El criptoanalisis diferencial es un ataque estadistico donde se itera r
 veces una transformacion debil en terminos criptograficos, este tipo de 
 ataques fueron desarrollados por Shamir y Biham en su celebre documento
 'Differential cryptanalysis of DES-like cryptosystems'.
 Para desarrollar este ataque se estudian grandes cantidades de parejas de
 texto claro y cifrado elegidos al azar, donde la diferencia entre cualquiera
 de los textos en claro satisface una diferencia conocida, entonces se
 procede a estudiar la propagacion a lo largo del algoritmo de esta
 diferencia, observando despues la diferencia entre los textos cifrados.

 Este tipo de ataques busca una 'minimizacion' o 'optimizacion' del tiempo
 necesario para romper la clave respecto a los ataques por fuerza bruta,
 necesitando de un esquema 'propio' de ataque para cada criptosistema.

     ========================= Criptoanalisis =========================
     =========================     lineal     =========================

 Este tipo de ataques son relativamente recientes, fueron desarrollados por
 Matsui, 'Linear Criptanalysis Method for DES Cipher', consistiendo en 
 hacer aproximaciones lineales para describir el comportamiento de un
 cifrado en bloque, el esqueleto del ataque se podria decir que es el
 siguiente, se suman modulo 2 varios bits de texto claro y varios bits de
 texto cifrado, obteniendo un solo bit que se compara a su vez con otro bit
 resultado de sumar modulo 2 varios bits de la correspondiente clave, todo 
 este proceso se repite para varios mensajes y claves diferentes, llegando
 al calculo de una probabilidad de coincidencia 'p' de ambos bits.

 Si la probabilidad de coincidencia es distinta de 1/2, es posible recuperar
 una clave mediante un ataque por texto conocido, cuanto mayor sea la
 diferencia |p- (1/2)| mas facil sera.
 Uno de los elementos clave en este tipo de ataques es la seleccion de los 
 bits a sumar antes de la comparacion, requiriendo un estudio previo del
 sistema.

     ========================= Criptoanalisis     =========================
     ========================= basado en          =========================
     ========================= fallos de hardware =========================

 Este tipo de ataques se podrian considerar al menos como curiosos, teniendo
 su base en el aprovechamiento de fallos de hardware para recuperar la
 clave almacenada en ese mismo sistema, los creadores teoricos de este 
 ataque fueron Richard Lipton, Rich DeMillo y Dan Boneh, demostrando que este
 tipo de ataques son viables contra criptosistemas que usan operaciones
 modulares, como son casi todos los sistemas de clave publica.
 Mas tarde Biham y Shamir 'portaron' este tipo de ataques contra DES y otros
 algoritmos de cifrado en bloque, siendo estas tecnicas finalmente mejoradas
 por Ross Anderson y Markus Kuhn.

 El esqueleto basico consiste en someter al equipo de cifrado en el que se
 encuentra una clave a una 'perturbacion' fisica, como pueden ser un
 bombardeo con particulas ionizantes, falta de tension, sobretension, etc.
 De esta forma se consigue alterar el funcionamiento del dispositivo
 temporal o permanentemente, con lo que se procede a comparar textos
 cifrados obtenidos a partir de textos claros conocidos antes y despues de la
 perturbacion, pasando a estudiar las diferencias para poder llevar a cabo 
 la recuperacion de la clave.

 Los avances conseguidos en esta 'tegnologia' de antiseguridad han ido
 orientados sobre todo a la minimizacion del numero de textos cifrados
 necesarios para realizar el estudio, habiendo sido reducido de 200 a 10,
 tambien se han conseguido optimos resultados en tecnicas de ingenieria 
 inversa contra algoritmos de estructura desconocida, siendo las 
 observaciones criticas en todos los casos que los errores producidos en
 las ultimas rondas de cifrado dan amplia informacion sobre la llave y/o
 estructura del algoritmo.

 Este tipo de ataques son sobre todo criticos si son realizados contra
 smartcards, ya que la EEPROM es completamente vulnerable, siendo este un
 campo de investigacion un tanto desconocido, donde los 'puntas' en
 cuestiones de diseo de equipamiento criptografico suelen ser Visa y IBM,
 siendo los atacantes divididos en tres categorias:

 1.clever outsiders
 2.knowledgeable insiders
 3.funded organisations

 donde la categoria '1' esta compuesta por personas con insuficientes
 conocimientos del sistema, y con un equipo tecnico moderadamente sofisticado
 donde lo que se intenta es explotar vulnerabilidades conocidas en el sistema
 sin intentar en ningun momento descubrir nuevas tecnicas, la categoria '2'
 esta compuesta por personas con conocimientos tecnicos especiales teniendo
 experiencia en este tipo de asuntos, teniendo conocimiento de ciertas partes
 del sistema y acceso a herramientas e instrumentos de analisis sofisticados,
 el ultimo 'grupo' se podria decir que es un 'ensamblamiento' de 
 especialistas en cada uno de los campos involucrados en el estudio, pudiendo
 llevar a cabo un analisis en profundidad del sistema llegando al desarrollo
 de ataques altamente sofisticados; como se puede imaginar estos 'ambientes'
 son altamente hermeticos, estando compuestos por la elite ingenieril que
 pocas veces se da a conocer.

 Como los caminos del saber son infinitos, incluso dentro de la seguridad
 informatica/electronica la cual no es mas que un pseudoconocimiento o saber
 menor, no pienso abarcar mas de lo ya dicho, asi que esto se acaba aqui.

     "El verdadero placer no consiste en saber, sino en llegar a saber"  
                                                        [Isaac Asimov]            

 [memonix 2k1]

*EOF*
