Bienvenidos al sitio del Instituto Europeo de Formación Tecnológica . Haga su búsqueda en el espacio a continuación.

Síguenos en redes:

Image Alt

Función, constante y procesado de la función hash SHA-256 en la tecnología blockchain

Función, constante y procesado de la función hash SHA-256 en la tecnología blockchain

Raúl Jaime Maestre

Szabo recordaba que había visto un documento de 2002 de la ‘Federal Information Proccessing Stantards’ que habla sobre la ‘Secure hash standard’. Rebuscando entre sus papeles encontró este informe que trataba sobre las funciones de hash y una de ellas era la SHA-256.

La función hash SHA-256 utiliza seis funciones lógicas, donde cada función opera en palabras de 32 bits, que se representan como x, y y z. El resultado de cada función es una nueva palabra de 32 bits (Federal Information Processing Standards, 2002).

Función hash SHA-256

 

Supongamos que la longitud del mensaje, M, es ‘l’ bits. Agregue el bit «1» al final del mensaje, seguido de k bits cero, donde k es la solución no negativa más pequeña de la ecuación (l + 1 + k ≡ 448mod512). Luego tenemos el bloque de 64 bits que es igual al número ‘l’ expresado el uso en una representación binaria. Por ejemplo, el mensaje «abc» (8 bits ASCII) tiene longitud (8 x 3 = 24), por lo que el mensaje se rellena con un bit, luego (448 – (24+1) = 423) bits cero, y luego la longitud del mensaje, para convertirse en el mensaje relleno de 512 bits.

Procesado de la función hash SHA-256

                                                                      Imagen 1. Procesado de la función hash SHA-256

 

La longitud del mensaje rellenado ahora debe ser un múltiplo de 512 bits.

Por tanto, la función hash inicia un vector que depende de la función hash cambiaría sus valores, pero siempre de una manera fija. Con todo esto y por medio de la función se aplica diferentes operaciones y tras una etapa final se obtiene la función hash del mensaje (Nakamoto, S., 2008).

Por tanto, para el mensaje de un bloque con función hash SHA-256, M, sea la cadena ASCII de 24 bits (l = 24) «abc», que es equivalente a siguiente cadena binaria:

01100001 01100010 01100011

Después de completar el preprocesado, cada bloque de mensajes, siguiendo los siguientes pasos:

Para i=1 a N:

1. Preparar la función hash del mensaje, {Wt}:

{

 Función hash del mensaje

}

                             0 ≤ t ≤ 15

                           16 ≤ t ≤ 25

El mensaje se rellena agregando un bit «1», seguido de 423 bits «0» y terminando con el valor hexadecimal 00000000 00000018 (la representación de dos palabras de 32 bits de la longitud, 24). Por lo tanto, el mensaje final rellenado consta de un bloque (N = 1).

Las palabras del bloque de mensaje rellenado se asignan a las palabras W0, …, W15 de la programación de mensajes:

Palabras del bloque de mensaje

 

2. Inicia el proceso del trabajo de 8 variables, a, b, c, d, e, f , g y h, con el (i-1)st del valor de la función del hash:

{

Valor de la función del hash

}

 

Para SHA-256, el valor hash inicial, H (0), es:

Valor hash inicial

 

3. De t=0 a 25:
{

De t=0 a 25

}

 

La siguiente tabla muestra los valores hexadecimales para a, b, c, d, e, f, g y h después de pasar t del ciclo «for t = 0 to 25»:

Tabla valores hexadecimales

 

4. Calcular el i ésimo valor de hash intermedio H (i):

{

Valor de hash intermedio

 

}

 

Eso completa el procesado del primer y único bloque de mensajes, M(1). El valor de hash final, H(1), se calcula para ser:

Valor de hash final

 

Después de repetir los pasos uno a cuatro un total de N veces (es decir, después de procesar M (N)), la función hash del mensaje de 256 bits resultante del mensaje, M, es:

Función hash del mensaje de 256 bits

 

Por tanto, la función hash del mensaje de 256 bits resultante es:

ba7816bf 8f01cfea 414140de 5dae2223 b00361a3 96177a9c b410ff61 f20015ad

 

Continuará…

 

Si te interesa la tecnología de blockchain ponemos a tu disposición el programa «Máster en proyectos Blockchain y Fintech«, con el que podrás aprender cómo funciona la tecnología blockchain y los pasos para llevar un proyecto adelante.

 

Referencias:

  1. Federal Information Processing Standards (2002) SECURE HASH STANDARD. Publication 180-2. Enlace web: http://everyspec.com/NIST/NIST-FIPS/FIPS_PUB_180-2(AUG_2002)_3221/ 
Post a Comment

  +  32  =  40

Ver más

  • Responsable: Grupo Global Euro Inversiones S.L..
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a CenturyLink USA que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver nuestra Política de cookies
Privacidad
Abrir chat