Autor Tema: Aprendiendo Criptografia Aplicada [Avanzado]  (Leído 4946 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado rufiopunkrock

  • Moderador
  • Miembro Activo
  • *****
  • Mensajes: 1067
  • Sexo: Masculino
  • DHgNPRGY9tNBhiskvg0Azg==
    • Programacion Y Criptografia
Aprendiendo Criptografia Aplicada [Avanzado]
« : 02/03/2008, 02:27:32 pm »


Aprendiendo Criptografia Aplicada [Nivel Avanzado]




Bueno creo que estamos comenzando otra vez todo, pero sera por una buena causa.

El orden que he predispuesto para este nuevo curso ha cambiado drasticamente pero asi mismo ha cambiado su contenido y dificultad, empezaremos como siempre, desde perspectivas suaves y sencillas, viendo conceptos claros para luego poder comprenderlos, solo espero que la gente que le guste lo siga pero asi mismo me entienda que no puedo avanzar muchisimo en poco tiempo porque es complicado explicar esto y del mismo modo no tengo mucho tiempo, pero hare lo posible por avanzar lo mas rapido posible.

Entonces no queda mas que decir, aqui empezamos este curso y todo este mundo, solo espero que lo comenten asi sea para darme animos de continuar.





CAPITULO I: CRIPTOGRAFIA EN GENERAL

1.1. Introduccion
1.2. Seguridad De La Informacion y Criptografia
1.3. Funciones Matematicas (Inyectiva, Biyectiva)
1.4. Terminologia Basica Y Conceptos
1.5. Criptografia Simetrica
1.6. Firmas Digitales
1.7. Autenticacion E Identificacion
1.8. Criptografia De Clave Publica
1.9. Funciones De Hash





1.1. Introduccion

La criptografia tiene una historia fascinante. Aunque si quisieras profundizar en ella te recomiendo el mejor libro que te puede ilustrar en esto The Codebreakers de Kahn, te mostrara desde los antiguos egipcios hasta alrededor del siglo XX como fue el desarrollo de la criptografia, su uso y como ha afectado a la humanidad. La criptografia la podemos relacionar en terminos generales con la seguridad, pero si vamos mas alla, seria la seguridad nacional o cosas por el estilo, asi mismo como metodo de proteccion de informacion vital del estado y secretos militares.

El esparcimiento de la computacion ha permitido desarrollar grandes habilidades en este campo, tanto de eficacia como de complejidad, asi pues es que comienzan a surgir la gran variedad de algoritmos que hoy en dia usamos y aplicamos a nuestra realidad (asi no lo sepamos).

Por esas mismas razones nacen algoritmos de diferentes tipos como el RSA o ElGamal, DES, entre muchos otros, que a medida que se daba el crecimiento de todos los sistemas en el mundo, estos se volvian cada vez mas robustos y poderosos.

Mi proposito con este primer capitulo es darles a conocer aspectos de la criptografia para poder seguir adelante, para aprender a usar la criptografia y usar diferentes tecnicas, pero como siempre, hay que saber varias cosas antes que todo.


1.2. Seguridad De La Informacion y Criptografia

La informacion desde siempre ha sido una de las fuentes principales o una de las razones por las cuales la criptografia hoy en dia esta avanzando a tal velocidad, todo se debe a que cada dia mas la informacion es mas valiosa y por eso mismo mas solicitada por personas que no deberian verla, asi pues la criptografia surge como necesidad de proteger la informacion.

Debido al avance tecnologico que se lleva a cabo dia a dia es necesario determinar si mucha de la informacion que tenemos es veraz, o proviene de la persona esperada, muchas veces podemos ser victimas de una trampa o engaño siendo un tercero el que modifica un archivo para obtener el algo de ello.

Por esa razon la criptografia nos brinda algo para garantizar que la informacion que recibimos es veraz, es la firma. Cuando queremos saber si algo proviene de la persona esperada podemos recurrir a la firma que nos dira si fue modificado o si realmente pertenece a la persona que creemos. Asi pues se utilizan gran cantidad de mecanismos de comprobacion que mas adelante veremos.

Creo que es el momento de definir que es la criptografia (debido a las ultimas cosas que he aprendido mi definicion ha cambiado):

Citar
Es el estudio de las tecnicas matematicas aplicadas o relacionadas con la seguridad de la informacion, tales como la confidencialidad, la integridad de la informacion, autenticacion de la identidad y autenticacion de la informacion original.

La criptografia no solo significa proveer de seguridad a la informacion, pero si es una de las tecnicas mas importantes.

Pero necesitamos tener claro cuatro ambitos en los cuales se centra la criptografia:

- Confidencialidad: es el servicio usado para que la informacion sea solo vista por aquellos que tengan un permiso. Y todo esto se logra por medio de algoritmos matematicos para proteger con robustos problemas la informacion.

- Integridad De La Informacion: es un servicio que proporciona la criptografia para asegurar que la informacion no va a recibir ninguna desautorizada modificacion.

- Autenticacion: es un servicio para determinar la identificacion del emisor, asi se establecen por medio de parametros de seguridad si coincide la informacion con la del remitente para comprobar por completo si fue veraz o no todo el proceso de transmision.





1.3. Funciones Matematicas (Inyectiva, Biyectiva)

Un concepto matematico clave en la criptografia es el de funcion mas que todo orientada y referenciada a las transformaciones que se le pueden realizar.

Un conjunto consiste en distintos objetos que son llamados elementos del conjunto, como por ejemplo, un conjunto X que tiene elementos tales como a, b, c se denota asi.......X = {a,b,c}.

Una funcion esta definida por dos conjuntos X y Y y una regla f donde a cada elemento de X le corresponde uno de Y. El conjunto X es el llamado dominio de la funcion y Y el codominio. Si x es un elemento de X la imagen de x es un elemento de Y que se asocia gracias a la regla de f, la imagen y de x es denotada como y = f(x).

Aunque la notacion estnadar para una funcion f es: para un conjunto X a un conjunto Y es f: X -----> Y. Entonces todos los elementos en Y quienes tienen al menos una pre-imagen en X son llamados imagenes de f, y denotado como Im(f)

Un ejemplo claro seria: considerando los conjuntos X = {a,b,c}, Y = {1,2,3,4} y la regla f donde desde X a Y esta definida como f(a)= 2, f(b)= 4, f(c)=1. Asi pues podriamos deducir que la preimagen del elemento 2 es a. Y la imagen de f es {1,2,4}.


Gracias a tiny por las imagenes, no manejo muy bien los programas graficos.


Otro ejemplo seria tomando X = {1,2,3,......10.} y dejando a f como cada x pertenece X. Siendo la funcion f(x) = rx, donde rx, es cuando x^2 es divisible por 11. De esta forma:

f(1) = 1                  f(6) = 3
f(2) = 4                  f(7) = 5
f(3) = 9                  f(8 ) = 9
f(4) = 5                  f(9) = 4
f(5) = 3                  f(10) = 1

Entonces la imagen de f es el conjunto Y = {1,3,4,5,9}


Funciones 1 - 1

Una funcion o transformacion es 1 - 1 o inyectiva si cada elemento en el codomonio Y es la imagen de mas de un elemento en el dominio X.

Una funcion es sobreyectiva si cada elemento en el codiminio Y es una imagen de al menos un elemento en el dominio. Es decir, una funcion f: X ------> Y es sobreyectiva si Im(f) = Y.

Otro tipo de funcion es: si f: X ------> Y es 1 - 1 luego f: X ------> Im(f) es biyectiva. Otra forma de decirse es que si f: X ------> Y es 1 - 1, y X y Y son conjuntos finitos con elementos del mismo valor, entonces f es una funcion biyectiva.

Existe otro tipo de funcion donde si f es biyectiva desde X a Y entonces esta se define como una funcion biyectiva g desde Y a X siguiendo: por cada y que pertenece a Y se define g(y) = x donde x pertenece a X y f(x) = y. La funcion g obtenida de f es llamada una funcion inversa de f y es denotada como g = f^-1.


La izquierda es una funcion de un solo sentido, la derecha es una funcion inversa.


Funciones De Un Solo Sentido (One-Way Functions)

Una funcion f desde un cojunto X a uno Y es llamada funcion de un solo sentido si f(x) es facil de computar para todos los x pque pertenecen a X pero que esencialmente todos los elementos de y que pertenece a Im(f) son computacionalmente imposbile de hallar para cualquier x que pertenece a X tal como f(x) = y. En terminos mas claros son aquellos funciones faciles de calcular pero dificiles de invertir.

Un ejemplo seria algo asi: tomando X = {1,2,3,........16} y definiendo f(x) = rx para todo x que pertenece a X donde rx es cuando 3^x es divisible por 17. Se expresa algo asi:

Citar
x     1  2  3    4    5  6    7    8    9   10 11 12 13 14 15 16
f(x) 3  9  10  13  5  15  11  16  14  8   7   4   12  2   6   1


Dando un numero entre 1 y 16 es relativamente facil hallar una imagen debajo de f. Sin embargo si tomamos un numero como 7 sin la tabala que te muestro arriba, es difiicl encontrar x teniendo f(x) = 7. Aunque si tenemos un numero como 3 es claro saber que x = 1 es el valor necesitado, pero para todos los elementos del codominio no es tan sencillo.

Otro ejemplo de funciones de un solo sentido seria: un numero primo es un entero positivo mayor que 1 cuyo unico entero positivo divisor es 1 y el mismo. Asi selecionamos los numeros primos p = 48611, q = 53993, de la forma n = pq = 2624653723, y dejando X = {1,2,3,......,n - 1}. Definiendo una funcion f donde f(x) = rx, siendo rx para cada x que pertenece a X, donde rx es cuando x^3 es divisible por n. Para cierta instancia f(248991) = 1981394214 desde 248991^3 = 5881949859 · n + 1981394214.

Computacionalmente realizar la funcion es muy sencillo, pero realizar la funcion al reves se convierte en un proceso aun mas complicado, debido al problema de la elevacion al cubo (dentro de poco profundizaremos mas en ello).


Funciones Trampa

Una funcion de trampa es de un solo sentido con una propiedad adicional que alguna informacion extra llamada informacion de trampa que vuelve factible encontrar para cualquier y que pertenece a Im(f), un x que pertenece a X como f(x) = y.

Esta funcion con la de un solo sentido son la base de la criptografia de clave publica. La importancia de estos conceptos se van a ver mas claros cuando se usen en tecnicas criptograficas. Dentro de poco entenderan el porque de toda esta informacion que les muestro.


Permutaciones

Permutaciones son funciones que luego van a ser usadas en variadas construcciones criptograficas.

Dejando S siendo finito para un conjunto de elementos. Una permutacion p en S es una funcion biyectiva desde S a el mismo.

Un ejemplo seria: dejando S = {1,2,3,4,5}. Una permutacion p: S ------> S es definidad como:

p(1) = 3
p(2) = 5
p(3) = 4
p(4) = 2
p(5) = 1

Una permutacion puede ser descrita en diferentes formas. Lo podemos mostrar asi:

Citar
p = 1   2   3   4   5
      3   5   4   2   1

donde la fila de arriba en el array es el dominio y la fila que se encuentra debajo es la imagen debajo de p. Aunque se pueden hacer otro tipo de representaciones.

Como las permutaciones son biyectivas entonces tienen inversas. Si una permutacion esta escrita como un array, su inverso se puede hallar facilmente por medio del inercambio the filas en el array y reorganizando los elementos en una nueva fila de cabecera.

El inverso quedaria asi:

Citar
p = 1   2   3   4   5
      5   4   1   3   2

Otro ejemplo de permutacion seria: dejando X como un conjunto de enteros {0,1,2,......,pq - 1} donde p y q son numeros primos largos distintos, y suponiendo que ni p -1 ni q -1 es divisible por 3. Entonces la funcion p(x) = rx, donde rx es cuando x^3 es divisible por pq, se puede mostrar una permutacion. Determinar el inverso es computacionalmente imposible hasta hoy a menos que conozcamos p y q.


1.4. Terminologia Basica Y Conceptos

El estudio de cualquier disciplina requiere de aprenderse ciertos conceptos claros y bases para comprenderla, por eso es necesario explicar antes de comenzar con algo mas alla ciertos conceptos.

Encriptacion De Dominios Y Codominios:

- A denota un conjunto finito llamado el alfabeto de la definicion. Por ejemplo A = {0.1}, el alfabeto binario, es frecuentemente usado desde el alfabeto de definicion. Aunque nos podemos dar cuenta que ningun alfabeto se puede usar bajo los terminos del alfabeto binario. Por ejemplo si tuvieramos 32 lineas binarias de longitud 5, cada letra del alfabeto Español podria ser asignado a una unica linea binaria de longitud 5.

- M denota un conjunto llamado el espacio del mensaje. M consiste en una linea de simbolos del alfabeto por definicion. Un elemento de M es llamada un mensaje de texto plano o simplemente texto plano. Por ejemplo, M puede ser una linea binaria, una lectura en Español, codigo de fuente...etc....

- C denota un conjunto llamado el texto cifrado. C consiste en una linea de simbolos desde un alfabeto de definicion, que puede diferir del alfabeto de definicion por M. Un elemento de C es llamado texto cifrado.


Transformacion De La Encriptacion Y La Decriptacion

- K denota un conjunto llamada espacio de la llave. Un elemento de K es llamado una llave.

- Cada elemento e que pertenece a K unicamente determina una biyeccion desde M a C, denota por E. E(e) es llamada una funcion de encriptado o una transformacion de encriptacion. Notece que E(e) puede ser una biyeccion si el proceso puede ser revertido y solo un unico mensaje se puede recuperar por cada texto cifrado distinto.

- Por cada d que pertenece a K, D(d) denota una biyeccion desde C a M. D(d) es llamado una funcion de descifrado o una transformacion de decriptacion.

- El proceso de aplicacion para la transformacion E(e) al mensaje e que pertenece a M usualmente se refiere como encriptacion de m.

- El proceso de aplicacion para la transformacion D(d) al texto cifrado c es usualmente referenciado como el descifrado de c.

- Un sistema de cifrado consiste en un cojunto {E(e): e pertenece a K} de transformaciones de cifrado y corresponde al conjunto {D(d): d pertenece a K} de un transformacion de descifrado con la propiedad de que para e que pertenece a K existe una unica llave d que pertenece a K como esto D(d) = E(e)^-1, esto es D(d)((E(e)(m)) = m tomando que para todo m que pertenece a M. Un sistema de cifrado algunas veces se referencia como cifrador.

- Las llaves e y d en la anterior definicion son referenciadas como un par de llaves y muchas veces son denotadas como (e,d). Notese que e y d podrian ser lo mismo.

- Para construir un sistema de cifrado requiere la seleccion de un mensaje M, un espacio de cifrado C, una llama K, y un conjunto de transformacion de cifrado {E(e): e pertenece a K} y que corresponda al conjunto {D(d): d pertenece a K} de un transformacion de descifrado.

Un sistema de encriptacion puede ser usado con el proposito de tener confidencialidad. El ejemplo mas conocido para esto es el de Alice y Bob, primero escogen secretamente un par de llaves (e,d). Entonces tenemos que si Alice desea enviar un mensaje m que pertenece a M a Bob, ella de computarizar c = Ee (m) y transmitirselo asi a Bob. Luego recibe c, Bob debe computarizar Dd(c) = m y por ende recuperar el mensaje original m.

Un ejemplo de un sistema de cifrado puede ser este. Teniendo que M = {m1,m2,m3} y C = {c1,c2,c3}. Estan exactamente en el dominio y codominio 3, por consiguiente se forman 6 biyecciones desde M a C. La llave K = {1,2,3,4,5,6} tiene seis elementos en el, cada uno con una transformacion especifica. En la figura que les muestro a continuacion se muestran seis funciones de encriptacion denotadas por Ei, teniendo que i esta entre 1 y 6.

Muestra de un simple sistema de encriptacion

Alice y Bob estan de acuerdo en una transformacion, dicen E1. Al encriptar el mensaje m1, Alice computariza E1(m1) = c3 y envia c3 a Bob. Bob lo descfira c3 por el reverso de las flechas en el diagrama de E1 y observa que c3 señala a m1.

Cuando M es un conjunto pequeño, el diagrama funcional es una simple ayuda visual que describe el sistema. En criptografia, el conjunto M tiene proporciones gigantescas, por consecuencia, la descripcion visual se hace imposible. Lo que se requiere en esos casos, es algo que describa las transformaciones de cifrado y descifrado, como un algoritmo matematico.

Ahora necesitamos tener otras terminologias mas claras aun:

- Una entidad es algo o alguien que envia, reciba, o manipula la informacion, como en el anterior ejemplo Alice y Bob son entidades. Una entidad puede ser una persona, o un terminal de computador.

- Un remitente es una entidad en una comunicacion de dos partes quien es el legitimo transmisor de la informacion. Tal como en nuestro ejemplo Alice es el remitente.

- Un receptor es una entidad en una comunicacion de dos partes pero es la cual recibe la informacion. Tal como lo es Bob en el ejemplo.

- Un adversario es una entidad en una comunicacion de dos partes que no es ni el remitente ni el receptor, y que trata de quebrantar la seguridad de la informacion que se trata de transmitir por medio del sistema. Una adversario puede llegar a hacerse pasar por el legitimo remitente o receptor y asi modificar todo el sistema de cifrado.

Tambien debemos tener en cuenta y comprender lo siguiente:

- Un canal es un espacio por el cual se transmite informacion de una entidad a otra.

- Un canal seguro es uno que no tiene acceso fisico para un adversario, es decir, es inaccesible a personal no autorizado.

- Un canal inseguro es cuando alguien que no pertenece a las dos entidades en cuestion puede manipular la informacion que se transmite por medio del ingreso al canal de transmision.

Una premisa fundamental en la criptografia es el de los conjuntos M,C,K, { Ee : e que pertenece a K }, { Dd: d que pertenece a K } son de conocimiento publico. Cuando dos partes se estan comunicando seguramente usando un sistema de cifrado, la unica cosa que permite la seguirdad son el par de llaves {e,d} que son usadas y que fueron seleccionadas. Pero aun asi un sistema de cifrado es facilmente quebrantable por una mente brillante o un simple error matematico.

Ahora miremos esto:

Un sistema de cifrado se dice que es quebrantable si una tercera parte sin tener conocimiento del par de llaves {e,d} puede sistematicamente recuperar el mensaje del correspondiente texto cifrado durante un tiempo adecuado.

Un sistema de cifrado puede romperes tratando de usar todas las posibilidades de claves hasta llegar a encontrar la que las partes estan usando (asumiendo que las llaves son de conocimiento publico). Esto es llamado una busqueda exhaustiva de las llaves. Aunque sabiendo que el numero de llaves es bastante largo y es computacionalmente imposible, es demasiado complicado romper dicho sistema, pero gracias a ello muchos diseñadores de sistemas de cifrado se encargado de buscar debilidades en sus sistemas para poder generar el mas fiable y seguro de todos.

Aunque para hacer un sistema de cifrado inquebrantable se pueden seguir ciertos parametros:

- El sistema debe ser inquebrantable en teoria y en practica

- La llave debe ser facil de recordad sin necesidad de notas y cambio sencillo.

- El criptograama debe ser de facil transmision en medios seguros e inseguros.

Al tener claros ya tantos conceptos es necesario enfatizar en estos ultimos:

- Un servicio de seguridad para la informacion es un metodo que brinda un especifico metodo de seguridad para darle a la informacion requerida.

- Un adversario pasivo es aquel que unicamente es capaz de leer la informacion de un canal inseguro.

- Un adversario activo es que puede transmitir, alterar o borrar la informacion de un canal inseguro.

Y ahora para terminar veamos estos conceptos:

- El criptoanalisis es el estudio de las tecnicas matematicas para dañar, afectar o modificar tecnicas criptograficas o mas especificamente servicios de seguridad de la informacion.

- Un criptoanalista es aquel que trabaja con el criptoanalisis.

- La criptologia es el estudio de la criptografia y del criptoanalisis.

- Un criptosistema es un conjunto de tecnicas criptograficas usadas para proveer de seguridad a la informacion.

Las tecnicas criptograficas suelen dividirse en dos grandes topicos: el cifrado simetrico y el asimetrico (De llave publica), pero dejemos eso por ahora asi.


1.5. Criptografia Simetrica


Para empezar vamos a mirar o echar un mirada a lo que es los cifrados de flujo y bloque.

Ahora consideremos un sistema de cifrado que esta compuesto por los conjuntos de encriptacion y decriptacion {Ee: e pertenece a K} y {Dd: d que pertenece a K}, donde K es la llave. El sistema de encriptacion se dice que es simetrico si para cada par de llaves (e,d), es computacionalmente sencilo determinar d conociendo solo e, y determinar asi e desde d.

Desde que e = d en la mayoria de practicas sera un sistema de cifrado simetrico.

Un ejemplo para esto seria algo asi. Teniendo A1 = {A,B;C,......X,Y,Z} como el alfabeto español. Dejamos M y C como el conjunto de todas las cadenas que tengan mas de 5 caracteres de A. La llave e es escogida por permutacion en A. Al encriptar, un mensaje se rompe en grupos cada uno de 5 caracteres. y la permutacon e es aplicada a cada letra una a la vez. Al descifrar, la permutacion inversa d = e^-1 es aplicada a cada una de las letras del texto cifrado. Por ejemplo, supongamos la llave e que es escogida por medio de la permutacion funciona por medio del desplazamiento de cada letra tres posiciones a la derecha, algo asi:

Citar
e = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
   D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Entonces para un mensaje:

m = ESTET EXTOC IFRAD ONOES NADAS EGURO

Es cifrado asi:

c = Ee(m) = HVWHW HAWRF LIUDL RQRHV QDGDV HJXUR

Asi pues seria un simple cifrado simetrico de un mensaje agrupado por 5 caracteres o 5 bytes.

Recordemos que el cifrado simetrico se puede distinguir entre:

Cifrado Por Bloques:

Es un sistema de cifrado que coge un texto plano y lo transmite en bloques de 5 o mayor cantidad, y asi pues encriptar cada bloque uno a la vez. Existen dos poderosas corrientes de el cifrado por bloques, que empezaremos a ver a continuacion:


Cifrado De Sustitucion:

El cifrado por sustitucion es un cifrado por bloques que remplazan simbolos por otros simbolos u otros grupos de simbolos.

Existen varios tipos de cifrado por sustitucion, el primero es este:

Cifrado De Sustitucion Simple: Dejando A como un alfabeto de q simbolos y M como el conjunto de todas las cadenas de longitud t sobre A. Dejando K como el conjunto de permutaciones en el conjunto A. Definamos por cada  que pertenece a K un cifrado de la forma Ee como:

Ee(m) = (e(m1)e(m2).....e(mt)) = (c1c2.....ct) = c

donde m = {m1m2.....mt) que pertenece a M. En otras palabras por cada simbolo t-tupla, sustituir por otro simbolo desde A de acuerdo con la permutacion E. Para descifrar c = {c1c2....ct} es necesario hallar computacionalmente la inversa de dicha permutacion y:

Dd(c) = (d(c1)d(c2).....d(ct)) = (m1m2....mt) = m

Ee seria un cifrado de sustitucion simple o cifrado por sustitucion mono-alfabetica.

El numero de distintas sustituciones seria q y esto seria independiente al tamaño del cifrado. La sustitucion simple en pequeños bloques posee muy baja seguridad asi la clave sea muy larga. Porque si es el alfabeto entonces el tamaño de llave es 26 que es como decir 4 x 10^26,  y de este modo puede ser de facil descubrimiento la clave y el metodo. Ademas un cifrado por sustitucion simple es muy facil de detectar por medio de la frecuencia en que aparece en un texto, entonces por eso no es muy recomendable usarlo pero no deja de ser vital saberlo.

Un ejemplo claro de esta sustitucion simple, ya lo tenemos, y aqui se los pongo de nuevo:

Citar
e = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
   D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Entonces para un mensaje:

m = ESTET EXTOC IFRAD ONOES NADAS EGURO

Es cifrado asi:

c = Ee(m) = HVWHW HAWRF LIUDL RQRHV QDGDV HJXUR

Asi pues seria un simple cifrado simetrico de un mensaje agrupado por 5 caracteres o 5 bytes.

Ahora veremos el Cifrado Por Sustituciones Homofonicas: donde cada simbolo a que pertenece a A, asociado con el conjunto de H(a) de cadenas de simbolos t, con la restriccion de que el conjunto H(a), con a que pertenece a A, sean un par disjunto. Un cifrado de sustitucion homofonica remplaza cada simbolo en el texto plano a con una cadena aleatoria de H(a). Para descifrar dicha cadena c de simbolos t, se debe determinar un simbolo a que pertenece a A tal que c pertenece a H(a). Entonces la llave para este cifrado seria el conjunto H(a).

Veamos un ejemplo: consideremos A = {a,b}, H(a) = {00,10}, y H(b) = {01,11}. El texto plano que se encuentra en bloque ab, encripta a uno de los siguientes grupos de 4 bytes: 0001, 0011, 1001, 1011. Observemos que el codominio de la funcion de cifrado (para mensajes de longitud 2) consiste en los siguientes pares de disyunciones conjuntas de cuatro elementos de cadenas de bits:

Citar
aa ---->  {0000, 0010, 1000, 1010}
ab ---->  {0001, 0011, 1001, 1011}
ba ---->  {0100, 0110, 1100, 1110}
bb ---->  {0101, 0111, 1101, 1111}

Cualquier cadena de cuatro bits se identifica unicamente con un elemento del codominio, y por lo tanto un mensaje de texto plano.

Entonces, los simbolos no se producen con frecuencia igual en los mensajes de textos plano. Con un cifrado de sustitucion simple, la frecuencia no es uniforme, y se refleja en el texto cifrado, que ya vimos con anterioridad. Un cifrado homofonico puede usarse para hacer la frecuencia mas concurrente en el texto cifrado y asi mismo mas uniforme. El descifrado no es nada facil de realizar como si lo es en el cifrado de sustitucion simple.

Ahora miremos el cifrado de sustitucion polialfabetica: es un cifrado de bloques que tienen una longitud t basado en un alfabeto A, que posee estas caracteristicas:

- La llave K consiste en todos los conjuntos ordenados de permutacion t (p1,p2......,pt), donde cada permutacion pi, es definidad en el conjunto A.

- El cifrado del mensaje m = (m1m2.......mt) bajo la llave e = (p1,p2.......pt) el cual es dado por Ee(m) = (p1(m1)p2(m2)......pt(mt)).

- La llave del descifrado esta asociada con e = (p1,p2..........pt) es d = (p1^-1, p2^-1.........,pt^-1)

Un ejemplo de este tipo de cifrado es el de VIgenere, donde tomamos a A = {A,B,C.........X,Y,Z} y t = 3. Escogemos e = (p1,p2,p3), donde p1 señala cada letra a la letra tres posiciones a la derecha en el alfabeto, p2 es siete posiciones a la derecha, y p3 diez posiciones a la derecha. Entonces:

Citar
m = EST ECI FRA DON OES SEG URO

entonces:

Citar
c = Ee(m) = HZD HJS IYK GVX VLQ XYY

Los cifrados polialfabeticos tienen una ventaja importante, que no siempre una letra similar en el texto plano va a ser igual en el texto cifrado, debido a la frecuencia y a la longitud de bits que se le ponga al inicio de la funcion de cifrado. Aun asi no son muy dificiles de criptoanalizar, porque tiene una estructura similar a la del cifrado de sustitucion simple. Entonces, lo primero que podemos determinar es el bloque t que se esta manejando en el texto cifrado, entonces las letras del texto cifrado pueden dividirse en grupos de t. (donde el grupo i, teniendo a i entre 1 y t consiste en las letras del cifrado derivadas de las permutaciones de pi), y un analisis de frecuencia en cada grupo, puede acabar con la seguridad del cifrado.


Cifrado De Transposicion:

Otra clase de cifrado simetrico es el de cifrado de simple transposicion, donde simplemente se permuten los simbolos en un bloque.

Entonces consideremos un sistema de cifrado en bloques simetricos con un bloque de longitud t. Dejando K siendo el conjunto de todas las permutaciones en el conjunto {1,2,........t}. Por cada e que pertenece a K, definiendo la funcion de cifrado:

Citar
Ee(m) = (me(1)me(2).......me(t))

Donde m = (m1m2.........mt) pertenecientes a M (el mensaje). El conjunto de todas las transformaciones es llamado un cifrado de simple transposicion. La llave para el descifrado corresponde a e, es la permutacion inversa d = e^-1. Para descifrar entonces c = (c1c2.......ct), computando Dd(c) = (cd(1)cd(2).......cd(t)).

Un cifrado de transposicion simple preserva el numero de simbolos de un tipo dado en un bloque, y pues es muy facil de criptoanalizar.


Composicion De Cifrados:

Para poder hablar sobre el producto de cifrados, debemos entender el concepto de la composicion de funciones.

Estas son un metodo conveniente para construir funciones mas complicadas desde unas mas simples.

Entonces, definamos una composicion de funciones: formalmente, dadas dos funciones f: X → Y y g: Y → Z, donde la imagen de f está contenida en el dominio de g, se define la función composición (g ο f ): X → Z como (g ο f)(x) = g (f(x)), para todos los elementos x de X.

Fuente: wikipedia

Veamos un tipo de funcion parecida a la compuesta que en ingles es llamada (Involutions) la cual es una funcion con una propiedad bastante interesante: Ek(Ek(x)) = x para todas las x en el dominio de Ek, entonces, Ek o Ek es una funcion identica.


Producto De Cifrados:

Los cifrados de simple sustitucion y transposicion individualmente no provee un alto nivel de seguridad. Sin embargo, si combinamos estas transformaciones, es posible conseguir un poderoso cifrado. Un ejemplo de un producto de cifrados es la composicion de t > 2 transformaciones Ek, Ek2,......Ekt, donde cada Ek, 1 <= i <= t, es cualquiera, una sustitucion o transposicion.

Esta introduccion tiene como proposito, mostrar que la composicion de una sustitucion y una transposicion tiene como nombre Ronda.

Veamos este ejemplo de productos de cifrados, teniendo a M = C = K siendo el conjunto de todas las cadenas binarias de longitud 6.

El numero de elementos en M es 2^6 = 64. Teniendo m = (m1m2......m6) y definimos:

Citar
Ek(1)(m)  =  m XOR k, donde k pertenece a K
E(2)(m) = (m4m5m6m1m2m3)

Vemos que XOR tiene las siguientes operaciones definidas: 0 XOR 0 = 0, 0 XOR 1 = 1, 1 XOR 0 = 1, 1 XOR 1 = 0. Ek(1) es un cifrado de sustitucion polialfabetica y E(2) es un cifrado de transposicion (no se toma en cuenta la llave). El producto de Ek(1)E(2) es una ronda.

Una sustitucion es una ronda se dice que añade confusion al sistema de cifrado, mientras que el de transposicion agrega difusion. La confusion es utilizada para crear una relacion entre la llave y el texto cifrado lo mas complicada posible. Mientras que la difusion se refiere a la difusion de bits en el mensaje haciendo que cualquier rebundancia en el texto plano sea difundida dentro del texto cifrado.


Cifrado De Flujo:

Los cifradores de flujo hacen parte importantes de los tipos de cifrado simetrico. Ellos son, en un sentido, cifrados de bloques muy simples teniendo bloques de longitud igual a uno. Lo que los hace muy utiles debido a que el proceso de transformacion o cifrado puede cambiar por cada simbolo en el texto plano que se empieza a cifrar.

En situaciones donde los errores de transmision son altamente probables, estos cifradores de flujo son los que nos proporcionarian mayores ventajas porque ellos no tienen un error de propagacion. Estos tambien pueden usarse cuando la informacion puede ser procesada un simbolo a la vez (por ejemplo, si el equipo no tiene suficiente memoria o es limitada).

Entonces, veamolos mas de cerca, teniendo a K como la llave para el conjunto de transformaciones. Una secuencia de simbolos c1c2c3.........ci....., K, es llamada la "Llave De Flujo".

Ahora veamos esto, teniendo a A, como un alfabeto de simbolos q, y dejando a Ee, como un cifrado de sustitucion simple con un bloque de longitud 1 donde e pertenece a K. Asi pues, dejamos m1m2m3..... siendo una cadena del texto plano y e1e2e3 como la llave de flujo de K.

Un cifrador de flujo puede tomar la cadena del texto plano y producir un cadena de texto cifrado c1c2c3....., donde ci = Eei (mi). Si se denota la inversa de ei, entonces Ddi (ci) = mi descifra la cadena del texto cifrado.

Un cifrado de flujo aplica una simple transformacion de cifrado acorde con la llave de flujo que se use. La llave de flujo puede generarse al azar, o por un algoritmo que genera la llave de flujo desde una mas pequeña llamada semilla, o desde la semilla y previamente los simbolos del texto cifrado. Si se usa un algoritmo este es llamado "Generador De Llaves De Flujo".


Cifrado De Vernam

El cifrado de Vernam es un cifrado de flujo definido por el alfabeto A = {0,1}. Un mensaje binario m1m2......mt es operado por una llave binaria k1k2....kt de la misma longitud al producir un texto cifrado c1c2......ct donde:

Citar
ci = mi XOR ki, 1 <= i <= t

Si la llave es escogida al azar y no se vuelve a usar, el cifrado de Vernam es llamado "Sistema De Una Sola Vez".

Para ver como el cifrado de Vernam trabaja, observemos que precisamente hay dos cifrados de sustitucion en el conjunto A. Uno es simple, porque el mapeado seria enviado de 0 a 0 y de 1 a 1; el otro enviaria de 0 a 1, y de 1 a 0. Cuando la llave de flujo contiene a 0, se aplica el primer envio al correspondiente simbolo del texto plano, de otro modo se aplica el segundo envio.

Si la llave es reutilizada existen varias formas de atacar este sistema. Por ejemplo, si c1c2.....ct y c1'c2'.......ct' son dos textos cifrados producen por las mismas llaves de flujo k1k2....kt entonces:

Citar
ci = mi XOR ki,   ci' = mi' XOR ki

y ci XOR xi' = mi XOR mi'. Podemos ver que existe un rebundancia que nos permitiria hacer criptoanalisis.

Este sistema tecnicamente seria irrompible. Esto sucede si el criptoanalista tiene un texto cifrado c1c2......ct encriptado usando una llave al hacer que solo fue usada una vez, entonces el criptoanalista no puede hacer nada mejor que adivinar el texto plano comenzando por una cadena de simbolos binarios de longitud t.

Con esto podriamos decir que para crear un sistema completamente seguro es necesario usar llaves aleatorias de la misma longitud que el mensaje. Esto reduce la practicidad del sistema en muchas situaciones. Asi pues, mas que util, seria molesto debido a la dificultad de mover un clave por su longitud.


Tamaño Y Espacio De La Llave:

El tamaño de la llave es el numero de pares de llaves que se encuentran disponibles para el cifrado o descifrado en un sistema dado. Una llave es normalmente un camino para especifcar el tipo de cifrado que se va a usar. Por ejemplo, en un cifrado de transposicion de bloques de longitud t tenemos a t como funciones de cifrado que podemos elegir para el sistema. Cada una se describe simplemente por una permutacion, y el resultado es la llamada llave.

Es importante y necesario recordar, que para que un sistema de cifrado sea seguro, se requiere una llave larga que requiera una busqueda exhaustiva y casi imposible.

Podemos darnos cuenta que para el cifrado de simple sustitucion tenemos una llave de tamaño 26 que seria congruente con 4 x 10^26. El cifrado de sustitucion polialfabetica tiene un tamaño de (26)^3 que seria congruente con 7 x 10^79. Una busqueda exhaustiva de cada una de esas llaves es imposible, pero aun asi ambos cifrados son debiles y de muy baja seguridad.





1.6. Firmas Digitales

Las firmas digitales son aquellas que fundamentalmente proveen al usuario de autenticacion, autorizacion y no-acceso a cierta informacion de valor. Estas brinda asi mismo un sistema para determinar la verdadera identidad de un usuario autorizado o no para abrir cierta informacion. El proceso de firmar tiene las siguientes caracteristicas:

- M es el conjunto de mensajes que se quiere firmar.

- S es el conjunto de elementos llamadas firmas, que posiblemente seran cadenas binarias de una longitud determinada

- SA es la transformacion desde el mensaje M a la firma S, y esta es llamada "transformacion de firmado" desde la entidad A. La transformacion SA se mantiene en secreto por A y luego esta es usada para crear firmas para los mensajes de M.

- VA es la transformacion desde el conjunto M x S al conjunto {verdadero,falso}. VA es llamada "transformacion de verificacion" por las firmas de A, dada que esta es publica, es usada para verificar la autenticidad de A.

La transformacion SA y Va proveen un sistema de firmas digitales para A.

Entonces veamos un ejemplo sencillo, si tomamos un conjunto M = {m1,m2,m3} y S = {s1,s2,s3}. En la figura que les muestro a continuacion veran la funcion de firma SA desde el conjunto M, y luego su verificacion respectiva:




Gracias a tiny por ayudarme con la grafica


Entonces veamos el proceso para firmar. La entidad A (el firmador) crea una firma para un mensaje que este dentro de M haciendo lo siguiente:

- Computa s = SA (m)

- Transmite el par (m,s). Donde s es llamada la firma para el mensaje m.

Luego para la verificacion de la firma s en el mensaje creado por A, una entidad B realiza los siguientes pasos:

- Obtiene la funcion de verificacion VA de A

- Computa u = VA (m,s)

- Acepta la firma que fue creada por A si u = verdadero y rechaza la firma si u = falso.

Las transformaciones SA y VA son caracterizadas comunmente por una llave, este es la clase de firma y verificacion por medio de algoritmos de conocimiento publico, entonces cada algoritmo se identifica con una llave. Entonces si el algoritmo SA de A es determinado por una llava kA y A solo es requerida para guardar el secreto de kA. Sucede muy parecido con el algoritmo de verificacion VA de A que es determinada por una llave lA que se hace publica.

Existen varias propiedades basicas o minimas para realizar las funciones de firma y verificacion:

- s es una firma valida de A en el mensaje m, si y solo si VA (m,s) = verdadero

- Es computacionalmente imposible para cualquier entidad que no sea A encontrar cualquier m que pertenezca a M, un s que pertenezca a S tal que VA (m,s) = verdadero

En la grafica anterior nos dimos que cuenta como funciona la propiedad 1, debido a que solo es verdadero si se cumple la igualdad ya nombrada, y es valido recordar que la propiedad 2, nos proporciona como tal una seguridad muy alta debido a su capacidad de interpretacion.





1.7. Autenticacion E Identificacion

La autenticacion es un termino que se usado en todo el termino expreso de la palabra. Como su propio nombre lo dice, es la que brinda a una persona la seguridad de que su contacto es el real o no, o si la informacion transmitida ha sido modificada o no. Como funciones especificas u objetivos incluyen el control de acceso a archivos, autenticacion de la entidad, autenticacion del mensaje, integridad de la informacion, y asi mismo, la autenticacion de la llave.

La autenticacion es uno de los factores mas importantes de la seguridad de la infromacion. Todo esto mejoro drasticamente con el descubrimiento o creacion de las funciones de hash y las firmas digitales, que facilitaron de sobremanera los procesos de seguridad que se buscaban mejorar o reusar.

Veamos un ejemplo muy comun para explicar esto, si tenemos una comunicacion de dos partes entre Alice y Bob donde Alice se encuentra en una ciudad y Bob en otra, las ciudades bases no permiten generar un canal secreto, una o ambas ciudad nos brindan la habilidad para permitir las comunicaciones. Alice y Bob, quieren asegurar la identidad de cada uno, y asi mismo la integridad y origen de la informacion que ellos envian y reciben.

Lo que les acabo de comentar es un pre-ambulo a lo necesario para generar autenticacion. Si Alice y Bob desean asegurarse de la identidad del otro, pueden tomar estos dos caminos.

- Alice y Bob pueden comunicarse a tiempo real.

- Alice y Bob pueden intercambiar mensajes con algo de tiempo de retraso. Es decir, que el mensaje pase antes por ciertos obstaculos antes de llegar a su destino.

En la primera instancia, Alice y Bob quieren verificar la identidad a tiempo real. Esto podria lograrse por Alice que envia a Bob algun tipo de reto, para de este modo verificar que Bob es la unica entidad y que responde correctamente. Bob puede realizar una accion similar para verificar a Alice. Este tipo de autenticacion es llamada "Autenticacion De La Entidad" o Identificacion.

Pero por medio de la segunda posibilidad, no es conveniente poner algun tipo de reto y esperar respuesta, y por otra parte el camino de la comunicacion puede darse por una sola direccion. Todas estas tecnicas son requeridas para corroborar la identidad del originador del mensaje. Esta forma de autenticacion es llamada "Autenticacion De La Informacion De Origen".


Identificacion:

Una identificacion o Autenticacion De Entidad es una tecnica para corroborar que una o las dos partes de una comunicacion son veraces por medio de una activacion de evidencia.

Tipicamente la informacion transmitida requiere de identificacion de las dos partes. Las entidades son activas en la comunicacion, dando una tiempo de garantia especifico.

Por ejemplo A llama a B por telefono. Si A y B se conocen entonces la autenticacion de la entidad se da por medio del reconocimiento de voz. De esta forma se corrobora una identidad.

Otro ejemplo seria si una persona A provee a una maquina de banco un numero de identificacion por medio de una tarjeta de credito que contiene informacion de A. La maquina del banco usa la informacion de la tarjeta y el numero de identificacion para verificar la identidad del usuario. Si la verificacion es satisfactoria, A tiene acceso a todas las opciones del banco.

Nuestro primer ejemplo se llama Autenticacion Mutua, mientras el segundo Autenticacion Unilateral. Mas adelante veremos otros metodos.


Autenticacion De La Informacion De Origen:

La autenticacion de la informacion de origen o el mensaje de autenticacion son tecnicas que proveen a una parte de una comunicacion si el mensaje proviente de la identidad esperada y si el mensaje no ha sido modificado.

Despues de que el mensaje es dado a B con informacion adicional, entonces B puede determinar la identidad de la entidad que origino el mensaje. Esta forma de autenticacion comunmente provee una garantia a tiempo lineal, pero es muy util en una comunicacion no activa entre dos partes.

Por ejemplo, si A envia a B un correo electronico. El mensaje viaja por varias redes de comunicacion hasta ser almacenado por B despues de cierto timpo. A y B usualmente no tienen comunicacion directa. B quiere verificar si el mensaje recibido fue creado y originado desde A.

Entonces la autenticacion de la informacion de origen provee una integridad a la informacion, pero si el mensaje fue modificado durante la transmision, A ya no sera el originador del mensaje.





1.8. Criptografia De Clave Publica

Para evitar adentrarnos tanto en teoria, veamos un ejemplo para mostrar como funciona este cifrado.

Si tenemos {Ee: e que pertenece a K} siendo el conjunto de transformaciones de cifrado, y a la vez {Dd: d pertenece a K} como el conjunto correspondiente de transformaciones de descifrado, donde K es la llave. Consideremos cualquier par de llaves asociadas con las transformaciones {Ee, Dd} y supongamos que cada para tiene la propiedad de que conocen que Ee es computacionalmente imposible de hallar, y dando un texto cifrado al azar c es parte de C, para encontrar el mensaje m que esta en M tal que Ee(m) = c. Esta propiedad implica que teniendo a e como imposible de hallar nos da la forma de determinar la correspondiente llave de descifrado d.

Ee es una forma de funcion de un solo sentido con d como inicio de esta, que nos es informacion necesario para computar la funcion inversa y asi descifrar. Esto difiere con los cifrados simetricos donde e y d son tecnicamente lo mismo.

Sabiendo ya esto, consideremos una comunicacion de dos partes entre Alice y Bob. Bob elige un par de llaves (e,d). Bob envia la llave de cifrado e (llamada la llave publica) a Alice porque cualquier canal pero cuidado la llave de descifrado d (llamada la llave privada) de forma segura y secreta. Alice puede secuencialmente enviar el mensaje m a Bob aplicacion la transformacion de cifrado determinado por la llave publica de Bob obtenemos c = Ee(m). Bob descifra el texto cifrado c por medio de la inversa Dd determinada por d.

Aqui les dejo una imagen sencilla de como funciona el Cifrado De Clave Publica:

Fuente: wikimedia

Pero ahora les explicare la figura que les mostrare a continuacion:



Gracias a tiny por la ilustracion


La idea de la grafica es mostrar a A1, A2 y A3 son entidades distintas. Dense cuenta que si A1 destruye el mensaje m1 despues de encriptar a c1, entonces A1 no podra recuperar m1 de c1.

Tomemos el ejemplo de una caja de seguridad, donde la combinacion solo es conocida por Bob. Si esta es dejada abierta y se hace publica para todos entonces cualquier puede poner su mensaje adentro y cerrarla. Solo puede recuperar el mensaje Bob.

El cifrado de clave publica, se describe asi, asumiendo el conocimiento de la llave publica e que no permite extraer la clave privada d. En otras palabras, se asume la existencia de un funcion de un solo sentido.

Ahora consideremos un sistema de cifrado que consiste en un conjunto de transformaciones {Ee: e que pertenece a K} y {Dd: d que pertenece a K}. El metodo de cifrado para un sistema de cifrado publico si por cada par de cifrado y descifrado (e,d), una llave e (llave publica) se hace disponible, mientras que la otra d (llave privada) se mantiene en secreto. Esto convierte al sistema en un metodo seguro de cifrado, ya que es computacionalmente imposible hallar d desde e.

Podriamos decir que la criptografia de clave publica es un sistema ideal, que no requiere un canal seguro para traspasar la llave de cifrado. Esto implica que las dos entidades deben poder comunicarse en un canal inseguro sin necesidad de intercambiar llaves.

Mejor les dejo una interpretacion interactiva de este funcionamiento:


Fuente: microsoft

Como no es muy dificil de comprender esta grafica, no me detendre en su explicacion.

Pero ahora es necesario observar como trabajan las firmas digitales en este tipo de sistema de cifrado.

Si suponemos que Ee es un cifrado de clave publica con el mensaje M y el texto cifrado C. Y tambien suponiendo que M = C. Si Dd es la funcion para su descifrado correspondiente a Ee, entonces Ee y Dd son permutaciones asi:

Citar
Dd(Ee(m)) = Ee(Dd(m)) = m, para todo m que esta en M

Un sistema de cifrado publico es de tipo reversible (ya veremos que significa esto mas adelante).

Ahora veamos como se construye una firma digital en un sistema:

1. Tenemos un mensaje M para la firma del sistema.
2. Tenemos C = M siendo el espacio de firma S.
3. Tenemos (e,d) como el par de llaves del sistema de cifrado publico.
4. Definimos la funcion de la firma Sa a Dd. Esto significa que la firma para el mensaje m es s = Dd(m).
5. Definimos la funcion de verificacion Va por:

Citar
Va(m,s) =  Verdadero,   si Ee(s) = m,
                  Falso,   de lo contrario

El sistema de firma puede simplificarse si a solo firma mensajes con una estructura especial, y esta estructura es publicamente conocida. Tenemos M' como un subconjunto de M donde los elementos de M' tienen una estructura pre-definida, tal que M' solo contiene una insignificante parte del mensaje. Por ejemplo, supongamos que M consiste en todas las cadenas binarios de longitud 2t para algun entero positivo t. Dejamos M' como el subconjunto de M que consiste en todas las cadenas donde los primeros t bits son replicados en la ultima posicion t (101101 en M' seria t = 3). Si a solo firma mensajes en dicho subconjunto, es muy facil de reconocer por un verificador.

Redefinamos la funcion Va asi:

Citar
Va(s) = Verdadero,      si Ee(s) que esta en M',
             Falso,         de lo contrario

Bajo este contexto a solo necesita transmitir la firma s desde el mensaje m = Ee(s) que puede ser recuperado aplicacion la funcion de verificacion. Este sistema es llamado Sistemas De Firmas Digitales Con Recuperacion Del Mensaje.

Ahora para terminar de ver y entender este sistema les hare una comparacion respecto al cifrado simetrico:

Ventajas Del Cifrado Simetrico:

1. El cifrado simetrico fue dise?ado para manejar un alta tasa de informacion y tama?o.
2. Las llaves para este sistema son relativamente cortas.
3. El cifrado simetrico puede emplearse como un constructor de metodos criptograficos como la generacion de numeros pseudoaleatorios.
4. El cifrado simetrico puede producir fuertes cifrados, por medio de simples transformaciones o productos de transformaciones.

Desventajas Del Cifrado Simetrico:

1. En una comunicacion de dos partes, la llave debe permanecer secreta hasta el final.
2. En una comunicacion de dos partes entre dos entidades A y B, la realizacion de practicas criptograficas causa que por cada sesion se debe modificar la llave.
3. Los mecanismos para la verificacion de firmas digitales requiere de llaves muy largas basadas en funciones complejas.

Ventajas Del Cifrado Publico:

1. Solo una llave privada se mantiene en secreto.
2. Dependiendo del modo de uso, un par de llaves privadas o publicas pueden conservarse durante un gran periodo de tiempo sin necesidad de cambiarse.
3. La verificacion de firmas digitales requiere de llaves muy cortas a diferencia del cifrado simetrico.

Desventajas Del Cifrado Publico:

1. El proceso de cifrado es considerablemente lento.
2. El tama?o de la llave es mucho mas grande que el cifrado simetrico.
3. No posee un nivel alto de seguridad, sino se implementa un fundamento matematico complejo para su cifrado.

Una simple forma de definir esta comparacion seria:

- El cifrado publico facilita firmas eficientes y manejo de llaves veloces.
- El cifrado simetrico es eficiente para el cifrado y el mantenimeinto de la integridad de la informacion.





1.9. Funciones De Hash

Una de las mas importantes bases de la criptografia moderna son las funciones de hash.

Una funcion hash es una función para resumir o identificar probabilísticamente un gran conjunto de información, dando como resultado un conjunto imagen finito generalmente menor por medio de valores de hash.

Para una funcion hash que tiene como entrada n-bit de valores hash como por ejemplo n = 128 o 160 y tiene unas propiedadesdeseables, y la probabilidad de que aleatoriamente se escogan cadenas que se encuentren mapeadas en un valor hash particular de n-bit es 2^-n.

La idea basica es que el valor hash sirve como una representacion compacta de una cadena de entrada. En el uso criptografico, una funcion hash h es tipicamente elegida por medio de un metodo computacional indescifrable que encuentra dos diferentes entradas que poseen un valor en comun (h(x)=h(y)) y esto da un valor hash especifico y, el cual es computacionalmente imposible de contrar como una entrada x tal que h(x) = y.

El uso mas comun en la criptografia de las funciones de hash son las firmas digitales en la busqueda de mantener la integridad de la informacion. Con las firmas digitales, a un mensaje largo se le aplica hashing y solo una valor de hash es firmado. Cuando en una comunicacion de dos partes el mensaje es recibido tiene que verificar la firma junto con el valor de hash indicado. Esto se usa para ganar tiempo y espacio comparado con la firma del mensaje directo, que suele involucrar paquetes de informacion o de cadenas de texto para transmitir un mensaje.

Las funciones hash tambien son usadas para mantener la integridad de la informacion. El valor de hash corresponde a una entrada particular que es computada en el mismo punto en el tiempo. La integridad de un valor de hash es protegida de la misma manera.

Otro uso de las funciones de hash es en los protocolos, pero es lo veremos mas adelante.





« Última Modificación: 22/07/2009, 06:45:33 am por D.N. »
You are not allowed to view links. Register or Login

Desconectado SeMi

  • Uzer
  • ***
  • Mensajes: 169
Re: Criptografia Desde 0
« Respuesta #1 : 02/03/2008, 03:01:25 pm »
Muy interesante, y muy bien expresado, me he enterado de todo menos de lo de la modular, aunque esq me lo he leido un poco por encima, luego me leo más a fondo, y seguro que lo entiendo.

Desconectado rufiopunkrock

  • Moderador
  • Miembro Activo
  • *****
  • Mensajes: 1067
  • Sexo: Masculino
  • DHgNPRGY9tNBhiskvg0Azg==
    • Programacion Y Criptografia
Re: Criptografia Desde 0
« Respuesta #2 : 02/03/2008, 06:01:39 pm »
es dificil entenderlo al primer paso, cogelo despacio y veras que lo entiendes con mas facilidad

saludos
You are not allowed to view links. Register or Login

Desconectado Skywalker

  • Administrador
  • Residente
  • *****
  • Mensajes: 6373
  • Sexo: Masculino
  • Skywalker hack
    • Infierno Hacker
Re: Criptografia Desde 0
« Respuesta #3 : 02/03/2008, 06:08:34 pm »
No es muy dificil...es cuestion de entender y volver y volver a leer jeje  ;)
You are not allowed to view links. Register or Login
"Lo único que nunca podrán quitarnos serán nuestras mentes"

Desconectado rufiopunkrock

  • Moderador
  • Miembro Activo
  • *****
  • Mensajes: 1067
  • Sexo: Masculino
  • DHgNPRGY9tNBhiskvg0Azg==
    • Programacion Y Criptografia
Re: Criptografia Desde 0
« Respuesta #4 : 02/03/2008, 06:50:07 pm »
pero para personas que no sean muy buenas en las matematicas si que les va a costar o no Sky?
You are not allowed to view links. Register or Login

Desconectado Skywalker

  • Administrador
  • Residente
  • *****
  • Mensajes: 6373
  • Sexo: Masculino
  • Skywalker hack
    • Infierno Hacker
Re: Criptografia Desde 0
« Respuesta #5 : 04/03/2008, 06:04:35 pm »
You are not allowed to view links. Register or Login
pero para personas que no sean muy buenas en las matematicas si que les va a costar o no Sky?
La verdad que si, y si no les gustan que no se metan en estos temas tampoco  ;)
You are not allowed to view links. Register or Login
"Lo único que nunca podrán quitarnos serán nuestras mentes"

Desconectado rufiopunkrock

  • Moderador
  • Miembro Activo
  • *****
  • Mensajes: 1067
  • Sexo: Masculino
  • DHgNPRGY9tNBhiskvg0Azg==
    • Programacion Y Criptografia
Re: Criptografia Desde 0
« Respuesta #6 : 04/03/2008, 06:05:27 pm »
exactamente a aquel que no le gusten las matematicas, ni se meta a temas como criptografia porque las va a ver dificiles jejeje.....

saludos
You are not allowed to view links. Register or Login

Desconectado Protos

  • Hell user
  • ****
  • Mensajes: 350
Re: Criptografia Desde 0
« Respuesta #7 : 22/03/2008, 01:17:35 pm »
Bueno, anduve algun tiempo sin pasar, y he releido esto y está muy bien. Haber si tienes un tiempito y lo amplias rufio ;).

