Kryptos (ocultar) y grafos (escribir) son palabras griegas que nos permiten entender que es Criptografía. Para muchos es un arte y hay que ser realmente un experto en matemáticas para poder entender los algoritmos de cifrado que se usan hoy en día.
Hoy tuve una larga discusión con un alumno que no entendía como un software de criptografía podía ser seguro si es que se tenía el código fuente disponible, estabamos hablando concretamente de gnupg que es un reemplazo libre para PGP y usa varios tipos de cifrado, concretamente Criptografía Híbrida (Criptografía Simétrica + Criptografía Asimétrica) y Hash. Mi punto era que la clave del asunto era la aleatoriedad en la generación de las llaves y la protección con la clave; él alegaba que como el software conocía los mecanismos para descifrar entonces se podía encontrar un método para romper la seguridad de cualquier documento cifrado. Desafortunadamente no soy muy bueno en matématicas, mi explicación sobre numeros primos y probabilidades no resultó con él, además de no querer entender que es practicamente imposible predecir las llaves que se van a generar en un momento dado y ni que decir de descubrir la clave, en fin, probablemente no me hacía entender, asi que me he tomado la molestia de informarme mejor y darle una prueba contundente de que a pesar de que se conocen los algoritmos de cifrado, los probabilidades de romperlo (crackearlo) van a estar en directa proporción a la complejidad de los mismos.
El resultado de esta búsqueda me hizo llegar a una FAQ que expresa en forma precisa muchos conceptos sobre criptografía, asi que si como yo eres un total novato en criptografía y matemáticas te recomiendo visitar:
RSA Laboratories’ Frequently Asked Questions About Today’s Cryptography
Revisando algunos foros he visto que recomiendan mucho un libro de Bruce Schneier llamado Applied Cryptography que si la memoria no me es ingrata lo tiene Breno; asi que se lo pediré prestado 😀
Eso se llama confiar en el security by obscurity. Seria bueno que le hables del principio de Kerchoff: http://en.wikipedia.org/wiki/Kerckhoffs%27_law
El principio de Kerchoff dice que un sistema debe ser seguro incluso si se conocen todos los detalles del sistema excepto por la llave. Este principio se origina en el siglo 19.
Luego viene la maxima de Shannon: “Asume que el enemigo conoce todo el sistema”
Eric Raymond va mas alla y dice que “cualquier diseño en seguridad de software que asume que el enemigo NO TIENE el codigo fuente es de por si no confiable, *nunca confies en codigo cerrado*”.
Le puedes dar el clasico ejemplo de las cerraduras o las cajas fuertes, en las que los diseños son harto conocidos y publicos, pero que necesitan una llave o combinacion para ser abiertas
Yo también siempre me pregunté lo mismo. Todavia soy pekeño saltamonte xdd
La seguridad en RSA se basa en el hecho que es muy dificil factorizar numeros, y tomaria demasiado tiempo factorzar las claves que se manejan. Es un problema de la matematica el determinar si un numero es primo o no, por eso hay sistemas como GIMPS (http://www.mersenne.org/prime.htm) que buscan numeros primos. Dile que lea el pequeño teorema de fermat y el algoritmo de euclides para dar una idea de como funciona.
gracias por el post, me hacia las mismas preguntas 😀 ahora tengo respuestas 😛
la introduccion de Phil Zimmermann a PGP es muy buena y muy entendible. No se si esta en espanol pero es cosa de ver; venia en la version de PGP Inc, supongo que basta bajar PGP y debe estar alli.