Um Algoritmo Criptográfico Posicional Otimizações e Desempenho

Tamanho: px
Começar a partir da página:

Download "Um Algoritmo Criptográfico Posicional Otimizações e Desempenho"

Transcrição

1 Um Algoritmo Criptográfico Posicional Otimizações e Desempenho Rodolfo Barros Chiaramonte 1 Fábio Dacêncio Pereira 1, 2 Edward Moreno 1, 2 chiaramonte@fundanet.br, fabiopereira@fundanet.br, edmoreno@fundanet.br 1 UNIVEM Centro Universitário Eurípides de Marília Fundação de Ensino Eurípides Soares da Rocha Av. Hygino Muzzi Filho 529, CEP , Marília, SP 2 LSI Laboratório de Sistemas Integráveis EPUSP Escola Politécnica da Universidade de São Paulo Av. Prof. Luciano Gualberto, Trav Cidade Universitária CEP , São Paulo, S.P Phone: Resumo Este trabalho apresenta implementações e otimizações de um algoritmo para criptografar dados, chamado de Posicional. Inicialmente explica-se o algoritmo e apresentam-se alguns exemplos de seu funcionamento. Posteriormente, se implementa o algoritmo em linguagem C e em VHDL (VHSIC Hardware Description Language) e se fornecem alguns dados de sua performance. Posteriormente são propostas algumas otimizações para obter uma maior segurança. Finalmente, é realizada uma comparação entre os resultados obtidos. Abstract This paper shows implementations and optimizations about a cryptography algorithm called Positional. Initially the algorithm is explained and some examples are shown. Then the algorithm is implemented in C language and in VHDL (VHSIC Hardware Description Language) and some data about its performance are shown. Later are proposed some optimizations to obtain a higher level of security. Finally, a comparison between the results is done. REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP 67

2 1. Introdução A segurança da informação digital é questão de preocupação para muita gente. Com isso foram desenvolvidas várias técnicas para dificultar o roubo de dados informatizados. Uma dessas técnicas é a criptografia digital, que consiste em transformar informações em códigos para evitar o acesso de pessoas não autorizadas e é utilizada desde a antigüidade. Com o surgimento dos computadores vários tipos de algoritmos criptográficos foram inventados, no entanto, os algoritmos considerados seguros necessitam de grande processamento e algumas vezes o tamanho da mensagem criptografada aumenta significativamente [1] [2]. Com a evolução das máquinas, uma chave de 56 bits como a usada pelo algoritmo DES não poderia mais garantir a segurança desejada por muito tempo [3]. Com isso, em 1997 iniciou-se um processo de escolha de um sucessor para este algoritmo. Este processo resultou em um novo padrão de criptografia simétrico denominado AES (Advanced Encryption Standard). Com o crescimento do uso da internet para aplicações como home banking, comércio eletrônico, e outras aplicações que necessitam de um meio seguro para a transmissão dos dados, a criptografia vem ganhando cada vez mais importância e sendo tópico de várias discussões. Desta forma, este artigo propõe um algoritmo de criptografia didático onde é possível perceber seus conceitos básicos, apresentando e destacando algumas falhas de segurança e alguns métodos simples para prover um aumento na segurança deste algoritmo. Importante destacar que por ser desenvolvido para fins didáticos este algoritmo possui algumas falhas e não deve ser utilizado em sistemas que exigem muita segurança. No entanto é um algoritmo simples que permite facilitar o estudo sobre a criptografia e verificar métodos de análise de desempenho abordando aspectos de implementação em software e hardware [3] [4]. Dessa maneira, o artigo apresenta as seguintes contribuições: (i) Apresenta os conceitos básicos do algoritmo Posicional; (ii) Propõe implementações desse algoritmo utilizando funções baseadas em polinômios posicionais de diferentes graus; (iii) Analisa o desempenho dessa nova proposta comparando os resultados obtidos nas implementações em software e em hardware; (iv) propõe otimizações para o aumento da segurança; (v) implementa as otimizações em software realizando uma comparação de desempenho com as versões anteriores em software. Portanto é realizada uma comparação de desempenho das implementações em software (em linguagem C) e em hardware (VHDL) do algoritmo Posicional com diferentes graus. Alguns testes de desempenho foram realizados mostrando que o algoritmo posicional é significativamente rápido. Algumas otimizações para o aumento da segurança são propostas e implementadas em software (em linguagem C) e o seu desempenho é comparado com as implementações anteriores. O algoritmo Posicional apresentou um bom desempenho o que se deve à maior simplicidade de implementação, o que decorre em uma menor segurança quando comparado com algoritmos que utilizam funções matemáticas mais complexas [5]. Ainda assim, pode-se obter bons resultados na tentativa de quebrar o sistema cifrado, uma vez que os tempos obtidos através de uma criptoanálise exaustiva (testando todas as chaves possíveis) mostra que é inviável este tipo de ataque sobre o algoritmo Posicional. No projeto implementou-se também o programa que obtém as chaves através de busca exaustiva e obtivemos surpreendentemente bons resultados [6]. No entanto é possível através de métodos matemáticos obter a chave do algoritmo Posicional simples rapidamente. Este problema foi solucionado através das otimizações proposta na seção 5 deste artigo. O restante do artigo está organizado da seguinte maneira: na seção 2 são descritos alguns concei- 68 REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP

