Laboratórios
DRT-240 BITS
Seg 19 Abr 2004 02:00 |
- Detalhes
- Categoria: Laboratório de Criptografia
- Atualização: Quinta, 14 Janeiro 2010 14:00
- Autor: Yugi
- Acessos: 13613
O CICLO DE CIFRAGEM
As quatro fases de cada rodada:
A = (A + CHAVE[1]) MOD 65536 B = (B - CHAVE[2] + 65536) MOD 65536 C = (C - CHAVE[3] + 65536) MOD 65536 D = (D + CHAVE[4]) MOD 65536
X1 = A DIV 256 X2 = C MOD 256 X3 = A MOD 256 X4 = C DIV 256 A = (X2 * 256) + X1 C = (X3 * 256) + X4 X1 = B DIV 256 X2 = D MOD 256 X3 = B MOD 256 X4 = D DIV 256 B = (X2 * 256) + X1 D = (X3 * 256) + X4
ACL = C XOR 27809 ACL = (ACL + (D * CHAVE[5])) MOD 65536 A = A XOR ACL B = (B + A) MOD 65536 ACL = (A * CHAVE[6]) ACL = (ACL + (B XOR 30561)) MOD 65536 C = ((C + ACL) MOD 65536) XOR B ACL = (C DIV 256) + ((B MOD 256) * 256) ACL = ACL XOR A D = ((D XOR B) + ACL) MOD 65536
ACL = A A = B B = C C = D D = ACL
Após a oitava rodada faz-se o processo da 1 parte da rodada, ou seja, soma e subtração. Na primeira rodada utilizamos as chaves de 1 até 6, na 2ª de 7 até 12, na 3ª de 13 até 18, na 4ª de 19 até 24, na 5ª rodada de 25 até 30, na 6ª de 31 até 36, na 7ª de 37 até 42, e na oitava rodada de 43 até 48. As Sub-chaves de números 49, 50, 51 e 52 são utilizadas na última parte da cifragem que é executada após a última rodada e corresponde a 1ª fase da rodada, ou seja:
A = (A + CHAVE[49]) MOD 65536 B = (B - CHAVE[50] + 65536) MOD 65536 C = (C - CHAVE[51] + 65536) MOD 65536 D = (D + CHAVE[52]) MOD 65536
Após este processo o bloco de 64 bits está cifrado. O ciclo da cifragem pode ser representado da seguinte forma:
----------------- A = (A + CHAVE[1]) MOD 65536 | B = (B - CHAVE[2] + 65536) MOD 65536 | C = (C - CHAVE[3] + 65536) MOD 65536 | D = (D + CHAVE[4]) MOD 65536 | | X1 = A DIV 256 | X2 = C MOD 256 | X3 = A MOD 256 | X4 = C DIV 256 | A = (X2 * 256) + X1 | C = (X3 * 256) + X4 | X1 = B DIV 256 | X2 = D MOD 256 | X3 = B MOD 256 | X4 = D DIV 256 | B = (X2 * 256) + X1 | D = (X3 * 256) + X4 | | ----- 8 voltas ACL = C XOR 27809 | ACL = (ACL + (D * CHAVE[5])) MOD 65536 | A = A XOR ACL | B = (B + A) MOD 65536 | | ACL = (A * CHAVE[6]) | ACL = (ACL + (B XOR 30561)) MOD 65536 | C = ((C + ACL) MOD 65536) XOR B | | ACL = (C DIV 256) + ((B MOD 256) * 256) | ACL = ACL XOR A | D = ((D XOR B) + ACL) MOD 65536 | | ACL = A | A = B | B = C | C = D | D = ACL | ------------------------------------------------- | | A = (A + CHAVE[49]) MOD 65536 B = (B - CHAVE[50] + 65536) MOD 65536 C = (C - CHAVE[51] + 65536) MOD 65536 D = (D + CHAVE[52]) MOD 65536