Sunteți pe pagina 1din 118

Página 1

=============== Procesamiento del único bloque: ===============


Las palabras del bloque 1 del mensaje son:
Palabra 1 00110001001100100011001100110100 = 31323334
Palabra 2 00100000001100010011001000110011 = 20313233
Palabra 3 00100000010001100100100101001110 = 2046494E
Palabra 4 10000000000000000000000000000000 = 80000000
Palabra 5 00000000000000000000000000000000 = 00000000
Palabra 6 00000000000000000000000000000000 = 00000000
Palabra 7 00000000000000000000000000000000 = 00000000
Palabra 8 00000000000000000000000000000000 = 00000000
Palabra 9 00000000000000000000000000000000 = 00000000
Palabra 10 00000000000000000000000000000000 = 00000000
Palabra 11 00000000000000000000000000000000 = 00000000
Palabra 12 00000000000000000000000000000000 = 00000000
Palabra 13 00000000000000000000000000000000 = 00000000
Palabra 14 00000000000000000000000000000000 = 00000000
Palabra 15 00000000000000000000000000000000 = 00000000
Palabra 16 00000000000000000000000001100000 = 00000060

Valores Iniciales (A, B, C, D y E):


t = 0 67452301 EFCDAB89 98BADCFE 10325476 C3D2E1F0

Primera Vuelta:
F(B, C, D) = (B and C) or ((not B) and D)
A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01100111010001010010001100000001 = 67452301
B = 11101111110011011010101110001001 = EFCDAB89
C = 10011000101110101101110011111110 = 98BADCFE
D = 00010000001100100101010001110110 = 10325476
E = 11000011110100101110000111110000 = C3D2E1F0

10001000100010001000100010001000 = (B and C)
OR 00010000001100100101010001110110 = ((not B) and D)
------------------------------------
10011000101110101101110011111110 = F(B, C, D)
11000011110100101110000111110000 = Valor de E
11101000101001000110000000101100 = A rotado a izq. 5 bits
00110001001100100011001100110100 = Palabra 1 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
11010000111001101100101111100111
------------------------------------
11010000111001101100101111100111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01111011111100110110101011100010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 1 D0E6CBE7 67452301 7BF36AE2 98BADCFE 10325476


---------------------------------------------------------------
Página 2

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11010000111001101100101111100111 = D0E6CBE7
B = 01100111010001010010001100000001 = 67452301
C = 01111011111100110110101011100010 = 7BF36AE2
D = 10011000101110101101110011111110 = 98BADCFE
E = 00010000001100100101010001110110 = 10325476

01100011010000010010001000000000 = (B and C)
OR 10011000101110101101110011111110 = ((not B) and D)
------------------------------------
11111011111110111111111011111110 = F(B, C, D)
00010000001100100101010001110110 = Valor de E
00011100110110010111110011111010 = A rotado a izq. 5 bits
00100000001100010011001000110011 = Palabra 2 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
10100011101110110111110000111010
------------------------------------
10100011101110110111110000111010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01011001110100010100100011000000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 2 A3BB7C3A D0E6CBE7 59D148C0 7BF36AE2 98BADCFE


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10100011101110110111110000111010 = A3BB7C3A
B = 11010000111001101100101111100111 = D0E6CBE7
C = 01011001110100010100100011000000 = 59D148C0
D = 01111011111100110110101011100010 = 7BF36AE2
E = 10011000101110101101110011111110 = 98BADCFE

01010000110000000100100011000000 = (B and C)
OR 00101011000100010010000000000000 = ((not B) and D)
------------------------------------
01111011110100010110100011000000 = F(B, C, D)
10011000101110101101110011111110 = Valor de E
01110111011011111000011101010100 = A rotado a izq. 5 bits
00100000010001100100100101001110 = Palabra 3 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
00000110110001001000111111111001
------------------------------------
00000110110001001000111111111001 Es ahora la palabra A
Página 3

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11110100001110011011001011111001 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 3 06C48FF9 A3BB7C3A F439B2F9 59D148C0 7BF36AE2


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00000110110001001000111111111001 = 06C48FF9
B = 10100011101110110111110000111010 = A3BB7C3A
C = 11110100001110011011001011111001 = F439B2F9
D = 01011001110100010100100011000000 = 59D148C0
E = 01111011111100110110101011100010 = 7BF36AE2

10100000001110010011000000111000 = (B and C)
OR 01011000010000000000000011000000 = ((not B) and D)
------------------------------------
11111000011110010011000011111000 = F(B, C, D)
01111011111100110110101011100010 = Valor de E
11011000100100011111111100100000 = A rotado a izq. 5 bits
10000000000000000000000000000000 = Palabra 4 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
00100111100000010001010010010011
------------------------------------
00100111100000010001010010010011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10101000111011101101111100001110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 4 27811493 06C48FF9 A8EEDF0E F439B2F9 59D148C0


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00100111100000010001010010010011 = 27811493
B = 00000110110001001000111111111001 = 06C48FF9
C = 10101000111011101101111100001110 = A8EEDF0E
D = 11110100001110011011001011111001 = F439B2F9
E = 01011001110100010100100011000000 = 59D148C0

00000000110001001000111100001000 = (B and C)
OR 11110000001110010011000000000000 = ((not B) and D)
------------------------------------
11110000111111011011111100001000 = F(B, C, D)
Página 4

01011001110100010100100011000000 = Valor de E
11110000001000101001001001100100 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 5 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
10010101011101000001001111000101
------------------------------------
10010101011101000001001111000101 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01000001101100010010001111111110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 5 957413C5 27811493 41B123FE A8EEDF0E F439B2F9


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10010101011101000001001111000101 = 957413C5
B = 00100111100000010001010010010011 = 27811493
C = 01000001101100010010001111111110 = 41B123FE
D = 10101000111011101101111100001110 = A8EEDF0E
E = 11110100001110011011001011111001 = F439B2F9

00000001100000010000000010010010 = (B and C)
OR 10001000011011101100101100001100 = ((not B) and D)
------------------------------------
10001001111011111100101110011110 = F(B, C, D)
11110100001110011011001011111001 = Valor de E
10101110100000100111100010110010 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 6 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
10000111001011100111000011100010
------------------------------------
10000111001011100111000011100010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11001001111000000100010100100100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 6 872E70E2 957413C5 C9E04524 41B123FE A8EEDF0E


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10000111001011100111000011100010 = 872E70E2
Página 5

B = 10010101011101000001001111000101 = 957413C5
C = 11001001111000000100010100100100 = C9E04524
D = 01000001101100010010001111111110 = 41B123FE
E = 10101000111011101101111100001110 = A8EEDF0E

10000001011000000000000100000100 = (B and C)
OR 01000000100000010010000000111010 = ((not B) and D)
------------------------------------
11000001111000010010000100111110 = F(B, C, D)
10101000111011101101111100001110 = Valor de E
11100101110011100001110001010000 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 7 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
10101011001000001001011000110101
------------------------------------
10101011001000001001011000110101 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01100101010111010000010011110001 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 7 AB209635 872E70E2 655D04F1 C9E04524 41B123FE


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10101011001000001001011000110101 = AB209635
B = 10000111001011100111000011100010 = 872E70E2
C = 01100101010111010000010011110001 = 655D04F1
D = 11001001111000000100010100100100 = C9E04524
E = 01000001101100010010001111111110 = 41B123FE

00000101000011000000000011100000 = (B and C)
OR 01001000110000000000010100000100 = ((not B) and D)
------------------------------------
01001101110011000000010111100100 = F(B, C, D)
01000001101100010010001111111110 = Valor de E
01100100000100101100011010110101 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 8 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
01001110000100100110101000110000
------------------------------------
01001110000100100110101000110000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10100001110010111001110000111000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B
Página 6

Salida: t = 8 4E126A30 AB209635 A1CB9C38 655D04F1 C9E04524


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01001110000100100110101000110000 = 4E126A30
B = 10101011001000001001011000110101 = AB209635
C = 10100001110010111001110000111000 = A1CB9C38
D = 01100101010111010000010011110001 = 655D04F1
E = 11001001111000000100010100100100 = C9E04524

10100001000000001001010000110000 = (B and C)
OR 01000100010111010000000011000000 = ((not B) and D)
------------------------------------
11100101010111011001010011110000 = F(B, C, D)
11001001111000000100010100100100 = Valor de E
11000010010011010100011000001001 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 9 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
11001100000011011001100110110110
------------------------------------
11001100000011011001100110110110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01101010110010000010010110001101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 9 CC0D99B6 4E126A30 6AC8258D A1CB9C38 655D04F1


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11001100000011011001100110110110 = CC0D99B6
B = 01001110000100100110101000110000 = 4E126A30
C = 01101010110010000010010110001101 = 6AC8258D
D = 10100001110010111001110000111000 = A1CB9C38
E = 01100101010111010000010011110001 = 655D04F1

01001010000000000010000000000000 = (B and C)
OR 10100001110010011001010000001000 = ((not B) and D)
------------------------------------
11101011110010011011010000001000 = F(B, C, D)
01100101010111010000010011110001 = Valor de E
10000001101100110011011011011001 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 10 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
Página 7

00101101010111000110100101101011
------------------------------------
00101101010111000110100101101011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00010011100001001001101010001100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 10 2D5C696B CC0D99B6 13849A8C 6AC8258D A1CB9C38


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00101101010111000110100101101011 = 2D5C696B
B = 11001100000011011001100110110110 = CC0D99B6
C = 00010011100001001001101010001100 = 13849A8C
D = 01101010110010000010010110001101 = 6AC8258D
E = 10100001110010111001110000111000 = A1CB9C38

00000000000001001001100010000100 = (B and C)
OR 00100010110000000010010000001001 = ((not B) and D)
------------------------------------
00100010110001001011110010001101 = F(B, C, D)
10100001110010111001110000111000 = Valor de E
10101011100011010010110101100101 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 11 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
11001010100111111111111111000011
------------------------------------
11001010100111111111111111000011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10110011000000110110011001101101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 11 CA9FFFC3 2D5C696B B303666D 13849A8C 6AC8258D


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11001010100111111111111111000011 = CA9FFFC3
B = 00101101010111000110100101101011 = 2D5C696B
C = 10110011000000110110011001101101 = B303666D
D = 00010011100001001001101010001100 = 13849A8C
E = 01101010110010000010010110001101 = 6AC8258D
Página 8

00100001000000000110000001101001 = (B and C)
OR 00010010100000001001001010000100 = ((not B) and D)
------------------------------------
00110011100000001111001011101101 = F(B, C, D)
01101010110010000010010110001101 = Valor de E
01010011111111111111100001111001 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 12 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
01001100110010111000101010001100
------------------------------------
01001100110010111000101010001100 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11001011010101110001101001011010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 12 4CCB8A8C CA9FFFC3 CB571A5A B303666D 13849A8C


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01001100110010111000101010001100 = 4CCB8A8C
B = 11001010100111111111111111000011 = CA9FFFC3
C = 11001011010101110001101001011010 = CB571A5A
D = 10110011000000110110011001101101 = B303666D
E = 00010011100001001001101010001100 = 13849A8C

11001010000101110001101001000010 = (B and C)
OR 00110001000000000000000000101100 = ((not B) and D)
------------------------------------
11111011000101110001101001101110 = F(B, C, D)
00010011100001001001101010001100 = Valor de E
10011001011100010101000110001001 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 13 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
00000010100011111000000000011100
------------------------------------
00000010100011111000000000011100 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11110010101001111111111111110000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 13 028F801C 4CCB8A8C F2A7FFF0 CB571A5A B303666D


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


Página 9

A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]


E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00000010100011111000000000011100 = 028F801C
B = 01001100110010111000101010001100 = 4CCB8A8C
C = 11110010101001111111111111110000 = F2A7FFF0
D = 11001011010101110001101001011010 = CB571A5A
E = 10110011000000110110011001101101 = B303666D

01000000100000111000101010000000 = (B and C)
OR 10000011000101000001000001010010 = ((not B) and D)
------------------------------------
11000011100101111001101011010010 = F(B, C, D)
10110011000000110110011001101101 = Valor de E
01010001111100000000001110000000 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 14 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
00100011000011010111111001011000
------------------------------------
00100011000011010111111001011000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00010011001100101110001010100011 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 14 230D7E58 028F801C 1332E2A3 F2A7FFF0 CB571A5A


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00100011000011010111111001011000 = 230D7E58
B = 00000010100011111000000000011100 = 028F801C
C = 00010011001100101110001010100011 = 1332E2A3
D = 11110010101001111111111111110000 = F2A7FFF0
E = 11001011010101110001101001011010 = CB571A5A

00000010000000101000000000000000 = (B and C)
OR 11110000001000000111111111100000 = ((not B) and D)
------------------------------------
11110010001000101111111111100000 = F(B, C, D)
11001011010101110001101001011010 = Valor de E
01100001101011111100101100000100 = A rotado a izq. 5 bits
00000000000000000000000000000000 = Palabra 15 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
01111001101011000101111011010111
------------------------------------
01111001101011000101111011010111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


Página 10

La palabra C pasa a ocupar el lugar de D