3 tos básicos do algoritmo Posicional e apresentase alguns exemplos, na seção 3 descreve-se uma implementação em software do algoritmo Posicional utilizando a linguagem C e dados sobre sua performance são apresentados, na seção 4 descreve-se uma implementação do algoritmo Posicional em hardware utilizando FPGAs, na seção 5 são apresentadas otimizações do Posicional para obter uma maior segurança e seu desempenho é analisado. Finalmente, a seção 6 apresenta as conclusões. 2. Descrição do Algoritmo Posicional Conceito: O algoritmo de criptografia Posicional consiste em que a posição do byte interfere sobre a chave utilizada na cifragem. O algoritmo Posicional se baseia no bem conhecido Cifra de César [7]. Em nossa proposta, o Algoritmo Posicional, foi introduzida uma função sobre o algoritmo Cifra de César para que cada posição seja cifrada de forma diferente eliminando o problema de freqüência de letras. Exemplos de Funcionamento: Com o algoritmo Posicional Básico a seqüência AAABBB, por exemplo, poderia ser cifrada como BCDFGH, sem acrescer a ela nenhum bit. Para isso, admita-se o valor decimal dos bytes A, B, C, D, E,F,G e H de acordo com a tabela ASCII (65, 66, 67, 68, 69, 70, 71 e 72 respectivamente). A esses valores são acrescidos os valores de sua posição. Agora vamos supor o exemplo da tabela 1 onde existe uma seqüência AAABBB. Como o primeiro A está na posição um, o seu valor decimal cifrado será 66 (que eqüivale na tabela ASCII ao caracter B), mas como o segundo A está na posição dois, deve-se acrescer 2 ao seu valor ASCII, assim o valor decimal do segundo byte será 67 (que eqüivale na tabela ASCII ao caracter C). Tabela 1. Tabela exemplo Algoritmo Posicional Básico Infelizmente esse modelo ainda é simples de ser decifrado. Por esse motivo, na nossa proposta de algoritmo Posicional é recomendável somar ao valor do byte original representado em ASCII um número gerado utilizando-se de uma expressão matemática que usa a posição do byte (variável x). Por exemplo: usando uma expressão do tipo a*x+b. Nesse tipo de cifragem, quanto maior o grau da expressão posicional, maior será a complexidade do algoritmo e por sua vez a segurança dos dados cifrados usando-se desse algoritmo. Por exemplo: Se a expressão posicional for do terceiro grau, terá uma segurança maior que um sistema com expressão do segundo grau. A seguir é apresentado um exemplo completo de cifragem utilizando grau 3. Neste exemplo ocorre o estouro de um byte, ou seja, o valor decimal do código cifrado é maior que 256 que é o valor máximo que pode ser armazenado em um byte (o código ASCII tem a capacidade de 2 8 =256 possibilidades). No caso de estouro, assume-se que o valor do byte será valor encontrado mod 256 onde mod retorna o resto da divisão. A expressão posicional utilizada será: f(x) = 23x x 2 45x 63 à Os coeficientes (23,26,-45,-63) foram selecionados aleatoriamente. Considerando o mesmo exemplo anterior cuja seqüência original é AAABBB, temos as seguintes fases (ver tabela 2). As colunas em destaque com sombra indicam aquelas onde ocorreu o estouro de um byte. Os valores 722, 1711, 3303 e 5637 ultrapassam 256 e REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP 69

4 não podem ser armazenados em apenas um byte. Para solucionar esse problema é realizada uma divisão e o resto da divisão é utilizado como o valor cifrado. Por exemplo: dividindo o valor 722 por 256 o resto obtido é 210 que é utilizado na penúltima linha da tabela. Os outros valores são calculados do mesmo modo. Tabela 2. Exemplo Posicional Grau 3 (23x x 2 45x 63) Figura 1. Exemplo do algoritmo utilizando a chave (1,1,1,1,1,1,1,1,1,1) Grau 10 Similarmente na figura 2 solicita-se uma chave de entrada: (123,423,573,567,234) o que significa que: f(x) = 123x x x x x 1. Figura 2. Exemplo de algoritmo utilizando a chave (123,423,573,567,234) Grau 5 3. Implementação em Software O algoritmo Posicional foi implementado em linguagem C. A seguir são colocados exemplos de funcionamento do algoritmo com vários tipos de chaves diferentes. Os exemplos foram obtidos através da captura da tela de execução do algoritmo. Os números utilizados para compor a chave podem ser gerados aleatoriamente, contudo, critérios para a formação das chaves estão sendo estudados para evitar a duplicidade das chaves, isto é, evitar que mais que uma chave possa decifrar determinada mensagem. A tabela 3 mostra como uma mesma mensagem fica cifrada utilizando-se chaves diferentes. Nessa tabela, pode-se perceber mais uma vantagem do algoritmo posicional. Independentemente do grau do polinômio usado e dos coeficientes usados, a mensagem cifrada permanece do mesmo tamanho que a mensagem original. Tabela 3. Mensagens cifradas com chaves diferentes. Tabela 4. Desempenho do algoritmo Posicional Desempenho do algoritmo Posisional: As figuras 1 e 2 mostram o algoritmo implementado sendo executado. Inicialmente, o programa solicita o texto que deve ser cifrado, depois o programa solicita ao usuário a chave. Na figura 1 foi digitado para a chave (1,1,1,1,1,1,1,1,1,1) o que significa que está-se usando uma função de grau 10 na seguinte maneira: f(x) = 1x 10 +1x 9 +1x 8 +1x 7 +1x 6 +1x 5 +1x 4 +1x 3 +1x 2 +1x 1 70 REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP

5 A tabela 4 mostra o desempenho da implementação do algoritmo Posicional em software (em linguagem C). O desempenho apresentado foi obtido através de um computador AMD Duron 950 Mhz com 128 Mb de memória. Através da tabela 4 pode-se notar que o algoritmo Posicional tem um bom desempenho, demorando cerca de 2,5 segundos para cifrar 1,5Mbytes utilizando o grau máximo de segurança. 4. Implementação em Hardware utilizando FPGAs (linguagem VHDL). Nesta seção é feita uma análise do desempenho em hardware implementação real e física em um circuito programável (FPGA) da ALTERA e usando VHDL como linguagem de descrição de hardware, e uma comparação com o desempenho obtido com a implementação em software. Para a implementação em VHDL foi utilizada a ferramenta MAX PLUS II da Altera utilizando a FPGA EPF10K20RC Todas as estatísticas e testes apresentados foram obtidos utilizando esse dispositivo. Inicialmente, foi proposto um circuito para realizar a cifragem de um caracter. Para isso, estudou-se o algoritmo de criptografia de um caracter e propôs-se uma arquitetura (em hardware) que define o seu funcionamento. Após isso, os diferentes módulos necessários para a implementação foram descritos em VHDL separadamente, logo depois se integraram para cumprir a função toda. Finalmente, foram realizadas simulações usando-se a ferramenta da ALTERA e conseguiu-se mapear com sucesso em uma FPGA real. A arquitetura do algoritmo consiste de: contadores, um módulo para calcular a potência, uma memória, um multiplicador, um acumulador, um comparador, e um registrador especial. Além disso são necessárias uma parte de controle para cifrar um único caractere e uma parte que define a criptografia de uma mensagem (usando como base o circuito que cifra um único caractere). Uma vez que o acesso à memória ocorre a cada 100ns e a programação da chave requer somente acessos à memória para gravação de seus valores e considerando que uma chave de grau n possui n valores e requer n acessos à memória; o tempo de programação de uma chave pode ser calculado pela fórmula 100ns * grau da chave. Os tempos obtidos, da implementação real em uma placa FPGA, durante a cifragem de um caractere nos diversos graus possíveis para a chave são apresentados na tabela 5. A figura 3 mostra os resultados das simulações em uma FPGA. Tabela 5. Tempos obtidos na criptografia de um caractere Com base nesses tempos, podemos calcular o tempo necessário para cifrar textos com vários tamanhos e assim comparar os resultados com os obtidos na implementação em software. A tabela 6 mostra o tempo estimado para a cifragem de textos com os tamanhos de 0,5Mb, 1,0Mb e 1,5Mb. Tabela 6. Tempo estimado (em segundos) para a cifragem de arquivos de 0,5Mb, 1,0Mb e 1,5Mb O algoritmo para realizar a cifragem de um caractere é descrito a seguir: PARA i DE 1 ATÉ grau_da_chave soma = soma + (valor_da_chave * posição i ) FIM PARA caracter_cifrado=caracter_original + soma % 256; REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP 71

