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: 13612
SOBRE A GERAÇÃO DE CHAVES
O módulo de geração de chaves do Criptossistema DRT parte de uma semente de 240 bits, ou 30 bytes. É necessário primeiro explicar a função transformadora CIF. Esta função recebe um conjunto de 80 bits e retorna um conjunto de 80 bits. Ela utiliza 2 vetores auxiliares que contém os seguintes valores:
Nº VETOR 1 VETOR 2 1 155 199 2 211 99 3 33 66 4 82 113 5 21 105 6 101 17 7 41 235 8 91 73 9 249 159 10 173 234
Observa-se que todos os elementos dos 2 vetores representados na tabela acima podem ser representados por um único byte. A entrada da função também deve corresponder a um vetor de 10 elementos que obrigatoriamente tem os seus elementos com valores entre 0 e 255.
A primeira operação consiste em somar cada um dos elementos do vetor de entrada com cada um dos elementos do vetor 1 extraindo o módulo em base 256. Considerando que o vetor de entrada (VETOR BASE) possui todos os seus 10 elementos iguais a zero, temos:
Nº VETOR BASE VETOR 1 NOVO VETOR BASE 1 0 155 155 2 0 211 211 3 0 33 33 4 0 82 82 5 0 21 21 6 0 101 101 7 0 41 41 8 0 91 93 9 0 249 249 10 0 173 173
Para dar seqüência ao processo desta função temos uma estrutura com 10 voltas. Esta estrutura é dividida em 4 partes:
- 1ª parte: Alteração dos 5 primeiros elementos do VETOR BASE.
- 2ª parte: Permutação dos 10 elementos do VETOR BASE.
- 3ª parte: Adição dos elementos do VETOR 2 no VETOR BASE.
- 4ª parte: Rotação dos elementos do VETOR 2.
Vamos explicá-las detalhadamente:
Consiste simplesmente em fazer uma operação XOR entre o elemento 6 do VETOR BASE ao elemento 1; o elemento 7 ao elemento 2; o elemento 8 ao elemento 3; o elemento 9 ao elemento 4 e finalmente o elemento 10 ao elemento 5. Resta dizer que os elementos alterados são os de índice 1, 2, 3, 4 e 5, PERMANECENDO INALTERADOS OS DEMAIS!!!
Nº VETOR BASE RESULTADO 1 155 2 211 3 33 4 82 5 21 6 101 254 7 41 250 8 91 122 9 249 171 10 173 184
O VETOR BASE resultante é: 254, 250, 122, 171, 184, 101, 41, 91, 249, 173. Observem que os últimos 5 elementos do VETOR BASE ficaram inalterados e os 5 primeiros (que estão em negrito) foram alterados.
Nesta fase o VETOR BASE tem os seus elementos trocados de posição. A troca obedece a 2 índices, sendo um para as voltas pares e outro para as voltas ímpares. Como estão na 2ª parte da PRIMEIRA VOLTA vamos utilizar o índice de permutação 1.
Nº VETOR BASE ÍNDICE DE VETOR BASE PERMUTAÇÃO 1 254 8 91 2 250 5 184 3 122 2 250 4 171 3 122 5 184 9 249 6 101 1 254 7 41 10 173 8 91 7 41 9 249 4 171 10 173 6 101
Verificamos que o índice de permutação é 8, 5, 2, 3, 9, 1, 10, 7, 4, 6. Este índice se refere às voltas de número ímpar. Para as voltas de número par o índice é 4, 7, 2, 9, 3, 6, 8, 10, 1, 5. O VETOR BASE, após a permutação contém os seguintes elementos: 91, 184, 250, 122, 249, 254, 173, 41, 171, 101.
Nesta parte soma-se cada elemento do VETOR BASE com cada elemento do VETOR 2 resultando deste processo um NOVO VETOR BASE.
Nº VETOR BASE VETOR 2 NOVO VETOR BASE 1 91 199 34 2 184 99 27 3 250 66 60 4 122 113 235 5 249 105 98 6 254 17 15 7 173 235 152 8 41 73 114 9 171 159 74 10 101 234 79
Quando há o estouro do valor 256 deve-se considerar o módulo do valor da soma nesta base.
Nesta operação os elementos do VETOR 2 sofrem uma rotação, ou seja, o 1º elemento passa a ser o 2º, o 2º passa a ser o 3º e assim por diante, sendo que o último elemento do vetor 2 passa a ser o primeiro.
Nº VETOR 2 NOVO VETOR 2 1 199 234 2 99 199 3 66 99 4 113 66 5 105 113 6 17 105 7 235 17 8 73 235 9 159 73 10 234 159
O VETOR BASE termina a primeira volta com os seguintes valores: 34, 27, 60, 235, 98, 15, 152, 114, 74, 79. A partir deste ponto o VETOR BASE é modificado pela outras 9 voltas restantes. Após a décima volta o VETOR BASE fica com os elementos 68, 80, 23, 97, 39, 137, 89, 160, 161, 177. Vamos chamar esta função de CIF. Ela recebeu um Vetor onde os 10 elementos eram nulos (0) e retornou um Vetor com os elementos 68, 80, 23, 97, 39, 137, 89, 160, 161, 177.