O SISTEMA CRIPTOGRÁFICO D.E.S. - DATA ENCRYPTION STANDARD

Documentos relacionados
INTRODUÇÃO AO ESTUDO DE CRIPTOGRAFIA

AULA 08 CRIPTOGRAFIA E SEGURANÇA DE DADOS CRIPTOGRAFIA ASSIMÉTRICA CHAVES E ALGORITMOS 03/03/2016 PROF. FABIANO TAGUCHI

Números primos e Criptografia

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações

Tópicos de Ambiente Web Segurança

Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica.

PLANO DE DISCIPLINA DISCIPLINA: Segurança da Informação

Álgebra A - Aula 01 Algoritmo da divisão de Euclides e Algoritmo Euclideano estendido

AULA 5: Criptografia e Esteganografia

algoritmos de primalidade na criptografia rsa

O USO DA CRIPTOGRAFIA EM ÁUDIO

CRIPTOGRAFIA RSA APLICADA A ÁUDIO

Autenticação por par de. chaves assimétricas. Bruno Follmann

D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR 1

Números Primos e Criptografia RSA

CIFRA DE HILL. Autor: Maycon Pereira de Souza

Criptografia no MSX Fulswrjudild qr PVZ

TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC

OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC

Engloba os criptossistemas clássicos. Outros nomes: (Criptografia...)

Criptografia: códigos sem segredos

Capítulo 8. Segurança de redes

Introdução à Computação

Já sabemos como determinar todas as soluções de uma equação diofantina linear, caso esta seja resolúvel. Para conguências temos:

Teoria dos Números e Criptografia

Complexidade de Algoritmos

Mecanismos Criptográficos Esquemas

Mantendo Segredos com a ajuda da Matemática

Desvendando os mistérios do criptossistema RSA. Grasiele Cristiane Jorge. Pós-Doc - IMECC - UNICAMP

A loira do banheiro. Série Matemática na Escola

Segurança e Auditoria de Sistemas. Confiança Mútua Assinatura Digital Certificado Digital

NOÇÕES DE INFORMÁTICA. Segurança da Informação Certificação Digital Parte 1

Circuitos Lógicos Aula 5

Segurança Informática em Redes e Sistemas

Protocolo Kerberos. JML

Criptografia e Segurança em Rede Capítulo 3. William Stallings

1. Introdução: 2. Desenvolvimento: Atividade 1: Operações com Matrizes

OTES07 Segurança da Informação Módulo 05a: Criptografia Simétrica: DES/SDES

PTC Aula 20. (Kurose, p ) (Peterson, p ) 14/06/ Princípios de criptografia

Cifra Homofônica. Mestrado em Ciência da Computação Estruturas de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestranda: Nelsi Warken

Faculdade de Engenharia da Computação

Sistema Supervisório - IHM

Criptografia Pós-Quântica Corretores de Erros

Tão logo os homens adotaram a escrita, começaram a se preocupar em enviar informações em segredo.

Criptografia Simétrica e Assimétrica, Hash, e Assinatura Digital

ANÁLISE COMPARATIVA DOS ALGORITMOS DE CRIPTOGRAFIA DES E RSA COM ESTUDO EM ASSINATURA DIGITAL CRUZ, Amanda Martins da

Agenda. Criptografia e Segurança Certificado Digital Assinatura Digital

1 bases numéricas. capítulo

Introdução à Computação: Sistemas de Numeração

Técnicas de criptografia. Funções Hash Criptografia com chave secreta Criptografia com chave pública Assinatura digital Protocolos

Sistemas criptográficos simétricos

Transmissão de Sinais Digitais

SEGURANÇA CRIPTOGRAFIA E SEGURANÇA DE DADOS. As funções de cifra são consideradas totalmente seguras se:

Binário Decimal

Segurança de aplicação - S/MIME

Entendendo a criptografia e como ela pode ser usada na prática. Italo Valcy Universidade Federal da Bahia CERT.

Este é um exemplo das informações de um certificado digital, que no caso é o meu: Informações do Certificado Digital

Arquitetura e Organização de Computadores

Software para Assinatura Digital