6 A figura 4 mostra o gráfico de desempenho obtido através das estimativas calculadas na tabela 6. Nota-se que a implementação em hardware possui um desempenho mais lento que a implementação em software. Isso ocorre pois os tempos obtidos são tempos estimados através da multiplicação do tamanho do arquivo pelo tempo necessário para cifrar um caractere. Uma otimização possível é permitir que mais de um caractere possam ser cifrados em paralelo, o que melhorará muito o desempenho. Os módulos utilizados no circuito para realizar a cifragem de um caractere foram dois contadores, uma memória, um acumulador, um multiplicador, um circuito para calcular potências, um comparador, um registrador e dois módulos para sincronizar sinais internos. As estatísticas de cada módulo são apresentadas abaixo na tabela 7. Tabela 7. Sumário Estatísticas de uso da FPGA Figura 4. Desempenho da implementação em hardware 5. Otimizações de Segurança do Algoritmo Esta seção apresenta otimizações propostas ao algoritmo Posicional para obter uma maior segurança Utilização de blocos de 32 e 64 bits Motivação para a otimização: Como descrito anteriormente na seção 2, quando ocorre o estouro de um byte é calculado o resto da divisão do valor obtido por 256, ou seja, valor cifrado = valor obtido (mod 256). Isso faz com que a cifra tenha um período curto de 256 bytes, ou seja, o resultado da expressão (mod 256) vai coincidir a cada 256 bytes como mostra o exemplo da tabela 8 utilizando a chave (23,26,45,63): Tabela 8. Repetição dos valores a cada 256 bytes Figura 3. Resultados da simulação em hardware 72 REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP

7 Com isso um criptoanalista pode facilmente dividir o texto cifrado em blocos de 256 bytes e conseguir obter o texto legível. Para evitar esse ataque é necessário ampliar o período da cifra considerando blocos ao invés de bytes. Utilizando blocos de 32 bits (4 bytes) o período da cifra é alongado para 2 32, ou seja, a repetição dos valores só ocorrerá a cada 2 32 bytes ( bytes ou 4 giga bytes). Para implementar esta operação basta fazer com que a função de leitura do arquivo leia 32 bits; e alterar o tipo de dados utilizado de char para int. Como blocos de 32 bits estão sendo utilizados, são cifrados 4 bytes ao mesmo tempo, o que melhorou significativamente o desempenho. É possível realizar implementações com blocos maiores, no entanto, foi constatado que isso não oferece muitas vantagens. Dois motivos principais serão descritos abaixo: A figura 5 mostra um gráfico comparativo de desempenho sobre as implementações. O gráfico mostra a taxa de cifragem em Mbytes/segundo. Através dele pode se observar que quanto maior o tamanho do bloco maior a taxa de cifragem (principalmente utilizando chaves pequenas como a de grau 1 ou 2), no entanto, o uso de blocos acima de 32 bits não é recomendável por questões de segurança. Pode-se observar que utilizando blocos de 32 bits é possível conseguir um bom desempenho (1,61 Mytes/segundo) utilizando chaves no grau máximo (grau 10); o que oferece também um bom nível de segurança. Essa taxa de cifragem é 2,78 vezes maior que a taxa de cifragem do algoritmo Posicional sem blocos utilizando chaves de grau máximo (grau 10) que corresponde a 0,58 Mbytes/segundo. 1 As mensagens raramente excedem o limite de 4 giga bytes; 2 Com blocos maiores, maior é a probabilidade de parte do bloco cifrado coincidir com o bloco original, pois o valor do resultado da expressão tende a ser pequeno no início das mensagens, principalmente quando a chave utilizada é pequena. Desempenho da otimização: Como descrito anteriormente o desempenho melhorou significativamente. Na tabela 9 são apresentadas estatísticas de funcionamento de duas versões em blocos (blocos de 32 e de 64 bits) utilizando chaves de grau 1 até 10. Os tempos foram obtidos com base em um computador com processador AMD Duron 950 Mhz e 128 Mb de memória. Tabela 9. Desempenho do algoritmo Posicional Blocos de 32 e 64 bits Figura 5. Gráfico comparativo de desempenho 5.2. Inclusão de bits aleatórios Motivação: Como visto no capitulo anterior, realizar a criptografia em blocos alongando o período da cifra aumenta significativamente a segurança. No entanto, este algoritmo continua vulnerável a um ataque por texto legível conhecido, onde um criptoanalista de posse de um texto legível e seu correspondente ilegível consegue obter a chave. Veja a seguir um exemplo de como isso ocorre com o algoritmo Posicional: A função de cifragem tem como entrada e saída um valor do tamanho do bloco que está sendo uti- REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP 73

