No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Glosario criptográfico

8/27
Recursos

Hablar de criptografía puede ser bastante complejo, matematicamente, pero es escencial entender sobre criptografía para ser un buen blockchain developer. Verás que no necesitas grandes conocimientos matemáticos. Conocer fundamentalmente el funcionamiento de los algoritmos bastará para que puedas progresar y tener éxito.

Diferencia entre Hash y Firma

Dos de las palabras más utilizadas en el mundo crypto son "hash" y "firma". Frecuentemente, e incorrectamente, utilizadas como sinónimos. Un buen punto de partida para introducirnos en criptografía es comprender la diferencia entre estos dos términos.

La encriptación se divide en dos grandes familias de algoritmos: los simétricos y los asimétricos.

Algoritmos de encriptación simétricos

Los algoritmos de encriptación simétricos utilizan una "llave", por lo general, creada a partir de un mapeo entre letras, números, otros algoritmos, o una semilla para generar llaves aleatorias. Esta llave servirá tanto para la encriptación, como para la descencriptación de un texto dado. Es decir, cualquiera que posea la llave, podrá encriptar y desencriptar cualquier tipo de cosa.

Algoritmos de encriptación asimétricos

Por otro lado, los algoritmos de encriptación asimétrica funcionan basándose en llaves públicas y privadas. El funcionamiento es simple: la llave pública permite encriptar, pero no desencriptar. La llave privada es la única que puede desencriptar información, previamente encriptada con la llave pública.

La llave pública, deriva de la privada a partir de complejos algoritmos. Puede obtenerse la pública a partir de la privada, pero no es posible obtener la llave privada a partir de la pública. De ahí su importancia de guardar meticulosamente la llave privada, y por este motivo la misma es "privada".

De esta forma, los algoritmos de llave pública y privada revolucionaron la criptografía y lograron construir grandes mecanismos de seguridad sobre la base de la criptografía. Como lo es blockchain.

Hashing de información

El proceso de hashing es similar al de la encriptación de datos, pero con importantes diferencias a comprender. Ambos procesos, hasheo y encriptación, derivan en un texto ilegible y alfanumérico que resguarda información por detrás. Con la principal diferencia de que en la encriptación es posible revertir el proceso, con la llave privada. En el hashing, no es posible revertir el resultado.

El hashing es determinista; eso quiere decir que, ante un input, recibiremos siempre el mismo output. Esto nos permite, por ejemplo, verificar la integridad de la información. Si hasheamos un PDF, obtendremos un hash que lo representa. Si un solo byte del PDF se modifica, obtendremos un hash totalmente diferente.

Otra gran característica de los algoritmos de hashing es la reducción del tamaño de la información. Sin importar el tamaño de lo que se quiere hashear, obtendremos un hash de 32 bytes. Esto vuelve al hashing irreversible, dado que, como perdemos información, no es posible recuperar el contenido original.

Firma digital

La firma digital es un proceso criptográfico un poco más complejo que combina conceptos de encriptación y hasheo. Se suele utilizar con fines de autenticación, donde un usuario realiza una firma de un hash con su llave privada.

Analicemos qué es lo que ocurre en una firma digital: sabemos que el hash de un texto tiene una longitud determinada y es irreversible. Dicho hash es firmado, pero esta vez se utiliza la llave privada de un conjunto de llaves. A diferencia de la encriptación asimétrica, donde utilizábamos la llave pública.

(texto original -> hash) + llave privada = firma

A través de la firma resultante, es posible demostrar que una persona firmó una determinada información y que está de acuerdo con la misma. El texto que se hashea antes de la firma con la clave privada, puede ser un simple "hola mundo" o toda una transacción de blockchain.

Esta información que firmamos utilizando el par de llaves es recuperable, pero realmente esconder la información no es lo que nos interesa en este punto. Si no, utilizar esta firma con propósitos de autoridad, pudiendo verificar que determinado usuario firmó un contenido hasheado previamente.

Verificación de firmas digitales

La importancia de las firmas digitales es la verificación de las mismas. Conociendo el mensaje original, este se vuelve a hashear con el mismo algoritmo que se utilizó para ser firmado. Combinando este dato con la propia firma, a través de procesos matemáticos, podemos obtener la llave pública del usuario que firmó el mensaje con su llave privada. Sin necesidad de revelar esta.

(texto original -> hash) + firma = llave pública

