-
Antes de comenzar con el material técnico , quiero darles un rápido
-
resumen de que es la Criptografía y las diferentes áreas de la misma. De esta forma
-
el centro de la criptografía es por supuesto la comunicación segura que esencialmente
-
consiste de dos partes. La primera es el establecimiento de una clave segura y luego cómo
-
nos comunicamos de forma segura una vez que tenemos una clave compartida. Ya dijimos que
-
el establecimiento de una clave segura importa mucho a Alice y Bob para que se envien mensajes el uno al otro
-
de tal forma que en el extremo de este protocolo, hay una clave compartida
-
que ambos han aceptado, la clave compartida K, y mas alla de eso, es solo eso una clave compartida, de hecho
-
Alice podria saber que ella esta hablando con Bob y Bob podria saber que el esta hablando
-
con Alice. Pero un atacante primerizo que escuche esta conversación no tiene idea de cual
-
es la clave compartida. Y veremos mas adelante en este curso como hacerlo. Ahora una vez que ellos
-
tienen una clave compartida, ellos van a querer intercambiar mensajes de forma segura usando esta clave, y
-
hablaremos de esquemas de encriptacion que nos permitiran hacerlo de tal forma que
-
un atacante no se podria imaginar que mensajes se estan enviando de un lado para otro. Y
-
es más un asaltante incluso no puede manipular indebidamente este tráfico sin ser detectado.
-
En otras palabras, estos esquemas de código proveen tanto confidencialidad e
-
integridad. Pero la criptografía hace mucho más, mucho mas que sólo esas dos
-
cosas. Y quiero darles unos cuantos ejemplos de eso. Así el primer ejemplo que
-
quiero darles es lo que se llama una firma digital. Así una firma digital ,
-
básicamente, es el análogo de una firma en el mundo físico. En el mundo
-
físico, recuerden cuando firman un documento, esencialmente, ustedes escriben su firma en
-
ese documento y su firma es siempre la misma. Ustedes siempre escriben la misma
-
firma en todos los documentos que ustedes quieran firmar. En el mundo digital, esto no puede
-
trabajar probablemente porque si el atacante obtiene un documento firmado por mí, él
-
puede cortar y pegar mi firma sobre otro documento que yo no podría haber
-
querido firmar.Y bien , no es simplemente posible en un mundo digital que mi
-
firma sea la misma para todos los documentos que quiera firmar. Nosotros hablaremos
-
de cómo construir firmas digitales en la segunda parte de este curso. Es
-
realmente una primitiva muy interesante y veremos exactamente cómo hacerlo. Sólamante para
-
darles un indicio, la forma en que la firma digital trabaja es básicamente haciendo la
-
firma digital via una función del contenido que será firmado. Así un atacante que
-
intente copiar mi firma desde un documento a otro no tendrá exito
-
debido a la firma. En el nuevo documento no va a estar la función correcta en base a los
-
datos en el nuevo documento, y como resultado, la firma no podrá verificarse. Y como dije
-
veremos exactamente como construir firmas digitales mas adelante y sobre eso
-
probaremos que esas construcciones son seguras.
Otra aplicación de la criptografía que
-
quiero mencionar, es la comunicación anónima. Así imagina a la usuaria
-
Alice que quiere hablar de algo a traves de una servidor de chat con Bob. Y, si quizás quiere hablar acerca de
-
una condición médica, y por eso quiere hacerlo anónimamente, de modo que el
-
servidor de chat no sabe quien es ella en ese momento. Bien, hay un método estándard, llamado
-
Mixnet, que permite a Alice comunicarse sobre el internet público con Bob. A traves de
-
una secuencia de proxies de tal forma que al otro lado de la comunicación Bob no tiene idea de quien
-
quiere hablarle. La forma de hacer este trabajo es que a medida que Alice envía sus mensajes
-
a Bob a través de una secuencia de proxies, esos mensajes son encriptados. Y ellos
-
son desencriptados apropiadamente de tal manera que Bob no tiene idea de con quíen esta hablando y
-
los mismos proxies no saben que Alice esta hablando con Bob, o realmente
-
quien esta hablando a quien de forma general. Una cosa interesante acerca de este
-
canal de comunicación anónima es, que este es bi-direccional. En otras palabras,
-
aún cuando Bob no tenga idea de con quien esta hablando, él aún así puede responder a Alice y
-
Alice recibirá esos mensajes. Una vez que tenemos comunicación anónima, podemos construir
-
otros mecanismos de privacidad. Y quiero darles un ejemplo de lo que es llamado
-
dinero digital. Recuerden que en el mundo físico si yo tengo un
-
dólar físico, puedo ir a la librería y comprar un libro y el comerciante puede no tener
-
idea de quien soy. la pregunta es si podemos hacer lo mismo en el mundo digital
-
en el mundo digital, basicamente, Alicia podria tener un dolar digital,
-
una moneda de un dolar digital. Y ella podria querer gastar ese dolar en algo en un comercio
-
en linea, quizas alguna librería en linea. Ahora, lo que nos gustaría hacer es que así sea
-
cuando Alice gaste su moneda en la libreria, la libreria no tiene
-
idea de quien es Alice. Nosotros brindamos el mismo anonimato que cuando usamos dinero fisico
-
Ahora el problema es que en el mundo digital, Alice puede tomar la moneda que
-
tuvo, esta moneda de un dolar, y antes de gastarlo, puede hacer copias de esta.
-
y de repente en vez de tener solo una moneda ahora
-
de repente tendra tres monedas de un dolar y todas ellas seran iguales por supuesto, y
-
no hay nada que le impida tomar las replicas de las monedas y
-
gastar con ellas otras mercaderias. La pregunta es como dar
-
dinero digital anónimo? Pero al mismo tiempo, también prevenir el doble gasto de monedas
-
de un dolar en diferentes comercios. En algún sentido existe una paradoja aquí donde
-
el anonimato esta en conflicto con la seguridad porque si tenemos dinero anónimo no hay
-
nada para impedir que Alice gaste el doble de monedas porque la moneda es
-
anónima, no hay manera de saber si se cometio este fraude. Así que la pregunta
-
es como resolver este conflicto. Y resulta que es totalmente factible. Y
-
hablaremos de dinero digital anónimo más adelante. Sólo para darle una pista, voy a
-
decir que la forma en que lo haremos, básicamente es asegurándose de que si Alicia gasta la moneda
-
una vez, entonces nadie sabe quién es, pero si se pasa la moneda más de una vez.
-
de repente, su identidad está totalmente expuesta y entonces podría ser objeto de
-
todo tipo de problemas legales. Y así es como el dinero digital anónimo se
-
trabaja en un alto nivel y vamos a ver cómo ponerlo en práctica más tarde en el curso.
-
otras aplicaciones de criptografía usan protocolos más abstractos, pero.
-
antes de hablar de resultados generales, deseo dar dos ejemplos. Así el
-
primer ejemplo tiene que ver con los sistemas electorales. Aquí esta el problema de las elecciones
-
Supongamos ... tenemos dos partidos, el partido cero y el partido uno. Y los electores votan por estos
-
partidos. Por ejemplo, este elector pudo votar por el partido cero y otro elector por el
-
partido uno. Y asi sucesivamente. En esta elección, el partido cero obtuvo tres votos y el partido dos
-
obtuvo 2 votos. Entonces el ganador de esta elección, por supuesto es el partido cero. Pero
-
pero generalmente, el ganador de la elección es el partido que recibe la mayoria de
-
votos. Ahora, el problema de las elecciones es el siguiente. Los electores les gustaría de alguna manera
-
computar la mayoria de los votos, pero hacerlo de una manera tal que nada
-
es revelado acerca de los votos individuales. Ok? Así que la pregunta es como hacer eso?
-
Y para ello, vamos a introducir un centro de eleccion que nos va a ayudar a
-
calcular la mayoría, pero manteniendo los votos del contrario secretos. Y lo que las partidos
-
van a hacer es que cada uno envíe sus votos cifrados al centro
-
de elección de tal manera que al final de la elección, el centro de las elecciones es capaz de
-
calcular y sacar un ganador de la elección. Sin embargo, aparte del ganador
-
de la elección, nada es revelado de los votos individuales. Los votos
-
individuales del contrario permanecerán completamente privados. Por supuesto, el centro de elecciones también
-
va a verificar que este elector, por ejemplo, se le permita votar y que el votante
-
sólo votara una vez. Pero aparte de esa información de las elecciones en el centro de elecciones en el
-
resto del mundo supieran nada mas acerca del otro voto que el
-
resultado de la eleccion. Así que esto es un ejemplo de un protocolo que implica seis
-
partidos. En este caso, hay cinco votantes en un centro de elecciones. Estos
-
partidos calculan entre ellos mismos. Y al final del cálculo, el resultado de
-
la elección es conocido pero no es otra cosa que revelar las entradas individuales. Ahora
-
un problema similar surge en el contexto de las subastas privadas. Así que en una subasta
-
privada cada postor tiene su propia oferta. Y ahora supongamos que el
-
mecanismo de subasta que está siendo utilizado es llamado subasta Vickrey donde la
-
definición de una subasta Vickrey es que el ganador es el mejor postor. Pero la
-
cantidades que el ganador paga es en realidad la segunda mejor oferta. Así que paga la
-
segunda oferta más alta. ? OKay, por lo que este es un mecanismo de subasta estándar llamada
-
subasta Vickrey. Y ahora lo que nos gustaría hacer es, básicamente permitir a los participantes
-
calcular, averiguar quién es elmás alto postor y cuanto se supone que hay que
-
pagar, pero aparte de eso, toda la otra información sobre las ofertas individuales
-
deben permanecer en secreto. Así, por ejemplo, la cantidad real de que el mejor postor oferta
-
debe permanecer en secreto. Lo único que debe convertirse en público es la segunda más alta
-
oferta y la identidad del mejor postor. Así que de nuevo ahora, la forma en que vamos a hacerlo
-
es vamos a introducir una centro de subasta en una forma similar. En esencia, todo el mundo
-
enviarán sus ofertas encriptadas al centro de subasta . El centro de subasta
-
calculara la identidad del ganador y de hecho el también calculara la segunda
-
mejor oferta pero aparte de estos dos valores, nada más es revelado las
-
ofertas individuales. Ahora bien, esto es en realidad un ejemplo de un problema mucho más general
-
llamado secure multi-party computation. Permítanme explicarle de que trata secure multi-party
-
computation. Así que aquí, básicamente de manera abstracta, los participantes tienen un secreto
-
entradas a sí mismos. Así, en el caso de una elección, las entradas deberian ser los
-
votos. En el caso de una subasta, la entradas serían las ofertas secretas. Y entonces
-
lo que les gustaría hacer es calcular algún tipo de una función. De sus entradas
-
De nuevo, en el caso de una elección, la función es una mayoría. En el caso de
-
subasta, la función pasa a ser el el segundo más alto, mayor número entre los x 1
-
a x 4. Y la pregunta es, ¿cómo puede hacer eso, de tal manera que el valor de la
-
la función es revelada, pero no es otra cosa que revelar acerca de los votos individuales? Así que
-
permítanme enseñarles una especie de una muda, insegura
forma de hacerlo. Lo que hacemos es introducir un
-
partido de confianza. Y luego, autoridad de confianza básicamente recoge entradas
-
individuales. Y un poco se compromete en mantener en
secreto las entradas individuales, por lo que sólo
-
sabría lo que son. Y entonces, se publica el valor de la función, al
-
mundo. Por lo tanto, la idea ahora es que el valor de la función se hizo público, pero
-
nada más se revela las entradas individuales. Pero, por supuesto, tienes
-
la autoridad de confianza que se tiene que confiar, y si por alguna razón no es
-
digno de confianza, entonces usted tiene un problema. Y así que, hay un teorema muy central en la
-
[Inaudible] y en realidad es un hecho poco sorprendente . Que dice que cualquier
-
cálculo que le gustaría hacer, cualquier función F que le gustaría calcular, que pueda
-
calcular con una autoridad de confianza, también puedo hacerlo sin una autoridad de confianza.
-
[Inaudible] de alto nivel a explicar lo que esto significa. Básicamente, lo que vamos a hacer, es
-
vamos a deshacernos de la autoridad. Así que los partidos son en realidad no van a enviar
-
sus entradas a la autoridad. Y, en hecho, no va a ser una
-
autoridad en el sistema. En su lugar, lo que los partidos van a hacer, es que van a
-
hablar entre sí usando algún protocolo. Tal que al final del protocolo
-
de repente el valor de la función se da a conocer a todos. Y sin embargo,
-
nada que no sea el valor de la función se ha revelado. En otras palabras,
-
las entradas individuales se mantiene en secreto. Pero de nuevo no hay autoridad, hay
-
sólo una forma para ellos de hablar el uno al otro de tal manera que la salida final se revela. Así
-
este es un resultado bastante general, es una especie de un factor sorprendente, esto es en absoluto
-
factible. Y, de hecho, que es y hacia el final de la clase que en realidad va a ver cómo
-
hacer que esto suceda. Ahora, hay algunos aplicaciones de la criptografía que no puedo
-
clasificar cualquier otra forma que decir que son puramente mágico. Permítanme dar a
-
ustedes dos ejemplos de ello. Así, el primero es lo que se llama outsourcing privado.
-
computation. Así que les voy a dar un ejemplo de una búsqueda de Google sólo para ilustrar el
-
punto. Así que imagínate Alice tiene una consulta de búsqueda. Resulta que
que quiere emitir. Resulta que
-
existen esquemas de encriptación muy especiales de tal manera que Alice puede enviar un cifrado de
-
su consulta a Google. Y entonces, debido a la propiedad del esquema de encriptación
-
Google realmente puede calcular en los valores encriptados sin saber lo que los
-
textos claramente son. Así que Google realmente puede
ejecuta su algoritmo de búsqueda masiva en la
-
consulta cifrada y recuperar en resultados cifrados. Muy bien. Google enviará los
-
resultados cifrados de nuevo a Alice. Alice descifrará y luego recibirá los
-
resultados. Pero la magia aquí es todo lo que Google vio sólo cifrados de las investigaciones de Alice
-
y nada más. Y así, Google como resultado no tiene idea de lo que Alice acabo de
-
buscar y Alice, sin embargo realmente aprendío, aprendío exactamente lo que ella
-
quería aprender. Bueno por lo que, se trata de un tipo de magia de los esquemas de encriptación. Son
-
bastante reciente, esto es sólo un nuevo desarrollo de aproximadamente dos o tres años
-
atrás, que nos permite calcular en datos encriptados, a pesar de que en realidad no saben
-
lo que hay dentro de la encriptación. Ahora, antes de salir corriendo y pensar acerca de esta implementación
-
debos advertirle que esto en este momento es realmente sólo teoria, en
-
el sentido de la ejecución de una búsqueda en Google el cifrado de datos es probable que tome unos
-
mil millones de años. Pero, sin embargo, sólo el hecho de que esto es factible es realmente
-
sorprendente, y es bastante útil para los cálculos relativamente simples. Así,
-
de hecho, vamos a ver algunas aplicaciones de este mas adelante. La otra aplicación mágica que
-
quiero enseñarles es lo que se llama zero knowledge. Y en particular, se los diré
-
acerca de algo que se llama the zero knowledge proof of knowledge. Así que aquí.
-
Bueno, lo que pasa es que hay un cierto número N, el que Alice lo sabe. Y la forma
-
el número N se construyó como un producto de dos números primos grandes. Así que imagina
-
aquí tenemos dos números primos, P y Q. Cada uno de ellos se puede pensar como 1000 dígitos.
-
Y usted probablemente sabe que están multiplicandose con
2000 números de dos dígitos es bastante fácil. Pero si
-
Les acabo de dar sus productos. Averiguar su factorización en números primos es
-
en realidad muy difícil. Y, de hecho, vamos a utilizar el hecho de que factorizar es
-
difícil para construir sistemas [inaudible] públicos en la segunda mitad del curso.
-
Muy bien, así que Alice pasa a tener este número N, y ella también conoce la factorización de
-
N. Ahora Bob sólo tiene el número N.en realidad no sabe la factorización.
-
Ahora bien, el hecho mágico enthe zero knowledge proof of knowledge, es que
-
Alice puede probar a Bob que ella sabe la factorización de N. Sí, en realidad puedes
-
darle esta prueba a Bob, que Bob puede comprobar y convencerse de que Alice
-
conoce la factorización de N, sin embargo Bob no aprende nada en absoluto. Acerca de los factores de P
-
y Q, y esto es demostrable. Bob absolutamente no aprende nada en absoluto sobre los
-
factores P y Q. Y la declaración en realidad es muy, muy general. Es
-
no sólo de probar la factorización de N. De hecho, casi cualquier rompecabezas que
-
quieran demostrar que sabes la respuesta , se puede demostrar que es su conocimiento. Así que si
-
usted tiene un crucigrama que ha resuelto. Bueno, tal vez los crucigramas no es el
-
mejor ejemplo. Pero si usted tiene un rompecabezas de Sudoku, por ejemplo, que desea
-
demostrar que lo has resuelto, puede probar a Bob en una forma que, Bob quiere aprender
-
nada en absoluto sobre la solución, y sin embargo Bob se convenció de que realmente
-
tiene una solución a este rompecabezas. Muy bien. Esos son los tipos de aplicaciones mágicas.
-
Y así, la última cosa que quiero decir es que la criptografía moderna es una
-
ciencia muy rigurosa. Y de hecho, todos los concepto que vamos a describir va a
-
seguir tres pasos muy rigurosos,de acuerdo,
y vamos a ver a estos tres pasos
-
una y otra vez y otra vez así que quiero explicar lo que son. Así que lo primero
-
que vamos a hacer cuando se introduce una nueva primitiva como lo es una firma digital
-
vamos a especificar con precisión lo que es el
modelo de amenazas. Es decir, qué puede hacer un
-
atacante para atacar a una firma digital y cuál es su objetivo en la forzar las
-
firmas?.Bueno, por lo que vamos a definir exactamente que significa para una firma
-
por ejemplo, para ser infalsificable.Infalsificable. Muy bien y me estoy dando firmas
-
digitales solo como un ejemplo. Por cada primitiva que describimos vamos a
-
definir con precisión lo que el modelo de amenazas es. A continuación, vamos a proponer una construcción
-
y luego vamos a dar una prueba de que cualquier atacante que es capaz de atacar a la
-
construcción bajo este modelo de amenaza. Que atacante también puede utilizarlos para resolver algunos
-
que subyace problemas difíciles. Y como resultado,
si el problema realmente es difícil, que en
-
realidad demuestra que ningún atacante puede romper la construcción bajo el modelo de amenaza.
-
Muy bien. Pero estos tres pasos son en realidad bastante importante. En el caso de
-
firmas, vamos a definir lo que significa para una firma ser falsificable, entonces vamos a
-
dar una construcción y, a luego por ejemplo vamos a decir que cualquiera que pueda romper nuestra
-
construcción puede luego ser utilizada para decir factores enteros , que se cree que es un
-
problema difícil. Bueno, por lo que vamos a seguir estos tres pasos en todo, y
-
entonces usted verá cómo esto se ve aproximadamente. Bien, así que este es el final del
-
segmento. Y a continuación, en el siguiente segmento vamos a hablar un poco sobre la historia
-
de la criptografía.