Criptografia em redes de computadores. Gabriel Stefen e Thiago Stefen

7.1 Código Excesso de 3

Códigos de blocos lineares. Outubro de 2017

Capacidade de Armazenamento. Bit. Binário para Decimal. Decimal para Binário. Operações Aritméticas no Sistema binário.

Sistemas Digitais Módulo 3 Codificações BCD, Gray e ASCII e Números Fracionários

Sistemas de Numeração

Segurança e Auditoria de Sistemas. Professor Emiliano S. Monteiro

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Virtual Private Network (VPN)

Arquitetura de Computadores

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA

TRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO

Transcrição:

PIBIC-UFU, CNPq & FAPEMIG Universidade Federal de Uberlândia Pró-Reitoria de Pesquisa e Pós-Graduação DIRETORIA DE PESQUISA O SISTEMA CRIPTOGRÁFICO D.E.S. - DATA ENCRYPTION STANDARD Adriele Giaretta Biase 1 Faculdade de Matemática - Universidade Federal de Uberlândia, MG Av. João Naves de Ávila, 2121, Bloco 1F, Santa Mônica, Uberlândia, MG, CEP 38400-902 adrielegbiase@yahoo.com.br Edson Agustini 2 agustini@ufu.br Resumo: Nesse trabalho apresentamos um estudo do sistema criptográfico DES - Data Encryption Standard, utilizado para proteção de mensagens e informações sigilosas. Para o desenvolvimento desse sistema criptográfico, propriedades de funções discretas são introduzidas sob a forma de tabelas. Um exemplo completo de mensagem cifrada e decifrada pelo sistema criptográfico DES é apresentado. Por fim, algumas conclusões são apresentadas. Palavras-chave: criptografia DES, ciframento, deciframento, função discreta, algoritmos. 1. INTRODUÇÃO Atualmente, a necessidade de se proteger informações, de modo que alguém indesejável não tenha acesso ao seu conteúdo é indiscutível. Uma das maneiras de se criar essa desejada proteção para mensagens é a criptografia, cujo uso corrente é encontrado, por exemplo, em transações bancárias via Internet ou em compras on-line com cartões de crédito. Dessa forma, a criptografia torna-se um agente de segurança em um sistema de comunicações eficiente. A criptografia é um método para codificar (ou modificar) uma mensagem a ser enviada de tal forma que apenas o receptor legítimo consiga interpretá-la. De um modo geral, a base dos sistemas criptográficos mais conhecidos e utilizados, como o sistema RSA (Rivest, Shamir e Adleman) e seus derivados, é a Teoria dos Números, uma vez que o estudo das propriedades dos números inteiros - mais precisamente, a manipulação de máximos divisores comuns, fatorações, congruências e métodos para determinar números primos - são fundamentais para se entender tais sistemas criptográficos. Neste trabalho introduziremos o sistema criptográfico DES (Data Encryption Standard), referências [2], [5] e [6], que, embora não seja derivado do sistema RSA, referências [1], [3] e [4], é bastante conhecido e utilizado em sistemas de comunicações, muitas vezes associados a códigos corretores de erros de transmissão de informação. O principal pré-requisito para compreender o sistema DES é constituído de funções discretas, que serão introduzidas neste trabalho sob a forma de tabelas durante o desenvolvimento do algoritmo computacional do sistema DES. Por fim, um exemplo de ciframento e deciframento de mensagem, utilizando o sistema DES, é apresentado. 2. MATERIAL E MÉTODOS Devido ao caráter apenas teórico deste artigo, visando apenas resultados matemáticos, o método de trabalho empregado foi constituído pelo estudo das referências acima citadas, discussão do algoritmo do sistema criptográfico DES com exemplificação e verificação de sua funcionalidade. 3. PRÉ- CODIFICAÇÃO Para criptografar devemos converter uma mensagem em uma seqüência de números. Para efeito de exemplificação, tomemos a seguinte tabela de conversão: 1 Acadêmica do curso de Licenciatura em Matemática. 2 Orientador.