P.D.: Me he pasado por los retos pero esque no tengo ni idea de por donde empezar xD

salu2!

Desconectado rufiopunkrock

  • Moderador
  • Miembro Activo
  • *****
  • Mensajes: 1067
  • Sexo: Masculino
  • DHgNPRGY9tNBhiskvg0Azg==
    • Programacion Y Criptografia
Re: Criptografia Desde 0
« Respuesta #8 : 22/03/2008, 01:30:55 pm »
Si pues ahorita ando algo liado con trabajos y por eso me ha sido dificl proseguir con todos los proyectos que he propuesto, apenas termine la semana que viene los examenes voy a seguir con esto...

Men es cuestion de ponerle logica, jeje no es dificil....

saludos
You are not allowed to view links. Register or Login

Desconectado rufiopunkrock

  • Moderador
  • Miembro Activo
  • *****
  • Mensajes: 1067
  • Sexo: Masculino
  • DHgNPRGY9tNBhiskvg0Azg==
    • Programacion Y Criptografia
Re: Criptografia Desde 0
« Respuesta #9 : 24/07/2008, 05:16:00 pm »
Mi hermano me dice, que les pregunte si deseen que este curso siga para que lo vaya escribiendo o nadie lo esta siguiendo...
You are not allowed to view links. Register or Login