8 lizado e as operações são realizadas mod (2 t ), onde t = tamanho do bloco. Vamos supor que o criptanalista tem acesso à seguinte parte ABCDEFGHIJKL que começa na posição 111 de um texto que foi cifrado utilizando uma versão com blocos de 32 bits e com a chave 10,20,30, no entanto o criptoanalista não conhece a chave, apenas a mensagem ilegível correspondente àquela parte do texto. A tabela 10 a seguir mostra como os dados foram cifrados e a tabela 11 mostra quais são os dados que o criptoanalista tem acesso. Tabela 10. Exemplo de criptografia Tabela 11. Dados em posse do criptanalista O criptoanalista em posse dos dados na tabela 11 calcula Criptografado (menos) Original obtendo os valores equivalentes ao resultado da expressão na tabela 10. Com posse desses valores ele pode montar o seguinte sistema: Para montar o sistema o criptoanalita pode utilizar o seguinte raciocínio: Para gerar o resultado da expressão para a posição 111 foi realizado o seguinte calculo: chave1 * chave2 * chave3 * Como sobraram três incógnitas (chave1, chave2 e chave3) é necessário ter pelo menos três expressões para poder resolver o sistema. O criptoanalista deve então gerar expressões utilizando os valores obtidos com as outras posições (112 e 113) para montar o sistema completo que foi apresentado acima. No sistema apresentado acima as incógnitas chave1, chave2 e chave3 foram substituídas por a, b e c respectivamente. Existem métodos matemáticos de permitem resolver rapidamente até os sistemas de grau 10 (grau máximo de segurança oferecido pelas implementações do Posicional). Para solucionar esse problema a função de cifragem foi alterada e passou a ter como entrada três caracteres de 8 bits (24 bits de entrada) e como saída um inteiro de 32 bits. A função calcula internamente 8 bits aleatórios e acrescenta à entrada (formando o bloco completo de 32 bits) antes de realizar a cifragem do bloco (que ainda é de 32 bits). Isso dificulta ao criptoanalista a criação do sistema apresentado acima, pois não será possível a ele saber com certeza qual era o bloco original antes de ser cifrado, pois os bits aleatórios foram inseridos dentro da função de cifragem. Para que o criptoanalista consiga gerar um sistema capaz de calcular a chave, ele terá que descobrir quais foram os bits acrescentados. Para uma chave de grau 1, como é necessário apenas um bloco para conseguir montar o sistema completo ele terá de testar 256 possibilidades. Já para um sistema de grau 3, em que é necessário utilizar 3 blocos para montar o sistema, uma vez que em um sistema com grau 3 existem três incógnitas, ele terá de testar 2 24 possibilidades, ou seja, possibilidades. Em um sistema com grau 10, que é o que oferece o maior nível de segurança, é necessário testar 2 80 possibilidades, ou seja, possibilidades; o que torna esse tipo de ataque inviável ao criptoanalista. Implementação da otimização: Foram implementadas três versões da implementação proposta, que diferem entre si apenas pelo modo em que os bits são acrescentados. Uma primeira versão apenas 74 REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP

9 acrescenta os bits aleatórios ao final do bloco. Uma segunda versão implementada realiza o deslocamento para a esquerda um número variável de vezes, de acordo com o número de vezes que a função de cifragem é chamada. Uma terceira versão, considerada a mais aconselhável, distribui os bits aleatórios por todo o bloco. Desempenho da otimização: Como era de se esperar o desempenho dessa otimização diminuiu um pouco, no entanto reflete a maior segurança obtida por esse algoritmo. O maior problema quanto ao desempenho dessa otimização é quanto ao arquivo de saída cifrado, que é 25% maior que o arquivo de entrada original. Na figura 6 a seguir é apresentado um gráfico que mostra o desempenho das três versões dessa otimização, comparando com o desempenho da versão que cifra blocos de 32 bits sem acréscimo de nenhum bit aleatório. 6. Conclusão Neste artigo apresentou-se a proposta do algoritmo Posicional e respectivas implementações em software (linguagem C) e hardware (VHDL). No entanto o nível de segurança obtido por este algoritmo ainda não era satisfatório. Foram então propostas e implementadas várias otimizações ao algoritmo Posicional para aumentar a sua segurança. Os resultados obtidos mostram que foi possível melhorar significativamente a segurança do algoritmo Posicional sem que este perdesse performance significativamente. A solução de cifragem em blocos com o algoritmo Posicional permite um aumento na segurança e ao mesmo tempo fez com que ele se tornasse muito mais rápido, pois com a cifragem em blocos, vários caracteres são cifrados em uma única vez (no caso de blocos de 32 bits são quatro caracteres cifrados ao mesmo tempo). A outra solução adotada para aumentar a segurança fez com que o desempenho diminuísse um pouco, pois exige tempo para a geração de seqüências aleatórias e diminui o número de caracteres cifrados de quatro para três (utilizando blocos de 32 bits). Ainda assim o desempenho apresentado é melhor que o desempenho apresentado pela versão original do algoritmo Posicional. Como trabalhos futuros, pretende-se implementar as otimizações apresentadas em linguagem VHDL para a utilização em FPGAs. Figura 6. Comparação de desempenho entre as otimizações Através dos dados da figura 6 pode-se notar que o desempenho das três versões que inserem bits aleatórios no bloco é parecido e são todos mais lentos que a versão em blocos de 32 bits. No entanto podese dizer que o algoritmo se tornou muito mais seguro sem perder muito em eficiência, pois nos maiores níveis de segurança (próximos ao grau 10) o desempenho dos algoritmos que incluem bits aleatórios é muito parecido com o desempenho do algoritmo que cifra blocos de 32 bits sem a inclusão de bits. Referências [1] Segurança de Dados Criptografia em Redes de Computadores. Routo Terada, Ed. Edgard Blücher, 1 a Edição, (2000). [2] Cryptography and Networks Security: Principles and Practices. William Stallings, Ed. Prentice Hall, Second Edition, (1995). REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP 75