a b c d e f g h i 10 11 12 13 14 15 16 17 18 s t u v w x y z 28 29 30 31 32 33 34 35 36 j k l m n o p q r 19 20 21 22 23 24 25 26 27 0 1 2 3 4 5 6 7 8 9 37 38 39 40 41 42 43 44 45 46 Tabela 1 O espaço entre palavras será substituído pelo n o. 36. As conversões do texto a ser cifrado será feito sem considerar acentos e letras maiúscula. A vantagem de se utilizar 2 dígitos para representar uma letra reside no fato de que tal procedimento evita a ocorrência de ambigüidades. Por exemplo, se a fosse convertido em 1 e b em 2, teríamos que ab seria 12, mas l também seria 12. Logo, não poderíamos concluir se 12 seria ab ou l. 4. CRIPTOGRAFIA D.E.S. - DATA ENCRYPTION STANDARD O sistema D.E.S. consiste de um algoritmo de criptografia simétrico e polialfabético com entrada e saída binárias. Sendo assim, uma mensagem a ser enviada deve ser convertida em uma seqüência binária. Assim como em qualquer esquema de criptografia, o algoritmo precisa de duas entradas: a mensagem a ser enviada e, portanto, codificada e a chave, que é a senha que irá manter a transmissão sigilosa. A mensagem original convertida em uma seqüência binária é dividida em blocos M que podem ser de 64 dígitos cada. Consideremos a função I que permuta a posição dos 64 dígitos do bloco M. Geralmente I é definida por uma tabela. Para efeito de compreensão do algoritmo, chamemos a imagem I (M) de N 0 de descrevamos uma rodada do algoritmo (geralmente são realizadas 16 rodadas): (i) Dividamos o bloco N 0 de 64 dígitos em duas partes: a parte esquerda, que chamaremos de E 0 e a parte direita que chamaremos de D 0. (ii) Consideremos a função X que expande o bloco D 0, de 32 dígitos, para um bloco X (D 0 ) de 48 dígitos. Além da expansão, nessa etapa temos também uma permutação de dígitos, uma vez que, à semelhança de I, X é dada por uma tabela. (iii) Consideremos um bloco aleatório de 48 dígito binário que denotaremos por K 1. Esse bloco é parte das chaves do sistema criptográfico (para cada rodada há uma chave). (iv) Uma soma binária dígito a dígito entre X (D 0 ) e K 1 é realizada. (v) O bloco X (D 0 )+K 1 é dividido em blocos B 1,..., B 8 de 6 dígitos cada e, utilizando 8 funções redutoras S 1,..., S 8. Essas funções transformam B i de 6 dígitos em blocos B i de 4 dígitos. De um modo geral, essas funções redutoras são dadas por tabelas e a manipulação dessas tabelas será exemplificada abaixo. Deste modo, o bloco X (D 0 ) + K 1 é transformado em um bloco S de 32 dígitos. (vi) Uma outra permutação de dígitos P é aplicada ao bloco S. (vii) Uma outra soma binária dígito a dígito é feita entre o bloco P (S) e o bloco E 0. Essa soma é chamada de D 1. (viii) Definimos o bloco E 1 como sendo o bloco D 0. 2

