Saturday, July 30, 2016

Criptografia



Concepto de Criptografía
La Criptología (del griego criptos= oculto y logos= tratado, ciencia) es la ciencia que trata las escrituras ocultas, está comprendida por la Criptografía, el Criptoanálisis y la Esteganografía (Figura 1.1.1).


Figura 1.1.1 Ramas de la Criptología

Las raíces etimológicas de la palabra Criptografía son criptos (oculto), y graphos (escritura). Una definición clásica de Criptografía es la siguiente:
Arte de escribir mensajes en clave secreta o enigmáticamente

Anteriormente la Criptografía era considerada como un arte pero en la actualidad se considera una ciencia gracias a su relación con la estadística, la teoría de la información, la teoría de los números y la teoría de la complejidad computacional.

La Criptografía es la ciencia que se encarga del estudio de técnicas para transformar la información a una forma que no pueda entenderse a simple vista; sin embargo, el objetivo de la Criptografía no es sólo mantener los datos secretos, sino también protegerlos contra modificación y comprobar la fuente de los mismos.

El Criptoanálisis es la ciencia que se ocupa del análisis de un texto cifrado para obtener la información original sin conocimiento de la clave secreta, esto es, de forma ilícita rompiendo así los procedimientos de cifrado establecidos por la Criptografía, por lo que se dice que Criptoanálisis y Criptografía son ciencias complementarias pero contrarias.

La Esteganografía por su parte, estudia la forma de ocultar la existencia de un mensaje. Esta ciencia consiste en esconder en el interior de un mensaje, otro mensaje secreto, el cual sólo podrá ser entendido por el emisor y el receptor y pasará inadvertido para todos los demás.



Funciones de una vía 
Función HASH
Función que recibe como entrada un mensaje y entrega como salida un código o valor hash. Las de mayor importancia son las criptográficas hash que entregan la huella digital o resumen del mensaje que permiten mantener la integridad de los datos buscando que la salida sea, en lo posible, una imagen únicamente de un solo elemento del dominio de mensajes. Otra característica es que la salida o código siempre tendrá una longitud constante para todo valor del dominio de entrada por lo que también se la conoce como función Resumen.

Las funciones


Los pares ordenados (x,y1) y (x,y2) son pares de una función si y solo si y1=y2. Partiendo de esta definición entonces las relaciones y, z, w son funciones, mientras que r no lo es. Las relaciones, elementos del álgebra relacional, que no sean funciones están desechadas en el ámbito hash, ya que de partida entregarían como mínimo dos códigos, que resulta inservible por no ser imagen única del mensaje.
  