10 [3] Criptografia em Software e Hardware, Edward Moreno, Fábio D. Pereira, Rodolfo B. Chiaramonte, Novatec Editora ( 1ª Edição, (2005). [4] Chiaramonte, Rodolfo B.; Moreno, Edward D.. Criptografia Posicional em Hardware; Revista Eletrônica de Iniciação Científica REIC, (Dezembro 2002). [5] The Art of Computer Programming Volume 2: Seminumerical Algorithms Third Edition, Donald E. Knuth, Ed. Addison Wesley, (1997). [6] Chiaramonte, Rodolfo B.; Moreno, Edward D.. Criptografia Posicional: Uma Solução para Segurança de Dados: Conceitos, Exemplos e desempenho; Revista Eletrônica de Iniciação Científica REIC, (Novembro 2001). [7] Bruce Schneier. Applied Cryptography: Protocols, Algorithms and Source in C. 2nd Ed. John Wiley and Sons, New York, (1996). Autores * : Rodolfo Barros Chiaramonte Bacharel em Ciência da Computação UNIVEM Centro universitário Eurípides de Marília. Atualmente mestrando em Ciência da Computação - UNIVEM Fábio Dacêncio Pereira Bacharel e Mestre em Ciência da Computação do UNIVEM Centro universitário Eurípides de Marília. Atualmente doutorando em Engenharia Elétrica Universidade de São Paulo, USP. Edward Moreno Doutor pela EPUSP, e Pós-Doutorado na UFSCAR Professor no UNIVEM Centro universitário Eurípides de Marília e Professor convidado no LSI EPUSP Escola Politécnica da Universidade de São Paulo * Os autores publicaram recentemente, pela Editora Novatec, o livro Criptografia em Software e Hardware. 76 REVISTA DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS EPUSP

DESEMPENHO DE UM ALGORITMO POSICIONAL EM SOFTWARE E HARDWARE.

DESEMPENHO DE UM ALGORITMO POSICIONAL EM SOFTWARE E HARDWARE. DESEMPENHO DE UM ALGORITMO POSICIONAL EM SOFTWARE E HARDWARE Edward David Moreno Rodolfo Barros Chiaramonte Fundação de Ensino Eurípides Soares da Rocha Faculdade de Informática de Marília - Bacharelado

Leia mais

Referências. Criptografia e Segurança de Dados. Criptoanálise. Outras Referências. Criptoanálise - Custos. Criptoanálise

Referências. Criptografia e Segurança de Dados. Criptoanálise. Outras Referências. Criptoanálise - Custos. Criptoanálise Criptografia e Segurança de Dados Aula 2: Introdução à Criptoanálise Referências Criptografia em Software e Hardware Autores: Edward D. Moreno Fábio D. Pereira Rodolfo B. Chiaramonte Rodolfo Barros Chiaramonte

Leia mais

SEGURANÇA USANDO CRIPTOGRAFIA ASSIMÉTRICA EM HARDWARE

SEGURANÇA USANDO CRIPTOGRAFIA ASSIMÉTRICA EM HARDWARE SEGURANÇA USANDO CRIPTOGRAFIA ASSIMÉTRICA EM HARDWARE MUZZI, Fernando Augusto Garcia; TAMAE, Rodrigo Yoshio; ROSA; Adriano Justino Docentes da Faculdade de Ciências Gerenciais e Jurídicas de Garça FAEG/Garça

Leia mais

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

Tão logo os homens adotaram a escrita, começaram a se preocupar em enviar informações em segredo. Evolução da arte do segredo Tão logo os homens adotaram a escrita, começaram a se preocupar em enviar informações em segredo. Criptografia Kryptós = escondido, oculto gráphein = grafia, escrever Criptografia

Leia mais

Circuito de Recepção Serial Assíncrona

Circuito de Recepção Serial Assíncrona Circuito de Recepção Serial Assíncrona Versão 2016 RESUMO O objetivo desta experiência é aplicar a metodologia de projeto de circuitos digitais com dispositivos programáveis adotado no Laboratório Digital

Leia mais

Criptografia e Segurança de Redes Capítulo 5. Quarta Edição por William Stallings

Criptografia e Segurança de Redes Capítulo 5. Quarta Edição por William Stallings Criptografia e Segurança de Redes Capítulo 5 Quarta Edição por William Stallings Capítulo 5 Advanced Encryption Standard Parece muito simples." É É muito simples. Mas se você não conhece a chave, é praticamente

Leia mais

AULA 5: Criptografia e Esteganografia

AULA 5: Criptografia e Esteganografia AULA 5: Criptografia e Esteganografia Criptografia A forma mais utilizada para prover a segurança em pontos vulneráveis de uma rede de computadores é a utilização da criptografia. A criptografia é utilizada

Leia mais

OSRC001 Segurança em Redes de Computadores Módulo 01: Visão Geral

OSRC001 Segurança em Redes de Computadores Módulo 01: Visão Geral OSRC001 Segurança em Redes de Computadores Módulo 01: Visão Geral Prof. Charles Christian Miers e-mail: charles.miers@udesc.br Apresentação: Nome: Charles Christian Miers Formação: Graduação: PD-CCT/UDESC

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Um pouco de Teoria dos Números

Leia mais

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

SEGURANÇA CRIPTOGRAFIA E SEGURANÇA DE DADOS. As funções de cifra são consideradas totalmente seguras se: 20/02/2016 PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com CRIPTOGRAFIA E SEGURANÇA DE DADOS SEGURANÇA As funções de cifra são consideradas totalmente seguras se: Independente do tempo e do poder

Leia mais

OSRC001 Segurança em Redes de Computadores Módulo 06: Criptografia Simétrica: DES/SDES

OSRC001 Segurança em Redes de Computadores Módulo 06: Criptografia Simétrica: DES/SDES OSRC001 Segurança em Redes de Computadores Módulo 06: Criptografia Simétrica: DES/SDES Prof. Charles Christian Miers e-mail: charles.miers@udesc.br História do DES Desenvolvimento do cifrador Lucifer pela

Leia mais

Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis

Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis Álamo G. Silva, Leonardo A. Casillo Departamento de Ciências Exatas e Naturais Universidade Federal Rural do Semi- Árido

Leia mais

TÓPICOS ESPECIAIS EM SEGURANÇA DA INFORMAÇÃO

TÓPICOS ESPECIAIS EM SEGURANÇA DA INFORMAÇÃO TÓPICOS ESPECIAIS EM SEGURANÇA DA INFORMAÇÃO AULA 2 CRIPTOGRAFIA AES PROF. MEHRAN MISAGHI 2 AULA 2 CRIPTOGRAFIA AES OBJETIVOS DA AULA Conhecer o histórico do cifrador AES; Compreender a arquitetura do

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital ARITMÉTICA DECIMAL

EPUSP PCS 2011/2305/2355 Laboratório Digital ARITMÉTICA DECIMAL ARITMÉTICA DECIMAL Versão 2012 RESUMO Nesta experiência será estudado um circuito aritmético de soma e subtração decimal a partir dos somadores binários de 4 bits (por exemplo, o circuito integrado 74283).

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS SOMADORES DECIMAIS Versão 2012 RESUMO Nesta experiência será estudado um circuito aritmético de soma decimal a partir dos somadores binários de 4 bits (por exemplo, o circuito integrado 74283). A parte

Leia mais

CALCULADORA SIMPLES COM ULA

CALCULADORA SIMPLES COM ULA CALCULADORA SIMPLES COM ULA Versão 2013 RESUMO 1 Esta experiência tem por objetivo a utilização de circuitos integrados de operações lógicas e aritméticas para o desenvolvimento de circuitos que executam

Leia mais

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

Criptografia e Segurança em Rede Capítulo 3. William Stallings Criptografia e Segurança em Rede Capítulo 3 William Stallings Capítulo 3 - Cifras de Blocos e Data Encryption Standard Por toda a tarde, Mungo tinha trabalhado no código de Stern, principalmente com a

Leia mais

Projeto com Linguagens de Descrição de Hardware

Projeto com Linguagens de Descrição de Hardware Projeto com Linguagens de Descrição de Hardware Versão 2012 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware.

Leia mais

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

OTES07 Segurança da Informação Módulo 05a: Criptografia Simétrica: DES/SDES OTES07 Segurança da Informação Módulo 05a: Criptografia Simétrica: DES/SDES Prof. Charles Christian Miers e-mail: charles@joinville.udesc.br Roteiro Criptografia Moderna: Histórico DES e SDES SDES Componentes

Leia mais

EPUSP PCS2355 Laboratório Digital SOMADORES DECIMAIS

EPUSP PCS2355 Laboratório Digital SOMADORES DECIMAIS SOMADORES DECIMAIS Versão 2015 RESUMO Nesta experiência será estudado um circuito aritmético de soma decimal a partir dos somadores binários de 4 bits (por exemplo, o circuito integrado 74283). A parte

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Aritmética Computacional - Inteiros - Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário A unidade lógico-aritmética Representação de números inteiros

Leia mais

Aula 06 - Máquina Multinível e Von Neumann

Aula 06 - Máquina Multinível e Von Neumann Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos Instalação e Organização de Computadores Aula 06 - Máquina Multinível e Von Neumann Prof. Diego Pereira

Leia mais

RODOLFO BARROS CHIARAMONTE SICO: UM SISTEMA INTELIGENTE DE COMUNICAÇÃO DE DADOS COM SUPORTE DINÂMICO A SEGURANÇA

RODOLFO BARROS CHIARAMONTE SICO: UM SISTEMA INTELIGENTE DE COMUNICAÇÃO DE DADOS COM SUPORTE DINÂMICO A SEGURANÇA FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO RODOLFO BARROS CHIARAMONTE SICO: UM SISTEMA INTELIGENTE DE COMUNICAÇÃO

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar - Aula 1 - O NÍVEL DA LÓGICA DIGITAL 1. INTRODUÇÃO Na parte inferior da hierarquia da figura abaixo encontramos o nível da lógica digital, o verdadeiro hardware do computador. Este nível situa-se na fronteira

Leia mais

Faculdade de Engenharia da Computação

Faculdade de Engenharia da Computação Faculdade de Engenharia da Computação Disciplina: Modelos Aplicados a Segurança Fundamentos de Criptologia Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C. de Jesus 1 Conceito

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro Frequencímetro Versão 2014 RESUMO Esta experiência tem como objetivo a familiarização com duas classes de componentes: os contadores e os registradores. Para isto, serão apresentados alguns exemplos de

Leia mais

Prof. M.Sc. Charles Christian Miers

Prof. M.Sc. Charles Christian Miers TES16/TOCC20 - Introdução à Segurança da Informação Módulo 06: Autenticidade e Resumos Prof. M.Sc. Charles Christian Miers e-mail: charles@joinville.udesc.br Problema Comunicações em Redes de Computadores

Leia mais

Calculadora Simples em VHDL

Calculadora Simples em VHDL Calculadora Simples em VHDL Versão 2014 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware. São apresentados

Leia mais

Faculdade de Engenharia da Computação

Faculdade de Engenharia da Computação Faculdade de Engenharia da Computação Disciplina Segurança Aplicada a Computação Aplicações de Modelos para Segurança Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C. de

Leia mais

OTES07 Segurança da Informação Módulo 05b: Criptografia Simétrica: AES/SAES

OTES07 Segurança da Informação Módulo 05b: Criptografia Simétrica: AES/SAES OTES07 Segurança da Informação Módulo 05b: Criptografia Simétrica: AES/SAES Prof. Charles Christian Miers e-mail:charles.miers@udesc.br Roteiro Criptografia Moderna: Histórico AES e SAES SAES Componentes

Leia mais

Montagem, testes, depuração e documentação de circuitos digitais

Montagem, testes, depuração e documentação de circuitos digitais Montagem, testes, depuração e documentação de circuitos digitais Versão 2012 RESUMO Esta experiência tem como objetivo um contato inicial com técnicas de montagem, teste e depuração de circuitos digitais.

Leia mais

Criptografia no MSX Fulswrjudild qr PVZ

Criptografia no MSX Fulswrjudild qr PVZ Criptografia no MSX Fulswrjudild qr PVZ Resumo O objetivo deste artigo é demonstrar algumas técnicas de criptografia no MSX. 1. Introdução A criptografia (do grego: kryptós = escondido, graphein = escrita)

Leia mais

OSRC001 Segurança em Redes de Computadores Módulo 07: Criptografia Simétrica: AES/SAES

OSRC001 Segurança em Redes de Computadores Módulo 07: Criptografia Simétrica: AES/SAES OSRC001 Segurança em Redes de Computadores Módulo 07: Criptografia Simétrica: AES/SAES Prof. Charles Christian Miers e-mail:charles.miers@udesc.br Concurso AES Morte iminente do DES Triple-DES seguro,

Leia mais

EPUSP PCS 3335 Laboratório Digital A. Um Circuito Digital

EPUSP PCS 3335 Laboratório Digital A. Um Circuito Digital Um Circuito Digital Versão 2016 RESUMO Esta experiência tem como objetivo o desenvolvimento de um circuito digital, especificado a partir de um diagrama ASM e um fluxo de dados. A parte prática deve ser

Leia mais

6 Inserção Seletiva de Nulos

6 Inserção Seletiva de Nulos 6 Inserção Seletiva de Nulos 6.1 Introdução Neste capítulo será apresentado o algoritmo ADDNULLS - Inserção Seletiva de Nulos. Este algoritmo usa a técnica da esteganografia para esconder os símbolos codificados

Leia mais

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

Autenticação por par de. chaves assimétricas. Bruno Follmann Autenticação por par de 1 chaves assimétricas Bruno Follmann 2 Criptografia assimétrica Criada em 1976 por Diffie e Hellman; Também chamada de criptografia de chave pública; Sistema para cifrar e decifrar

Leia mais

Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011

Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011 Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011 Web site http://www.inf.ufes.br/~pdcosta/ensino/ Profa. Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br Introdução O que são estruturas

Leia mais

Disciplina: Introdução à Engenharia da Computação

Disciplina: Introdução à Engenharia da Computação Colegiado de Engenharia de Computação Disciplina: Introdução à Engenharia da Computação Aula 07 (semestre 2011.2) Prof. Rosalvo Ferreira de Oliveira Neto, M.Sc. rosalvo.oliveira@univasf.edu.br 2 Representação

Leia mais

Web site. Profa. Patrícia Dockhorn Costa.

Web site.  Profa. Patrícia Dockhorn Costa. Estruturas de Dados Aula 1: Introdução e conceitos básicos Web site http://www.inf.ufes.br/~pdcosta/ensino/ Profa. Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br Monitoria: Alexandro alexandrosouzaramos@gmail.com

Leia mais

Faculdade de Engenharia da Computação

Faculdade de Engenharia da Computação Faculdade de Engenharia da Computação Disciplina Segurança Aplicada a Computação Teorema do Crivo de Erastóstenes; Operações bit a bit; Algoritmo DES; Modo(ECB,CBC,CFB, OFB) Site : http://www1.univap.br/~wagner/ec.html

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro Frequencímetro Versão 2012 RESUMO Esta experiência tem como objetivo a familiarização com duas classes de componentes: os contadores e os registradores. Para isto, serão apresentados alguns exemplos de

Leia mais

Multiplicador Binário com Sinal

Multiplicador Binário com Sinal Multiplicador Binário com Sinal Edson T. Midorikawa/2010 E.T.M./2012 (revisão) RESUMO Nesta experiência será implementado um circuito para multiplicação binária com sinal. Deve ser aplicada a metodologia

Leia mais

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL Circuito em VHDL Versão 2017 RESUMO Esta experiência tem como objetivo um contato inicial com o desenvolvimento do projeto de um circuito digital simples em VHDL e sintetizado para uma placa de desenvolvimento

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

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

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações Prof. Fernando Augusto Teixeira 1 Agenda da Disciplina Certificado Digital e suas aplicações Segurança Criptografia Simétrica Criptografia

Leia mais

Tópicos Especiais em Segurança da Informação. Aula 2 Criptografia AES

Tópicos Especiais em Segurança da Informação. Aula 2 Criptografia AES Tópicos Especiais em Segurança da Informação Objetivo da Aula Ao final dessa aula, o aluno será capaz de: Discorrer sobre o histórico do cifrador AES; Descrever a arquitetura do cifrador AES; Utilizar

Leia mais

5. Expressões aritméticas

5. Expressões aritméticas 5. Expressões aritméticas 5.1. Conceito de Expressão O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro Frequencímetro E.T.M./2005 E.T.M./2006 (revisão) E.T.M./2011 (revisão) RESUMO Esta experiência tem como objetivo a familiarização com duas classes de componentes: os contadores e os registradores. Para

Leia mais

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Versão 2012 RESUMO Nesta experiência será apresentada uma metodologia estruturada para projeto de sistemas digitais utilizando FPGAs

Leia mais

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

Criptografia Simétrica e Assimétrica, Hash, e Assinatura Digital Criptografia Simétrica e Assimétrica, Hash, e Assinatura Digital Segurança da Informação Charles Tim Batista Garrocho Instituto Federal de São Paulo IFSP Campus Campos do Jordão garrocho.ifspcjo.edu.br/sega6

Leia mais

SISTEMAS DE NÚMERAÇÃO. Números decimais

SISTEMAS DE NÚMERAÇÃO. Números decimais SISTEMAS DE NÚMERAÇÃO Números decimais Números decimais são os que estamos acostumados a lidar na Matemática convencional. Também são conhecidos como números de base 10. Isso porque compreendem dez símbolos

Leia mais

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para UM ESTUDO SOBRE O MECANISMO DE PAGINAÇÃO DE MEMÓRIA E OS ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINAS FIFO E LRU Fernando Sales Ferreira, fernandobrabat@hotmail.com William Antônio Faria Da Silva, William_8716@hotmail.com

Leia mais

Carlos Rodrigo Tofoli Fernandes. CriptoCore: Um acelerador de exponenciação modular para aplicações criptográficas

Carlos Rodrigo Tofoli Fernandes. CriptoCore: Um acelerador de exponenciação modular para aplicações criptográficas Carlos Rodrigo Tofoli Fernandes CriptoCore: Um acelerador de exponenciação modular para aplicações criptográficas Florianópolis SC Junho / 2005 Carlos Rodrigo Tofoli Fernandes CriptoCore: Um acelerador

Leia mais

Sistemas Digitais INE 5406

Sistemas Digitais INE 5406 Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Sistemas Digitais INE 5406 Aula 10-P Refinamento das especificações

Leia mais

FPGA & VHDL. Tutorial

FPGA & VHDL. Tutorial FPGA & VHDL Tutorial 2009-2 FPGA FieldProgrammableGateArray Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programadas ) para desempenhar uma função simples Chaves

