Bueno entonces aquí entramos a los detalles de cómo funciona la inscripción tanto de algoritmos simétricos
como algoritmos asimétricos.
Empecemos por lo básico.
Algoritmos simétricos.
La ventaja es que los algoritmos simétricos y asimétricos la diferencia es que los simétricos.
Se utiliza la misma llave tanto para encriptar como para desencriptar y los asimétricos es que se utiliza
una llave para encriptar y otra llave para desencriptar.
Esa es la gran diferencia.
Ahora bien las ventajas de los algoritmos simétricos es el performance es el rendimiento por ser una
simple llave o no una simple de una única llave la que se utiliza el rendimiento o el performance tanto
para encriptar como para desencriptar es muy bueno.
Ahora bien las desventajas de los algoritmos simétricos es la cantidad de llaves a utilizar y el medio
por el que vamos a transportar estas llaves.
Qué significa esto.
El medio significa que si yo voy a utilizar exactamente la misma llave del lado del cliente como del
lado del servidor en algún momento tuve que intercambiarlas.
Y si esa llave la intercambia yo y me la robaron en el camino significa que el personaje o la persona
que me lo robó vocoder tanto encriptar como es encriptar la información entonces es básicamente como
que estuviéramos intercambiando información en texto plano.
Y la otra es la cantidad de llaves.
Si bien es fácil distinguir que entre un cliente y un servidor se utilizan dos llaves es decir una del
lado del cliente y una del lado del servidor.
Cuando supongamos pongamos el ejemplo de una empresa de cinco o de cinco personas una pesa una startup
de cinco personas.
Entonces ahí la fórmula es n por n menos 1 dividido 2 es decir 5 por 4 divididos entonces una empresa
de cinco personas tendría que utilizar 10 llaves es decir 5 por 4 20 y está dividido 2 10.
Y si vamos sumándole números o empleados esto se vuelve exponencial.
Hagamos el ejemplo con 10 una empresa de 10 empleados pues 10 por 9 90 dividido 12 45 entonces si bien
con 5 empleados utilizamos 10 llaves con 10 empleados utilizamos 45 llaves.
Entonces esto se empieza a poner un poco complicado cuando vamos jugándolos y sumandole como 100 con
1000.
Pueden hacer ustedes la fórmula poner los datos y verán que la cantidad ya se vuelve en algún punto
incontrolable verdad.
Los ejemplos de algoritmos que son simétricos tenemos pues el más.
No quiero decir más viejito pero sí el más viejito que realmente se utilizó que es dés.
Luego vino tríplex y bueno tenemos a S.
Por ejemplo los tamaños de llaves.
Y bueno ya hay muchos más a efectos del examen.
Lo que más me interesa que se aprendan no es tanto el algoritmo en sí como tal que si lo tienen que
repasar y si lo tienen que leer pero más que toda la funcionalidad.
Los tamaños de llaves que se tienen para estos algoritmos simétricos son relativamente pequeños cuando
se comparan con los algoritmos asimétricos es decir tenemos por ejemplo tamaños de llaves de 64 128
44 12:56 algunos algoritmos incluso reservan una cantidad de ese tamaño llave para bits de paridad o para
otras tareas.
Por ejemplo a ese perdón por ejemplo su tamaño de llave es 64 pero utiliza reserva en 8 bits para paridad
y sólo el tamaño efectivo efectivo es 56 verdad.
Un ejemplo de cómo funciona esto tenemos el cliente de un lado.
Supongamos que tiene una llave una llave X ya ve X y quiere enviar el mensaje Hola como tal.
Entonces encripta ese mensaje con la llave y le da un resultado aquí no sé x GZ o algo parecido.
Luego envía ese mensaje y el lado del servidor que ya tuvo tiene que tener la misma llave y ese es el
problema que acabamos de discutir yo le envió la llave de forma segura ese mismo servidor con exactamente
la misma llave agarra ese X GZ lo pasa por la llave y le tienen que dar el mensaje Hola cómo estás si
etc. Y así es básicamente como funciona el algoritmo simétrico.
Ahora nos pasamos del otro lado al algoritmo asimétrico que ventajas tiene el algoritmo asimétrico.
La ventaja es literal que cubre las desventajas del simétrico.
Qué significa esto.
Que tenemos una cantidad de llaves mejor menor.
Como les expliqué al inicio los algoritmos asimétricos utilizan una llave para desencriptar y una llave
para encriptar.
Es decir Volvamos al ejemplo del cliente y del servidor.
El cliente tiene su par de llaves que se le conoce como llave privada y llave pública y el servidor
tiene su par de llaves que se le conoce como llave privada y pública.
Las llaves públicas se pueden transmitir se pueden intercambiar con total libertad total libertad la
puedes poner un FTP inseguro lo puedes poner en HTTP no nos importa lo puedes poner donde sea.
Por eso es que la llave pública la clave es a compartir o asegurar la llave privada porque esa es la
que no se puede compartir verdad.
Entonces cuando yo me quiero comunicar otra vez veamos el ejemplo de mil personas supongamos con 10
no se mira tanto la diferencia pero con 1000 personas una empresa de 1000 personas si yo quiero comunicarme
a través de llaves asimétricas la única cantidad que tendría y la fórmula es n por dos es decir 1000
por 12 en este caso solo tendría únicamente 2000 llaves y cuando hacemos la fórmula de los simétricos
que es n menos 1 partido 2 vemos la gran diferencia entre la cantidad de llaves que se manejan en los
asimétricos como el simétrico de verdad y la otra ventaja es que Podemos como les dije yo compartir
la llave pública por cualquier medio.
No nos preocupa que nos la roban en el camino no nos preocupa absolutamente nada de eso porque lo que
estamos protegiendo es la llave privada.
Entonces como se podrán imaginar la persona encripta por ejemplo si yo me comunico con un bueno les
voy a dar un ejemplo en unos momentos qué algoritmos tenemos acá tenemos RCA A. El Gamal dirige a Omán
y se recuerdan.
Bueno y la otra es la mayor desventaja de los algoritmos asimétricos es el performance.
Entonces si se dan cuenta las ventajas de uno son las desventajas del otro.
El proforma de los algoritmos asimétricos no es tan bueno.
Sin embargo ese paradigma se está quebrando un poco por el algoritmo de curvas elípticas.
El tamaño de los algoritmos de curvas elípticas se asemeja mucho al de los algoritmos simétricos.
Entonces ahí se está votando un poco ese paradigma.
Pero esas son las desventajas de los algoritmos asimétricos.
Entonces los ejemplos.
Por ejemplo supongamos que me quiero comunicar con el servidor otra vez el mismo servidor sólo que en
este caso yo tengo mi par de llaves es decir llave publica llave privada y el servidor tiene su par
de llave pública privada.
Lo primero que tengo que hacer si yo le quiero enviar un mensaje Hola al servidor es que agarro o tomo
la llave pública el servidor ya sea que se la solicite ya sea que el servidor la tenga publicada en
algún lugar en un FTP en un sitio compartido etcétera etcétera.
Yo lo que tengo que hacer es hacerme de esa llave pública del servidor agarro la llave pública del servidor
verdad y en cripto la palabra hola o el mensaje que le quieren ver entonces si me da un resultado equis
ya será otra vez.
Entonces yo lo que hago es enviarles enviarle ese resultado encriptado al servidor es decir x z y el
servidor con su llave privada lo desencriptar es ínclita x z y lea el mensaje Hola.
Ahora se dan cuenta la importancia de la llave privada si el servidor llega a perder esa llave privada
pues básicamente me haría lo mismo enviar un mensaje en texto plano porque el atacante podría desencriptar
esto.
Entonces si se dan cuenta yo encriptado con una llave y se dice encriptado con otra llave.
Ahora bien aquí la clave es la llave tienen que ser del mismo par.
No puede ser mi llave yo encriptar con mi llave pública y el servidor desencriptar con su llave privada
perdería toda la razón de toda la razón de la inscripción o de ser de los algoritmos asimétricos tienen
que ser del mismo par.
Si yo en cripto con la llave pública del servidor el servidor va a desencriptar con su llave privada
y si el servidor en este ejemplo me quiere responder pues tiene que agarrar mi llave pública la llave
pública del cliente encriptar la información enviársela y yo con mi llave privada es decir el cliente
con su llave privada la desencriptar verdad entonces esa es la lógica detrás de los algoritmos asimétricos.
Luego tenemos los halles verdad que los coaches no utilizan llave es muy muy me gusta recalcarlo siempre
porque se tiene la percepción de que los fallos también utilizan llaves y no los gases son un algoritmo
matemático.
Es decir nosotros agarramos un mensaje lo pasamos por un algoritmo matemático y nos da un resultado.
Los jaggies lo que buscan a diferencia de los algoritmos de inscripción que acabamos de ver los jaggies
buscan con integridad los algoritmos de Encryption buscan confidencialidad y los jaggies buscan integridad
es decir pongamos por ejemplo los algoritmos que tenemos son ya 1 2 3 5 MD 12 de 5m de4 todos son algoritmos
matemáticos para hacer un asuelan ahora pongamos el ejemplo yo como cliente y servidor otra vez como
cliente le quiero enviar un mensaje al servidor pero realmente a mi la confidencialidad no me importa
en este ejemplo lo que me importa es que el servidor al servidor le llegue el mismo mensaje que le esté
enviando el cliente.
Entonces Supongamos que quiero enviar el mensaje o la otra vez.
Entonces le envié primero paso el hola por un algoritmo matemático Pongamos este ejemplo ya 12:56 por
ejemplo y me da un resultado no zzz algo por el estilo entonces que tengo que enviarle yo al servidor.
En este caso le tengo que enviar ambos el texto plano es decir hola y el jazz.
El resultado es así entonces el servidor a lo que le va a llegar al servidor es la palabra hola y el
zzz verdad.
Entonces el servidor lo que tienen que hacer es pasar ese texto plano que le llegó Hola pasarlo por
el mismo algoritmo de jazz en este caso 56 y ver que en realidad le de ZZZ.
Si en el dado caso al servidor le da por ejemplo ZZ i griega o ye el servidor se puede dar cuenta que
el mensaje fue alterado en el camino entonces se perdió la integridad entonces el servidor ya no puede
confiar en ese mensaje verdad.
Entonces este es especial cuando estamos haciendo transacciones bancarias etc. Entonces lo que buscan
los algoritmos son integridad y no utilizan llaves dos conceptos claves de los algoritmos.
Ahora el gran problema con los jaggies es la famosa colisión.
Qué significa la colisión en el mundo del jazz.
Que dos diferentes mensajes o diferentes textos planos por ejemplo Hola y adiós verdad me den exactamente
el mismo me zzz porque entonces le puede llegar mensajes distintos al destinatario y entonces le va
a decir bueno si es el mensaje que me envió porque el jazz da exactamente lo mismo.
Esto es especialmente problemático cuando estamos hablando de passwords porque recuerdas que cuando
las buenas prácticas dictan que cuando uno se lo vea en una página web por ejemplo lo que se envía a
través del cable o de la transmisión no es el password como tal sino el jazz.
Entonces qué pasaría si la palabra hola da el mismo jazz que un password muy muy grande.
Entonces yo podría simplemente guiarme y poner de password la palabra hola y ustedes siguiendo las buenas
prácticas que utilizaron un jazz una frase o un password muy complicado pues al final lo que va a viajar
es el jazz y ahí me va a dejar autenticar a mí es un gran problema.
Entonces las colisiones otra vez.
En resumen dos diferentes textos planos dan el mismo resultado.
Jazz verdad.
Y luego nos pasamos a firmas digitales que otra vez otro paradigma las firmas digitales no proveen confidencialidad.
Las firmas digitales proveen al igual que los jaggies integridad sin embargo agregan el no repudio verdad.
Qué significa esto.
Veámoslo en el ejemplo.
Por cierto.
Veamos un ejemplo primero.
Luego les explico además tenemos otra vez cliente servidor y en este caso las firmas digitales se apalancan
de las llaves asimétricas no podemos utilizar llaves simétricas para hacer firmas digitales no se puede
porque tenemos cliente y servidor en este caso entonces tenemos el cliente con la llave privada con
su llave privada y su llave pública y el servidor con su llave privada y su llave pública verdad entonces
en este caso se recuerdan que en el ejemplo anterior nosotros encriptados con la llave pública del servidor
para que el servidor pudiera desencriptar con seguridad privada ahí yo estaba buscando confidencialidad
en este caso estoy buscando no repudio entonces lo que voy a hacer es encriptar con mi llave privada
pero entonces significa que todo mundo con acceso a mi llave pública que literalmente es todo mundo
podría desencriptar el mensaje.
Así es.
Esa es la idea de firma digital la firma digital lo que dice bueno si yo pude desencriptar el mensaje
con la llave pública de fulanito de tal de algo en este caso de Alejandro por ejemplo.
Entonces yo estoy seguro que realmente Alejandro fue el que encriptar el mensaje con la llave privada
porque la tienen que mantener segura recuérdense la llave privada no la tengo que compartir por nada
del mundo con nadie.
Entonces si alguien puedes encriptar mi mensaje con mi llave pública significa que yo guardando la llave
privada y que no la compartí con nadie duda que haber utilizado esa llave para encriptar la información
te lo contrario no se podría desencriptar entonces esa es la razón de ser de las llaves privadas.
Cómo funciona esto.
Entonces supongamos que el mismo mensaje o la verdad lo primero que tengo que hacer para crear una firma
digital es sacar el jazz de esa palabra.
Entonces pasamos la palabra ola por un algoritmo de jazz en este caso volvemos a utilizar dos ya 12:56
y me da zzz verdad por ejemplo.
Y ahora lo que tengo que hacer es agarrar esa ese resultado Jáchal el zzz y quitarlo con mi llave privada
la llave privada del cliente verdad y me da un resultado.
X X X por ejemplo entonces ahora lo que yo hago es enviar el X X X Y el mensaje Hola en texto plano
recuérdense firmas digitales no busca confidencialidad verdad entonces el servidor que ya tiene X X
X Y la palabra hola lo primero que hace es tomar mi llave pública y desencriptar LXX X verdad con mi
llave pública.
De que esta llave está disponible en cualquier lugar toda vez lo desencriptar le va a dar el resultado
que en este caso es ZZZ.
Lo segundo que va a hacer el servidor es agarrar la palabra o Hola.
Que yo se lo envié por medio del mismo mensaje Verdad.
Agarra la palabra hola lo pasa por exactamente el mismo algoritmo de allí en este caso ya 12:56 y le
tienen que dar zzz si le das zzz entonces el servidor puede estar seguro que el mensaje vino de mi parte
y que el mensaje no cambió durante la transmisión y en pocas palabras.
Esas son firmas digitales verdad no repudio e integridad.
Entonces un repaso rápido ya ves simétricas ventajas el performance desventaja desventajas la cantidad
de llaves y el cómo las voy a transmitir por un medio seguro llaves asimétricas.
Ventajas.
Pues básicamente no me importa porque en medio de las transmita porque son públicamente conocidas y
la cantidad a veces menor.
Y las desventajas es el por formas estos ambos simétricos y asimétricos lo que buscan es confidencialidad.
Luego tengo los jaggies que son simplemente operaciones matemáticas que yo hablo fue el texto plano
y lo único que buscan es mi integridad y luego tengo firmas digitales que lo que buscan es confianza
integridad y no repudio.
Entonces como que siguió buscando confidencialidad en las llaves simétricas y en las llaves asimétricas
para encriptar utilizo la llave pública del destinatario para firmas digitales yo lo que utiliza es
mi llave privada para poder garantizar el no repudio.
Entonces ustedes me dirán cuál de todos estos es mejor utilizar depende depende cuál es su meta depende
que anden buscando andan buscando conciencia le andan buscando integridad buscando disponibilidad anda
buscando no repudio andan buscando control de acceso qué es lo que andan buscando y si pueden decir
es una respuesta válida.
Yo ando buscando todo y entonces para esto se creó la infraestructura de llave pública public Infrastructure
y lo que hace eso es apalancarse de todos los temas que hemos visto ahorita.
Hagamos el ejemplo tenemos el cliente y el servidor.
Entonces el cliente y el servidor ya sabemos que tienen su llave privada y su llave pública cada uno
a su par de llaves cada uno.
Entonces lo primero que hace el cliente supongamos que el cliente le quiere enviar la palabra hola al
servidor pero otra vez quiere que vaya con repudio quiere que vaya con integridad tiene que ver a confidencialidad
quiere que vaya todo.
Entonces lo primero que va a hacer el cliente es crear una llave simétrica de su lado.
Supongamos que le crean a ese 12:56 una llave simétrica.
Ahora el problema de las llaves asimétricas otra vez es que no se pueden enviar solo así por un canal
inseguro.
Por ejemplo el internet.
Entonces lo que se hace es encriptar esa llave con una llave asimétrica.
Y aquí es donde viene un nuevo concepto.
Encripta Honky o Quick Group quinqui o llave para encriptar una llave.
En este caso podríamos utilizar un algoritmo por ejemplo el Gamal perdón si el Gamal o dirige Alman
para poder utilizar esto qué significa esto.
Este a ese 12:56 yo le cripto con la llave pública del servidor y lo envío.
Una vez el servidor tenga este resultado en su lado lo que hace es desencriptar con su llave privada
y entonces ahí ya pude yo intercambiar una llave simétrica de una forma segura.
Entonces aquí ya tenemos ya podemos utilizar la ventaja de las asimétricas cuál es la ventaja de las
asimétricas pues sólo utiliza una cantidad pequeña de llaves y puedo mandar las llaves por un canal
inseguro y en este caso teniendo una llave simétrica de ambos lados es decir del lado del cliente y
del lado del servidor lo que pueda apalancar las ventajas de las llaves asimétricas.
En este caso por formas.
Bueno hasta ahí ya tenemos digamos que la mitad del camino ya tenemos Confidencialidad garantizada.
Qué es lo que nos toca ahora.
Lo que nos toca ahora es garantizar la integridad y también el no repudio entonces a la palabra ola.
Lo primero que procedo a hacer es sacar el jazz verdad ya con un 56 y me da un resultado cualquiera
que sea el resultado.
Ese resultado lo que hago ahora es encriptar con mi llave privada.
Recuérdese que estamos buscando no repudio también entonces lo encripta con mi llave privada pues me
da un resultado otro resultado.
Pongámosle cualquier valor ese resultado entonces ya me está garantizando en el mensaje.
No repudio y e integridad verdad porque ya le pasé un jazz y lo encripta con mi llave privada.
Ahora a ese resultado más el mensaje de texto plano es decir hola y el resultado que me ha dado la inscripción
con mi llave privada.
A esas esas dos pedazos de información lo que hago es encriptar sólo con la llave simétrica que yo intercambié
en este caso a ese 12:56 verdad y lo envío en este caso ya me estoy garantizando confidencialidad.
Un buen performance para encriptar y desencriptar las llaves recuérdese que lo que va encriptado es
el texto plano y la firma digital entonces del otro lado cuando el servidor lo recibe lo primero que
hace es desencriptar todo esto verdad.
Entonces desencriptar pues ya tiene el mensaje en texto plano y la firma digital.
Entonces ahora toca desencriptar la firma digital con qué llave creen.
Pues con la llave pública del cliente en este caso porque el cliente cripto con su llave privada lo
desencriptar y ahí garantizo no repudio verdad.
Ahora el resultado de esa esa inscripción lo que tienen que hacer ahora el servidor es agarrar el texto
plano pasarlo por un algoritmo de jazz.
En este caso a ese 12:56 nos tendrían que dar exactamente el mismo resultado si nos da el mismo resultado
entonces significa que el mensaje no cambió en el camino.
Entonces ahí ya tenemos confidencialidad integridad no repudio performance etcétera etcétera tenemos
todas las ventajas del todos los temas que hemos visto combinados en uno solo.
Y adivinen que esa es la forma más básica en la que funciona el algoritmo TLS verdad o SSL en su forma
más antigua.
Esa es la forma el cliente lado el server al lado.
Todos esos mensajes sirven para intercambiar información para poder hacer este mismo proceso.
Ahora bien como les dije al inicio todo está muy bonito hasta que alguien pierde la llave primaria.
Si yo puedo tener todo esto en mi oficina o en mi empresa y todo está muy bonito y todo está bien pero
qué pasa si yo pierdo la llave primaria pues todo este proceso no sirve de absolutamente nada.
Entonces esa es la problemática que tenemos en la inscripción.
De hecho una ley que se llama la ley de Kirchhoff a no ser confundida con Kirchhoff verdad.
La ley de Kirchhoff lo que dice es que todo acerca del cripto sistema debería de ser conocido y público
excepto la llave privada es decir yo tendría que saber cómo funciona el algoritmo por ejemplo R.C. años
y que funciona con la factorización de números primos muy grandes.
Pero yo no sé cuál es la llave privada de las personas entonces la ley de Kirchhoff dice eso.
Todo debería todo acerca del cripto sistema debería de ser público a excepción de la llave privada entonces
todo parece que se basa en salvaguardar esa llave privada entonces muchas veces las empresas son conscientes
de que no tienen la infraestructura para guardar esas llaves privadas.
Eso es lo que hacen es contratar un tercero o el método se le conoce como screw o es crowds Encryption
y lo que hace es decir bueno te voy a dar mi llave para que me la guardes y muchas veces la buena práctica
es dársela a varios proveedores.
1 Te doy un pedazo de la llave proveedor 2 te doy un pedazo de la llave y proveedor 3 te doy un pedazo
ya.
Ahora bien se puede imaginar que ensamblar las llaves cada vez que se quiera desencriptar algo pues
se vuelve un poco tedioso.
Entonces hay que ver qué llaves se manejan bajo esta perspectiva y que ya ves no todo esto no tiene
una respuesta correcta es depende la necesidad del negocio depende del performance depende de muchas
cosas pero el concepto X es ese.
Y bueno eso es todo por hoy espero les ha gustado muy pronto.