DESEMPENHO DE ALGORITMOS CRIPTOGRÁFICOS
SIMÉTRICOS PARA GRANDES VOLUMES DE DADOS
2
Eduardo Cláudio Nicácio1, Ms. Samáris R. Pereira2, Ms. Sueli Ap. Loddi2
1
Aluno do curso Informática para Gestão de Negócios da FATEC-SBC
Prof. Mestre do curso Informática para Gestão de Negócios da FATEC-SBC
[email protected]
[email protected]
[email protected]
Resumo
Com o avanço do poder de processamento e da
capacidade de armazenamento dos computadores
pessoais nos últimos anos pode-se verificar o
crescimento exponencial do volume de dados
armazenados pelos usuários. Arquivos com centenas de
Megabytes, para trafegarem de forma segura em uma
rede ou mesmo pela Internet, precisam ter seu conteúdo
criptografado através de algum algoritmo moderno, que
seja rápido e seguro. Este trabalho visa comparar o
desempenho de alguns conhecidos algoritmos
criptográficos
simétricos
no
processo
de
encriptação/desencriptação, levando o leitor à reflexão
da característica mais importante para o seu contexto:
velocidade de processamento ou segurança dos dados.
em seu artigo intitulado “Ranking the AES Finalists”, no
qual são comparados de acordo com 4 critérios:
segurança, eficiência em hardware, eficiência em
software e flexibilidade [3].
Tabela I – Notas atribuídas aos finalistas AES
Algoritmo
Mars
RC6 Rijndael Serpent Twofish
Segurança
1.6
1.2
2.0
3.2
2.0
Hardware
0.6
1.2
2.4
1.8
1.2
Software
0.4
0.6
1.8
0.2
1.2
Flexibil.
0.4
0.7
0.7
0.6
0.5
Pontuação
3.0
3.7
6.9
5.8
4.9
5
4
1
2
3
Ordem
Fonte: teal.gmu.edu/courses/ECE636/AES/AsaHagstrom.PDF
Palavras-chave: criptografia; criptografia de chave
simétrica; algoritmo criptográfico; segurança da
informação.
1. Introdução
Em janeiro de 1997 o NIST (National Institute of
Standards and Technologies) deu início aos trabalhos
para a escolha de um novo algoritmo criptográfico
padrão para o governo dos Estados Unidos da América.
Para isso, submeteu uma especificação inicial, definindo
que os algoritmos participantes deveriam ser divulgados
publicamente, estar livres de direitos autorais e suportar
a tecnologia de chaves simétricas, utilizando blocos de
128 bits e chaves de 128, 192 e 256 bits. [1]
Em agosto de 1998, o NIST apresentou um grupo de
15 algoritmos na primeira conferência dos candidatos
AES, solicitando comentários públicos e submetendo-os
a membros da comunidade criptográfica mundial. [1]
Em março de 1999, na segunda conferência dos
candidatos AES, após a discussão da análise dos
algoritmos candidatos, foram selecionados cinco
finalistas dentre os participantes: MARS, RC6,
Rijndael, Serpent e Twofish. Após análise das
informações disponíveis, iniciada em maio de 2000, o
NIST apontou como vencedor, em outubro do mesmo
ano, o algoritmo Rijndael. [2]
A tabela I mostra a pontuação dos algoritmos de
acordo com quatro critérios definidos por Åsa Hagström
Por sua vez, a tabela II enumera alguns dos
resultados obtidos por especialistas através de estudos
comparativos, baseados na implementação padrão e
características de cada algoritmo à época da seleção dos
finalistas.
Tabela II – Resultados objetivos dos finalistas
Algoritmo TC1
Mars
4,2
RC6
Rijndael
10,7
19,7
TD2
13,5
EC3
MR4
4
8,3x10 2128/1728
LC5
940
12,9
3,3x104 1680/1200
850
23,6
Serpent
660 634,5
Twofish
14,1
14,0
1,9x10
4
2304/943
943
597,7 1776/1541
1541
2,8x104 5568/1427
1427
Fonte: http://gta.ufrj.br/~natalia/SSH/aes.html
Verificando-se os dados das tabelas, observa-se uma
grande preocupação com a eficiência dos algoritmos
analisados, especialmente no que se refere a tempo de
processamento, tanto na encriptação quanto na
desencriptação dos dados.
Este trabalho visa comparar o desempenho de alguns
algoritmos criptográficos simétricos no processo de
1
TC: tempo de encriptação em segundos
TD: tempo de desencriptação em segundos
3
EC: eficiência de encriptação em bytes/s
4
MR: memória RAM utilizada em bytes (Enc./Dec.)
5
LC: linhas de código
2
encriptação/desencriptação de grandes volumes de
dados, levando o leitor a se decidir pelo algoritmo mais
eficiente dentre os analisados para o seu contexto.
seja seguro na forma de 3DES, embora existam ataques
teóricos. Recentemente o DES foi substituído pelo AES.
[5].
2.2.2 O algoritmo Ice
2. Materiais e Metodologia
2.1 Equipamentos utilizados
Considerou-se que, mais importante que a
capacidade bruta de processamento, o computador
escolhido deveria ter capacidade multi-core, permitindo,
através do sistema operacional, que se definisse a
afinidade do programa sendo executado com um dos
núcleos de processamento. Ao mesmo tempo, utilizavase o(s) núcleo(s) restante(s) para monitoramento do
sistema e coleta dos resultados. Foi selecionado um
computador pessoal com processador Intel Core2 Quad
Q6600, com quatro núcleos independentes rodando a
2,4 GHz, com 4 Gigabytes de memória RAM DDR-2 de
667 MHz operando em 128 bits (2 x 64 bits), Hard
Disk de 500 GB e 7.200 RPM, e sistema operacional
Windows 7 Professional de 64 bits.
Dentro do sistema operacional, através de seu
gerenciador de tarefas, definiu-se que o software
utilizado para encriptação dos arquivos rodaria
exclusivamente no núcleo 0, ao passo que os demais
serviços e programas em execução utilizariam
aleatoriamente os núcleos 1, 2 ou 3. Com esta
configuração garantiu-se que o sistema operacional
evitasse a movimentação dos dados do aplicativo entre
os registradores e a memória RAM a cada alternância de
tarefas.
2.2 Algoritmos escolhidos
Como todos os algoritmos candidatos ao AES
trabalham basicamente da mesma forma, utilizando
blocos de dados de 128 bits e com chaves de 128, 192 e
256 bits, comparou-se seu desempenho na encriptação
de grandes volumes de dados com outros algoritmos
simétricos comuns que estão disponíveis, em sua
implementação padrão, na biblioteca DCPCrypt Versão
2 Beta 3 [4], compatível com o Borland Delphi, o
Borland C++ Builder e o Borland Kylix. Existem,
todavia, implementações desses algoritmos para outras
plataformas, tais como Java, PHP e .NET.
2.2.1 O algoritmo DES
O Data Encryption Standard (DES) é uma cifra
selecionada como padrão oficial pelo governo dos EUA
em 1976 e que foi utilizado em larga escala
internacionalmente até o ano 2000. O DES foi estudado
academicamente e motivou os sistemas modernos de
entendimento da criptoanálise. É atualmente
considerado inseguro para muitas aplicações devido,
principalmente, à pequena chave de 56 bits utilizada.
Em Janeiro de 1999, a distributed.net e a Electronic
Frontier Foundation, juntas, violaram uma chave DES
em 22 horas e 15 minutos. Acredita-se que o algoritmo
Em criptografia, ICE (Information Concealment
Engine, ou Mecanismo de Ocultação da Informação) é
uma cifra de bloco publicado por Kwan em 1997. O
algoritmo é semelhante em estrutura ao DES, mas com a
adição de um bit de permutação dependente de chave na
função de arredondamento. Essa permutação de bits
dependentes de chaves é aplicada de forma eficaz em
software. O algoritmo não está sujeito a patentes, e o
código-fonte foi colocado em domínio público. ICE é
uma rede de Feistel6 com um tamanho de bloco de 64
bits. O algoritmo ICE padrão tem uma chave de 64 bits
e tem 16 rodadas. Uma variante rápida, Thin-ICE, usa
apenas 8 rodadas. Uma variante aberta, ICE-n, usa 16n
rodadas com chave de 64n bits [6].
2.2.3 O algoritmo Mars
O Mars é um algoritmo criptográfico simétrico, com
tamanho de bloco de 128 bits e tamanho de chave que
varia de 128 a 400 bits. Seu objetivo era atender, e até
mesmo exceder, às expectativas de um padrão
criptográfico para os próximos anos. Além disso,
pretendia obter a melhor relação segurança/
desempenho usando as ferramentas e técnicas
disponíveis à época. Foi proposto para análise do NIST
pela IBM, sendo representado por um dos seus
criadores, Nevenko Zunic. Seus outros criadores são
Carolynn Burwickk, Don Coppersmith, Edwars
D’Avignon, Rosario Gennaro, Shai Halevi, Charanjit
Jutla, Stephen M. Matyas Jr., Luke O’Connor,
Mohammad Peyravian e David Safford [7].
2.2.4 O algoritmo RC6
O desenvolvimento do algoritmo RC6 partiu da ideia
de apresentar o algoritmo RC5 para avaliação do NIST
como candidato AES. Foram feitas modificações para
aumentar a segurança e melhorar o desempenho - em
atendimento aos requisitos do concurso -, porém uma
característica do RC5 - o half-round7 - continuou sendo
mantida como base para o loop interno do RC6. A
equipe responsável por essas alterações é formada por
cientistas pesquisadores da RSA Laboratories: Ronald
L. Rivest, Mathew J. B. Robshaw, Ray Sidney e Yiqun
Lisa Yin [7].
2.2.5 O algoritmo Rijndael
O algoritmo Rijndael é um algoritmo simétrico de
blocos, cujos tamanhos do bloco e da chave são
6
Em criptografia, uma rede de Feistel é uma estrutura
simétrica usada na construção de blocos de cifragem.
7
No algoritmo RC5, o termo half-round é usado para
descrever a atualização de uma metade de dados por
outra e sua posterior troca.
variáveis e podem ser independentemente especificados
com qualquer valor entre 128 e 256 bits, sempre em
múltiplos de 32 bits. O algoritmo foi submetido à
análise do NIST em razão do concurso AES por seus
criadores: Joan Daemen e Vincent Rijmen, e foi
escolhido como vencedor, por combinar características
como
segurança,
desempenho,
facilidade
de
implementação e flexibilidade [7].
2.2.6 O algoritmo Serpent
O algoritmo Serpent foi proposto ao processo de
seleção AES, de acordo com os requisitos impostos pelo
NIST, e foi desenvolvido por: Ross J. Anderson, Eli
Biham e Lars R. Knudsen. É um algoritmo de bloco que
utiliza s-boxes - semelhantes às utilizadas no algoritmo
DES - em uma nova estrutura que permite uma
implementação bitslice8 mais eficiente. Serpent é um
algoritmo que transforma o texto normal P em um texto
cifrado C em 32 rounds operando sobre quatro palavras
de 32 bits cada, gerando, desta forma, blocos de 128 bits
- tanto para a entrada como para a saída. Todos os
valores no algoritmo são representados como
bitstreams9 [7].
finalidade [8]. Estes arquivos foram então movidos para
uma unidade de armazenamento externo de 500 GB,
com uma única partição formatada em NTFS, através de
uma interface USB 2.0. Sua interface pode ser vista na
figura 1.
Ele apresenta apenas dois parâmetros básicos: o
nome do arquivo que se deseja criar, e seu tamanho (em
bytes). Ao clicar-se no botão “Exit” o formulário é
fechado e, ao clicar-se no botão “OK”, o arquivo
definido na caixa de texto “File” é criado em disco, com
o tamanho em bytes especificado na caixa de texto “File
size”, e totalmente preenchido com caracteres ASCII 10
aleatórios.
2.2.7 O algoritmo ThinIce
ThinICE é uma variante do algoritmo ICE que usa 8
rodadas ao invés de 16, fazendo com que o processo de
encriptação e desencriptação de arquivos ocorra muito
mais rapidamente. Apesar de rápido, é menos seguro
que o algoritmo que lhe deu origem: Van Rompay et al
(1998) chegou à conclusão de que um ataque com 223
mensagens teria 25% de chance de recuperar a palavra
chave, ao passo de que o mesmo ataque com o uso de
227 mensagens teria 95% de probabilidade de acerto.
Figura 1 – Software usado na geração dos arquivos.
Os arquivos, uma vez criados em disco, foram
criptografados através de um software de autoria própria
desenvolvido especificamente com esta finalidade [9].
Sua interface pode ser vista na figura 2.
2.2.8 O algoritmo Twofish
O algoritmo criptográfico Twofish foi submetido à
avaliação do NIST atendendo aos critérios de escolha do
AES. Seus criadores são Bruce Schneier, John Kelsey,
Doug Whiting, David Wagner, Chris Hale e Niels
Fergunson. Na realidade, o algoritmo surgiu a partir de
uma tentativa de modificar o modelo original do
algoritmo Blowfish, para torná-lo um algoritmo com
tamanho de bloco de 128 bits [7].
2.3 Metodologia dos testes
Inicialmente, foram criados os arquivos necessários
à realização das medições, nos tamanhos 100 MB (cem
Megabytes), 650 MB (seiscentos e cinquenta
Megabytes) e 1 GB (um Gigabyte) através de um
software desenvolvido especialmente para esta
8
Bitslicing pode ser definido como um método paralelo
de procura de chaves. A idéia básica é que caso seja
usado uma CPU que opera sobre N bits, N
processadores podem ser usados. Assim, caso a CPU
seja de 32 bits, existirão 32 processadores virtuais.
9
Fluxos de bits.
Figura 2 – Software usado na encriptação dos dados.
10
Acrônimo para American Standard Code for
Information Interchange.
A primeira caixa de texto, denominada “Input file”,
apresenta do seu lado direito com o ícone de uma pasta
que, uma vez clicado, abre o diálogo do sistema
operacional para seleção/abertura de arquivo; assim que
um arquivo é selecionado, ela é preenchida com seu
caminho completo. Logo abaixo, há um texto descritivo
que informa o tamanho do arquivo em bytes.
medição apresentasse um tempo de processamento
muito acima ou muito abaixo das demais, o valor
utilizado refletiria com maior precisão um cenário real
de uso.
A segunda caixa de texto, denominada “Output file”
apresenta ao seu lado direito outro botão, também com o
ícone de uma pasta que, uma vez clicado, abre um novo
diálogo do sistema operacional para seleção/salvamento
de arquivo; assim que um arquivo é selecionado, ela é
preenchida com o seu caminho completo.
Assim que selecionados os arquivos de entrada e
saída, deve-se informar o algoritmo criptográfico
utilizado dentre os disponíveis na lista denominada
“Cipher”. Para efeito deste artigo, foram utilizados os
algoritmos descritos no item 2.2. A seleção do algoritmo
Hash dependerá do tamanho de chave que se deseja
gerar. Para efeito deste artigo, utilizou-se o algoritmo
MD5 para as cifras DES, Ice e Thin Ice, produzindo-se
uma chave de 64 bits; o mesmo algoritmo para as cifras
Rijndael, Serpent e Twofish, produzindo-se uma chave
de 128 bits; e o algoritmo SHA512, para as cifras
Rijndael, Serpent e Twofish, produzindo-se uma chave
de 256 bits.
Figura 3 – Microsoft Office Excel 2007 com os dados
coletados.
O monitoramento do sistema se deu através do
gerenciador de tarefas do próprio sistema operacional,
que era capaz de mostrar o percentual de consumo de
CPU e os picos e vales de consumo de memória RAM
em tempo real, como pode ser visto nas figuras 4 e 5.
As duas próximas caixas de texto, denominadas
“Passphrase” e “Confirm passphrase” foram
preenchidas com a palavra “EDUARDO”, com todos os
caracteres em letras maiúsculas. Ambos os algoritmos
de hash utilizados diferem quanto à utilização de letras
maiúsculas ou minúsculas na palavra chave.
A caixa de texto denominada “Time spent”
armazena, ao final do processo de encriptação ou
desencriptação do arquivo, o tempo despendido na
operação selecionada, no formato ‘hh:mm:ss.zzz’, onde
‘hh’ refere-se às horas, ‘mm’ refere-se aos minutos, ‘ss’
refere-se aos segundos e ‘zzz’ refere-se aos
milissegundos.
Na parte inferior deste formulário estão disponíveis
três botões, sendo que os dois primeiros, denominados
“Encrypt” e “Decrypt” somente são ativados,
permitindo a ação do usuário, se todas as informações
necessárias forem preenchidas. O terceiro botão,
denominado “Close”, como o próprio nome sugere,
permite que o usuário finalize o programa.
Para a coleta dos resultados foi utilizado o software
Microsoft Office Excel, versão 2007, como pode ser
visto
na
figura
3.
Utilizou-se
a
função
MÉDIA(c1;c2;c...) deste software para o cálculo da
média dos tempos medidos.
Para efeito de análise dos dados, considerou-se a
média simples de cinco medições consecutivas para
cada arquivo em cada um dos algoritmos alvos deste
artigo. Com isso, pôde-se garantir que, caso alguma
Figura 4 – Histórico de uso de CPU.
Na figura 4 pode-se notar que o consumo total de
CPU ficou estacionado por volta de 26%, sendo que
25% da capacidade de processamento do computador
utilizado, ou um núcleo (CPU 0), manteve-se, durante o
processo de encriptação dos arquivos, em 100% o
tempo todo (linha verde contínua no primeiro gráfico).
A tabela IV apresenta os resultados verificados na
encriptação de um arquivo de 650 MB utilizando-se os
mesmos algoritmos.
Tabela IV - Resultados da encriptação do de 650 MB
com os algoritmos DES, Ice e Thin Ice
Tempo em segundos
Figura 5 – Histórico de uso da memória física.
Na figura 5 pode-se notar que, durante a encriptação
dos arquivos, o consumo de memória total esteve por
volta de 1.700 MB (mil e setecentos Megabytes), como
mostrado nas barras verdes do lado esquerdo da
imagem; entre uma execução e outra, a memória
utilizada para carregar o arquivo era liberada, voltando a
ser alocada no momento em que se iniciava um novo
processamento (linha azul no gráfico à direita da
imagem).
Iteração
1
DES
35,315
ICE
45,565
Thin Ice
27,368
2
35,465
45,102
27,363
3
35,413
45,112
27,325
4
35,681
45,205
27,336
5
35,357
45,242
27,348
Média
35,446
45,245
27,348
I/O (MB/s)
18,338
14,366
23,768
Pelos dados apresentados, conclui-se que o
algoritmo Thin Ice continua apresentando o melhor
desempenho na encriptação de um arquivo de texto com
650 MB. Seu desempenho foi 30% e 65% melhor tanto
na cifragem do arquivo quanto na taxa de I/O,
respectivamente, que os algoritmos DES e Ice.
A tabela V apresenta os resultados verificados na
encriptação de um arquivo de 1.000 MB utilizando-se
os mesmos algoritmos.
Tabela V - Resultados da encriptação do arquivo de
1.000 MB com os algoritmos DES, Ice e Thin Ice
3. Resultados
A tabela III apresenta os resultados verificados na
encriptação de um arquivo de 100 MB utilizando-se os
algoritmos DES, Ice e Thin Ice.
Tabela III - Resultados da encriptação do de 100 MB
com os algoritmos DES, Ice e Thin Ice
Tempo em segundos
Iteração
1
DES
6,013
ICE
7,004
Thin Ice
4,175
2
5,462
7,106
4,197
3
5,464
7,143
4,184
4
5,532
7,106
4,205
5
5,418
6,989
4,196
Média
5,578
7,070
4,191
I/O (MB/s)
17,928
14,145
23,858
Pode-se observar, através dos dados coletados, que o
algoritmo que apresentou os menores tempos de
encriptação, bem como a maior taxa de I/O, é o Thin
Ice. Ele foi 33% e 68% mais rápido, respectivamente,
que os algoritmos DES e Ice na encriptação de um
arquivo de texto de 100 MB, com uma taxa de I/O 33%
e 58% maior, respectivamente, que os mesmos
algoritmos.
Tempo em segundos
Iteração
1
DES
54,342
ICE
72,129
Thin Ice
44,610
2
54,252
72,078
44,492
3
54,295
72,778
44,314
4
54,407
72,761
44,885
5
54,318
72,396
44,325
Média
54,323
72,428
44,525
I/O (MB/s)
18,408
13,807
22,459
Verifica-se, pelos dados apresentados, que o
algoritmo Thin Ice continua apresentando o melhor
desempenho em qualquer aspecto analisado. Ele foi
22% e 63% mais rápido na encriptação do arquivo e na
taxa de I/O, respectivamente, que os algoritmos DES e
Ice.
A tabela VI apresenta os resultados verificados na
encriptação do arquivo de 100 MB com os algoritmos
RC6, Rijndael e Serpent e chave criptográfica de 128
bits.
Tabela VI - Resultados da encriptação do arquivo de
100 MB com os algoritmos RC6, Rijndael e Serpent e
chave de 128 bits
Tabela VIII - Resultados da encriptação do arquivo
de 1.000 MB com os algoritmos RC6, Rijndael e
Serpent e chave de 128 bits
Tempo em segundos
Tempo em segundos
Iteração
1
RC6
5,383
Rijndael
2,793
Serpent
10,623
Iteração
1
RC6
56,066
Rijndael
28,803
Serpent
112,223
2
5,393
2,767
10,634
2
55,837
28,873
111,566
3
5,387
2,768
10,672
3
56,029
29,015
111,552
4
5,383
2,766
10,631
4
56,001
29,601
111,266
5
5,391
2,765
10,629
5
55,793
28,884
111,241
Média
5,387
2,772
10,638
Média
55,945
29,035
111,570
I/O (MB/s)
18,562
36,078
9,400
I/O (MB/s)
17,875
34,441
8,963
Pelos dados apresentados, verifica-se que o
algoritmo de melhor desempenho em ambos os critérios
(tempo de encriptação e taxa de I/O) é o Rijndael, que
apresentou um tempo de processamento 47% e 74%
melhor, respectivamente, que os algoritmos RC6 e
Serpent. Sua taxa de I/O foi 94% e 283% maior,
respectivamente, que os mesmos algoritmos.
Os dados corroboram a superioridade do algoritmo
Rijndael quando analisados o tempo de processamento e
a taxa de I/O. Ele foi 48% e 74% mais rápido na
encriptação do arquivo texto, respectivamente, que os
algoritmos RC6 e Serpent, ao passo que apresentou uma
taxa de I/O cerca de 93% e 284% maior,
respectivamente, que os mesmos algoritmos.
A tabela VII apresenta os resultados verificados na
encriptação do arquivo de 650 MB com os algoritmos
RC6, Rijndael e Serpent e chave criptográfica de 128
bits.
Finalmente, foram analisados os mesmos algoritmos
- RC6, Rijndael e Serpent - com uma chave
criptográfica de 256 bits. Os resultados da encriptação
dos arquivos de 100 MB, 650 MB e 1.000 MB são
apresentados, respectivamente, nas tabelas IX, X e XI.
Tabela VII - Resultados da encriptação do arquivo
de 650 MB com os algoritmos RC6, Rijndael e
Serpent e chave de 128 bits
Tabela IX - Resultados da encriptação do arquivo de
100 MB com os algoritmos RC6, Rijndael e Serpent e
chave de 256 bits
Tempo em segundos
Iteração
1
RC6
35,097
Rijndael
18,087
Serpent
69,266
2
35,393
18,137
3
35,261
18,321
Tempo em segundos
69,673
Iteração
1
RC6
5,404
Rijndael
3,405
Serpent
10,636
69,777
2
5,411
3,408
10,650
5,379
3,407
10,633
4
35,103
18,070
69,440
3
5
35,095
18,094
69,459
4
5,410
3,406
10,644
Média
35,190
18,142
69,523
5
5,397
3,407
10,652
I/O (MB/s)
18,471
35,829
9,349
Os dados da tabela VII mostram que o algoritmo
Rijndael continua apresentando o melhor desempenho,
sendo 48% e 74% mais rápido na encriptação do
arquivo de 650 MB que, respectivamente, os algoritmos
RC6 e Serpent. Além disso, apresentou uma taxa de I/O
94% e 283% maior que os respectivos algoritmos.
A tabela VIII apresenta os resultados verificados na
encriptação do arquivo de 1.000 MB com os algoritmos
RC6, Rijndael e Serpent e chave criptográfica de 128
bits.
Média
5,400
3,407
10,643
I/O (MB/s)
18,518
29,355
9,396
Os dados da tabela IX mostram que, ao utilizar-se
uma chave de 256 bits, o algoritmo Rijndael continua
apresentando um desempenho superior, sendo 37% e
60% mais rápido na encriptação do arquivo e
apresentando uma taxa de I/O 58% e 212% maior,
respectivamente, que os algoritmos RC6 e Serpent. É
interessante notar que, na mudança da chave de 128
para 256 bits, esse algoritmo apresentou uma queda de
desempenho de quase 19%, conforme se pode observar
confrontando-se os dados da tabela IX com a tabela VI.
Esse
comportamento
pôde
ser
observado
independentemente do tamanho do arquivo utilizado.
4. Conclusões
Entre os algoritmos que utilizam chaves de 64 bits
destacou-se, pela velocidade, o ThinIce, que, na média
das medições, apresentou uma redução de tempo na
ordem de 19% a 25% na encriptação dos arquivos
quando comparado ao antigo padrão DES. Ressalta-se
também que, devido à maior velocidade de
processamento, a taxa de I/O medida foi 33% maior que
a verificada quando se utiliza a cifra DES.
Os algoritmos que utilizam chaves de 128 e 256 bits
pertencem, todos, ao quinteto que compôs a lista de
finalistas do concurso AES do governo dos EUA.
Dentre os três escolhidos para este trabalho pode-se
destacar, positivamente, o algoritmo Rijndael, que, além
de apresentar o menor tempo de encriptação para todos
os tamanhos de arquivos analisados, foi escolhido como
o algoritmo padrão a ser utilizado em todas as agências
e órgãos governamentais dos EUA. O algoritmo Serpent
destacou-se negativamente, apresentando não só os
maiores tempos de encriptação dos arquivos analisados
como também a menor taxa de I/O dentre todos os
algoritmos analisados. O algoritmo RC6 acabou ficando
nas médias das medições, com um tempo de
processamento duas vezes maior, em média, que o
algoritmo Rijndael, e duas vezes menor, em média, que
o algoritmo Serpent, independente do tamanho do
arquivo analisado.
Pôde-se verificar, através dos dados apresentados,
que nem sempre uma chave criptográfica menor
significa um menor tempo de encriptação. Algoritmos
criptográficos simétricos modernos quase sempre são
mais rápidos em suas operações que os antigos padrões.
Referências Bibliográficas
[1] FALEIROS, Antônio C. Análise do algoritmo
vencedor do AES: o Rijndael. Disponível em:
http://www.bibl.ita.br/ixencita/artigos/FundRafaelA
ntonio1.pdf. Acessado em: 23/03/2012. Páginas 1-2.
[2]
NIST. Commerce Department Announces
Winner of Global Information Security
Competition.
Disponível
em:
http://www.nist.gov/public_affairs/releases/g00176.cfm. Acessado em: 23/03/2012.
[3] HAGSTRÖM, Åsa. Ranking the AES Finalists.
Disponível
em:
http://teal.gmu.edu/courses/ECE636/AES/AsaHagstr
om.PDF. Acessado em 02/05/2012.
[4] BARTON, David. DCPcrypt Cryptographic
Component Library v2 Beta 3. Disponível em:
http://www.cityinthesky.co.uk/.
Acessado
em:
21/02/2011.
[5]
UFGRS. DES - Data Encrypt Standard.
Disponível
em:
http://penta.ufrgs.br/gere96/segur2/des.htm.
Acessado em 02/05/2012.
[6]
KWAN, Matthew. The ICE Home Page.
Disponível em: darkside.com.au/ice/index.html.
Acessado em 02/05/2012.
[7]
RIBEIRO, Vinícius G. SALES, Carmem L. C. Um
Estudo Comparativo entre os Algoritmos
Finalistas
do
AES.
Disponível
em:
http://www.sumarios.org/sites/default/files/pdfs/ilov
epdf.com_split_7_0.pdf. Acessado em 02/05/2012.
[8] NICÁCIO, Eduardo C. File Generator. Disponível
em: http://www.ecnsoft.net/?file_id=486. Acessado
em 11/06/2012.
[9] NICÁCIO, Eduardo C. File Encrypt. Disponível
em: http://www.ecnsoft.net/?file_id=487. Acessado
em 11/06/2012.
Download

Artigo - DESEMPENHO DE ALGORITMOS CRIPTOGRAFICOS