Leia mais

Segurança em Sistemas Operacionais

Segurança em Sistemas Operacionais Segurança em Sistemas Operacionais A Internet é um divisor águas no tema segurança da informação: Mainframes: segurança por meio do acesso físico; Minicomputadores: segurança por meio subscrição (login

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Introdução à Computação EXERCÍCIOS

Leia mais

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis E.T.M./2011 (adaptação) RESUMO Nesta experiência será apresentada uma metodologia estruturada para projeto de sistemas digitais

Leia mais

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

Técnicas de criptografia. Funções Hash Criptografia com chave secreta Criptografia com chave pública Assinatura digital Protocolos Funções Hash Criptografia com chave secreta Criptografia com chave pública Assinatura digital Protocolos 1 Criptografia Estudo de ferramentas e técnicas matemáticas relacionadas com aspectos relativos

Leia mais

Comunicação Serial Assíncrona

Comunicação Serial Assíncrona Comunicação Serial Assíncrona Versão 2016 RESUMO O objetivo desta experiência é projetar circuitos digitais para comunicação serial de dados (transmissão de dados) com um terminal de dados, utilizando

Leia mais

Sistemas de Numeração.

Sistemas de Numeração. Sistemas de Numeração. No início deste curso dissemos que computadores só entendem informações em números binários, hexadecimais ou octais. Agora teremos a oportunidade de conhecer mais a fundo esses sistemas

Leia mais

Organização de Computadores I

Organização de Computadores I Organização de Computadores I Aula 2 Material: Diego Passos http://www.ic.uff.br/~debora/orgcomp/pdf/parte2.pdf Organização de Computadores I Aula 2 1/29 Tópicos de Computação. de um Sistema de Computação..

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES CALCULADORA SIMPLES E.T.M./2003 (revisão e adaptaçào) M.D.M. e E.T.M./2006 (revisão) E.T.M./2008 (revisão) E.T.M./20 (revisão) RESUMO Esta experiência tem por objetivo a utilização de circuitos integrados

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS

Leia mais

TOCI08 Segurança em Redes de Computadores Módulo 01: Visão Geral

TOCI08 Segurança em Redes de Computadores Módulo 01: Visão Geral TOCI08 Segurança em Redes de Computadores Módulo 01: Visão Geral Prof. M.Sc. Charles Christian Miers e-mail: charles@joinville.udesc.br 1 Objetivo Geral: Apresentar as noções fundamentais das principais

Leia mais

O ALEATÓRIO EM COMPUTAÇÃO. Por Diogo Anderson Integrante do Grupo PET Computação

O ALEATÓRIO EM COMPUTAÇÃO. Por Diogo Anderson Integrante do Grupo PET Computação O ALEATÓRIO EM COMPUTAÇÃO Por Diogo Anderson (diogo@dsc.ufcg.edu.br) Integrante do Grupo PET Computação AGENDA Introdução Definição Aplicações Números aleatórios Números aleatórios vs pseudo-aleatórios

Leia mais

Revisão: Projeto e síntese de Circuitos Digitais em FPGA

Revisão: Projeto e síntese de Circuitos Digitais em FPGA Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Revisão: Projeto e síntese de Circuitos Digitais em FPGA DCA0119 Sistemas Digitais Heitor Medeiros Florencio

Leia mais

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

TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC Prof. M.Sc. Charles Christian Miers e-mail: charles@joinville.udesc.br Roteiro Criptografia Moderna: Diferenças criptografia

Leia mais

P R O F. ª E L I S Â N G E L A X AV I E R

P R O F. ª E L I S Â N G E L A X AV I E R CRIPTOGRAFIA P R O F. ª E L I S Â N G E L A X AV I E R CONCEITO Criptografia (Do Grego kryptós, "escondido", e gráphein, "escrita") é o estudo dos princípios e técnicas pelas quais a informação pode ser

Leia mais

PROJETO E DESENVOLVIMENTO DE UM HARDWARE RECONFIGURÁVEL DE CRIPTOGRAFIA PARA A TRANSMISSÃO SEGURA DE DADOS RESUMO

PROJETO E DESENVOLVIMENTO DE UM HARDWARE RECONFIGURÁVEL DE CRIPTOGRAFIA PARA A TRANSMISSÃO SEGURA DE DADOS RESUMO 31 PROJETO E DESENVOLVIMENTO DE UM HARDWARE RECONFIGURÁVEL DE CRIPTOGRAFIA PARA A TRANSMISSÃO SEGURA DE DADOS Otávio de Souza Martins Gomes 1 Rodolfo Labiapari Mansur Guimarães 2 RESUMO Neste trabalho

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação Conceitos Básicos de Eletrônica Digital (Parte IV) Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

AEDI Introdução Revisão 2

AEDI Introdução Revisão 2 exatasfepi.com.br AEDI Introdução Revisão 2 André Luís Duarte...mas os que esperam no Senhor renovarão as suas forças; subirão com asas como águias; correrão, e não se cansarão; andarão, e não se fatigarão.is

Leia mais

DSP Builder - Altera. MO801 - Tópicos em Arquitetura e Hardware. Michele Tamberlini 05/2006

DSP Builder - Altera. MO801 - Tópicos em Arquitetura e Hardware. Michele Tamberlini 05/2006 DSP Builder - Altera MO801 - Tópicos em Arquitetura e Hardware Michele Tamberlini 05/2006 DSP Builder Roteiro Introdução Funcionalidades MegaCore MATLAB / SIMULINK SOPC Builder Bibliotecas Introdução Algoritmos

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de

Leia mais

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

OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC Prof. Charles Christian Miers e-mail: charles.miers@udesc.br Breve Histórico Primeiro algoritmo de chave pública foi desenvolvido

Leia mais

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária Programação de Computadores O Computador Memória Principal representação binária Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Memória principal. Memória secundária. O que são bytes e bits. Tecnologias

Leia mais

Análise empírica de algoritmos de ordenação

Análise empírica de algoritmos de ordenação Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:

Leia mais

Cálculo Numérico Noções básicas sobre erros

Cálculo Numérico Noções básicas sobre erros Cálculo Numérico Noções básicas sobre erros Profa. Vanessa Rolnik 1º semestre 2015 Fases da resolução de problemas através de métodos numéricos Problema real Levantamento de Dados Construção do modelo

Leia mais

Lista - RAID. c) Redundância d) Capacidade