(ix) Um novo bloco N 1 é formado pela junção do bloco E 1 com o bloco D 1 formado acima. O bloco N 1 é submetido a uma nova rodada conforme descrito acima e obtemos N 2, N 3 até N 16. Após as 16 rodadas, é realizada uma troca de lados em N 16 entre os blocos E 16 e D 16. Chamemos essa troca de T. Assim, T (E 16 ) = D 16 e T (D 16 ) = E 16 e, temos um novo bloco T (N 16 ) = N 16. Por fim, a inversa da função permutação I, ou seja, I 1 é aplicada em N 16 e este é o bloco cifrado, que chamaremos de C. Assim, I 1 (N 16) = C. Simplificando, temos a seguinte composta: I (M) = N 0 = E 0 D 0 X I (M) = E 0 X (D 0 ) K 1 X I (M) = E 0 [X (D 0 ) + K 1 ] = E 0 [B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 ] S K 1 X I (M) = E 0 [S 1 (B 1 ) S 2 (B 2 )...S 7 (B 7 ) S 8 (B 8 )] S K 1 X I (M) = E 0 [B 1B 2B 3B 4B 5B 6B 7B 8] S K 1 X I (M) = E 0 S P S K 1 X I (M) = E 0 P (S) E 0 P S K 1 X I (M) = [E 0 + P (S)] D 0 E 0 P S K 1 X I (M) = D 0 [E 0 + P (S)] D 0 E 0 P S K 1 X I (M) = D 0 D 1 D 0 E 0 P S K 1 X I (M) = E 1 D 1 D 0 E 0 P S K 1 X I (M) = N 1. Chamando D 0 E 0 P S K 1 X = Z 1. Logo, Z 1 I (M) = N 1. Aplicando 16 rodadas, temos: Z 16... Z 1 I (M) = N 16 T Z 16... Z 1 I (M) = N 16 I 1 T Z 16... Z 1 I (M) = C. Chamando I 1 T Z 16... Z 1 I = DES, temos DES (M) = C. Como o algoritmo é simétrico, para decifrar C, basta aplicá-lo novamente, ou seja: DES (C) = M. Exemplo: Consideremos as seguintes tabelas para construção da Criptografia DES: 59 1 51 2 43 3 35 4 27 5 19 6 11 7 03 8 57 9 49 10 41 11 33 12 25 13 17 14 09 15 01 16 60 17 52 18 44 19 36 20 28 21 20 22 12 23 04 24 58 25 50 26 42 27 34 28 26 29 18 30 10 31 02 32 64 33 56 34 48 35 40 36 32 37 24 38 16 39 08 40 62 41 54 42 46 43 38 44 30 45 22 46 14 47 06 48 63 49 55 50 47 51 39 52 31 53 23 54 15 55 07 56 61 57 53 58 45 59 37 60 29 61 21 62 13 63 05 64 Tabela 2: Função permutação I 16 1 32 2 8 3 24 4 64 5 48 6 56 7 40 8 15 9 31 10 7 11 23 12 63 13 47 14 55 15 39 16 14 17 30 18 6 19 22 20 62 21 46 22 54 23 38 24 13 25 29 26 5 27 21 28 61 29 45 30 53 31 37 32 12 33 28 34 4 35 20 36 60 37 44 38 52 39 36 40 11 41 27 42 3 43 19 44 59 45 43 46 51 47 35 48 10 49 26 50 2 51 18 52 58 53 42 54 50 55 34 56 9 57 25 58 1 59 17 60 57 61 41 62 49 93 33 64 Tabela 3: Função permutação I 1 3

