• No results found

Visando dificultar possíveis ataques e análises, este algoritmo foi desenvolvido com algumas mudanças, que serão descritas a seguir:

• Tamanho da Chave e sub chaves - utiliza-se 128 bits de tamanho da chave utilizada neste algoritmo. Entretanto, com esta chave, através do gerador de sub chave (ver Figura 12), é capaz de gerar 16 sub chave diferentes por meio do algoritmo Viterbi Modificado, onde as quatro primeiras sub chaves, rotuladas SC1, SC2, SC3 e SC4

são geradas da chave inicial de 128 bits, a qual gera dois fluxos de dados de 64 bits. Com isso os dois fluxos de 64 bits geram através do algoritmo Viterbi mais dois fluxos cada, obtendo-se assim, as 4 subchaves com 32 bits de tamanho cada. Desta maneira, concatena-se as 4 subchaves e através do mesmo processo obtém-se mais 4 chaves até um total de 16 chaves.

Figura 12: Estruturas do codificador Papílio

Fonte:[Ramos 2002].

• Número de Voltas (Rounds) - Este algoritmo utiliza até 16 voltas (ciclos), visando dificultar uma possível criptoanálise, como mostra a Figura 13. O texto a ser criptografado (texto claro) tem o tamanho de 64 bits. Na inicialização do processo de encriptação, o texto é divido em partes iguais de 32 bits cada, que são denominados

parte direita e esquerda, respectivamente DEi e ECi, para i | 0 6 i 6 16. No

entanto, apenas o semi-bloco direito DEi é entrada da função F durante todos os

ciclos. Já ECi sempre é aplicada à uma XOR com a saída da função F , como é

mostrado na Figura 13.

Figura 13: Estruturas do codificador Papílio

Fonte:[Ramos 2002].

• Função Utilizada - Utiliza o codificador Viterbi apesar de derivar de uma estrutura básica de um codificador Feistel (como mostra a Figura 13), onde no primeiro ciclo, é aplicada a chave SC1 e a entrada de 32 bits na função F é denominada D1, tendo

como resultado da função um texto de 32 bits que será então aplicado através de operação XOR com a outra metade do texto claro4

denominada E1. Sendo então

concatenadas D1 e E1 ao final do ciclo, elas serão novamente dividas em textos de

tamanho 32 bits e passarão novamente por todo o processo até o ciclo 16, que por fim será feita a última permutação das partes, tendo como resultado sua concatenação. Mais detalhes sobre a estrutura e funcionamento deste codificador e da função F correspondente, ver [Stallings 1998]. A função F 5

utilizada neste algoritmo é diferente da adotada por [Stallings 1998] como é apresentada em Figura 14, mas

4

Texto legível anterior ao processo de cifragem, dificultando ainda mais descoberta da chave 5

preserva a característica de permitir que o texto codificado seja dependente não somente da chave como também do texto claro.

Figura 14: Estrutura da função F.

Fonte:[Ramos 2002].

Como todo algoritmo criptográfico, o Papílio também detém características como a Difusão e a Confusão, sendo as mesmas conseguidas através de permutações e substituições feitas de maneira a dotar uma perfeita combinação das duas operações, mais detalhes sobre essas características podem ser vistas em [Ramos 2002].

2.3

Aprendizado de Máquina

A fim de testar o desempenho dos métodos de proteção em conjunto de dados no quesito de classificação é necessário a aplicação de algumas técnicas. Em geral, a aprendizagem de máquina envolve mecanismos adaptativos que permitem aos computadores aprender com a experiência. O aprendizado pode ser adquirido por exemplos ou por analogias. Neste caso, pode-se utilizar este tipo de aprendizado sobre uma base de dados criptografados, que passaram por processo de difusão e confusão dos padrões estabelecidos previamente nos dados originais, com o intuito de investigar e testar a segurança do modelo criptográfico utilizado na proteção assim como a eficiência dos classificadores.

A capacidade de aprendizagem pode melhorar o desempenho de um sistema inteligente com o tempo. Mecanismos de aprendizagem de máquina formam a base para sistemas adaptativos. Esta seção está orientada na descrição de classificadores e comitês utilizados

neste trabalho.

Neste caso, é interessante familiarizar-se com alguns classificadores em Aprendizado de Máquina. Contudo, segundo [Nilsson 2005] é importante determinar que o aprendizado de máquina geralmente refere-se às mudanças nos sistemas que executam tarefas associadas com a inteligência artificial (IA). Além disso, as suas tarefas envolvem o reconhecimento, diagnóstico, planejamento, controle de robôs, previsão, dentre outras tarefas.

De acordo com [Nilsson 2005] existem algumas disciplinas que têm contribuído para o Aprendizado de máquina:

• Estatística: Descobrir a melhor maneira de utilizar amostras colhidas de distribuições de probabilidades desconhecidas para ajudar a decidir a partir de qual distribuição uma nova amostra é retirada, configura-se um problema de longa data na estatística. Outro problema relacionado, é como estimar o valor de uma função desconhecida em um novo ponto, dado os valores dessa função em um conjunto de pontos de amostragem. Métodos estatísticos que lidem esses problemas podem ser considerados como casos de aprendizado de máquina, porque as regras de decisão e de estimativa dependem de um conjunto de amostras extraídas do ambiente problema.

• Redes Neurais: Elementos não-lineares com entradas ponderadas têm sido sugeridos como modelos simples de neurônios biológicos. Pesquisadores que trabalham na modelagens destes neurônios de forma semelhante aos do cérebro estão interessados como estas redes aproximam-se dos os fenômenos de aprendizagem de cérebros reais. • Teoria de Controle adaptativo: Estuda o problema do controle de um processo que tem os parâmetros desconhecidos que devem ser estimados durante a operação. Alguns aspectos do controle de um robô baseado em dados sensoriais representam instâncias desse tipo de problema.

• Inteligência Artificial: Desde o início, a pesquisa IA tem se preocupado com a aprendizagem de máquina. Foi desenvolvido um importante programa prévio que aprendeu parâmetros de uma função para avaliar posições do tabuleiro do jogo de damas. Alguns trabalhos têm sido abordados em descobrir regras para o uso de sistemas especialistas.

Neste trabalho foram utilizados alguns classificadores de aprendizagem de máquina. Esses classificadores são utilizados em IA, reconhecimento de padrões e em outras

subáreas. Podem ser classificados de acordo com o diagrama na Figura 15, onde dividem-se em dois tipos. O primeiro, aprendizado supervisionado, em que a classificação é vista como aprendizado supervisionado a partir de exemplos. Neste caso, os dados (observações, medições, etc) são rotulados com classes predefinidas. Em segundo lugar, os classificadores não supervisionados de aprendizagem (agrupamento) são caraterizados pelo desconhecimento dos rótulos de classe de dados e a tarefa é estabelecer a existência de classes ou clusters nos dados [Faceli et al. 2011]. Nesta tese foram utilizados apenas classificadores supervisionados, porém mais detalhes sobre classificadores sem supervisão podem ser encontrados em [Faceli et al. 2011] e em [Russell e Norvig 2009].

Figura 15: Hierarquia do Aprendizado