Lista - RAID. c) Redundância d) Capacidade Lista - RAID 1. O principal objetivo do RAID é a a) Autenticidade b) Compactação c) Redundância d) Capacidade e) Qualidade 2. As soluções de RAID 1 necessitam de, no mínimo, dois discos, possuem bom desempenho

Leia mais

Informática I. Aula 6. Aula 6-18/09/2006 1

Informática I. Aula 6.  Aula 6-18/09/2006 1 Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-18/09/2006 1 Sobre o Trabalho 1 O trabalho deverá ser feito em grupos de 2 ou 3 alunos. Cada grupo deverá escolher um dos temas listados

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES CALCULADORA SIMPLES E.T.M./23 (revisão e adaptaçào) M.D.M. e E.T.M. (revisão) E.T.M./28 (revisão) RESUMO Esta experiência tem por objetivo a utilização de circuitos integrados de soma binária para o desenvolvimento

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Engenharia da Computação Universidade Católica de Petrópolis Arquitetura de Computadores Sistema de Numeração v. 0.1 Luís Rodrigo de O. Gonçalves luisrodrigoog@gmail.com Petrópolis, 1 de Março de 2016

Leia mais

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES Alex Zanella Zaccaron1; Adriana Betânia de Paula Molgora2 1Estudante do Curso de

Leia mais

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

Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica. Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica. Prof. Dr. Eng. Fred Sauer fsauer@gmail.com http://www.fredsauer.com.br Alguns cifradores simétricos: DES, 3DES

Leia mais

Prof. Sandro Wambier

Prof. Sandro Wambier Prof. Sandro Wambier São elementos da Arquitetura de um computador: conjunto de instruções de um processador, os modos de endereçamentos, o tipo e tamanho dos dados manipulados pelo processador, ex.: Intel

Leia mais

Introdução aos Algoritmos

Introdução aos Algoritmos Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado

Leia mais

INFORMÁTICA: Informação automática

INFORMÁTICA: Informação automática INTRODUÇÃO INFORMÁTICA: Informação automática Definição: é a ciência que estuda o tratamento automático e racional da informação (encarregada pelo estudo e desenvolvimento de máquinas e métodos para processar

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

CRIVO QUADRÁTICO: UM ESTUDO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

CRIVO QUADRÁTICO: UM ESTUDO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES CRIVO QUADRÁTICO: UM ESTUDO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES Alex Zanella Zaccaron 1 ; Adriana Betânia de Paula Molgora 2 1 Estudante do Curso de

Leia mais

Linguagens de Programação

Linguagens de Programação Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características

Leia mais