A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Laboratórios

DRT-240 BITS

Seg

19

Abr

2004


02:00

(4 votos, média 4.00 de 5) 


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:

1ª parte: Alteração dos 5 primeiros elementos do VETOR BASE

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.

2ª parte: Permutação dos 10 elementos do VETOR BASE:

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.

3ª parte: Adição dos Elementos do Vetor 2 no Vetor Base:

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.

4ª parte: Permutação dos valores do VETOR 2

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.

Informações adicionais