Desconectado Mkdir

  • Moderadores
  • Usuario guru
  • *****
  • Mensajes: 1733
  • Sexo: Masculino
  • ...
    • Linux en vivo
Re: Criptografia Desde 0
« Respuesta #10 : 24/07/2008, 05:19:08 pm »
Todo curso es bienvenido
You are not allowed to view links. Register or Login

Desconectado Skywalker

  • Administrador
  • Residente
  • *****
  • Mensajes: 6373
  • Sexo: Masculino
  • Skywalker hack
    • Infierno Hacker
Re: Criptografia Desde 0
« Respuesta #11 : 26/07/2008, 01:34:12 pm »
You are not allowed to view links. Register or Login
Mi hermano me dice, que les pregunte si deseen que este curso siga para que lo vaya escribiendo o nadie lo esta siguiendo...
Dile que si, que Sky espera la otra parte jaja....que vuelva al foro  :D Saludos para el  ;)
You are not allowed to view links. Register or Login
"Lo único que nunca podrán quitarnos serán nuestras mentes"

Desconectado rufiopunkrock

  • Moderador
  • Miembro Activo
  • *****
  • Mensajes: 1067
  • Sexo: Masculino
  • DHgNPRGY9tNBhiskvg0Azg==
    • Programacion Y Criptografia
