Twofish
ROTEIRO
INTRODUÇÃO
O
ALGORITMO A ESTRUTURA FEISTEL A TÉCNICA WITHENING AS S-BOXES AS FUNÇÕES F e G MDS E PHP CONCLUSÃO
INTRODUÇÃO
O TWOFISH É UM ALGORITMO SIMÉTRICO (CHAVE ÚNICA), CRIADO NO ANO DE 1997 POR BRUCE SCHNEIER, JOHN KELSEY, DOUG WHITING, DAVID WAGNER, CHRIS HALE e NIELS FERGUNSON – SURGINDO A PARTIR DE UMA TENTATIVA DE MELHORAR O ARCAICO BLOWFISH. FOI SELECIONADO PELO NIST (INSTITUTO NACIONAL DE PADRÕES E TECNOLÓGICO) PARA CONCORRER COMO ALGORITMO PADRÃO DOS EUA.
O ALGORITMO
BLOCOS
DE 128 BITS; CHAVES ENTRE 128, 192 OU 256 BITS; 16 INTERAÇÕES; RÁPIDO, FLEXÍVEL E SEGURO; SEM PATENTE; SEM DIREITOS AUTORAIS; ALGORITMO LIVRE;
O FUNCIONAMENTO TWOFISH
A ESTRUTURA FEISTEL
A ESTRUTURA FEISTEL É UMA ESTRUTURA SIMÉTRICA PARA ENCRIPTAÇÃO DE DADOS. O SEU ALGORTIMO SE BASEIA NA DIVISÃO DE 2 BLOCOS (DIREITO E ESQUERDO) DE MESMO TAMANHO QUE SÃO PROCESSADOS INDEPENDENTEMENTE. A CADA RODADA DE CIFRAÇÃO APENAS 1 (UM) DOS BLOCOS SOFRE INFLUÊNCIA DA CHAVE. FOI CRIADO POR HORST FEISTEL NO PROJETO LÚCIFER E POPULARIZADO PELO DES.
TÉCNICA DE WHITENING
É UMA TÉCNICA APLICADA PARA ESCONDER A ENTRADA E SAÍDA DA PRIMEIRA E A ÚLTIMA INTERAÇÃO. SÃO CRIADAS 2 (DUAS) SUBCHAVES, DO MESMO MODO QUE FORAM CRIADAS AS CHAVES, E FEITA UM XOR ENTRE ELAS.
FUNÇÃO F
ESSA FUNÇÃO É UMA PERMUTAÇÃO (TROCA) DE 64 BITS DEPENDENTE DA CHAVE;
RECEBE AS ENTRADAS R0, R1 E r, ONDE r É O Nº DE INTERAÇÕES NA SELEÇÃO DA SUB-CHAVE CORRETA;
R0 GERA T0 E R1 (8 BITS PARA A ESQUERDA) GERANDO T1; T0 E T1 SÃO COMBINADOS POR PHT GERANDO CHAVES F0 E F1, COMO SAÍDAS DE F;
FUNÇÃO F
FUNÇÃO G
FUNÇÃO MAIS IMPORTANTE DO ALGORITMO; CADA ENTRADA É DIVIDIDA EM 4 BYTES, PASSANDO POR UMA S-BOX; S-BOX PRODUZ UMA SAIDA DE 1 BYTE, INTERPRETADOS COMO VETORES DE TAMANHO 4 SOBRE GF(2^8); CADA VETOR É MULTIPLICADO PELA MATRIZ MDS, GERANDO UMA PALAVRA DE 32 BITS, CORRESPONDENTE A SAÍDA DE G.
FUNÇÃO G
SAÍDA