En fin, puedo dar tres intentos más para el mismo módulo, pero ya empezaron las clases de la segunda semana y estoy como si me viniera persiguiendo una locomotora a toda velocidad. El curso era mucho más complicado de lo que suponía, el profesor habla en inglés como ametralladora y no es fácil seguirlo y las pruebas, lamentablemente, tienen poco que ver con el contenido del curso, son las típicas preguntas de "ingenio" para las que yo soy negado, lo que menos tengo es ingenio.
En fin, aprovecharé de comentarles en resumen y sin matemáticas lo que vimos la semana pasada. Todo partió muy fácil revisando aplicaciones de la criptografía, como la comunicación web segura (HTTPS, Secure Socket Layer), la encriptación de archivos en un disco y cosas así.
Después vimos las funciones primitivas básicas para encriptación simétrica, que el algoritmo debe ser público y todo eso. También vimos que hay claves que se usan una sola vez y se descartan, mientras que otras veces se hacen varias encriptaciones usando la misma clave. Y eso de que la criptografía no soluciona todos los problemas de seguridad, sino que es parte de la seguridad.
Luego vimos algunas aplicaciones como la firma digital, la comunicación anónima, el dinero digital anónimo, conteo de votos anónimo en elecciones, determinar el ganador en subastas, consultas anónimas, etc. La criptografía es la ciencia del ocultamiento. Todo eso fue la introducción y no tenía nada muy nuevo ni especial.
Luego empezamos con la criptografía como una ciencia rigurosa y vimos los tres pasos para hacer un sistema encriptado:
1.-Especificar precisamente (matemáticamente) el modelo de amenaza
2.-Proponer una construcción (matemática)
3-Probar (matemáticamente) que para romper la construcción con el modelo de amenaza se necesita resolver un problema muy complicado
Lo primero en esto es el modelo de cifradores simétricos donde Bob y Alice (típicos) comparten la misma clave, uno para encriptar y otro para desncriptar, vimos las funciones primitivas que caracterizan al modelo simétrico.
Después hubo una clase interesante sobre historia de la criptografía explicando como funcionaban los distintos sistemas, todos basados en la idea de sustitución, cambiar una letra por otra según cierto algoritmo o clave. Desde las sustituciones más sencillas como el reordenamiento de las letras, hasta las sustituciones más complicadas como la máquina "Enigma" de la segunda Guerra Mundial, todos esos cifrados son facilícimos de romper usando computadores y estadística.
Cuando se rompió el código de la máquina Enigma se estaban empezando a usar computadores, eso terminó la era de la criptografía clásica y dio paso a la moderna con el genial paper de Claude Shannon en 1948 sobre el secreto perfecto, que dio origen a la teoría de la información y un montón de otras cosas. El secreto perfecto según Shannon, es cuando no existe forma matemática de obtener información de un texto a través de su versión encriptada.
Sahnnon demostró matemáticamente que existe a lo menos una forma de obtener el secreto perfecto y es un algoritmo muy simple que se llama "one-time-pad", pero luego de eso publicó su teorema "bad news": la única forma matemáticamente posible de lograr el secreto perfecto es usando claves del mismo tamaño o mayores que la información que vamos a intercambiar. Esto hace al one-time-pad bastante inútil en la práctica.
O sea, existe el secreto perfecto, pero sujeto a restricciones: que la clave sea igual de grande que la información que vamos a encripar y que jamás se encripten dos mensajes distintos con la misma clave. El one-time-pad es sencillísimo porque consiste solo en hacer una operación lógica (xor) entre la información y la clave, bit a bit, pero si tenemos dos textos diferentes encriptados con la misma clave es cosa de niños obtener la clave, haciendo (xor) entre ambos textos.
Con la llegada de los computadores nos olvidamos de las letras y de las señales: todo se pasa a bit (0 o 1) y toda la criptografía se hace con bits, por eso se debe usar lo que se llama "estadística discreta" es decir que opera con conjuntos finitos de dimensión conocida, típicamente del tipo (0,1) elevado a n. Por ejemplo un universo U=(0,1)^2 tendría 4 elementos (00,01,10,00) que son todas las combinaciones que se pueden hacer con 2 bits.
La estadística discreta estudia las distribuciones de probabilidades en combinaciones de variables que pueden tener 2 estados. Por ejemplo un conjunto (a, b, c,...etc.) donde a, b, c, etc. pueden tener valores como (0010, 1010, 0100...) en este caso son variables de 4 bits. Lo que se estudia entonces es con que probabilidad se distribuyen los valores, cuando y donde se repiten. La suma de todas las probabilidades dentro del conjunto universo debe dar uno.
Hay infinitas distribuciones posibles, pero dos son las más interesantes. La primera es la distribución puntual donde la probabilidad uno se encuentra en una sola posición y todas las demás tienen probabilidad cero. Pero la otra es la más importante y se llama distribución uniforme, donde todos los elementos tienen exactamente la misma probabilidad de aparecer.
Por ejemplo el conjunto (00,01,10,11) las probabilidades de aparecer de cada elemento son (0.25, 0.25, 0.25, 0.25) respectivamente ¡es uniforme!. Para un universo de cinco elementos conjunto (00,00,00,01,00) tendría una distribución puntual (0,0,0,1,0) etc. Esto es sencillo cuando podemos contar pero se complica para conjuntos enormes o que ni sabemos cuantos elementos tienen. Sin embargo para esos también hay forma de estudiar sus distribuciones.
En fin, ya sabemos que el one-time-pad es bonito y sencillo, pero no tiene aplicación práctica porque necesita claves enormes ¿que hacer entonces? La solución son los generadores de claves seudo-aleatorios (PRG), que consisten en entrar una pequeña "semilla" aleatoria (nuestra clave secreta) y con un algoritmo expandirla hasta el gran tamaño que necesitamos.
Y aquí empiezan los grandes problemas ¿como generar una clave grande y realmente aleatoria? La calidad del algoritmo PRG es fundamental para la seguridad, desde ya podemos despedirnos del secreto perfecto y tenemos que buscar otras definiciones como seguridad semántica.
Uno de los problemas es ¿que significa que una secuencia sea aleatoria? Que sea impredictible, que teniendo cualquier valor sea imposible predecir el valor siguiente. Eso es imposible de saber con seguridad pero hay herramientas matemáticas (heuristicas) que pueden hacer buenas conjeturas. Para probar el azar existen las pruebas estadísticas, hay cientos de ellas con distintos criterios.
Por ejemplo, uno puede cojeturar que en un grupo grande, si es al azar, debe haber más o menos la misma cantidad de unos y ceros, porque la probabilidad en una distribución uniforme es la misma para todos, pero ¿basta con eso?. Claro que no, hay millones de distribuciones con igual número de 1 y 0 que son fácilmente predecibles: imaginemos una por ejemplo donde la primer mitad sean puros unos y la segunda puros ceros. U otra donde los unos y ceros se alternen en grupos regulares, o cualquier otra donde una secuencia tenga alguna relación con la anterior.
El azar perfecto, que parece tan sencillo e intuitivo es bastante difícil de conseguir y mucho más de formalizar y probar que en el milmillonésimo bit no va a aparecer una secuencia. En fin, esa es una parte importante donde se concentran los ataques a estos cifradores y hay una serie de enredos realcionados como la ventaja, pruebas estadísticas, probabilidades y cosas por el estilo.
Luego el curso revisa varios sistemas de cifrado que ya están rotos pero se siguen usando, mostrando como funcionan y cual es la debilidad. Muestra por qué es tán fácil romper las claves WEP de la Wifi, como se rompe la encriptación de DVDs que también se usa en los celulares GSM y en el Bluetooth, también revisa cifradores modernos y hasta ahora seguros como Salsa20 y cierra volviendo al tema de la seguridad teórica y la ventaja, con experimentos imaginarios más enredados que un paquete de virutillas.
Todo esto es para cifradores de flujo (stream ciphers) que consisten en encriptar un chorizo de bits de largo variable. En esta semana empezamos con los cifradores de bloque, a ver si con estos tengo mejor suerte. Mejor me pongo a estudiar de nuevo.
Tom:revisa tu correo ! ,
ResponderBorrarTe envíe Mail hace 2 hrs.
MZ
Entretenido tu post. No entendí ni papas, pero estuvo entretenido ^_^
ResponderBorrarMax pero si te contesté dos veces! ¿no te llegó?
ResponderBorrarCésar, no te preocupes porque yo ta,poco estoy entendiendo nada, somos dos jaja.
Ah como me complico con las matemáticas, ¡se me olvidó "leer" funciones! Pero no abandono ni a palos.
Ah, Shannon y su gloriosa Entropía de Shannon !! (que no tiene mucho que ver con la otra, o quizás sí, en fin, armó su buen matete)
ResponderBorrarComo ya le dije otras veces, mi admiración por su espíritu de aprender siempre
Tiene buena pinta el proyecto edX. Saludos
ResponderBorrar-----BEGIN PGP PUBLIC KEY BLOCK-----
ResponderBorrarVersion: 2.6.2
mQCNAzEpXjUAAAEEAKG4/V9oUSiDc9wIge6Bmg6erDGCLzmFyioAho8kDIJSrcmi
F9qTdPq+fj726pgW1iSb0Y7syZn9Y2lgQm5HkPODfNi8eWyTFSxbr8ygosLRClTP
xqHVhtInGrfZNLoSpv1LdWOme0yOpOQJnghdOMzKXpgf5g84vaUg6PHLopv5AAUR
tCpSZWQgSGF0IFNvZnR3YXJlLCBJbmMuIDxyZWRoYXRAcmVkaGF0LmNvbT6JAFUD
BRAxc0xcKO2uixUx6ZEBAQOfAfsGwmueeH3WcjngsAoZyremvyV3Q8C1YmY1EZC9
SWkQxdRKe7n2PY/WiA82Mvc+op1XGTkmqByvxM9Ax/dXh+peiQCVAwUQMXL7xiIS
axFDcvLNAQH5PAP/TdAOyVcuDkXfOPjN/TIjqKRPRt7k6Fm/ameRvzSqB0fMVHEE
5iZKi55Ep1AkBJ3wX257hvduZ/9juKSJjQNuW/FxcHazPU+7yLZmf27xIq7E0ihW
8zz9JNFWSA9+8vlCMBYwdP1a+DzVdwjbJcnOu3/Z/aCY2lYi9U45PzmtU8iJAJUD
BRAxU9GUGXO+IyM0cSUBAbWfA/9+lVfqcpFYkJIV4HuV5niVv7LW4ywxW/SftqCM
lXDXdJdoDbrvLtVYIGWeGwJ6bES6CoQiQjiW7/WaC3BY9ZITQE4hWOPQADzOnZPQ
fdkIIxuIUAUnU/YarasqvxCs5v/TygfWUTPLPSP+MqGqJcDF2UHXCiNAHrItse9M
h7etkYkAdQMFEDEp61/Nq6IpInoskQEB538C+wSIaCNNDOGxlxS5E2tClXRwMYf0
ymuKXs/srvIUjOO7xuIH4K7qcSSdI4eUwuXy6w5tWWR3xZ/XiygcLtKMi2IZIq0j
wmFq7MEk+Xp8MN7Icawkqj1/1p0p4EwKKkIU64kAlQMFEDEp6pZEcVNogr/H7QEB
jp4D/iblfiCzVTA5QhGeWOj1rRxWzohMvnngn29IJgdnN3zuQXB1/lbVV3zYciRH
NyvpynfcTcgORHNpAIxXDaZ7sd48/v7hHLarcR5kxuY0T75XOTGOKTOlFvb4XmcY
HZR2wSWSBteKezB5uK47A6uhwtvPokV0Owk9xPmBV+LPXkW4
=pnqV
-----END PGP PUBLIC KEY BLOCK-----
Es broma XD Suerte con el examen!
ResponderBorrarEva, con el curso que estoy tomando me convencí 100% de la factibilidad de educación a distancia. Incluso la motivación, que era lo más difícil que veía, no es problema cuando los cursos están bien hechos. Desde ahora soy un evangelista de esos cursos.
ResponderBorrarGacias por la clave pública, voy a colocar la mía en alguna parte del blog
Ulschmidt ¡hay cursos de todo! es impresionante, cuando termine con esto voy a tomar otros más livianos y entretenidos.
ResponderBorrarEsto es util no solo para aprender cosas nuevas, sino que también sirve para recordar y reforzar los conceptos y aplicaciones vistos tiempo atrás. A propósito, haz tomado alguna evaluación on-line que mida el grado de conocimientos respecto de los mucho temas que posteas? (oohh que dijo el otro...) :D
ResponderBorrarivanr
De las tonteras que posteo acá no conozco nada "solo se que nada se" ;D
ResponderBorrarBueno, de tu respuesta puedo darte los resultados del Test on-line de Sensibilidad a la Alegría que acabas de tomar: Passed.
ResponderBorrarivanr