Re: Criptografia Desde 0
« Respuesta #12 : 27/07/2008, 01:27:46 pm »
con gusto le dire........
You are not allowed to view links. Register or Login

Desconectado D.N.

  • Moderador
  • Miembro Activo
  • *****
  • Mensajes: 1387
  • Sexo: Masculino
  • :-/N3wb13\-:
Re: Criptografia Desde 0
« Respuesta #13 : 21/08/2008, 07:48:40 am »
Yo por mi tambien, aunque todo lo que viene ya me lo se, dile que si quiere puedo colaborar con el.  ;) ;)
You are not allowed to view links. Register or Login

Por si te lo preguntabas... ¡NO! No hay que pagar  ;-D

Desconectado Skywalker

  • Administrador
  • Residente
  • *****
  • Mensajes: 6373
  • Sexo: Masculino
  • Skywalker hack
    • Infierno Hacker
Re: Criptografia Desde 0
« Respuesta #14 : 05/09/2008, 04:19:53 pm »
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Mi hermano me dice, que les pregunte si deseen que este curso siga para que lo vaya escribiendo o nadie lo esta siguiendo...
Dile que si, que Sky espera la otra parte jaja....que vuelva al foro  :D Saludos para el  ;)
rufio....ya estas aqui asique vamos con las otras partes  :D
Saludos
You are not allowed to view links. Register or Login
"Lo único que nunca podrán quitarnos serán nuestras mentes"