Cifrado SHA1 y SHA2: Definición y diferencias

Publicado el 1 octubre, 2022 por Rodrigo Ricardo

Seguridad y Confirmación

Puede que no lo sepas, pero la seguridad es sinónimo de información en estos días. Usamos la información para todo y la transferimos a todas partes. Pero, ¿cómo protegerlo de miradas indiscretas? ¿Cómo te aseguras de que realmente vino de la fuente? Algunos dicen que es simplemente restringir el acceso y comparar lo que tenemos con el original. En la superficie, esto podría ser viable. Pero, ¿qué pasa si la ruta por la que viaja la información no se puede asegurar? ¿O qué pasa si la información no es legible por humanos en primer lugar, o qué pasa si hay una cantidad excesiva de ella? Tiene que haber una manera de protegerlo y confirmarlo de una manera rápida y fácil. Esto es, encriptación y SHA.

¿Qué es el cifrado?

El cifrado es un proceso que oscurece la información de modo que una persona o personas no autorizadas no puedan utilizarla fácilmente. Utiliza una pieza de información externa, conocida como clave, y un algoritmo basado en matemáticas, para crear la oscuridad. A veces, estos cálculos pueden ser considerables y, cuando se combinan con la clave, aumentan la naturaleza aleatoria del resultado y su capacidad para resistir ataques. Es reversible, lo que significa que se puede restaurar la información original. El cifrado es una parte fundamental de varias industrias, entre ellas; finanzas, comercio electrónico y comunicaciones. Está tan arraigado en la infraestructura que, en la mayoría de los casos, ni siquiera sabrá que está allí.

¿Qué son SHA1 y SHA2?

SHA1 y SHA2 son dos iteraciones (segunda y tercera) de SHA, o Secure Hash Algorithm. Contrariamente a la creencia popular, SHA no es un método o algoritmo de encriptación. Más bien, como sugiere el nombre, es una función hash. Estas funciones no transforman la información de ninguna manera. En su lugar, se utilizan para confirmar que la información, generalmente encriptada pero no necesariamente, es lo que se anunció. En un nivel alto, un SHA se usaría de la siguiente manera:

  • Se calcula un valor SHA para la información cifrada o no cifrada.
  • Tanto la información como su SHA asociado se almacenan o transmiten.
  • Se calcula un nuevo SHA para la información antes del uso o en el destino.
  • El SHA original se compara con el nuevo SHA calculado. Si coinciden, todo está bien. Si no, hubo un error en alguna parte antes del uso, o en el proceso de transmisión/recepción.

¿Qué es una función hash?

Una función hash es un conjunto de pasos que crean una correspondencia entre un conjunto de información de origen y un conjunto de información de destino. Esto a veces se denomina mapeo. El conjunto de información de destino es de tamaño conocido, generalmente más pequeño que el conjunto de información de origen. La función genera un valor del conjunto de origen que se asigna a un único elemento del conjunto de destino. Esta asociación es de muchos a uno, lo que significa que para cualquier conjunto de información fuente, hay un hash único. Sin embargo, el valor hash en sí mismo no es único. Puede haber más de un conjunto de información que se basa en él. Esto se llama colisión.

Hay un par de otras propiedades que vale la pena mencionar. Primero, un pequeño cambio en el conjunto de información inicial producirá un hash diferente. Por esta razón, el diseño de la función hash es muy importante. En segundo lugar, se parece a una suma de comprobación, un valor único calculado a partir de la información. A algunos les resulta más fácil pensar en un hachís de esta manera. Y tercero, el hashing no es reversible. No puede recuperar la información original del hash.

Un ejemplo

Considere un grupo de 1000 personas seleccionadas de todas las personas del planeta. Este es nuestro conjunto de información de origen. Además, digamos que nuestra función hash creará nuestro conjunto de información objetivo en función del cumpleaños (mes, día), lo que nos brinda 366 elementos posibles. Por último, supongamos que estamos interesados ​​en el elemento único, el 21 de enero, y que nuestra función hash cuenta el número de personas nacidas ese día. Por el bien del argumento, digamos que el valor es 25.

Claramente, el hash resultante es único. Para este conjunto particular de 1000 personas, siempre llegará al valor 25. Para un grupo diferente de 1000 personas, el hash probablemente será diferente, pero no necesariamente. No es difícil imaginar otro grupo de 1000 personas con 25 de ellos nacidos el 4 de marzo. Cambia una persona que no haya nacido el 21 de enero para tener una idea. Y, por último, el hash no es reversible porque no se puede recuperar el 21 de enero a partir del valor del hash, 25.

¿Cuáles son las diferencias entre SHA1 y SHA2?

SHA1 es una implementación relativamente básica de un algoritmo hash. Pero debido a que no se garantiza que los valores hash sean únicos (colisiones), existe una debilidad. SHA1 es susceptible a lo que se conoce como ataque hash. En este ataque, la información con el mismo valor hash se sustituye por la información original o prevista. Esta es la principal diferencia entre las dos iteraciones. Se han introducido una serie de cambios en SHA2 y no es susceptible a este tipo de ataque.

Resumen de la lección

En resumen, el cifrado es un proceso de conversión que se utiliza para ocultar información a personas no autorizadas. SHA1 y SHA2 son la segunda y tercera iteración del Algoritmo Hash Seguro. Una función hash es un conjunto de pasos que crean un mapeo entre alguna fuente de información y alguna información de destino. SHA1 es susceptible a ataques hash y SHA2 no lo es. Esta es la principal diferencia entre los dos.

Articulos relacionados