La palabra B rotada 30 posiciones a la izquierda:
00000000101000111110000000000111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 15 79AC5ED7 230D7E58 00A3E007 1332E2A3 F2A7FFF0


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01111001101011000101111011010111 = 79AC5ED7
B = 00100011000011010111111001011000 = 230D7E58
C = 00000000101000111110000000000111 = 00A3E007
D = 00010011001100101110001010100011 = 1332E2A3
E = 11110010101001111111111111110000 = F2A7FFF0

00000000000000010110000000000000 = (B and C)
OR 00010000001100101000000010100011 = ((not B) and D)
------------------------------------
00010000001100111110000010100011 = F(B, C, D)
11110010101001111111111111110000 = Valor de E
00110101100010111101101011101111 = A rotado a izq. 5 bits
00000000000000000000000001100000 = Palabra 16 del bloque 1
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
10010010111010100011010101111011
------------------------------------
10010010111010100011010101111011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00001000110000110101111110010110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 16 92EA357B 79AC5ED7 08C35F96 00A3E007 1332E2A3


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10010010111010100011010101111011 = 92EA357B
B = 01111001101011000101111011010111 = 79AC5ED7
C = 00001000110000110101111110010110 = 08C35F96
D = 00000000101000111110000000000111 = 00A3E007
E = 00010011001100101110001010100011 = 1332E2A3

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 17 = (XOR de las cuatro palabras usadas
en los pasos 17-3, 17-8, 17-14 y
17-16) rotado a la izquierda 1 bit
00000000000000000000000000000000 = Generada en paso 14
Página 11

00000000000000000000000000000000 = Generada en paso 9


00100000010001100100100101001110 = Generada en paso 3
XOR 00110001001100100011001100110100 = Generada en paso 1
------------------------------------
00010001011101000111101001111010 Se rotará 1 bit a la izq.
------------------------------------
00100010111010001111010011110100 = Palabra para este paso

00001000100000000101111010010110 = (B and C)
OR 00000000000000111010000000000000 = ((not B) and D)
------------------------------------
00001000100000111111111010010110 = F(B, C, D)
00010011001100101110001010100011 = Valor de E
01011101010001101010111101110010 = A rotado a izq. 5 bits
00100010111010001111010011110100 = Palabra generada
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
11110110011010001111111100111000
------------------------------------
11110110011010001111111100111000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11011110011010110001011110110101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 17 F668FF38 92EA357B DE6B17B5 08C35F96 00A3E007


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11110110011010001111111100111000 = F668FF38
B = 10010010111010100011010101111011 = 92EA357B
C = 11011110011010110001011110110101 = DE6B17B5
D = 00001000110000110101111110010110 = 08C35F96
E = 00000000101000111110000000000111 = 00A3E007

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 18 = (XOR de las cuatro palabras usadas
en los pasos 18-3, 18-8, 18-14 y
18-16) rotado a la izquierda 1 bit
00000000000000000000000000000000 = Generada en paso 15
00000000000000000000000000000000 = Generada en paso 10
10000000000000000000000000000000 = Generada en paso 4
XOR 00100000001100010011001000110011 = Generada en paso 2
------------------------------------
10100000001100010011001000110011 Se rotará 1 bit a la izq.
------------------------------------
01000000011000100110010001100111 = Palabra para este paso

10010010011010100001010100110001 = (B and C)
OR 00001000000000010100101010000100 = ((not B) and D)
Página 12

------------------------------------
10011010011010110101111110110101 = F(B, C, D)
00000000101000111110000000000111 = Valor de E
11001101000111111110011100011110 = A rotado a izq. 5 bits
01000000011000100110010001100111 = Palabra generada
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
00000011000101000000010011011010
------------------------------------
00000011000101000000010011011010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11100100101110101000110101011110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 18 031404DA F668FF38 E4BA8D5E DE6B17B5 08C35F96


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00000011000101000000010011011010 = 031404DA
B = 11110110011010001111111100111000 = F668FF38
C = 11100100101110101000110101011110 = E4BA8D5E
D = 11011110011010110001011110110101 = DE6B17B5
E = 00001000110000110101111110010110 = 08C35F96

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 19 = (XOR de las cuatro palabras usadas
en los pasos 19-3, 19-8, 19-14 y
19-16) rotado a la izquierda 1 bit
00000000000000000000000001100000 = Generada en paso 16
00000000000000000000000000000000 = Generada en paso 11
00000000000000000000000000000000 = Generada en paso 5
XOR 00100000010001100100100101001110 = Generada en paso 3
------------------------------------
00100000010001100100100100101110 Se rotará 1 bit a la izq.
------------------------------------
01000000100011001001001001011100 = Palabra para este paso

11100100001010001000110100011000 = (B and C)
OR 00001000000000110000000010000101 = ((not B) and D)
------------------------------------
11101100001010111000110110011101 = F(B, C, D)
00001000110000110101111110010110 = Valor de E
01100010100000001001101101000000 = A rotado a izq. 5 bits
01000000100011001001001001011100 = Palabra generada
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
11110010011111101001010001101000
------------------------------------
11110010011111101001010001101000 Es ahora la palabra A
Página 13

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00111101100110100011111111001110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 19 F27E9468 031404DA 3D9A3FCE E4BA8D5E DE6B17B5


---------------------------------------------------------------

F(B, C, D) = (B and C) or ((not B) and D)