15 1 16 2 17 3 18 4 32 5 1 6 19 7 20 8 21 9 22 10 2 11 3 12 23 13 24 14 25 15 26 16 4 17 5 18 27 19 28 20 29 21 30 22 6 23 7 24 31 25 32 26 1 27 2 28 8 29 9 30 3 31 4 32 5 33 6 34 10 35 11 36 7 37 8 38 9 39 10 40 12 41 13 42 11 43 12 44 13 45 14 46 14 47 15 48 Tabela 4: Função expansão X 25 1 26 2 27 3 15 4 16 5 17 6 28 7 29 8 1 9 18 10 19 11 2 12 20 13 21 14 3 15 4 16 13 17 14 18 30 19 31 20 32 21 8 22 9 23 10 24 22 25 23 26 24 27 11 28 12 29 5 30 6 31 7 32 Tabela 5: Função permutação P Seja a mensagem F AMAT 2008. Suponhamos que o emissor A, queira enviar essa mensagem ao receptor B usando a Criptografia DES. Assim, A associa a mensagem aos números correspondentes na Tabela 1, obtendo a seqüencia de números: que, respectivamente, na base binária são: 15 10 22 10 29 36 39 37 37 45, 001111 000010 010110 000010 011101 100100 100111 100101 100101 101101. Agrupando a seqüencia de bits em blocos de 64 bits temos: M = 0011110000100101100000100111011001001001111001011001011011010000. (1) Notemos que tinhamos apenas 60 bits. Os bits que ficaram faltando para completar um bloco de 64 bits foram obtidos acrescentando-se 4 zeros ao final da seqüência. Logo, para o início do processo de ciframento, a mensagem passa pela primeira fase que é a função permutação I, a partir da Tabela 2, no qual é obtida pela seqüência a seguir: I (M) = N 0 = 0010101111100110110010011011100000110010011010110100110000010101. (2) O n-ésimo bit de (2) é o m-ésimo bit de (1), sendo que m e n estão relacionados de acordo com a entrada m n da Tabela 2. Por exemplo, se n = 1, a Tabela 2 fornece m = 59. Logo, o 1 o. bit de (2) é o 59 o. bit de (1) e assim, por diante. Separando (2) em blocos de 32 bits, obtemos dois blocos. Chamaremos os primeiros 32 bits de bloco da esquerda e denotaremos por E 0 e os outros 32 bits restantes de bloco da direita e denotaremos por D 0. Assim, E 0 = 00101011111001101100100110111000 D 0 = 00110010011010110100110000010101 (3) Para o bloco D 0 faremos uma expansão usando a Tabela 4, dada anteriormente. Assim, essa seqüência de 32 bits será transformada em uma nova seqüência com 48 bits, dada por: X (D 0 ) = 110110001101000010010101010000110011100101101001. (4) O n-ésimo bit de (4) é o m-ésimo bit de (3), sendo que m e n estão relacionados de acordo com a entrada m n da Tabela 4. Por exemplo, se n = 1, a Tabela 4 fornece m = 15. Logo, o 1 o. bit de (4) é o 15 o. bit de (3) e assim, por diante. 4