De esta manera, logramos verificar que un usuario está de acuerdo con lo que puede ser un mensaje de texto, o autorizó toda una transacción de blockchain para mover fondos entre wallets.

Conclusión

La base del funcionamiento de la criptografía en blockchian se realiza a través de llaves públicas y privadas, hashes y firmas digitales.

Te habrás dado cuenta a lo largo de esta clase que no hemos necesitado comprender complejas fórmulas matemáticas. Solo con analizar conceptualmente lo que ocurre con la información cuando es hasheada o encriptada, es suficiente para ti como futuro desarrollador blockchain.


Contribución creada por: Kevin Fiorentino (Platzi Contributor).

Aportes 11

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

La encripcion es el proceso de tomar un texto plano, pasarlo por un algoritmo y obtener un texto cifrado como resultado. Hay algunas caracteristicas para tomar en tomar en cuenta:

  • El algoritmo utiliza un tipo de llave (que suele ser un mapeo entre letras, clave o numero) que sirve como seed para que el algoritmo pueda hacer mas dificil de descifrar el resultado. Dicho esto la misma llave CIFRA y DESCIFRA. esto es ENCRIPCION SIMETRICA.
  • La ENCRIPCION ASIMETRICA en donde tenemos un par de llaves. Ayuda a encriptar informacion y sirve tambien para firmas digitales. Aqui se parte de la generacion de una llave privada cuyo origen debe ser de una fuente confiable y todo el modelo de seguridad se basa en que nadie conozca esta llave privada. De esta misma se aplica una operacion matematica para generar la llave publica. Una vez con la llave publica se repite el mismo procedimiento para cifrar o descifrar. La gran diferencia en este modelo es que no será posible para todos descifrar el contenido, para recuperar la informacion inicial sera necesario conocer la llave privada.
  • Hashing: No se asemeja en nada al cifrado. El hashing es determinista porque siempre genera el mismo output con la misma entrada y es de tamaño fijo. Sin embargo no podemos regresar la funcion de hashing del resultado a su input inicial. Se suele utilizar como verificacion de integridad comparando hashes. Un hash reduce el campo de resultado y se pierde informacion en el proceso.
  • Firma Digital: es muy similar al concepto de hash. Recibe de input un texto plano, se hashea y se obtiene un hash de tamaño fijo. Se utiliza un algoritmo de firma digital que genera una firma. Esta firma es una pieza criptografica que valida el contenido ingresado inicialmente. El algoritmo de firma digital particularmente estara utilizando la llave privada. Lo que interesa no es esconder la informacion del hash sino presentar autoridad sobre la informacion. Es una forma de asegurarnos q alguien estuvo de acuerdo con un contenido

Una clase muy potente! me gusto como lo explico.

Que es la criptografia?

  • Practica que consiste en proteger informacion mediante el uso de algoritmos codificados.
  • El origen de la criptografia se remonta a los jeroglificos.

La criptografia tiene 3 estados

  1. Reposo: Como un archivo en disco duro
  2. Transito: Comunicandose entre 2 puertos
  3. Uso: Mientras ejecuta operaciones de computo con los datos.

La criptografia tiene 4 objetivos principales:

  1. Confidencialidad: Poner la informacion unicamente a un autorizado.
  2. Integridad: Asegurar que la informacion no se ha manipulado.
  3. Autenticidad: Confirmar la autenticidad del usuario y/o informacion.
  4. No repudio: Evitar que un usuario deniegue compromisos o acciones previas.

¡Vi la luz con esta clase!!

Solo una acotación, por favor no traduzcan literal del inglés, **no existe** la palabra "**encripción**" en español, la traducción de **encrypt o encription** es **encriptación o cifrado**.
  • hash + llave privada = firma (proceso de firma)
  • hash + firma = llave pública (verificación de firma)

Un caso de uso en la vida real de un hash:
En lugar de guardar las contraseñas en texto plano, se aplica una función de hash a cada contraseña y se guarda el resultado. Cuando un usuario ingresa su contraseña, se aplica la misma función de hash y se compara con el valor almacenado para verificar la autenticidad, sin revelar la contraseña real en caso de una violación de seguridad.

Ernesto es muy buen profesor, todos sus cursos o charlas son muy buenos.

Ernesto es el mejor docente que encontrarán en la escuela de blockchain de Platzi. Gran explicación!

Muy buena Explicación. Excelente

Realmente conocia la terminologia de forma muy general, garcias por aclararnos sus diferencias.