Función inyectiva

   Si  (x1,y1) y (x2,y1) pertenecen a la funcíón, ésta es inyectiva si y solo si x1=x2. Entonces únicamente
   las funciones z, w arriba mostradas son inyectivas. En general la función inyectiva garantiza que el
   código o imagen generados corresponda a un único mensaje.  Las funciones hash no son inyectivas,
   por lo que la unicidad del mensaje se garantiza con funciones de una sola vía o "virtualmente
   inyectivas".


   En el ejemplo la obtención del valor x tal que f(x)=100, es muy simple ya que basta con aplicar el
   antilogaritmo.

   Colisiones en el dominio de las funciones

   Si para un par de valores a1 y a2 pertenecientes al dominio de la función existe una imagen y, tal que
   f(a1) = f(a2) =y, entonces existe una colisión. Toda función no inyectiva presenta colisiones y por ende
   las funciones hash al no ser inyectivas van a presentar colisiones en su dominio, problema a resolver
   con otras técnicas.

  Funciones resistentes a colisiones

   Una función f es resistente a colisiones si conocido f(x) para un valor x perteneciente al dominio, es
   computacionalmente inviable conseguir x' tal que f(x) = f(x'). Toda función inyectiva es completamente
   resistente a colisiones.
    

  Funciones fuertemente resistentes a colisiones

   Una función f es resistente a colisiones si conocido f(x) para un valor x perteneciente al dominio,
   resulta computacionalmente inviable conseguir x' tal que f(x) = f(x').

   Función de doble vía

   Son las funciones cuyo cálculo de la inversa computacionalmente no es muy complicado, en un
   entorno dado.

         Ejemplo cotidiano Nº 1    


         Si matemáticamente es fácil determinar la inversa, computacionalmete no hay la menor
         complicación


         Ejemplo cotidiano Nº 2

         Aunque para la función mostrada no siempre es posible obtener la fórmula de la inversa,
         computacionalmente es sencillo obtener X1 una vez dado Y1 con un simple algoritmo.



   Función de una sola vía

   Son las funciones cuyo cálculo de inversa es computacionalmente complicado. Implica esto que si m
   es imagen de un mensaje x, conseguir el valor de x tal que f(x)=m resulta altamente complicado.  

    Función de paridad

    Es una función especial, que asigna el valor 1 si el vector de entrada cuyas coordenadas son 1 y 0
    tiene un número impar de unos (1s).


      Características de la función de paridad
      - No inyectiva
      - No resistente a colisiones
      - Doble vía

         Ejemplo cotidiano Nº 1

         Carlos, va a partir al exterior. Dejó su maleta en el guardametas del aeropuerto y olvidó la clave que
         es un número perteneciente al intervalo {1,255}. Afortunadamente la dejó escrita en un papel en la
         mesa de su cuarto en su ciudad natal. LLama y pide se la manden en un mensaje en binario
         con bit de paridad.

         Su padre, consigue el número 127 anotado en el papel y como algo sabe de números tiene una
         disyuntiva: mandarlo como una cadena de 8 bits más bit de paridad para el 127 o como tres
         cadenas  de 3 bits + bit de paridad para 1, 2 y 7.


          A continuación se muestra la cadena de 8 bits, con el bit de paridad.




         Cuando llegó encontró el maletero vacío. ¿Cómo pudo pasar esto?

         1. Alguien entró a la sala de maleteros e hizo en cada maletero 255 intentos, como máximo, y logró
             abrirlo.
         2. Alguien capturó el mensaje y como no iba encriptado rápidamento lo descifró y en cada
            maletero hizo un intento como máximo hasta conseguir el de Carlos.


   Función dígito validador cédula ecuatoriana

   La cédula ecuatoriana tiene las características siguientes:


   Tomar los dígitos que ocupan las posiciones impares y multiplícarlos por 2

   1 x 2 =   2
   0 x 2 =   0
   2 x 2 =   4
   3 x 2 =   6
   5 x 2 = 10

   Si alguno es mayor o igaul a 10, restarle 9

   1 x 2 =   2
   0 x 2 =   0
   2 x 2 =   4
   3 x 2 =   6
   5 x 2 = 10 - 9 =1

   Sumar los subtotales = 2 + 4 + 6 +1 = 13


  Sumar los dígitos que ocupan las posiciones pares. El dígito validador no se considera, pues es el
  dígito a validar.

  1 + 0 + 9 + 4  = 14

  Finalmente sumar los dos subtotales ==> 13 + 14 = 27 y restarlo de la centena inmediata superior

  30 - 27 = 3, que es el dígito validador.

  Características adicionales de la función dígito validador de la cédula ecuatoriana

      - No inyectiva
      - No resistente a colisiones
      - Doble vía

         Ejemplo cotidiano Nº 1

         He oído que Loja es una de las provincias con mayor índice de graduados universitarios.
         Para de una buena vez determinarlo se pide diseñe una base de datos para almacenar la data
         correspondiente: cédula, títulos obtenidos, universidad, fecha de registro.

         Premisas
         Si tiene títulos entonces están registrados en la SENESCyT
         Si está vivo entonces está registrado en el CNE

         Pasos
         Iniciar con la cédula semilla 110000000?
         Conseguir el validador.
         Acceder a la página del CNE, para saber si está vivo.
         Acceder a la página de la SENESCyT para obtener los títulos.
         Cargar datos en la base de datos, si amerita.
         Repetir mientras...


         Ejemplo cotidiano Nº2

         El Instituto Ecuatoriano de Seguridad Social (IESS) atiende solicitudes de citas con el siguiente
         protocolo: Quienes tienen cédula que terminan en 1 o 6 deben llamar los lunes, si la cédula termina
         en 2 0 7 deben llamar los días martes y así sucesivamente. Mientras que otra institución trabaja de
         igual forma pero con los penúltimos dígitos de la cédula.

         Se pide:
         Diga cuál de los dos sistemas es más justo en la provincia deBolívar.

   Propiedades que debe satisfacer una función hash h(x) para usos criptográficos 

   1- Fácil de computar para todo x perteneciente a dominio de h(x)
   2- De una sola vía
   3- Resistente a colisiones
   4- Fuertemente resistente a colisiones


Firma Digital

Cuando hablamos de firma digital en realidad nos estamos refiriendo a muchos conceptos relacionados, entre los cuales figuran documentos electrónicos, claves criptográficas, certificados digitales, funciones matemáticas, autoridades certificantes, infraestructuras de clave pública y muchos otros nombres que pueden resultarnos complicados o desconocidos.

¿Qué es la firma digital?

La firma digital es una herramienta tecnológica que permite garantizar la autoría e integridad de los documentos digitales, posibilitando que éstos gocen de una característica que únicamente era propia de los documentos en papel.
Una firma digital es un conjunto de datos asociados a un mensaje digital que permite garantizar la identidad del firmante y la integridad del mensaje.
La firma digital no implica asegurar la confidencialidad del mensaje; un documento firmado digitalmente puede ser visualizado por otras personas, al igual que cuando se firma holográficamente.
La firma digital es un instrumento con características técnicas y normativas. Esto significa que existen procedimientos técnicos que permiten la creación y verificación de firmas digitales, y existen documentos normativos que respaldan el valor legal que dichas firmas poseen.

