4084d7e2c0afcf393f8b22a436c706a5e619ad46… también conocido como criptografía

--Originally published at Computer Security

Uno de los principales elementos de la seguridad computacional es la criptografía, la cual precede a la computación por unos cuantos milenios.
Esencialmente, la criptografía se usa para asegurar comunicaciones para evitar que terceros no autorizados sean capaces de entender la información encriptada.
La criptografía moderna consta de varios elementos: funciones hash seguras, sal, llaves.

¿Qué es una función hash segura?
Una función hash toma elementos de un conjunto a otro. Es decir, tomamos un valor h y obtenemos su valor hash f(h). Para ser considerada segura, debe de ser difícil (en el sentido de costo computacional) encontrar h si tenemos f(h). Esto hace que la información “hasheada” sea muy difícil de descifrar por alguien no autorizado.
Aunque hay muchas funciones que antes se usaban, debilidades se han encontrado en muchas de ellas (ejemplo).
Incluso con una función de hash fuerte, esto todavía no protege contra ataques de diccionarios o tablas arcoíris. Esto nos lleva al siguiente aspecto.


Sal
Sal es un valor aleatorio que se agrega al hash para fortalecer la seguridad de esta misma. Esto ayuda contra los ataques previamente mencionados, asumiendo por supuesto que el valor es lo suficientemente aleatorio.

Con todo, surge la pregunta obvia ¿Cómo recuperamos la información una vez que está encriptada?


Llaves
Las llaves son lo que permite a los usuarios recuperar la información que esta encriptada. Existen varios modelos usados para lograr esto: llaves simétricas y asimétricas.
Llaves simétricas consisten en que aquellos que están autorizados para leer un mensaje encriptado tienen la misma llave para recuperar el mensaje. Esto tiene como principales complicaciones que la llave representa un riesgo en caso de pérdida o robo, ya que esto compromete todo el sistema de encriptación.

Con llaves asimétricas, cada usuario tiene 2 llaves, una llave pública distribuida y una llave privada que
secreta. Con la llave pública se encripta un mensaje y sólo con la llave privada correspondiente se puede recuperar el mensaje.