A´= E + F(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11110010011111101001010001101000 = F27E9468
B = 00000011000101000000010011011010 = 031404DA
C = 00111101100110100011111111001110 = 3D9A3FCE
D = 11100100101110101000110101011110 = E4BA8D5E
E = 11011110011010110001011110110101 = DE6B17B5

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 20 = (XOR de las cuatro palabras usadas
en los pasos 20-3, 20-8, 20-14 y
20-16) rotado a la izquierda 1 bit
00100010111010001111010011110100 = Generada en paso 17
00000000000000000000000000000000 = Generada en paso 12
00000000000000000000000000000000 = Generada en paso 6
XOR 10000000000000000000000000000000 = Generada en paso 4
------------------------------------
10100010111010001111010011110100 Se rotará 1 bit a la izq.
------------------------------------
01000101110100011110100111101001 = Palabra para este paso

00000001000100000000010011001010 = (B and C)
OR 11100100101010101000100100000100 = ((not B) and D)
------------------------------------
11100101101110101000110111001110 = F(B, C, D)
11011110011010110001011110110101 = Valor de E
01001111110100101000110100011110 = A rotado a izq. 5 bits
01000101110100011110100111101001 = Palabra generada
+ 01011010100000100111100110011001 = Constante 5A827999
------------------------------------
10110100010011001001011000100011
------------------------------------
10110100010011001001011000100011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10000000110001010000000100110110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 20 B44C9623 F27E9468 80C50136 3D9A3FCE E4BA8D5E


---------------------------------------------------------------
Página 14

Segunda Vuelta:
G(B, C, D) = (B xor C xor D
A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10110100010011001001011000100011 = B44C9623
B = 11110010011111101001010001101000 = F27E9468
C = 10000000110001010000000100110110 = 80C50136
D = 00111101100110100011111111001110 = 3D9A3FCE
E = 11100100101110101000110101011110 = E4BA8D5E

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 21 = (XOR de las cuatro palabras usadas
en los pasos 21-3, 21-8, 21-14 y
21-16) rotado a la izquierda 1 bit
01000000011000100110010001100111 = Generada en paso 18
00000000000000000000000000000000 = Generada en paso 13
00000000000000000000000000000000 = Generada en paso 7
XOR 00000000000000000000000000000000 = Generada en paso 5
------------------------------------
01000000011000100110010001100111 Se rotará 1 bit a la izq.
------------------------------------
10000000110001001100100011001110 = Palabra para este paso

11110010011111101001010001101000 = B
10000000110001010000000100110110 = C
XOR 00111101100110100011111111001110 = D
------------------------------------
01001111001000011010101010010000 = G(B, C, D)
11100100101110101000110101011110 = Valor de E
10001001100100101100010001110110 = A rotado a izq. 5 bits
10000000110001001100100011001110 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
10101101000011011011000011010011
------------------------------------
10101101000011011011000011010011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00111100100111111010010100011010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 21 AD0DB0D3 B44C9623 3C9FA51A 80C50136 3D9A3FCE


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10101101000011011011000011010011 = AD0DB0D3
B = 10110100010011001001011000100011 = B44C9623
C = 00111100100111111010010100011010 = 3C9FA51A
D = 10000000110001010000000100110110 = 80C50136
Página 15

E = 00111101100110100011111111001110 = 3D9A3FCE

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 22 = (XOR de las cuatro palabras usadas
en los pasos 22-3, 22-8, 22-14 y
22-16) rotado a la izquierda 1 bit
01000000100011001001001001011100 = Generada en paso 19
00000000000000000000000000000000 = Generada en paso 14
00000000000000000000000000000000 = Generada en paso 8
XOR 00000000000000000000000000000000 = Generada en paso 6
------------------------------------
01000000100011001001001001011100 Se rotará 1 bit a la izq.
------------------------------------
10000001000110010010010010111000 = Palabra para este paso

10110100010011001001011000100011 = B
00111100100111111010010100011010 = C
XOR 10000000110001010000000100110110 = D
------------------------------------
00001000000101100011001000001111 = G(B, C, D)
00111101100110100011111111001110 = Valor de E
10100001101101100001101001110101 = A rotado a izq. 5 bits
10000001000110010010010010111000 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
11010111010110011001110010101011
------------------------------------
11010111010110011001110010101011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11101101000100110010010110001000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 22 D7599CAB AD0DB0D3 ED132588 3C9FA51A 80C50136


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11010111010110011001110010101011 = D7599CAB
B = 10101101000011011011000011010011 = AD0DB0D3
C = 11101101000100110010010110001000 = ED132588
D = 00111100100111111010010100011010 = 3C9FA51A
E = 10000000110001010000000100110110 = 80C50136

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 23 = (XOR de las cuatro palabras usadas
en los pasos 23-3, 23-8, 23-14 y
23-16) rotado a la izquierda 1 bit
01000101110100011110100111101001 = Generada en paso 20
00000000000000000000000000000000 = Generada en paso 15
00000000000000000000000000000000 = Generada en paso 9
Página 16

XOR 00000000000000000000000000000000 = Generada en paso 7


------------------------------------
01000101110100011110100111101001 Se rotará 1 bit a la izq.
------------------------------------
10001011101000111101001111010010 = Palabra para este paso

10101101000011011011000011010011 = B
11101101000100110010010110001000 = C
XOR 00111100100111111010010100011010 = D
------------------------------------
01111100100000010011000001000001 = G(B, C, D)
10000000110001010000000100110110 = Valor de E
11101011001100111001010101111010 = A rotado a izq. 5 bits
10001011101000111101001111010010 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
11100010111101111000011001100100
------------------------------------
11100010111101111000011001100100 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11101011010000110110110000110100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 23 E2F78664 D7599CAB EB436C34 ED132588 3C9FA51A


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11100010111101111000011001100100 = E2F78664
B = 11010111010110011001110010101011 = D7599CAB
C = 11101011010000110110110000110100 = EB436C34
D = 11101101000100110010010110001000 = ED132588
E = 00111100100111111010010100011010 = 3C9FA51A

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 24 = (XOR de las cuatro palabras usadas
en los pasos 24-3, 24-8, 24-14 y
24-16) rotado a la izquierda 1 bit
10000000110001001100100011001110 = Generada en paso 21
00000000000000000000000001100000 = Generada en paso 16
00000000000000000000000000000000 = Generada en paso 10
XOR 00000000000000000000000000000000 = Generada en paso 8
------------------------------------
10000000110001001100100010101110 Se rotará 1 bit a la izq.
------------------------------------
00000001100010011001000101011101 = Palabra para este paso

11010111010110011001110010101011 = B
11101011010000110110110000110100 = C
XOR 11101101000100110010010110001000 = D
Página 17

------------------------------------
11010001000010011101010100010111 = G(B, C, D)
00111100100111111010010100011010 = Valor de E
01011110111100001100110010011100 = A rotado a izq. 5 bits
00000001100010011001000101011101 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
11011100111111011100001111001011
------------------------------------
11011100111111011100001111001011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11110101110101100110011100101010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 24 DCFDC3CB E2F78664 F5D6672A EB436C34 ED132588


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11011100111111011100001111001011 = DCFDC3CB
B = 11100010111101111000011001100100 = E2F78664
C = 11110101110101100110011100101010 = F5D6672A
D = 11101011010000110110110000110100 = EB436C34
E = 11101101000100110010010110001000 = ED132588

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 25 = (XOR de las cuatro palabras usadas
en los pasos 25-3, 25-8, 25-14 y
25-16) rotado a la izquierda 1 bit
10000001000110010010010010111000 = Generada en paso 22
00100010111010001111010011110100 = Generada en paso 17
00000000000000000000000000000000 = Generada en paso 11
XOR 00000000000000000000000000000000 = Generada en paso 9
------------------------------------
10100011111100011101000001001100 Se rotará 1 bit a la izq.
------------------------------------
01000111111000111010000010011001 = Palabra para este paso

11100010111101111000011001100100 = B
11110101110101100110011100101010 = C
XOR 11101011010000110110110000110100 = D
------------------------------------
11111100011000101000110101111010 = G(B, C, D)
11101101000100110010010110001000 = Valor de E
10011111101110000111100101111011 = A rotado a izq. 5 bits
01000111111000111010000010011001 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
00111111111010111011100010110111
------------------------------------
Página 18

00111111111010111011100010110111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00111000101111011110000110011001 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 25 3FEBB8B7 DCFDC3CB 38BDE199 F5D6672A EB436C34


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00111111111010111011100010110111 = 3FEBB8B7
B = 11011100111111011100001111001011 = DCFDC3CB
C = 00111000101111011110000110011001 = 38BDE199
D = 11110101110101100110011100101010 = F5D6672A
E = 11101011010000110110110000110100 = EB436C34

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 26 = (XOR de las cuatro palabras usadas
en los pasos 26-3, 26-8, 26-14 y
26-16) rotado a la izquierda 1 bit
10001011101000111101001111010010 = Generada en paso 23
01000000011000100110010001100111 = Generada en paso 18
00000000000000000000000000000000 = Generada en paso 12
XOR 00000000000000000000000000000000 = Generada en paso 10
------------------------------------
11001011110000011011011110110101 Se rotará 1 bit a la izq.
------------------------------------
10010111100000110110111101101011 = Palabra para este paso

11011100111111011100001111001011 = B
00111000101111011110000110011001 = C
XOR 11110101110101100110011100101010 = D
------------------------------------
00010001100101100100010101111000 = G(B, C, D)
11101011010000110110110000110100 = Valor de E
11111101011101110001011011100111 = A rotado a izq. 5 bits
10010111100000110110111101101011 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
00000000101011100010001110011111
------------------------------------
00000000101011100010001110011111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11110111001111110111000011110010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 26 00AE239F 3FEBB8B7 F73F70F2 38BDE199 F5D6672A


Página 19

---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00000000101011100010001110011111 = 00AE239F
B = 00111111111010111011100010110111 = 3FEBB8B7
C = 11110111001111110111000011110010 = F73F70F2
D = 00111000101111011110000110011001 = 38BDE199
E = 11110101110101100110011100101010 = F5D6672A

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 27 = (XOR de las cuatro palabras usadas
en los pasos 27-3, 27-8, 27-14 y
27-16) rotado a la izquierda 1 bit
00000001100010011001000101011101 = Generada en paso 24
01000000100011001001001001011100 = Generada en paso 19
00000000000000000000000000000000 = Generada en paso 13
XOR 00000000000000000000000000000000 = Generada en paso 11
------------------------------------
01000001000001010000001100000001 Se rotará 1 bit a la izq.
------------------------------------
10000010000010100000011000000010 = Palabra para este paso

00111111111010111011100010110111 = B
11110111001111110111000011110010 = C
XOR 00111000101111011110000110011001 = D
------------------------------------
11110000011010010010100111011100 = G(B, C, D)
11110101110101100110011100101010 = Valor de E
00010101110001000111001111100000 = A rotado a izq. 5 bits
10000010000010100000011000000010 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
11101100111001111111011010001001
------------------------------------
11101100111001111111011010001001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11001111111110101110111000101101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 27 ECE7F689 00AE239F CFFAEE2D F73F70F2 38BDE199


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11101100111001111111011010001001 = ECE7F689
B = 00000000101011100010001110011111 = 00AE239F
C = 11001111111110101110111000101101 = CFFAEE2D
Página 20

D = 11110111001111110111000011110010 = F73F70F2
E = 00111000101111011110000110011001 = 38BDE199

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 28 = (XOR de las cuatro palabras usadas
en los pasos 28-3, 28-8, 28-14 y
28-16) rotado a la izquierda 1 bit
01000111111000111010000010011001 = Generada en paso 25
01000101110100011110100111101001 = Generada en paso 20
00000000000000000000000000000000 = Generada en paso 14
XOR 00000000000000000000000000000000 = Generada en paso 12
------------------------------------
00000010001100100100100101110000 Se rotará 1 bit a la izq.
------------------------------------
00000100011001001001001011100000 = Palabra para este paso

00000000101011100010001110011111 = B
11001111111110101110111000101101 = C
XOR 11110111001111110111000011110010 = D
------------------------------------
00111000011010111011110101000000 = G(B, C, D)
00111000101111011110000110011001 = Valor de E
10011100111111101101000100111101 = A rotado a izq. 5 bits
00000100011001001001001011100000 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
10000001011001101110111010010111
------------------------------------
10000001011001101110111010010111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11000000001010111000100011100111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 28 8166EE97 ECE7F689 C02B88E7 CFFAEE2D F73F70F2


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10000001011001101110111010010111 = 8166EE97
B = 11101100111001111111011010001001 = ECE7F689
C = 11000000001010111000100011100111 = C02B88E7
D = 11001111111110101110111000101101 = CFFAEE2D
E = 11110111001111110111000011110010 = F73F70F2

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 29 = (XOR de las cuatro palabras usadas
en los pasos 29-3, 29-8, 29-14 y
29-16) rotado a la izquierda 1 bit
10010111100000110110111101101011 = Generada en paso 26
10000000110001001100100011001110 = Generada en paso 21
Página 21

00000000000000000000000000000000 = Generada en paso 15


XOR 00000000000000000000000000000000 = Generada en paso 13
------------------------------------
00010111010001111010011110100101 Se rotará 1 bit a la izq.
------------------------------------
00101110100011110100111101001010 = Palabra para este paso

11101100111001111111011010001001 = B
11000000001010111000100011100111 = C
XOR 11001111111110101110111000101101 = D
------------------------------------
11100011001101101001000001000011 = G(B, C, D)
11110111001111110111000011110010 = Valor de E
00101100110111011101001011110000 = A rotado a izq. 5 bits
00101110100011110100111101001010 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
10100100101111010000111100010000
------------------------------------
10100100101111010000111100010000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01111011001110011111110110100010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 29 A4BD0F10 8166EE97 7B39FDA2 C02B88E7 CFFAEE2D


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10100100101111010000111100010000 = A4BD0F10
B = 10000001011001101110111010010111 = 8166EE97
C = 01111011001110011111110110100010 = 7B39FDA2
D = 11000000001010111000100011100111 = C02B88E7
E = 11001111111110101110111000101101 = CFFAEE2D

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 30 = (XOR de las cuatro palabras usadas
en los pasos 30-3, 30-8, 30-14 y
30-16) rotado a la izquierda 1 bit
10000010000010100000011000000010 = Generada en paso 27
10000001000110010010010010111000 = Generada en paso 22
00000000000000000000000001100000 = Generada en paso 16
XOR 00000000000000000000000000000000 = Generada en paso 14
------------------------------------
00000011000100110010001011011010 Se rotará 1 bit a la izq.
------------------------------------
00000110001001100100010110110100 = Palabra para este paso

10000001011001101110111010010111 = B
01111011001110011111110110100010 = C
Página 22

XOR 11000000001010111000100011100111 = D
------------------------------------
00111010011101001001101111010010 = G(B, C, D)
11001111111110101110111000101101 = Valor de E
10010111101000011110001000010100 = A rotado a izq. 5 bits
00000110001001100100010110110100 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
00010111000100011001110101101000
------------------------------------
00010111000100011001110101101000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11100000010110011011101110100101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 30 17119D68 A4BD0F10 E059BBA5 7B39FDA2 C02B88E7


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00010111000100011001110101101000 = 17119D68
B = 10100100101111010000111100010000 = A4BD0F10
C = 11100000010110011011101110100101 = E059BBA5
D = 01111011001110011111110110100010 = 7B39FDA2
E = 11000000001010111000100011100111 = C02B88E7

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 31 = (XOR de las cuatro palabras usadas
en los pasos 31-3, 31-8, 31-14 y
31-16) rotado a la izquierda 1 bit
00000100011001001001001011100000 = Generada en paso 28
10001011101000111101001111010010 = Generada en paso 23
00100010111010001111010011110100 = Generada en paso 17
XOR 00000000000000000000000000000000 = Generada en paso 15
------------------------------------
10101101001011111011010111000110 Se rotará 1 bit a la izq.
------------------------------------
01011010010111110110101110001101 = Palabra para este paso

10100100101111010000111100010000 = B
11100000010110011011101110100101 = C
XOR 01111011001110011111110110100010 = D
------------------------------------
00111111110111010100100100010111 = G(B, C, D)
11000000001010111000100011100111 = Valor de E
11100010001100111010110100000010 = A rotado a izq. 5 bits
01011010010111110110101110001101 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
10101011011101011101011000101110
Página 23

------------------------------------
10101011011101011101011000101110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00101001001011110100001111000100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 31 AB75D62E 17119D68 292F43C4 E059BBA5 7B39FDA2


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10101011011101011101011000101110 = AB75D62E
B = 00010111000100011001110101101000 = 17119D68
C = 00101001001011110100001111000100 = 292F43C4
D = 11100000010110011011101110100101 = E059BBA5
E = 01111011001110011111110110100010 = 7B39FDA2

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 32 = (XOR de las cuatro palabras usadas
en los pasos 32-3, 32-8, 32-14 y
32-16) rotado a la izquierda 1 bit
00101110100011110100111101001010 = Generada en paso 29
00000001100010011001000101011101 = Generada en paso 24
01000000011000100110010001100111 = Generada en paso 18
XOR 00000000000000000000000001100000 = Generada en paso 16
------------------------------------
01101111011001001011101000010000 Se rotará 1 bit a la izq.
------------------------------------
11011110110010010111010000100000 = Palabra para este paso

00010111000100011001110101101000 = B
00101001001011110100001111000100 = C
XOR 11100000010110011011101110100101 = D
------------------------------------
11011110011001110110010100001001 = G(B, C, D)
01111011001110011111110110100010 = Valor de E
01101110101110101100010111010101 = A rotado a izq. 5 bits
11011110110010010111010000100000 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
00010101111111111000100001000001
------------------------------------
00010101111111111000100001000001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00000101110001000110011101011010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B
Página 24

Salida: t = 32 15FF8841 AB75D62E 05C4675A 292F43C4 E059BBA5


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00010101111111111000100001000001 = 15FF8841
B = 10101011011101011101011000101110 = AB75D62E
C = 00000101110001000110011101011010 = 05C4675A
D = 00101001001011110100001111000100 = 292F43C4
E = 11100000010110011011101110100101 = E059BBA5

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 33 = (XOR de las cuatro palabras usadas
en los pasos 33-3, 33-8, 33-14 y
33-16) rotado a la izquierda 1 bit
00000110001001100100010110110100 = Generada en paso 30
01000111111000111010000010011001 = Generada en paso 25
01000000100011001001001001011100 = Generada en paso 19
XOR 00100010111010001111010011110100 = Generada en paso 17
------------------------------------
00100011101000011000001110000101 Se rotará 1 bit a la izq.
------------------------------------
01000111010000110000011100001010 = Palabra para este paso

10101011011101011101011000101110 = B
00000101110001000110011101011010 = C
XOR 00101001001011110100001111000100 = D
------------------------------------
10000111100111101111001010110000 = G(B, C, D)
11100000010110011011101110100101 = Valor de E
10111111111100010000100000100010 = A rotado a izq. 5 bits
01000111010000110000011100001010 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
11011110000001101010100100100010
------------------------------------
11011110000001101010100100100010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10101010110111010111010110001011 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 33 DE06A922 15FF8841 AADD758B 05C4675A 292F43C4


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11011110000001101010100100100010 = DE06A922
B = 00010101111111111000100001000001 = 15FF8841
Página 25

C = 10101010110111010111010110001011 = AADD758B
D = 00000101110001000110011101011010 = 05C4675A
E = 00101001001011110100001111000100 = 292F43C4

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 34 = (XOR de las cuatro palabras usadas
en los pasos 34-3, 34-8, 34-14 y
34-16) rotado a la izquierda 1 bit
01011010010111110110101110001101 = Generada en paso 31
10010111100000110110111101101011 = Generada en paso 26
01000101110100011110100111101001 = Generada en paso 20
XOR 01000000011000100110010001100111 = Generada en paso 18
------------------------------------
11001000011011111000100101101000 Se rotará 1 bit a la izq.
------------------------------------
10010000110111110001001011010001 = Palabra para este paso

00010101111111111000100001000001 = B
10101010110111010111010110001011 = C
XOR 00000101110001000110011101011010 = D
------------------------------------
10111010111001101001101010010000 = G(B, C, D)
00101001001011110100001111000100 = Valor de E
11000000110101010010010001011011 = A rotado a izq. 5 bits
10010000110111110001001011010001 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
10100100101001000000000100100001
------------------------------------
10100100101001000000000100100001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01000101011111111110001000010000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 34 A4A40121 DE06A922 457FE210 AADD758B 05C4675A


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10100100101001000000000100100001 = A4A40121
B = 11011110000001101010100100100010 = DE06A922
C = 01000101011111111110001000010000 = 457FE210
D = 10101010110111010111010110001011 = AADD758B
E = 00000101110001000110011101011010 = 05C4675A

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 35 = (XOR de las cuatro palabras usadas
en los pasos 35-3, 35-8, 35-14 y
35-16) rotado a la izquierda 1 bit
11011110110010010111010000100000 = Generada en paso 32
Página 26

10000010000010100000011000000010 = Generada en paso 27


10000000110001001100100011001110 = Generada en paso 21
XOR 01000000100011001001001001011100 = Generada en paso 19
------------------------------------
10011100100010110010100010110000 Se rotará 1 bit a la izq.
------------------------------------
00111001000101100101000101100001 = Palabra para este paso

11011110000001101010100100100010 = B
01000101011111111110001000010000 = C
XOR 10101010110111010111010110001011 = D
------------------------------------
00110001101001000011111010111001 = G(B, C, D)
00000101110001000110011101011010 = Valor de E
10010100100000000010010000110100 = A rotado a izq. 5 bits
00111001000101100101000101100001 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
01110011110110010000011101001001
------------------------------------
01110011110110010000011101001001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10110111100000011010101001001000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 35 73D90749 A4A40121 B781AA48 457FE210 AADD758B


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01110011110110010000011101001001 = 73D90749
B = 10100100101001000000000100100001 = A4A40121
C = 10110111100000011010101001001000 = B781AA48
D = 01000101011111111110001000010000 = 457FE210
E = 10101010110111010111010110001011 = AADD758B

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 36 = (XOR de las cuatro palabras usadas
en los pasos 36-3, 36-8, 36-14 y
36-16) rotado a la izquierda 1 bit
01000111010000110000011100001010 = Generada en paso 33
00000100011001001001001011100000 = Generada en paso 28
10000001000110010010010010111000 = Generada en paso 22
XOR 01000101110100011110100111101001 = Generada en paso 20
------------------------------------
10000111111011110101100010111011 Se rotará 1 bit a la izq.
------------------------------------
00001111110111101011000101110111 = Palabra para este paso

10100100101001000000000100100001 = B
Página 27

10110111100000011010101001001000 = C
XOR 01000101011111111110001000010000 = D
------------------------------------
01010110010110100100100101111001 = G(B, C, D)
10101010110111010111010110001011 = Valor de E
01111011001000001110100100101110 = A rotado a izq. 5 bits
00001111110111101011000101110111 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
11111011000100010100010101001010
------------------------------------
11111011000100010100010101001010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01101001001010010000000001001000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 36 FB11454A 73D90749 69290048 B781AA48 457FE210


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11111011000100010100010101001010 = FB11454A
B = 01110011110110010000011101001001 = 73D90749
C = 01101001001010010000000001001000 = 69290048
D = 10110111100000011010101001001000 = B781AA48
E = 01000101011111111110001000010000 = 457FE210

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 37 = (XOR de las cuatro palabras usadas
en los pasos 37-3, 37-8, 37-14 y
37-16) rotado a la izquierda 1 bit
10010000110111110001001011010001 = Generada en paso 34
00101110100011110100111101001010 = Generada en paso 29
10001011101000111101001111010010 = Generada en paso 23
XOR 10000000110001001100100011001110 = Generada en paso 21
------------------------------------
10110101001101110100011010000111 Se rotará 1 bit a la izq.
------------------------------------
01101010011011101000110100001111 = Palabra para este paso

01110011110110010000011101001001 = B
01101001001010010000000001001000 = C
XOR 10110111100000011010101001001000 = D
------------------------------------
10101101011100011010110101001001 = G(B, C, D)
01000101011111111110001000010000 = Valor de E
01100010001010001010100101011111 = A rotado a izq. 5 bits
01101010011011101000110100001111 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
Página 28

00101110011000101011000101101000
------------------------------------
00101110011000101011000101101000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01011100111101100100000111010010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 37 2E62B168 FB11454A 5CF641D2 69290048 B781AA48


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00101110011000101011000101101000 = 2E62B168
B = 11111011000100010100010101001010 = FB11454A
C = 01011100111101100100000111010010 = 5CF641D2
D = 01101001001010010000000001001000 = 69290048
E = 10110111100000011010101001001000 = B781AA48

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 38 = (XOR de las cuatro palabras usadas
en los pasos 38-3, 38-8, 38-14 y
38-16) rotado a la izquierda 1 bit
00111001000101100101000101100001 = Generada en paso 35
00000110001001100100010110110100 = Generada en paso 30
00000001100010011001000101011101 = Generada en paso 24
XOR 10000001000110010010010010111000 = Generada en paso 22
------------------------------------
10111111101000001010000100110000 Se rotará 1 bit a la izq.
------------------------------------
01111111010000010100001001100001 = Palabra para este paso

11111011000100010100010101001010 = B
01011100111101100100000111010010 = C
XOR 01101001001010010000000001001000 = D
------------------------------------
11001110110011100000010011010000 = G(B, C, D)
10110111100000011010101001001000 = Valor de E
11001100010101100010110100000101 = A rotado a izq. 5 bits
01111111010000010100001001100001 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
01000000110000010000101000011111
------------------------------------
01000000110000010000101000011111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10111110110001000101000101010010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B
Página 29

Salida: t = 38 40C10A1F 2E62B168 BEC45152 5CF641D2 69290048


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01000000110000010000101000011111 = 40C10A1F
B = 00101110011000101011000101101000 = 2E62B168
C = 10111110110001000101000101010010 = BEC45152
D = 01011100111101100100000111010010 = 5CF641D2
E = 01101001001010010000000001001000 = 69290048

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 39 = (XOR de las cuatro palabras usadas
en los pasos 39-3, 39-8, 39-14 y
39-16) rotado a la izquierda 1 bit
00001111110111101011000101110111 = Generada en paso 36
01011010010111110110101110001101 = Generada en paso 31
01000111111000111010000010011001 = Generada en paso 25
XOR 10001011101000111101001111010010 = Generada en paso 23
------------------------------------
10011001110000011010100110110001 Se rotará 1 bit a la izq.
------------------------------------
00110011100000110101001101100011 = Palabra para este paso

00101110011000101011000101101000 = B
10111110110001000101000101010010 = C
XOR 01011100111101100100000111010010 = D
------------------------------------
11001100010100001010000111101000 = G(B, C, D)
01101001001010010000000001001000 = Valor de E
00011000001000010100001111101000 = A rotado a izq. 5 bits
00110011100000110101001101100011 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
11101111111110000010010100011100
------------------------------------
11101111111110000010010100011100 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00001011100110001010110001011010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 39 EFF8251C 40C10A1F 0B98AC5A BEC45152 5CF641D2


---------------------------------------------------------------

G(B, C, D) = (B xor C xor D


A´= E + G(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11101111111110000010010100011100 = EFF8251C
Página 30

B = 01000000110000010000101000011111 = 40C10A1F
C = 00001011100110001010110001011010 = 0B98AC5A
D = 10111110110001000101000101010010 = BEC45152
E = 01011100111101100100000111010010 = 5CF641D2

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 40 = (XOR de las cuatro palabras usadas
en los pasos 40-3, 40-8, 40-14 y
40-16) rotado a la izquierda 1 bit
01101010011011101000110100001111 = Generada en paso 37
11011110110010010111010000100000 = Generada en paso 32
10010111100000110110111101101011 = Generada en paso 26
XOR 00000001100010011001000101011101 = Generada en paso 24
------------------------------------
00100010101011010000011100011001 Se rotará 1 bit a la izq.
------------------------------------
01000101010110100000111000110010 = Palabra para este paso

01000000110000010000101000011111 = B
00001011100110001010110001011010 = C
XOR 10111110110001000101000101010010 = D
------------------------------------
11110101100111011111011100010111 = G(B, C, D)
01011100111101100100000111010010 = Valor de E
11111111000001001010001110011101 = A rotado a izq. 5 bits
01000101010110100000111000110010 = Palabra generada
+ 01011010100000100111100110011001 = Constante 6ED9EBA1
------------------------------------
00000101110011001101011001011001
------------------------------------
00000101110011001101011001011001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11010000001100000100001010000111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 40 05CCD659 EFF8251C D0304287 0B98AC5A BEC45152


---------------------------------------------------------------

Tercera Vuelta:
H(B, C, D) = ((B and C) or (B and D) or (C and D))
A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00000101110011001101011001011001 = 05CCD659
B = 11101111111110000010010100011100 = EFF8251C
C = 11010000001100000100001010000111 = D0304287
D = 00001011100110001010110001011010 = 0B98AC5A
E = 10111110110001000101000101010010 = BEC45152

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 41 = (XOR de las cuatro palabras usadas
en los pasos 41-3, 41-8, 41-14 y
Página 31

41-16) rotado a la izquierda 1 bit


01111111010000010100001001100001 = Generada en paso 38
01000111010000110000011100001010 = Generada en paso 33
10000010000010100000011000000010 = Generada en paso 27
XOR 01000111111000111010000010011001 = Generada en paso 25
------------------------------------
11111101111010111110001111110000 Se rotará 1 bit a la izq.
------------------------------------
11111011110101111100011111100001 = Palabra para este paso

11000000001100000000000000000100 = (B and C)
00001011100110000010010000011000 = (B and D)
OR 00000000000100000000000000000010 = (C and D)
------------------------------------
11001011101110000010010000011110 = H(B, C, D)
10111110110001000101000101010010 = Valor de E
10111001100110101100101100100000 = A rotado a izq. 5 bits
11111011110101111100011111100001 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
00110111101000110110110011110000
------------------------------------
11001111000010101100010101001101 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00111011111111100000100101000111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 41 CF0AC54D 05CCD659 3BFE0947 D0304287 0B98AC5A


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11001111000010101100010101001101 = CF0AC54D
B = 00000101110011001101011001011001 = 05CCD659
C = 00111011111111100000100101000111 = 3BFE0947
D = 11010000001100000100001010000111 = D0304287
E = 00001011100110001010110001011010 = 0B98AC5A

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 42 = (XOR de las cuatro palabras usadas
en los pasos 42-3, 42-8, 42-14 y
42-16) rotado a la izquierda 1 bit
00110011100000110101001101100011 = Generada en paso 39
10010000110111110001001011010001 = Generada en paso 34
00000100011001001001001011100000 = Generada en paso 28
XOR 10010111100000110110111101101011 = Generada en paso 26
------------------------------------
00110000101110111011110000111001 Se rotará 1 bit a la izq.
------------------------------------
01100001011101110111100001110010 = Palabra para este paso
Página 32

00000001110011000000000001000001 = (B and C)
00000000000000000100001000000001 = (B and D)
OR 00010000001100000000000000000111 = (C and D)
------------------------------------
00010001111111000100001001000111 = H(B, C, D)
00001011100110001010110001011010 = Valor de E
11100001010110001010100110111001 = A rotado a izq. 5 bits
01100001011101110111100001110010 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
11001011100001110010100011111010
------------------------------------
11101111100000001100110110101000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01000001011100110011010110010110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 42 EF80CDA8 CF0AC54D 41733596 3BFE0947 D0304287


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11101111100000001100110110101000 = EF80CDA8
B = 11001111000010101100010101001101 = CF0AC54D
C = 01000001011100110011010110010110 = 41733596
D = 00111011111111100000100101000111 = 3BFE0947
E = 11010000001100000100001010000111 = D0304287

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 43 = (XOR de las cuatro palabras usadas
en los pasos 43-3, 43-8, 43-14 y
43-16) rotado a la izquierda 1 bit
01000101010110100000111000110010 = Generada en paso 40
00111001000101100101000101100001 = Generada en paso 35
00101110100011110100111101001010 = Generada en paso 29
XOR 10000010000010100000011000000010 = Generada en paso 27
------------------------------------
11010000110010010001011000011011 Se rotará 1 bit a la izq.
------------------------------------
10100001100100100010110000110111 = Palabra para este paso

01000001000000100000010100000100 = (B and C)
00001011000010100000000101000101 = (B and D)
OR 00000001011100100000000100000110 = (C and D)
------------------------------------
01001011011110100000010101000111 = H(B, C, D)
11010000001100000100001010000111 = Valor de E
11110000000110011011010100011101 = A rotado a izq. 5 bits
10100001100100100010110000110111 = Palabra generada
Página 33

+ 01011010100000100111100110011001 = Constante 8F1BBCDC


------------------------------------
10100110011111111101101001010011
------------------------------------
00111100011100011110010111111110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01110011110000101011000101010011 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 43 3C71E5FE EF80CDA8 73C2B153 41733596 3BFE0947


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00111100011100011110010111111110 = 3C71E5FE
B = 11101111100000001100110110101000 = EF80CDA8
C = 01110011110000101011000101010011 = 73C2B153
D = 01000001011100110011010110010110 = 41733596
E = 00111011111111100000100101000111 = 3BFE0947

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 44 = (XOR de las cuatro palabras usadas
en los pasos 44-3, 44-8, 44-14 y
44-16) rotado a la izquierda 1 bit
11111011110101111100011111100001 = Generada en paso 41
00001111110111101011000101110111 = Generada en paso 36
00000110001001100100010110110100 = Generada en paso 30
XOR 00000100011001001001001011100000 = Generada en paso 28
------------------------------------
11110110010010111010000111000010 Se rotará 1 bit a la izq.
------------------------------------
11101100100101110100001110000101 = Palabra para este paso

01100011100000001000000100000000 = (B and C)
01000001000000000000010110000000 = (B and D)
OR 01000001010000100011000100010010 = (C and D)
------------------------------------
01100011110000101011010110010010 = H(B, C, D)
00111011111111100000100101000111 = Valor de E
10001110001111001011111111000111 = A rotado a izq. 5 bits
11101100100101110100001110000101 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
00100011000111110001001011011100
------------------------------------
10101001101100000111111100000001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
Página 34

00111011111000000011001101101010 Es ahora la palabra C


La palabra A pasa a ocupar el lugar de B

Salida: t = 44 A9B07F01 3C71E5FE 3BE0336A 73C2B153 41733596


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10101001101100000111111100000001 = A9B07F01
B = 00111100011100011110010111111110 = 3C71E5FE
C = 00111011111000000011001101101010 = 3BE0336A
D = 01110011110000101011000101010011 = 73C2B153
E = 01000001011100110011010110010110 = 41733596

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 45 = (XOR de las cuatro palabras usadas
en los pasos 45-3, 45-8, 45-14 y
45-16) rotado a la izquierda 1 bit
01100001011101110111100001110010 = Generada en paso 42
01101010011011101000110100001111 = Generada en paso 37
01011010010111110110101110001101 = Generada en paso 31
XOR 00101110100011110100111101001010 = Generada en paso 29
------------------------------------
01111111110010011101000110111010 Se rotará 1 bit a la izq.
------------------------------------
11111111100100111010001101110100 = Palabra para este paso

00111000011000000010000101101010 = (B and C)
00110000010000001010000101010010 = (B and D)
OR 00110011110000000011000101000010 = (C and D)
------------------------------------
00111011111000001011000101111010 = H(B, C, D)
01000001011100110011010110010110 = Valor de E
00110110000011111110000000110101 = A rotado a izq. 5 bits
11111111100100111010001101110100 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
01111010100001011101110111100010
------------------------------------
01000010000100110010011110010101 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10001111000111000111100101111111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 45 42132795 A9B07F01 8F1C797F 3BE0336A 73C2B153


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A
Página 35

A = 01000010000100110010011110010101 = 42132795
B = 10101001101100000111111100000001 = A9B07F01
C = 10001111000111000111100101111111 = 8F1C797F
D = 00111011111000000011001101101010 = 3BE0336A
E = 01110011110000101011000101010011 = 73C2B153

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 46 = (XOR de las cuatro palabras usadas
en los pasos 46-3, 46-8, 46-14 y
46-16) rotado a la izquierda 1 bit
10100001100100100010110000110111 = Generada en paso 43
01111111010000010100001001100001 = Generada en paso 38
11011110110010010111010000100000 = Generada en paso 32
XOR 00000110001001100100010110110100 = Generada en paso 30
------------------------------------
00000110001111000101111111000010 Se rotará 1 bit a la izq.
------------------------------------
00001100011110001011111110000100 = Palabra para este paso

10001001000100000111100100000001 = (B and C)
00101001101000000011001100000000 = (B and D)
OR 00001011000000000011000101101010 = (C and D)
------------------------------------
10101011101100000111101101101011 = H(B, C, D)
01110011110000101011000101010011 = Valor de E
01000010011001001111001010101000 = A rotado a izq. 5 bits
00001100011110001011111110000100 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
01101111000010000101010101101111
------------------------------------
11111101011011001001101111000110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01101010011011000001111111000000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 46 FD6C9BC6 42132795 6A6C1FC0 8F1C797F 3BE0336A


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11111101011011001001101111000110 = FD6C9BC6
B = 01000010000100110010011110010101 = 42132795
C = 01101010011011000001111111000000 = 6A6C1FC0
D = 10001111000111000111100101111111 = 8F1C797F
E = 00111011111000000011001101101010 = 3BE0336A

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 47 = (XOR de las cuatro palabras usadas
Página 36

en los pasos 47-3, 47-8, 47-14 y


47-16) rotado a la izquierda 1 bit
11101100100101110100001110000101 = Generada en paso 44
00110011100000110101001101100011 = Generada en paso 39
01000111010000110000011100001010 = Generada en paso 33
XOR 01011010010111110110101110001101 = Generada en paso 31
------------------------------------
11000010000010000111110001100001 Se rotará 1 bit a la izq.
------------------------------------
10000100000100001111100011000011 = Palabra para este paso

01000010000000000000011110000000 = (B and C)
00000010000100000010000100010101 = (B and D)
OR 00001010000011000001100101000000 = (C and D)
------------------------------------
01001010000111000011111111010101 = H(B, C, D)
00111011111000000011001101101010 = Valor de E
10101101100100110111100011011111 = A rotado a izq. 5 bits
10000100000100001111100011000011 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
10100100000000111010001100010010
------------------------------------
01000110101111001010000110111101 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01010000100001001100100111100101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 47 46BCA1BD FD6C9BC6 5084C9E5 6A6C1FC0 8F1C797F


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01000110101111001010000110111101 = 46BCA1BD
B = 11111101011011001001101111000110 = FD6C9BC6
C = 01010000100001001100100111100101 = 5084C9E5
D = 01101010011011000001111111000000 = 6A6C1FC0
E = 10001111000111000111100101111111 = 8F1C797F

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 48 = (XOR de las cuatro palabras usadas
en los pasos 48-3, 48-8, 48-14 y
48-16) rotado a la izquierda 1 bit
11111111100100111010001101110100 = Generada en paso 45
01000101010110100000111000110010 = Generada en paso 40
10010000110111110001001011010001 = Generada en paso 34
XOR 11011110110010010111010000100000 = Generada en paso 32
------------------------------------
11110100110111111100101110110111 Se rotará 1 bit a la izq.
------------------------------------
Página 37

11101001101111111001011101101111 = Palabra para este paso

01010000000001001000100111000100 = (B and C)
01101000011011000001101111000000 = (B and D)
OR 01000000000001000000100111000000 = (C and D)
------------------------------------
01111000011011001001101111000100 = H(B, C, D)
10001111000111000111100101111111 = Valor de E
11010111100101000011011110101000 = A rotado a izq. 5 bits
11101001101111111001011101101111 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
10100111000100000101001101010101
------------------------------------
01010111111110001010000100110110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10111111010110110010011011110001 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 48 57F8A136 46BCA1BD BF5B26F1 5084C9E5 6A6C1FC0


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01010111111110001010000100110110 = 57F8A136
B = 01000110101111001010000110111101 = 46BCA1BD
C = 10111111010110110010011011110001 = BF5B26F1
D = 01010000100001001100100111100101 = 5084C9E5
E = 01101010011011000001111111000000 = 6A6C1FC0

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 49 = (XOR de las cuatro palabras usadas
en los pasos 49-3, 49-8, 49-14 y
49-16) rotado a la izquierda 1 bit
00001100011110001011111110000100 = Generada en paso 46
11111011110101111100011111100001 = Generada en paso 41
00111001000101100101000101100001 = Generada en paso 35
XOR 01000111010000110000011100001010 = Generada en paso 33
------------------------------------
10001001111110100010111000001110 Se rotará 1 bit a la izq.
------------------------------------
00010011111101000101110000011101 = Palabra para este paso

00000110000110000010000010110001 = (B and C)
01000000100001001000000110100101 = (B and D)
OR 00010000000000000000000011100001 = (C and D)
------------------------------------
01010110100111001010000111110101 = H(B, C, D)
01101010011011000001111111000000 = Valor de E
11111111000101000010011011001010 = A rotado a izq. 5 bits
Página 38

00010011111101000101110000011101 = Palabra generada


+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
10110101111100111010111000101100
------------------------------------
01100011001011010000000101111000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01010001101011110010100001101111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 49 632D0178 57F8A136 51AF286F BF5B26F1 5084C9E5


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01100011001011010000000101111000 = 632D0178
B = 01010111111110001010000100110110 = 57F8A136
C = 01010001101011110010100001101111 = 51AF286F
D = 10111111010110110010011011110001 = BF5B26F1
E = 01010000100001001100100111100101 = 5084C9E5

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 50 = (XOR de las cuatro palabras usadas
en los pasos 50-3, 50-8, 50-14 y
50-16) rotado a la izquierda 1 bit
10000100000100001111100011000011 = Generada en paso 47
01100001011101110111100001110010 = Generada en paso 42
00001111110111101011000101110111 = Generada en paso 36
XOR 10010000110111110001001011010001 = Generada en paso 34
------------------------------------
01111010011001100010001100010111 Se rotará 1 bit a la izq.
------------------------------------
11110100110011000100011000101110 = Palabra para este paso

01010001101010000010000000100110 = (B and C)
00010111010110000010000000110000 = (B and D)
OR 00010001000010110010000001100001 = (C and D)
------------------------------------
01010111111110110010000001110111 = H(B, C, D)
01010000100001001100100111100101 = Valor de E
01100101101000000010111100001100 = A rotado a izq. 5 bits
11110100110011000100011000101110 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
11110011000110011010101110100011
------------------------------------
10010010000010000001110001110010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
Página 39

La palabra B rotada 30 posiciones a la izquierda:


10010101111111100010100001001101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 50 92081C72 632D0178 95FE284D 51AF286F BF5B26F1


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10010010000010000001110001110010 = 92081C72
B = 01100011001011010000000101111000 = 632D0178
C = 10010101111111100010100001001101 = 95FE284D
D = 01010001101011110010100001101111 = 51AF286F
E = 10111111010110110010011011110001 = BF5B26F1

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 51 = (XOR de las cuatro palabras usadas
en los pasos 51-3, 51-8, 51-14 y
51-16) rotado a la izquierda 1 bit
11101001101111111001011101101111 = Generada en paso 48
10100001100100100010110000110111 = Generada en paso 43
01101010011011101000110100001111 = Generada en paso 37
XOR 00111001000101100101000101100001 = Generada en paso 35
------------------------------------
00011011010101010110011100110110 Se rotará 1 bit a la izq.
------------------------------------
00110110101010101100111001101100 = Palabra para este paso

00000001001011000000000001001000 = (B and C)
01000001001011010000000001101000 = (B and D)
OR 00010001101011100010100001001101 = (C and D)
------------------------------------
01010001101011110010100001101101 = H(B, C, D)
10111111010110110010011011110001 = Valor de E
01000001000000111000111001010010 = A rotado a izq. 5 bits
00110110101010101100111001101100 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
01101101101000010100000111100101
------------------------------------
00010111110101000110100011111000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00011000110010110100000001011110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 51 17D468F8 92081C72 18CB405E 95FE284D 51AF286F


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
Página 40

E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00010111110101000110100011111000 = 17D468F8
B = 10010010000010000001110001110010 = 92081C72
C = 00011000110010110100000001011110 = 18CB405E
D = 10010101111111100010100001001101 = 95FE284D
E = 01010001101011110010100001101111 = 51AF286F

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 52 = (XOR de las cuatro palabras usadas
en los pasos 52-3, 52-8, 52-14 y
52-16) rotado a la izquierda 1 bit
00010011111101000101110000011101 = Generada en paso 49
11101100100101110100001110000101 = Generada en paso 44
01111111010000010100001001100001 = Generada en paso 38
XOR 00001111110111101011000101110111 = Generada en paso 36
------------------------------------
10001111111111001110110010001110 Se rotará 1 bit a la izq.
------------------------------------
00011111111110011101100100011101 = Palabra para este paso

00010000000010000000000001010010 = (B and C)
10010000000010000000100001000000 = (B and D)
OR 00010000110010100000000001001100 = (C and D)
------------------------------------
10010000110010100000100001011110 = H(B, C, D)
01010001101011110010100001101111 = Valor de E
11111010100011010001111100000010 = A rotado a izq. 5 bits
00011111111110011101100100011101 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
00011010100011110101000111001011
------------------------------------
10001100000110111110010111001000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10100100100000100000011100011100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 52 8C1BE5C8 17D468F8 A482071C 18CB405E 95FE284D


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10001100000110111110010111001000 = 8C1BE5C8
B = 00010111110101000110100011111000 = 17D468F8
C = 10100100100000100000011100011100 = A482071C
D = 00011000110010110100000001011110 = 18CB405E
E = 10010101111111100010100001001101 = 95FE284D

Cálculo prévio de una palabra a partir del bloque 1:


Página 41

Palabra generada paso 53 = (XOR de las cuatro palabras usadas


en los pasos 53-3, 53-8, 53-14 y
53-16) rotado a la izquierda 1 bit
11110100110011000100011000101110 = Generada en paso 50
11111111100100111010001101110100 = Generada en paso 45
00110011100000110101001101100011 = Generada en paso 39
XOR 01101010011011101000110100001111 = Generada en paso 37
------------------------------------
01010010101100100011101100110110 Se rotará 1 bit a la izq.
------------------------------------
10100101011001000111011001101100 = Palabra para este paso

00000100100000000000000000011000 = (B and C)
00010000110000000100000001011000 = (B and D)
OR 00000000100000100000000000011100 = (C and D)
------------------------------------
00010100110000100100000001011100 = H(B, C, D)
10010101111111100010100001001101 = Valor de E
10000011011111001011100100010001 = A rotado a izq. 5 bits
10100101011001000111011001101100 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
11111001100110000100010001100000
------------------------------------
01100010101111010101010100000010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00000101111101010001101000111110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 53 62BD5502 8C1BE5C8 05F51A3E A482071C 18CB405E


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01100010101111010101010100000010 = 62BD5502
B = 10001100000110111110010111001000 = 8C1BE5C8
C = 00000101111101010001101000111110 = 05F51A3E
D = 10100100100000100000011100011100 = A482071C
E = 00011000110010110100000001011110 = 18CB405E

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 54 = (XOR de las cuatro palabras usadas
en los pasos 54-3, 54-8, 54-14 y
54-16) rotado a la izquierda 1 bit
00110110101010101100111001101100 = Generada en paso 51
00001100011110001011111110000100 = Generada en paso 46
01000101010110100000111000110010 = Generada en paso 40
XOR 01111111010000010100001001100001 = Generada en paso 38
------------------------------------
00000000110010010011110110111011 Se rotará 1 bit a la izq.
Página 42

------------------------------------
00000001100100100111101101110110 = Palabra para este paso

00000100000100010000000000001000 = (B and C)
10000100000000100000010100001000 = (B and D)
OR 00000100100000000000001000011100 = (C and D)
------------------------------------
10000100100100110000011100011100 = H(B, C, D)
00011000110010110100000001011110 = Valor de E
01010111101010101010000001001100 = A rotado a izq. 5 bits
00000001100100100111101101110110 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
00101110100100010001000111100110
------------------------------------
10000101101101110010000000011000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00100011000001101111100101110010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 54 85B72018 62BD5502 2306F972 05F51A3E A482071C


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10000101101101110010000000011000 = 85B72018
B = 01100010101111010101010100000010 = 62BD5502
C = 00100011000001101111100101110010 = 2306F972
D = 00000101111101010001101000111110 = 05F51A3E
E = 10100100100000100000011100011100 = A482071C

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 55 = (XOR de las cuatro palabras usadas
en los pasos 55-3, 55-8, 55-14 y
55-16) rotado a la izquierda 1 bit
00011111111110011101100100011101 = Generada en paso 52
10000100000100001111100011000011 = Generada en paso 47
11111011110101111100011111100001 = Generada en paso 41
XOR 00110011100000110101001101100011 = Generada en paso 39
------------------------------------
01010011101111011011010101011100 Se rotará 1 bit a la izq.
------------------------------------
10100111011110110110101010111000 = Palabra para este paso

00100010000001000101000100000010 = (B and C)
00000000101101010001000000000010 = (B and D)
OR 00000001000001000001100000110010 = (C and D)
------------------------------------
00100011101101010101100100110010 = H(B, C, D)
10100100100000100000011100011100 = Valor de E
Página 43

10110110111001000000001100010000 = A rotado a izq. 5 bits


10100111011110110110101010111000 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
11010110010010111110100000001110
------------------------------------
10110101101100101000101011110010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10011000101011110101010101000000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 55 B5B28AF2 85B72018 98AF5540 2306F972 05F51A3E


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10110101101100101000101011110010 = B5B28AF2
B = 10000101101101110010000000011000 = 85B72018
C = 10011000101011110101010101000000 = 98AF5540
D = 00100011000001101111100101110010 = 2306F972
E = 00000101111101010001101000111110 = 05F51A3E

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 56 = (XOR de las cuatro palabras usadas
en los pasos 56-3, 56-8, 56-14 y
56-16) rotado a la izquierda 1 bit
10100101011001000111011001101100 = Generada en paso 53
11101001101111111001011101101111 = Generada en paso 48
01100001011101110111100001110010 = Generada en paso 42
XOR 01000101010110100000111000110010 = Generada en paso 40
------------------------------------
01101000111101101001011101000011 Se rotará 1 bit a la izq.
------------------------------------
11010001111011010010111010000110 = Palabra para este paso

10000000101001110000000000000000 = (B and C)
00000001000001100010000000010000 = (B and D)
OR 00000000000001100101000101000000 = (C and D)
------------------------------------
10000001101001110111000101010000 = H(B, C, D)
00000101111101010001101000111110 = Valor de E
10110110010100010101111001010110 = A rotado a izq. 5 bits
11010001111011010010111010000110 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
01011011011011011111000000100000
------------------------------------
10011110111101101101010101000110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


Página 44

La palabra C pasa a ocupar el lugar de D


La palabra B rotada 30 posiciones a la izquierda:
00100001011011011100100000000110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 56 9EF6D546 B5B28AF2 216DC806 98AF5540 2306F972


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10011110111101101101010101000110 = 9EF6D546
B = 10110101101100101000101011110010 = B5B28AF2
C = 00100001011011011100100000000110 = 216DC806
D = 10011000101011110101010101000000 = 98AF5540
E = 00100011000001101111100101110010 = 2306F972

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 57 = (XOR de las cuatro palabras usadas
en los pasos 57-3, 57-8, 57-14 y
57-16) rotado a la izquierda 1 bit
00000001100100100111101101110110 = Generada en paso 54
00010011111101000101110000011101 = Generada en paso 49
10100001100100100010110000110111 = Generada en paso 43
XOR 11111011110101111100011111100001 = Generada en paso 41
------------------------------------
01001000001000111100110010111101 Se rotará 1 bit a la izq.
------------------------------------
10010000010001111001100101111010 = Palabra para este paso

00100001001000001000100000000010 = (B and C)
10010000101000100000000001000000 = (B and D)
OR 00000000001011010100000000000000 = (C and D)
------------------------------------
10110001101011111100100001000010 = H(B, C, D)
00100011000001101111100101110010 = Valor de E
11011110110110101010100011010011 = A rotado a izq. 5 bits
10010000010001111001100101111010 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
00101101101101010001000001001111
------------------------------------
11010010111101001100000011011101 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10101101011011001010001010111100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 57 D2F4C0DD 9EF6D546 AD6CA2BC 216DC806 98AF5540


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


Página 45

A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]


E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11010010111101001100000011011101 = D2F4C0DD
B = 10011110111101101101010101000110 = 9EF6D546
C = 10101101011011001010001010111100 = AD6CA2BC
D = 00100001011011011100100000000110 = 216DC806
E = 10011000101011110101010101000000 = 98AF5540

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 58 = (XOR de las cuatro palabras usadas
en los pasos 58-3, 58-8, 58-14 y
58-16) rotado a la izquierda 1 bit
10100111011110110110101010111000 = Generada en paso 55
11110100110011000100011000101110 = Generada en paso 50
11101100100101110100001110000101 = Generada en paso 44
XOR 01100001011101110111100001110010 = Generada en paso 42
------------------------------------
11011110010101110001011101100001 Se rotará 1 bit a la izq.
------------------------------------
10111100101011100010111011000011 = Palabra para este paso

10001100011001001000000000000100 = (B and C)
00000000011001001100000000000110 = (B and D)
OR 00100001011011001000000000000100 = (C and D)
------------------------------------
10101101011011001100000000000110 = H(B, C, D)
10011000101011110101010101000000 = Valor de E
01011110100110000001101110111010 = A rotado a izq. 5 bits
10111100101011100010111011000011 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
01010110000010010001110010010101
------------------------------------
11110000011111100001110010011111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10100111101111011011010101010001 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 58 F07E1C9F D2F4C0DD A7BDB551 AD6CA2BC 216DC806


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11110000011111100001110010011111 = F07E1C9F
B = 11010010111101001100000011011101 = D2F4C0DD
C = 10100111101111011011010101010001 = A7BDB551
D = 10101101011011001010001010111100 = AD6CA2BC
E = 00100001011011011100100000000110 = 216DC806
Página 46

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 59 = (XOR de las cuatro palabras usadas
en los pasos 59-3, 59-8, 59-14 y
59-16) rotado a la izquierda 1 bit
11010001111011010010111010000110 = Generada en paso 56
00110110101010101100111001101100 = Generada en paso 51
11111111100100111010001101110100 = Generada en paso 45
XOR 10100001100100100010110000110111 = Generada en paso 43
------------------------------------
10111001010001100110111110101001 Se rotará 1 bit a la izq.
------------------------------------
01110010100011001101111101010011 = Palabra para este paso

10000010101101001000000001010001 = (B and C)
10000000011001001000000010011100 = (B and D)
OR 10100101001011001010000000010000 = (C and D)
------------------------------------
10100111111111001010000011011101 = H(B, C, D)
00100001011011011100100000000110 = Valor de E
00001111110000111001001111111110 = A rotado a izq. 5 bits
01110010100011001101111101010011 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
00001010111111111100111101100011
------------------------------------
11011010110101101001100100010000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01110100101111010011000000110111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 59 DAD69910 F07E1C9F 74BD3037 A7BDB551 AD6CA2BC


---------------------------------------------------------------

H(B, C, D) = ((B and C) or (B and D) or (C and D))


A´= E + H(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11011010110101101001100100010000 = DAD69910
B = 11110000011111100001110010011111 = F07E1C9F
C = 01110100101111010011000000110111 = 74BD3037
D = 10100111101111011011010101010001 = A7BDB551
E = 10101101011011001010001010111100 = AD6CA2BC

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 60 = (XOR de las cuatro palabras usadas
en los pasos 60-3, 60-8, 60-14 y
60-16) rotado a la izquierda 1 bit
10010000010001111001100101111010 = Generada en paso 57
00011111111110011101100100011101 = Generada en paso 52
00001100011110001011111110000100 = Generada en paso 46
XOR 11101100100101110100001110000101 = Generada en paso 44
------------------------------------
Página 47

01101111010100011011110001100110 Se rotará 1 bit a la izq.


------------------------------------
11011110101000110111100011001100 = Palabra para este paso

01110000001111000001000000010111 = (B and C)
10100000001111000001010000010001 = (B and D)
OR 00100100101111010011000000010001 = (C and D)
------------------------------------
11110100101111010011010000010111 = H(B, C, D)
10101101011011001010001010111100 = Valor de E
01011010110100110010001000011011 = A rotado a izq. 5 bits
11011110101000110111100011001100 = Palabra generada
+ 01011010100000100111100110011001 = Constante 8F1BBCDC
------------------------------------
10011001011111011001010001111000
------------------------------------
01101010101111000010111010010110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11111100000111111000011100100111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 60 6ABC2E96 DAD69910 FC1F8727 74BD3037 A7BDB551


---------------------------------------------------------------

Cuarta Vuelta:
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01101010101111000010111010010110 = 6ABC2E96
B = 11011010110101101001100100010000 = DAD69910
C = 11111100000111111000011100100111 = FC1F8727
D = 01110100101111010011000000110111 = 74BD3037
E = 10100111101111011011010101010001 = A7BDB551

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 61 = (XOR de las cuatro palabras usadas
en los pasos 61-3, 61-8, 61-14 y
61-16) rotado a la izquierda 1 bit
10111100101011100010111011000011 = Generada en paso 58
10100101011001000111011001101100 = Generada en paso 53
10000100000100001111100011000011 = Generada en paso 47
XOR 11111111100100111010001101110100 = Generada en paso 45
------------------------------------
01100010010010010000001100011000 Se rotará 1 bit a la izq.
------------------------------------
11000100100100100000011000110000 = Palabra para este paso

11011010110101101001100100010000 = B
11111100000111111000011100100111 = C
XOR 01110100101111010011000000110111 = D
------------------------------------
Página 48

01010010011101000010111000000000 = I(B, C, D)
10100111101111011011010101010001 = Valor de E
01010111100001011101001011001101 = A rotado a izq. 5 bits
11000100100100100000011000110000 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
11100000101011000111111000100100
------------------------------------
11100000101011000111111000100100 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00110110101101011010011001000100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 61 E0AC7E24 6ABC2E96 36B5A644 FC1F8727 74BD3037


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11100000101011000111111000100100 = E0AC7E24
B = 01101010101111000010111010010110 = 6ABC2E96
C = 00110110101101011010011001000100 = 36B5A644
D = 11111100000111111000011100100111 = FC1F8727
E = 01110100101111010011000000110111 = 74BD3037

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 62 = (XOR de las cuatro palabras usadas
en los pasos 62-3, 62-8, 62-14 y
62-16) rotado a la izquierda 1 bit
01110010100011001101111101010011 = Generada en paso 59
00000001100100100111101101110110 = Generada en paso 54
11101001101111111001011101101111 = Generada en paso 48
XOR 00001100011110001011111110000100 = Generada en paso 46
------------------------------------
10010110110110011000110011001110 Se rotará 1 bit a la izq.
------------------------------------
00101101101100110001100110011101 = Palabra para este paso

01101010101111000010111010010110 = B
00110110101101011010011001000100 = C
XOR 11111100000111111000011100100111 = D
------------------------------------
10100000000101100000111111110101 = I(B, C, D)
01110100101111010011000000110111 = Valor de E
00010101100011111100010010011100 = A rotado a izq. 5 bits
00101101101100110001100110011101 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
00100010011110001110000000111011
------------------------------------
00100010011110001110000000111011 Es ahora la palabra A
Página 49

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10011010101011110000101110100101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 62 2278E03B E0AC7E24 9AAF0BA5 36B5A644 FC1F8727


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00100010011110001110000000111011 = 2278E03B
B = 11100000101011000111111000100100 = E0AC7E24
C = 10011010101011110000101110100101 = 9AAF0BA5
D = 00110110101101011010011001000100 = 36B5A644
E = 11111100000111111000011100100111 = FC1F8727

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 63 = (XOR de las cuatro palabras usadas
en los pasos 63-3, 63-8, 63-14 y
63-16) rotado a la izquierda 1 bit
11011110101000110111100011001100 = Generada en paso 60
10100111011110110110101010111000 = Generada en paso 55
00010011111101000101110000011101 = Generada en paso 49
XOR 10000100000100001111100011000011 = Generada en paso 47
------------------------------------
11101110001111001011011010101010 Se rotará 1 bit a la izq.
------------------------------------
11011100011110010110110101010101 = Palabra para este paso

11100000101011000111111000100100 = B
10011010101011110000101110100101 = C
XOR 00110110101101011010011001000100 = D
------------------------------------
01001100101101101101001111000101 = I(B, C, D)
11111100000111111000011100100111 = Valor de E
01001111000111000000011101100100 = A rotado a izq. 5 bits
11011100011110010110110101010101 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
00111110110011101001000101111011
------------------------------------
00111110110011101001000101111011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00111000001010110001111110001001 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 63 3ECE917B 2278E03B 382B1F89 9AAF0BA5 36B5A644


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
Página 50

E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00111110110011101001000101111011 = 3ECE917B
B = 00100010011110001110000000111011 = 2278E03B
C = 00111000001010110001111110001001 = 382B1F89
D = 10011010101011110000101110100101 = 9AAF0BA5
E = 00110110101101011010011001000100 = 36B5A644

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 64 = (XOR de las cuatro palabras usadas
en los pasos 64-3, 64-8, 64-14 y
64-16) rotado a la izquierda 1 bit
11000100100100100000011000110000 = Generada en paso 61
11010001111011010010111010000110 = Generada en paso 56
11110100110011000100011000101110 = Generada en paso 50
XOR 11101001101111111001011101101111 = Generada en paso 48
------------------------------------
00001000000011001111100111110111 Se rotará 1 bit a la izq.
------------------------------------
00010000000110011111001111101110 = Palabra para este paso

00100010011110001110000000111011 = B
00111000001010110001111110001001 = C
XOR 10011010101011110000101110100101 = D
------------------------------------
10000000111111001111010000010111 = I(B, C, D)
00110110101101011010011001000100 = Valor de E
11011001110100100010111101100111 = A rotado a izq. 5 bits
00010000000110011111001111101110 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
01101100000000010111111110000110
------------------------------------
01101100000000010111111110000110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11001000100111100011100000001110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 64 6C017F86 3ECE917B C89E380E 382B1F89 9AAF0BA5


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01101100000000010111111110000110 = 6C017F86
B = 00111110110011101001000101111011 = 3ECE917B
C = 11001000100111100011100000001110 = C89E380E
D = 00111000001010110001111110001001 = 382B1F89
E = 10011010101011110000101110100101 = 9AAF0BA5

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 65 = (XOR de las cuatro palabras usadas
Página 51

en los pasos 65-3, 65-8, 65-14 y


65-16) rotado a la izquierda 1 bit
00101101101100110001100110011101 = Generada en paso 62
10010000010001111001100101111010 = Generada en paso 57
00110110101010101100111001101100 = Generada en paso 51
XOR 00010011111101000101110000011101 = Generada en paso 49
------------------------------------
10011000101010100001001010010110 Se rotará 1 bit a la izq.
------------------------------------
00110001010101000010010100101101 = Palabra para este paso

00111110110011101001000101111011 = B
11001000100111100011100000001110 = C
XOR 00111000001010110001111110001001 = D
------------------------------------
11001110011110111011011011111100 = I(B, C, D)
10011010101011110000101110100101 = Valor de E
10000000001011111111000011001101 = A rotado a izq. 5 bits
00110001010101000010010100101101 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
11100101000100011001101001110001
------------------------------------
11100101000100011001101001110001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11001111101100111010010001011110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 65 E5119A71 6C017F86 CFB3A45E C89E380E 382B1F89


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11100101000100011001101001110001 = E5119A71
B = 01101100000000010111111110000110 = 6C017F86
C = 11001111101100111010010001011110 = CFB3A45E
D = 11001000100111100011100000001110 = C89E380E
E = 00111000001010110001111110001001 = 382B1F89

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 66 = (XOR de las cuatro palabras usadas
en los pasos 66-3, 66-8, 66-14 y
66-16) rotado a la izquierda 1 bit
11011100011110010110110101010101 = Generada en paso 63
10111100101011100010111011000011 = Generada en paso 58
00011111111110011101100100011101 = Generada en paso 52
XOR 11110100110011000100011000101110 = Generada en paso 50
------------------------------------
10001011111000101101110010100101 Se rotará 1 bit a la izq.
------------------------------------
00010111110001011011100101001011 = Palabra para este paso
Página 52

01101100000000010111111110000110 = B
11001111101100111010010001011110 = C
XOR 11001000100111100011100000001110 = D
------------------------------------
01101011001011001110001111010110 = I(B, C, D)
00111000001010110001111110001001 = Valor de E
10100010001100110100111000111100 = A rotado a izq. 5 bits
00010111110001011011100101001011 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
00100111101100111100110010111100
------------------------------------
00100111101100111100110010111100 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10011011000000000101111111100001 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 66 27B3CCBC E5119A71 9B005FE1 CFB3A45E C89E380E


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00100111101100111100110010111100 = 27B3CCBC
B = 11100101000100011001101001110001 = E5119A71
C = 10011011000000000101111111100001 = 9B005FE1
D = 11001111101100111010010001011110 = CFB3A45E
E = 11001000100111100011100000001110 = C89E380E

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 67 = (XOR de las cuatro palabras usadas
en los pasos 67-3, 67-8, 67-14 y
67-16) rotado a la izquierda 1 bit
00010000000110011111001111101110 = Generada en paso 64
01110010100011001101111101010011 = Generada en paso 59
10100101011001000111011001101100 = Generada en paso 53
XOR 00110110101010101100111001101100 = Generada en paso 51
------------------------------------
11110001010110111001010010111101 Se rotará 1 bit a la izq.
------------------------------------
11100010101101110010100101111011 = Palabra para este paso

11100101000100011001101001110001 = B
10011011000000000101111111100001 = C
XOR 11001111101100111010010001011110 = D
------------------------------------
10110001101000100110000111001110 = I(B, C, D)
11001000100111100011100000001110 = Valor de E
11110110011110011001011110000100 = A rotado a izq. 5 bits
11100010101101110010100101111011 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
Página 53

------------------------------------
00011101110101000001110010110001
------------------------------------
00011101110101000001110010110001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01111001010001000110011010011100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 67 1DD41CB1 27B3CCBC 7944669C 9B005FE1 CFB3A45E


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00011101110101000001110010110001 = 1DD41CB1
B = 00100111101100111100110010111100 = 27B3CCBC
C = 01111001010001000110011010011100 = 7944669C
D = 10011011000000000101111111100001 = 9B005FE1
E = 11001111101100111010010001011110 = CFB3A45E

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 68 = (XOR de las cuatro palabras usadas
en los pasos 68-3, 68-8, 68-14 y
68-16) rotado a la izquierda 1 bit
00110001010101000010010100101101 = Generada en paso 65
11011110101000110111100011001100 = Generada en paso 60
00000001100100100111101101110110 = Generada en paso 54
XOR 00011111111110011101100100011101 = Generada en paso 52
------------------------------------
11110001100111001111111110001010 Se rotará 1 bit a la izq.
------------------------------------
11100011001110011111111100010101 = Palabra para este paso

00100111101100111100110010111100 = B
01111001010001000110011010011100 = C
XOR 10011011000000000101111111100001 = D
------------------------------------
11000101111101111111010111000001 = I(B, C, D)
11001111101100111010010001011110 = Valor de E
10111010100000111001011000100011 = A rotado a izq. 5 bits
11100011001110011111111100010101 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
11111101110010111111000100101101
------------------------------------
11111101110010111111000100101101 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00001001111011001111001100101111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B
Página 54

Salida: t = 68 FDCBF12D 1DD41CB1 09ECF32F 7944669C 9B005FE1


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11111101110010111111000100101101 = FDCBF12D
B = 00011101110101000001110010110001 = 1DD41CB1
C = 00001001111011001111001100101111 = 09ECF32F
D = 01111001010001000110011010011100 = 7944669C
E = 10011011000000000101111111100001 = 9B005FE1

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 69 = (XOR de las cuatro palabras usadas
en los pasos 69-3, 69-8, 69-14 y
69-16) rotado a la izquierda 1 bit
00010111110001011011100101001011 = Generada en paso 66
11000100100100100000011000110000 = Generada en paso 61
10100111011110110110101010111000 = Generada en paso 55
XOR 10100101011001000111011001101100 = Generada en paso 53
------------------------------------
11010001010010001010001110101111 Se rotará 1 bit a la izq.
------------------------------------
10100010100100010100011101011111 = Palabra para este paso

00011101110101000001110010110001 = B
00001001111011001111001100101111 = C
XOR 01111001010001000110011010011100 = D
------------------------------------
01101101011111001000100100000010 = I(B, C, D)
10011011000000000101111111100001 = Valor de E
10111001011111100010010110111111 = A rotado a izq. 5 bits
10100010100100010100011101011111 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
00101110111011110001011111010111
------------------------------------
00101110111011110001011111010111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01000111011101010000011100101100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 69 2EEF17D7 FDCBF12D 4775072C 09ECF32F 7944669C


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00101110111011110001011111010111 = 2EEF17D7
B = 11111101110010111111000100101101 = FDCBF12D
C = 01000111011101010000011100101100 = 4775072C
Página 55

D = 00001001111011001111001100101111 = 09ECF32F
E = 01111001010001000110011010011100 = 7944669C

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 70 = (XOR de las cuatro palabras usadas
en los pasos 70-3, 70-8, 70-14 y
70-16) rotado a la izquierda 1 bit
11100010101101110010100101111011 = Generada en paso 67
00101101101100110001100110011101 = Generada en paso 62
11010001111011010010111010000110 = Generada en paso 56
XOR 00000001100100100111101101110110 = Generada en paso 54
------------------------------------
00011111011110110110010100010110 Se rotará 1 bit a la izq.
------------------------------------
00111110111101101100101000101100 = Palabra para este paso

11111101110010111111000100101101 = B
01000111011101010000011100101100 = C
XOR 00001001111011001111001100101111 = D
------------------------------------
10110011010100100000010100101110 = I(B, C, D)
01111001010001000110011010011100 = Valor de E
11011101111000101111101011100101 = A rotado a izq. 5 bits
00111110111101101100101000101100 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
00010011110100101111001010110001
------------------------------------
00010011110100101111001010110001 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01111111011100101111110001001011 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 70 13D2F2B1 2EEF17D7 7F72FC4B 4775072C 09ECF32F


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00010011110100101111001010110001 = 13D2F2B1
B = 00101110111011110001011111010111 = 2EEF17D7
C = 01111111011100101111110001001011 = 7F72FC4B
D = 01000111011101010000011100101100 = 4775072C
E = 00001001111011001111001100101111 = 09ECF32F

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 71 = (XOR de las cuatro palabras usadas
en los pasos 71-3, 71-8, 71-14 y
71-16) rotado a la izquierda 1 bit
11100011001110011111111100010101 = Generada en paso 68
11011100011110010110110101010101 = Generada en paso 63
10010000010001111001100101111010 = Generada en paso 57
Página 56

XOR 10100111011110110110101010111000 = Generada en paso 55


------------------------------------
00001000011111000110000110000010 Se rotará 1 bit a la izq.
------------------------------------
00010000111110001100001100000100 = Palabra para este paso

00101110111011110001011111010111 = B
01111111011100101111110001001011 = C
XOR 01000111011101010000011100101100 = D
------------------------------------
00010110111010001110110010110000 = I(B, C, D)
00001001111011001111001100101111 = Valor de E
01111010010111100101011000100010 = A rotado a izq. 5 bits
00010000111110001100001100000100 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
01110110100011111011101011011011
------------------------------------
01110110100011111011101011011011 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11001011101110111100010111110101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 71 768FBADB 13D2F2B1 CBBBC5F5 7F72FC4B 4775072C


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01110110100011111011101011011011 = 768FBADB
B = 00010011110100101111001010110001 = 13D2F2B1
C = 11001011101110111100010111110101 = CBBBC5F5
D = 01111111011100101111110001001011 = 7F72FC4B
E = 01000111011101010000011100101100 = 4775072C

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 72 = (XOR de las cuatro palabras usadas
en los pasos 72-3, 72-8, 72-14 y
72-16) rotado a la izquierda 1 bit
10100010100100010100011101011111 = Generada en paso 69
00010000000110011111001111101110 = Generada en paso 64
10111100101011100010111011000011 = Generada en paso 58
XOR 11010001111011010010111010000110 = Generada en paso 56
------------------------------------
11011111110010111011010011110100 Se rotará 1 bit a la izq.
------------------------------------
10111111100101110110100111101001 = Palabra para este paso

00010011110100101111001010110001 = B
11001011101110111100010111110101 = C
XOR 01111111011100101111110001001011 = D
------------------------------------
Página 57

10100111000110111100101100001111 = I(B, C, D)
01000111011101010000011100101100 = Valor de E
11010001111101110101101101101110 = A rotado a izq. 5 bits
10111111100101110110100111101001 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
01001010100000100101100101101000
------------------------------------
01001010100000100101100101101000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01000100111101001011110010101100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 72 4A825968 768FBADB 44F4BCAC CBBBC5F5 7F72FC4B


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01001010100000100101100101101000 = 4A825968
B = 01110110100011111011101011011011 = 768FBADB
C = 01000100111101001011110010101100 = 44F4BCAC
D = 11001011101110111100010111110101 = CBBBC5F5
E = 01111111011100101111110001001011 = 7F72FC4B

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 73 = (XOR de las cuatro palabras usadas
en los pasos 73-3, 73-8, 73-14 y
73-16) rotado a la izquierda 1 bit
00111110111101101100101000101100 = Generada en paso 70
00110001010101000010010100101101 = Generada en paso 65
01110010100011001101111101010011 = Generada en paso 59
XOR 10010000010001111001100101111010 = Generada en paso 57
------------------------------------
11101101011010011010100100101000 Se rotará 1 bit a la izq.
------------------------------------
11011010110100110101001001010001 = Palabra para este paso

01110110100011111011101011011011 = B
01000100111101001011110010101100 = C
XOR 11001011101110111100010111110101 = D
------------------------------------
11111001110000001100001110000010 = I(B, C, D)
01111111011100101111110001001011 = Valor de E
01010000010010110010110100001001 = A rotado a izq. 5 bits
11011010110100110101001001010001 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
01101110101101010000000011111101
------------------------------------
01101110101101010000000011111101 Es ahora la palabra A
Página 58

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11011101101000111110111010110110 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 73 6EB500FD 4A825968 DDA3EEB6 44F4BCAC CBBBC5F5


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01101110101101010000000011111101 = 6EB500FD
B = 01001010100000100101100101101000 = 4A825968
C = 11011101101000111110111010110110 = DDA3EEB6
D = 01000100111101001011110010101100 = 44F4BCAC
E = 11001011101110111100010111110101 = CBBBC5F5

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 74 = (XOR de las cuatro palabras usadas
en los pasos 74-3, 74-8, 74-14 y
74-16) rotado a la izquierda 1 bit
00010000111110001100001100000100 = Generada en paso 71
00010111110001011011100101001011 = Generada en paso 66
11011110101000110111100011001100 = Generada en paso 60
XOR 10111100101011100010111011000011 = Generada en paso 58
------------------------------------
01100101001100000010110001000000 Se rotará 1 bit a la izq.
------------------------------------
11001010011000000101100010000000 = Palabra para este paso

01001010100000100101100101101000 = B
11011101101000111110111010110110 = C
XOR 01000100111101001011110010101100 = D
------------------------------------
11010011110101010000101101110010 = I(B, C, D)
11001011101110111100010111110101 = Valor de E
11010110101000000001111110101101 = A rotado a izq. 5 bits
11001010011000000101100010000000 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
00001010111101000000101101101010
------------------------------------
00001010111101000000101101101010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00010010101000001001011001011010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 74 0AF40B6A 6EB500FD 12A0965A DDA3EEB6 44F4BCAC


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
Página 59

E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00001010111101000000101101101010 = 0AF40B6A
B = 01101110101101010000000011111101 = 6EB500FD
C = 00010010101000001001011001011010 = 12A0965A
D = 11011101101000111110111010110110 = DDA3EEB6
E = 01000100111101001011110010101100 = 44F4BCAC

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 75 = (XOR de las cuatro palabras usadas
en los pasos 75-3, 75-8, 75-14 y
75-16) rotado a la izquierda 1 bit
10111111100101110110100111101001 = Generada en paso 72
11100010101101110010100101111011 = Generada en paso 67
11000100100100100000011000110000 = Generada en paso 61
XOR 01110010100011001101111101010011 = Generada en paso 59
------------------------------------
11101011001111101001100111110001 Se rotará 1 bit a la izq.
------------------------------------
11010110011111010011001111100011 = Palabra para este paso

01101110101101010000000011111101 = B
00010010101000001001011001011010 = C
XOR 11011101101000111110111010110110 = D
------------------------------------
10100001101101100111100000010001 = I(B, C, D)
01000100111101001011110010101100 = Valor de E
01011110100000010110110101000001 = A rotado a izq. 5 bits
11010110011111010011001111100011 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
11100110000011001001011110110111
------------------------------------
11100110000011001001011110110111 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
01011011101011010100000000111111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 75 E60C97B7 0AF40B6A 5BAD403F 12A0965A DDA3EEB6


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 11100110000011001001011110110111 = E60C97B7
B = 00001010111101000000101101101010 = 0AF40B6A
C = 01011011101011010100000000111111 = 5BAD403F
D = 00010010101000001001011001011010 = 12A0965A
E = 11011101101000111110111010110110 = DDA3EEB6

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 76 = (XOR de las cuatro palabras usadas
Página 60

en los pasos 76-3, 76-8, 76-14 y


76-16) rotado a la izquierda 1 bit
11011010110100110101001001010001 = Generada en paso 73
11100011001110011111111100010101 = Generada en paso 68
00101101101100110001100110011101 = Generada en paso 62
XOR 11011110101000110111100011001100 = Generada en paso 60
------------------------------------
11001010111110101100110000010101 Se rotará 1 bit a la izq.
------------------------------------
10010101111101011001100000101011 = Palabra para este paso

00001010111101000000101101101010 = B
01011011101011010100000000111111 = C
XOR 00010010101000001001011001011010 = D
------------------------------------
01000011111110011101110100001111 = I(B, C, D)
11011101101000111110111010110110 = Valor de E
11000001100100101111011011111100 = A rotado a izq. 5 bits
10010101111101011001100000101011 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
01000011100010010001110011000010
------------------------------------
01000011100010010001110011000010 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10000010101111010000001011011010 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 76 43891CC2 E60C97B7 82BD02DA 5BAD403F 12A0965A


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01000011100010010001110011000010 = 43891CC2
B = 11100110000011001001011110110111 = E60C97B7
C = 10000010101111010000001011011010 = 82BD02DA
D = 01011011101011010100000000111111 = 5BAD403F
E = 00010010101000001001011001011010 = 12A0965A

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 77 = (XOR de las cuatro palabras usadas
en los pasos 77-3, 77-8, 77-14 y
77-16) rotado a la izquierda 1 bit
11001010011000000101100010000000 = Generada en paso 74
10100010100100010100011101011111 = Generada en paso 69
11011100011110010110110101010101 = Generada en paso 63
XOR 11000100100100100000011000110000 = Generada en paso 61
------------------------------------
01110000000110100111010010111010 Se rotará 1 bit a la izq.
------------------------------------
11100000001101001110100101110100 = Palabra para este paso
Página 61

11100110000011001001011110110111 = B
10000010101111010000001011011010 = C
XOR 01011011101011010100000000111111 = D
------------------------------------
00111111000111001101010101010010 = I(B, C, D)
00010010101000001001011001011010 = Valor de E
01110001001000111001100001001000 = A rotado a izq. 5 bits
11100000001101001110100101110100 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
01101101011110001010111100111110
------------------------------------
01101101011110001010111100111110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
11111001100000110010010111101101 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 77 6D78AF3E 43891CC2 F98325ED 82BD02DA 5BAD403F


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 01101101011110001010111100111110 = 6D78AF3E
B = 01000011100010010001110011000010 = 43891CC2
C = 11111001100000110010010111101101 = F98325ED
D = 10000010101111010000001011011010 = 82BD02DA
E = 01011011101011010100000000111111 = 5BAD403F

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 78 = (XOR de las cuatro palabras usadas
en los pasos 78-3, 78-8, 78-14 y
78-16) rotado a la izquierda 1 bit
11010110011111010011001111100011 = Generada en paso 75
00111110111101101100101000101100 = Generada en paso 70
00010000000110011111001111101110 = Generada en paso 64
XOR 00101101101100110001100110011101 = Generada en paso 62
------------------------------------
11010101001000010001001110111100 Se rotará 1 bit a la izq.
------------------------------------
10101010010000100010011101111001 = Palabra para este paso

01000011100010010001110011000010 = B
11111001100000110010010111101101 = C
XOR 10000010101111010000001011011010 = D
------------------------------------
00111000101101110011101111110101 = I(B, C, D)
01011011101011010100000000111111 = Valor de E
10101111000101011110011111001101 = A rotado a izq. 5 bits
10101010010000100010011101111001 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
Página 62

------------------------------------
10111000000111110100110101010000
------------------------------------
10111000000111110100110101010000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10010000111000100100011100110000 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 78 B81F4D50 6D78AF3E 90E24730 F98325ED 82BD02DA


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 10111000000111110100110101010000 = B81F4D50
B = 01101101011110001010111100111110 = 6D78AF3E
C = 10010000111000100100011100110000 = 90E24730
D = 11111001100000110010010111101101 = F98325ED
E = 10000010101111010000001011011010 = 82BD02DA

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 79 = (XOR de las cuatro palabras usadas
en los pasos 79-3, 79-8, 79-14 y
79-16) rotado a la izquierda 1 bit
10010101111101011001100000101011 = Generada en paso 76
00010000111110001100001100000100 = Generada en paso 71
00110001010101000010010100101101 = Generada en paso 65
XOR 11011100011110010110110101010101 = Generada en paso 63
------------------------------------
01101000001000000001001101010111 Se rotará 1 bit a la izq.
------------------------------------
11010000010000000010011010101110 = Palabra para este paso

01101101011110001010111100111110 = B
10010000111000100100011100110000 = C
XOR 11111001100000110010010111101101 = D
------------------------------------
00000100000110011100110111100011 = I(B, C, D)
10000010101111010000001011011010 = Valor de E
00000011111010011010101000010111 = A rotado a izq. 5 bits
11010000010000000010011010101110 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
00100101011000110110001101011000
------------------------------------
00100101011000110110001101011000 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
10011011010111100010101111001111 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B
Página 63

Salida: t = 79 25636358 B81F4D50 9B5E2BCF 90E24730 F98325ED


---------------------------------------------------------------
I(B, C, D) = (B xor C xor D
A´= E + I(B, C, D) + (A <<< 5) + M[i] + K[j]
E´= D; D´= C; C´= (B <<< 30); B´= A

A = 00100101011000110110001101011000 = 25636358
B = 10111000000111110100110101010000 = B81F4D50
C = 10011011010111100010101111001111 = 9B5E2BCF
D = 10010000111000100100011100110000 = 90E24730
E = 11111001100000110010010111101101 = F98325ED

Cálculo prévio de una palabra a partir del bloque 1:


Palabra generada paso 80 = (XOR de las cuatro palabras usadas
en los pasos 80-3, 80-8, 80-14 y
80-16) rotado a la izquierda 1 bit
11100000001101001110100101110100 = Generada en paso 77
10111111100101110110100111101001 = Generada en paso 72
00010111110001011011100101001011 = Generada en paso 66
XOR 00010000000110011111001111101110 = Generada en paso 64
------------------------------------
01011000011111111100101000111000 Se rotará 1 bit a la izq.
------------------------------------
10110000111111111001010001110000 = Palabra para este paso

10111000000111110100110101010000 = B
10011011010111100010101111001111 = C
XOR 10010000111000100100011100110000 = D
------------------------------------
10110011101000110010000110101111 = I(B, C, D)
11111001100000110010010111101101 = Valor de E
10101100011011000110101100000100 = A rotado a izq. 5 bits
10110000111111111001010001110000 = Palabra generada
+ 01011010100000100111100110011001 = Constante CA62C1D6
------------------------------------
11010100111101010000100011100110
------------------------------------
11010100111101010000100011100110 Es ahora la palabra A

La palabra D pasa a ocupar el lugar de E


La palabra C pasa a ocupar el lugar de D
La palabra B rotada 30 posiciones a la izquierda:
00101110000001111101001101010100 Es ahora la palabra C
La palabra A pasa a ocupar el lugar de B

Salida: t = 80 D4F508E6 25636358 2E07D354 9B5E2BCF 90E24730


---------------------------------------------------------------

Actualización final: (valores iniciales + valores paso 80)


67452301 EFCDAB89 98BADCFE 10325476 C3D2E1F0
+ D4F508E6 25636358 2E07D354 9B5E2BCF 90E24730
----------------------------------------------
3C3A2BE7 15310EE1 C6C2B052 AB908045 54B52920
Página 64

======== Valor hash o resumen final del primer bloque ========


Luego el resumen es:
3C3A2BE715310EE1C6C2B052AB90804554B52920

S-ar putea să vă placă și