Consideremos uma seqüência binária de 48 bits, que será a chave (que deve ser mantida em sigilo pelos comunicantes): K 1 = 111101101010010010100011000110010110100111010001. Fazendo a soma binária, dígito a dígito, dos 48 bits do bloco X (D 0 ) com a chave K 1, temos a nova seqüência: X (D 0 ) + K 1 = 001011100111010000110110010110100101000010111000. Usaremos agora, as Caixas S Tabela 6 para comprimir a seqüência acima de 48 bits para 32 bits binários. Primeiramente, dividiremos a seqüência anterior em blocos de 6 bits obtendo: B 1 o primeiro bloco, B 2 o segundo bloco até o oitavo bloco: 001011 }{{} 100111 }{{} 010000 }{{} 110110 }{{} 010110 }{{} 100101 }{{} 000010 }{{} 111000 }{{} B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8. Os blocos B i serão reduzidos a quatro bits cada utilizando-se as Caixas S i do seguinte modo: O primeiro e último dígitos de B i formam, em decimal, um número x de 0 a 3, que corresponde a uma das quatro linhas de S i. Os quatro dígitos intermediários de B i formam, em decimal, um número y de 0 a 15, que corresponde a uma das 16 colunas de S i. Assim, localizamos o número s x,y na tabela S i. O número s é um número de 0 a 15, que em binário, corresponde a uma seqüência B i de quatro dígitos que será colocada no lugar de B i. Por exemplo, no primeiro bloco B 1 = 001011, temos que o primeiro e o último dígitos, 0 e 1, formam o número binário 01, que em decimal é o número 1, ou seja, temos a segunda linha de S 1. Os quatro dígitos do meio de B 1 formam o número binário 0101, que em decimal é o número 5, que corresponde à sexta coluna de S 1. Logo, localizamos s x,y = 3 1,5, ou seja, s = 3, que em binário é 0011. Assim B 1 = 001011 é substituído por B 1 = 0011. De modo analógo para o restante dos blocos vamos obter: B 2 = 1001, B 3 = 1101, B 4 = 1010, B 5 = 0100, B 6 = 0101, B 7 = 0110, B 8 = 0000. Juntando todos os blocos B i, para i = 1, 2,...8, em uma só seqüência obtemos: S = 00111001110110100100010101100000. Usando a Tabela 5, fazemos uma nova permutação da seqüência acima à semelhança da que fizemos na seqüência (1) a qual chamaremos de P (S): P (S) = 01110000010000111000011110101100. Fazendo a soma binária de E 0 + P (S) temos: D 1 = E 0 + P (S) = 01011011101001010100111000010100. Juntando, respectivamente, as seqüências D 0 e D 1 temos: N 1 = 0011001001101011010011000001010101011011101001010100111000010100. 5

S1 10,0 120,1 90,2 50,3 100,4 150,5 60,6 20,7 80,8 110,9 40,10 140,11 70,12 120,13 130,14 20,15 71,0 101,1 21,2 61,3 141,4 31,5 111,6 91,7 151,8 01,9 41,10 121,11 11,12 51,13 31,14 131,15 92,0 02,1 152,2 12,3 22,4 102,5 32,6 112,7 42,8 52,9 132,10 62,11 122,12 72,13 142,14 82,15 03,0 93,1 23,2 123,3 103,4 83,5 153,6 33,7 73,8 113,9 63,10 13,11 43,12 133,13 53,14 143,15 S2 10,0 100,1 110,2 70,3 20,4 140,5 80,6 150,7 60,8 90,9 120,10 00,11 50,12 30,13 130,14 40,15 71,0 101,1 01,2 51,3 61,4 11,5 111,6 21,7 131,8 121,9 31,10 81,11 141,12 91,13 41,14 151,15 142,0 52,1 72,2 112,3 132,4 02,5 22,6 82,7 102,8 12,9 42,10 152,11 32,12 62,13 92,14 122,15 83,0 23,1 143,2 93,3 153,4 53,5 63,6 113,7 73,8 123,9 13,10 03,11 43,12 143,13 103,14 33,15 S3 00,0 90,1 40,2 20,3 110,4 70,5 10,6 120,7 130,8 60,9 140,10 80,11 50,12 30,13 100,14 150,15 41,0 21,1 91,2 31,3 51,4 131,5 141,6 61,7 151,8 111,9 11,10 71,11 101,12 121,13 81,14 01,15 12,0 122,1 72,2 102,3 42,4 152,5 92,6 62,7 32,8 82,9 132,10 112,11 02,12 142,13 22,14 52,15 143,0 53,1 103,2 23,3 83,4 93,5 03,6 113,7 123,8 33,9 13,10 63,11 153,12 73,13 43,14 133,15 S4 90,0 140,1 00,2 130,3 150,4 30,5 50,6 80,7 60,8 110,9 100,10 70,11 10,12 40,13 120,14 20,15 61,0 81,1 91,2 31,3 101,4 151,5 01,6 51,7 11,8 131,9 71,10 41,11 121,12 21,13 111,14 141,15 142,0 02,1 32,2 62,3 52,4 122,5 92,6 152,7 82,8 72,9 132,10 102,11 112,12 12,13 22,14 42,15 133,0 33,1 153,2 03,3 13,4 93,5 143,6 83,7 103,8 43,9 53,10 63,11 73,12 123,13 23,14 113,15 Tabela 6: Caixas S (primeira parte). 6

S5 60,0 80,1 20,2 120,3 30,4 70,5 00,6 150,7 90,8 10,9 110,10 40,11 140,12 50,13 130,14 100,15 141,0 121,1 01,2 21,3 61,4 111,5 41,6 81,7 101,8 91,9 51,10 151,11 71,12 31,13 11,14 131,15 02,0 42,1 102,2 52,3 132,4 62,5 152,6 22,7 72,8 122,9 32,10 142,11 82,12 112,13 92,14 152,15 153,0 113,1 43,2 83,3 133,4 63,5 03,6 123,7 53,8 143,9 23,10 93,11 13,12 33,13 103,14 73,15 S6 70,0 120,1 00,2 50,3 140,4 30,5 90,6 100,7 10,8 11 0,9 150,10 60,11 40,12 80,13 20,14 130,15 21,0 91,1 141,2 01,3 111,4 61,5 51,6 121,7 41,8 71,9 31,10 101,11 81,12 131,13 151,14 11,15 82,0 52,1 32,2 152,3 132,4 102,5 62,6 02,7 22,8 142,9 122,10 92,11 12,12 42,13 112,14 72,15 113,0 63,1 53,2 33,3 03,4 93,5 123,6 153,7 133,8 83,9 103,10 43,11 143,12 73,13 13,14 23,15 S7 100,0 60,1 90,2 130,3 50,4 40,5 140,6 00,7 80,8 10,9 110,10 70,11 150,12 120,13 20,14 30,15 21,0 121,1 01,2 31,3 101,4 141,5 41,6 131,7 91,8 111,9 61,10 151,11 11,12 51,13 71,14 81,15 02,0 72,1 132,2 82,3 62,4 12,5 92,6 32,7 102,8 22,9 142,10 42,11 52,12 152,13 112,14 122,15 153,0 33,1 103,2 23,3 83,4 93,5 43,6 143,7 53,8 123,9 73,10 13,11 113,12 03,13 133,14 63,15 S8 150,0 120,1 80,2 20,3 40,4 90,5 10,6 70,7 50,8 110,9 30,10 140,11 100,12 00,13 60,14 130,15 101,0 61,1 91,2 01,3 121,4 111,5 71,6 131,7 151,8 11,9 31,10 141,11 51,12 21,13 81,14 41,15 12,0 42,1 112,2 132,3 122,4 32,5 72,6 142,7 102,8 152,9 62,10 82,11 02,12 52,13 92,14 22,15 133,0 23,1 83,2 43,3 63,4 153,5 113,6 13,7 103,8 93,9 33,10 143,11 53,12 03,13 123,14 73,15 Tabela 6: Caixas S (segunda parte). 7

Aplicando a troca T dos blocos de 32 dígitos dos lados esquerdo e direito temos: T (N 1 ) = N 1 = 0101101110100101010011100001010000110010011010110100110000010101. Para finalizar a criptografia vamos utilizar a Tabela 3 e aplicar a permutação I 1 na seqüencia anterior: C = I 1 (N 1) = 1010110000110101110110100011011001101001100001010011011010000000. Logo essa seqüencia, é a mensagem criptografada. Assim o emissor A envia essa mensagem para o receptor B. Para o deciframento, a seqüência recebida o receptor B deverá proceder de modo análogo ao processo de criframento. O receptor B aplicará a função I a partir da Tabela 2, que é a primeira fase, e obterá a seqüência a seguir: I (C) = 0101101110100101010011100001010000110010011010110100110000010101. Separando a seqüência anterior em blocos de 32 bits, obtemos dois blocos. Chamaremos os primeiros 32 bits de bloco da esquerda, que denotaremos por E 0 e os outros 32 bits restantes de bloco da direita, que será denotado por D 0 : E 0 = 01011011101001010100111000010100 D 0 = 00110010011010110100110000010101 Para o bloco D 0 faremos a expansão usando a Tabela 4. Assim, a seqüência de 32 bits será transformada em uma nova seqüência com 48 bits: X (C) = 110110001101000010010101010000110011100101101001. Usando a mesma chave K 1 de 48 bits que usamos para cifrar a mensagem, dada a seguir: K 1 = 111101101010010010100011000110010110100111010001. Fazemos a soma binária desses 48 bits com o bloco da direita D 0 e obtemos uma nova seqüência: X (C) + K 1 = 001011100111010000110110010110100101000010111000. Utilizando a Tabela 6, das Caixas S, e fazendo os mesmos procedimentos adotados no ciframento, separemos a seqüência em blocos de 6 bits: B 1 = 001011 B 2 = 100111 B 3 = 010000 B 4 = 110110 B 5 = 010110 B 6 = 100101 B 7 = 000010 B 8 = 111000 Teremos a seguinte redução de 6 bits para 4 bits dada a seguir: B 1 = 0011, B 2 = 1001, B 3 = 1101, B 4 = 1010, B 5 = 0100, B 6 = 0101, B 7 = 0110, B 8 = 0000. Juntando todos os blocos B i, para i = 1, 2,...8, em uma só seqüência obtemos: S = 00111001110110100100010101100000. 8

Usando a Tabela 5, da função permutação, na seqüência acima obtemos a seqüência a seguir no qual chamaremos de D 1 : P (S) = 01110000010000111000011110101100. Fazendo a soma binária de E 0 + P (S) temos: D 1 = E 0 + P (S) = 00101011111001101100100110111000. Juntando, respectivamente, as seqüências D 0 e D 1 temos: N 1 = 0011001001101011010011000001010100101011111001101100100110111000. Aplicando T : T (N 1 ) = N 1 = 0010101111100110110010011011100000110010011010110100110000010101. Para finalizar o deciframento vamos utilizar a Tabela 3 e aplicar a função I 1 seqüência anterior chegando em: na M = I 1 (N 1) = 0011110000100101100000100111011001001001111001011001011011010000. Logo, essa seqüência, é a mensagem decifrada. Ou seja, separando essa seqüência em blocos de 6 bits e passando para a base decimal, obtemos os números: 15 10 22 10 29 36 39 37 37 45, que corresponde a mensagem original F AM AT 2008. Nesse exemplo, para simplificar, usamos uma única rodada, mas isso é inseguro. Para oferecer maior segurança e resistência à criptoanálise o ideal é que se realizem várias rodadas, no caso 16 rodadas é o tamanho típico para a criptografia DES. Observação: Tipicamente, na criptografia DES, há um procedimento algoritmo de geração das chaves K 1,..., K 16 a partir de uma única chave K fornecida pelos comunicantes. Neste trabalho não abordamos tal algoritmo. No entanto, o leitor interessado pode encontrá-lo em [6]. 5. CONCLUSÕES Embora o algoritmo de ciframento e deciframento do sistema criptográfico DES seja interessante e simples do ponto de vista matemático, ele não se mostra muito atrativo quando comparado com os sistemas criptográficos assimétricos (cujo algoritmo de ciframento é diferente do algoritmo de deciframento) que utilizam congruências como base matemática. É indiscutivelmente mais simples de armazenar apenas alguns números primos e o programa computacional oriúndo do algoritmo da criptografia, do que, além do algoritmo, ter que armazenar imensas tabelas de funções discretas. 6. AGRADECIMENTOS Os autores agradecem à FAPEMIG - Fundação de Amparo à Pesquisa do Estado de Minas Gerais - pela concessão da bolsa de iniciação científica de março de 2008 a fevereiro de 2009, bem como à Pró-Reitoria de Pesquisa e Pós-Graduação da Universidade Federal de Uberlândia pelo gerenciamento da mesma. 9

7. REFERÊNCIAS [1] Coutinho, S. C. Números Inteiros e Criptografia RSA. Rio de Janeiro, RJ: IMPA - SBM. Série de Computação e Matemática. 1997. [2] Lucchesi, C. L. Introdução à Criptografia Computacional. Campinas-SP: Editora da Unicamp. 1986. [3] Mollin, R. A. An Introduction to Cryptography. New York: Chapman & Hall. 2001. [4] Rivest, M,; Shamir, A. & Adleman, L. A method for obtaining digital signatures and public-key cryptosystems. Comm. ACM, 21 (1978), 120-126. [5] Singh, S. O Livro dos Códigos. Rio de Janeiro: Editora Record. 2001. [6] Stallings, W. Criptografia e Segurança de Redes. 4 a. ed. São Paulo: Peason Prentice Hall. 2007. O SISTEMA CRIPTOGRÁFICO D.E.S. - DATA ENCRYPTION STANDARD Adriele Giaretta Biase 1 Faculty of Mathematics - Federal University of Uberlandia, MG Av. Joao Naves de Avila, 2121, Bloco 1F, Santa Monica, Uberlandia, MG, CEP 38400-902 adrielegbiase@yahoo.com.br Edson Agustini 2 agustini@ufu.br Resumo: In this article we show a study of the DES - Data Encryption Standard - cryptographic system, which is used in protection of messages and secret information. In order to develop this cryptographic system, discrete functions properties are considered in table forms. A full example of ciphering and deciphering of a message by DES cryptographic system is presented. Finally, some concluding remarks are presented. Key-words: DES cryptographic system, ciphering, deciphering, discrete function, algorithm. 1 Acadêmica do curso de Licenciatura em Matemática. 2 Orientador. 10