¿Cómo funciona?

La firma digital funciona utilizando complejos procedimientos matemáticos que relacionan el documento firmado con información propia del firmante, y permiten que terceras partes puedan reconocer la identidad del firmante y asegurarse de que los contenidos no han sido modificados.
El firmante genera, mediante una función matemática, una huella digital del mensaje, la cual se cifra con la clave privada del firmante. El resultado es lo que se denomina firma digital, que se enviará adjunta al mensaje original. De esta manera el firmante adjuntará al documento una marca que es única para dicho documento y que sólo él es capaz de producir.
Para realizar la verificación del mensaje, en primer término el receptor generará la huella digital del mensaje recibido, luego descifrará la firma digital del mensaje utilizando la clave pública del firmante y obtendrá de esa forma la huella digital del mensaje original; si ambas huellas digitales coinciden, significa que no hubo alteración y que el firmante es quien dice serlo.

¿Claves privadas y claves públicas?

En la elaboración de una firma digital y en su correspondiente verificación se utilizan complejos procedimientos matemáticos basados en criptografía asimétrica (también llamada criptografía de clave pública).
En un sistema criptográfico asimétrico, cada usuario posee un par de claves propio. Estas dos claves, llamadas clave privada y clave pública, poseen la característica de que si bien están fuertemente relacionadas entre sí, no es posible calcular la primera a partir de los datos de la segunda, ni tampoco a partir de los documentos cifrados con la clave privada.
El sistema opera de tal modo que la información cifrada con una de las claves sólo puede ser descifrada con la otra. De este modo si un usuario cifra determinada información con su clave privada, cualquier persona que conozca su clave pública podrá descifrar la misma.
En consecuencia, si es posible descifrar un mensaje utilizando la clave pública de una persona, entonces puede afirmarse que el mensaje lo generó esa persona utilizando su clave privada (probando su autoría).

¿Qué son los certificados digitales?
 
Los certificados digitales son pequeños documentos digitales que dan fe de la vinculación entre una clave pública y un individuo o entidad. De este modo, permiten verificar que una clave pública específica pertenece, efectivamente, a un individuo determinado. Los certificados ayudan a prevenir que alguien utilice una clave para hacerse pasar por otra persona.
En algunos casos, puede ser necesario crear una cadena de certificados, cada uno certificando el previo, para que las partes involucradas confíen en la identidad en cuestión.

¿Qué contiene un certificado digital?

En su forma más simple, el certificado contiene una clave pública y un nombre. Habitualmente, también contiene una fecha de expiración, el nombre de la Autoridad Certificante que la emitió, un número de serie y alguna otra información. Pero lo más importante es que el certificado propiamente dicho está firmado digitalmente por el emisor del mismo.
Su formato está definido por el estándar internacional ITU-T X.509. De esta forma, puede ser leído o escrito por cualquier aplicación que cumpla con el mencionado estándar.

¿Qué valor legal tiene la firma digital?

Para la legislación argentina los términos “Firma Digital” y “Firma Electrónica” no poseen el mismo significado. La diferencia radica en el valor probatorio atribuido a cada uno de ellos, dado que en el caso de la “Firma Digital” existe una presunción “iuris tantum” en su favor; esto significa que si un documento firmado digitalmente es verificado correctamente, se presume salvo prueba en contrario que proviene del suscriptor del certificado asociado y que no fue modificado. Por el contrario, en el caso de la firma electrónica , de ser desconocida por su titular, corresponde a quien la invoca acreditar su validez.
Por otra parte, para reconocer que un documento ha sido firmado digitalmente se requiere que el certificado digital del firmante haya sido emitido por un certificador licenciado (o sea que cuente con la aprobación del Ente Licenciante ).
Es por esto que, si bien entendemos que en los ambientes técnicos se emplea habitualmente el término Firma Digital para hacer referencia al instrumento tecnológico, independientemente de su relevancia jurídica, solicitamos a todos los proveedores de servicios de certificación, divulgadores de tecnología, consultores, etc. que empleen la denominación correcta según sea el caso a fin de no generar confusión respecto a las características de la firma en cuestión.
La legislación argentina emplea el término “Firma Digital” en equivalencia al término “Firma Electrónica Avanzada” utilizado por la Comunidad Europea o “Firma Electrónica” utilizado en otros países como Brasil o Chile.

¿Qué es una Infraestructura de Firma Digital?



En nuestro país se denomina “Infraestructura de Firma Digital” al conjunto de leyes, normativa legal complementaria, obligaciones legales, hardware, software, bases de datos, redes, estándares tecnológicos y procedimientos de seguridad que permiten que distintas entidades (individuos u organizaciones) se identifiquen entre sí de manera segura al realizar transacciones en redes (por ej. Internet).
Realmente esta definición es conocida mundialmente con las siglas PKI que significan Public Key Infraestructure o Infraestructura de Clave Pública.


 


cf

No comments:

Post a Comment