JHEYNE NAYARA ORTIZ IMPLEMENTAÇÃO DO AES-RIJNDAEL EM VHDL PARA CHAMADAS VOIP

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

Download "JHEYNE NAYARA ORTIZ IMPLEMENTAÇÃO DO AES-RIJNDAEL EM VHDL PARA CHAMADAS VOIP"

Transcrição

1 JHEYNE NAYARA ORTIZ IMPLEMENTAÇÃO DO AES-RIJNDAEL EM VHDL PARA CHAMADAS VOIP LONDRINA PR 2013

2

3 JHEYNE NAYARA ORTIZ IMPLEMENTAÇÃO DO AES-RIJNDAEL EM VHDL PARA CHAMADAS VOIP Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Computação da Universidade Estadual de Londrina para obtenção do título de Bacharel em Ciência da Computação. Orientador: Prof. Dr. Wesley Attrot LONDRINA PR 2013

4 LISTA DE ILUSTRAÇÕES Figura 1 Bastão de Licurgo, ou skytale [1] Figura 2 Versão simplificada da máquina Enigma de um disco com alfabeto de seis letras [1]. A letra b é pressionada no teclado sendo roteada pelo scrambler para a letra A que é exibida na placa de visualização Figura 3 Versão padrão da máquina de Scherbius com 3 scramblers [1] Figura 4 Enigma alemã desenvolvida em Figura 5 Esquema geral de criptografia simétrica [2] Figura 6 Esquema geral do algoritmo de cifragem do AES Figura 7 Criptografia no AES Figura 8 Exemplo de consulta à tabela S-box para o byte 9A Figura 9 Função g [2] Figura 10 Arquiteturas para o AES-Rijndael Figura 11 Pipeline em nível de fases do algoritmo AES

5 LISTA DE TABELAS Tabela 1 Tabela verdade da operação XOR Tabela 2 Relação entre o número de rounds e tamanho de chave Tabela 3 Round Constant (RC) utilizada na função g [2] Tabela 4 Substitution box, ou S-box

6

7 SUMÁRIO Introdução História da Criptografia O Nascimento da Criptografia Mecanização da Criptografia Enigma Criptografia Moderna Criptografia Quântica AES - Advanced Encryption Standard Campo Finito GF(2 8 ) Adição Exemplo Operação exclusive OR Multiplicação Exemplo Estrutura Geral Funções de Transformação Transformação SubBytes Exemplo A S-box Transformação ShiftRows Exemplo Transformação MixColumns Exemplo Transformação AddRoundKey Exemplo Algoritmo de Expansão de Chave Exemplo Exemplo do AES Trabalhos Relacionados Um projeto em VHDL do circuito de criptografia do AES com chaves de 128 bits Uma nova metodologia para implementar o algoritmo AES usando reconfiguração parcial e dinâmica

8 3.3 DSPs, BRAMs e uma pitada de lógica: receitas estendidas para o AES em FPGAs Projeto de processador AES de velocidade ultra alta para a próxima geração de segurança de TI Projeto do mecanismo de criptografia ECB-AES-256 de baixo custo e com inner pipeline para SSD Um módulo compacto de criptografia AES em FPGA Xilinx AES-512: projeto e avaliação do algoritmo Advanced Encryption Standard 512-bit Conclusão Referências Apêndices 51 APÊNDICE A S-box

9 INTRODUÇÃO 7

10

11 9 1 HISTÓRIA DA CRIPTOGRAFIA Durante aproximadamente anos, rainhas, imperadores e generais vêm fazendo uso da criptografia como forma de estabelecer um meio de comunicação seguro com seus aliados. Em contrapartida, criptoanalistas vêm trabalhando paralelamente a fim de descobrir o conteúdo de mensagens codificadas bem como as chaves usadas pelos algoritmos de cifra [3, 1, 4, 5, 6, 7, 8]. A história da criptografia é marcada pelo desenvolvimento da escrita, pela criação de máquinas e pelo advento dos computadores clássicos e quânticos. Este capítulo é organizado em seções cujo objetivo é traçar os principais pontos da história da criptografia, tomando em conta os confrontos espartanos de meados do século IV a.c., as Grandes Guerras e o futuro da criptografia através da computação quântica. 1.1 O NASCIMENTO DA CRIPTOGRAFIA O primeiro registro de transformação intencional na escrita é datada em, aproximadamente, 1900 a.c. [3]. Um mestre escriba esculpiu em uma pedra viva do túmulo do nobre Khnumhotep II um código com substituições de símbolos hieróglifos. Apesar do mestre escriba ter transformado deliberadamente a escrita, acredita-se que o intuito de tais substituições não era de fato uma tentativa de dificultar a leitura mas, ao invés disto, uma transmissão de dignidade e autoridade ou, então, demonstração de conhecimento para a posteridade. Em meados do século V a.c., Heródoto descreveu cronicamente os conflitos entre a Grécia e a Pérsia no livro intitulado História, ou The History. De acordo com Heródoto, a arte da escrita secreta salvou os gregos de serem conquistados pelo líder persa Xerxes [1]. Demarato, um grego expulso de sua terra natal e que vivia em uma cidade na Pérsia, enfraqueceu o ataque persa enviando uma mensagem de alerta aos espartanos. Xerxes havia mobilizado secretamente uma força expansionista por cinco anos unindo a maior força de combate da história. O desafio de Demarato era o de enviar a mensagem sem que a mesma fosse interceptada pelos guardas persas. Para tal, raspou-se a cera de um par de tábuas de madeira dobráveis, escreveu-se a mensagem no lado contrário em que Xerxes pensaria ter algo gravado e, então, cobriu-se as tábuas com cera de forma a ocultar o escrito. A mensagem foi recebida e os gregos, outrora indefesos, se armaram e construíram cerca de duzentos navios de guerra. Dotados de estratégia, os gregos venceram as forças persas por volta de 480 a.c.. A palavra criptografia é derivada das palavras gregas kryptos, que significa escondido, e graphien, que significa escrever [4], indicando portanto a arte da escrita secreta.

12 10 Capítulo 1. História da Criptografia A criptografia em si pode ser subdividida em dois ramos conhecidos como transposição e substituição [1]. Na transposição as letras da própria mensagem são rearranjadas de forma a criar um anagrama 1. Um forma de transposição foi implementada no primeiro dispositivo militar de criptografia: o bastão de Licurgo, ou skytale (Figura 1), datado ainda no século V a.c. [1]. Figura 1 Bastão de Licurgo, ou skytale [1]. O bastão de Licurgo é um objeto de madeira no qual uma tira de couro ou pergaminho é enrolado. O emissor escreve a mensagem na tira enrolada ao bastão e a desenrola fazendo com que a fita pareça com uma sequência randômica de letras. Para recuperar a mensagem, o receptor deve enrolar a fita em um bastão de Licurgo de mesmo diâmetro usado pelo remetente. Para levar a fita contendo a mensagem cifrada até o destinatário o mensageiro usa a tira como um cinto omitindo o escrito. Durante os confrontos entre a cidade-estado Esparta e o atenienses em 405 a.c., Lisandro, o líder espartano, tomou conhecimento da intenção dos persas em atacá-los através da decodificação de uma mensagem, enviada por um informante, contida em uma fita em posse de um escravo [5]. Ao enrolar a fita em torno de um bastão de Licurgo, tornou-se conhecido que os persas mentiam e conspiravam contra Lisandro. Assim sendo, Lisandro navegou contra os persas lutando e vencendo-os, o que, por consequência, afetou profundamente a história europeia. A substituição age de forma complementar à transposição. Na transposição cada letra mantém sua identidade e muda sua posição, por outro lado, na substituição cada letra muda sua identidade porém mantém seu posicionamento. O primeiro uso da cifra por substituição documentado para fins militares aparece na Guerra Gálica de Júlio César [1]. Acredita-se que Júlio César, no período de 58 a.c. e 51 a.c., codificou mensagens para seu advogado Marco Túlio Cícero e outros senadores romanos usando substituição monoalfabética [3, 1, 4]. Na cifra de César cada letra do texto original, ou plaintext, é substituída pela terceira letra à direita no alfabeto. Fazendo uso da cifra de César, a frase 1 De acordo com o dicionário Michaelis [9], anagrama é a palavra ou frase formada com as letras de outra: Alice-Célia, Pedro-poder, Roma-amor.

13 1.1. O Nascimento da Criptografia 11 Onde consigo uma pizza decente? é codificada como segue. Onde consigo uma pizza decente? rqgh frqvljr xpd slccd ghfhqwh? Neste método de cifragem como cada letra sempre é substituída por uma única letra correspondente, um criptoanalista 2 poderia facilmente detectar os padrões da linguagem, como a repetição da letra E, e decifrar a mensagem. Cifra é o nome dado para qualquer forma de substituição criptográfica em que cada letra é substituída por outra letra ou símbolo. Cada cifra pode ser considerada em termos de algoritmo e chave [1]. Na cifra de César o algoritmo é a substituição de cada letra do texto de entrada por um caractere do alfabeto de cifra. A chave, por sua vez, define o alfabeto de cifra para uma codificação particular. Considerando o Princípio de Kerckhoffs [1], a segurança de um sistema criptográfico não deve depender de se manter em segredo o algoritmo de criptografia. A segurança depende somente em manter a chave secreta. Caso uma mensagem codificada com a cifra de César seja interceptada, basta ao mediador descobrir qual o algoritmo usado pois a fraqueza do algoritmo reside no fato de que o alfabeto de cifragem é sempre o mesmo, ou seja, no fato de que existe somente vinte e cinco chaves possíveis para cada letra. Remetendo às décadas de 1450 e 1460, temos a invenção do disco cifrado pelo arquiteto Leon Battista Alberti [6]. O mecanismo consiste de dois discos. O disco maior possui todas as letras do alfabeto e representa o plaintext enquanto o menor representa a codificação respectiva à cada letra. Até então todos as cifras por substituição faziam uso de somente um alfabeto de cifragem para a codificação de cada mensagem. A cifra proposta por Alberti faz uso de dois ou mais alfabetos alternando-os durante o processo de criptografia. A vantagem da substituição polialfabética é que a mesma letra pode ser codificada para duas letras ou símbolos diferentes [1]. Em 1586, o diplomata francês Blaise de Vigenère examinou a ideia de Leon Alberti e criou a cifra conhecida hoje como cifra de Vigenère [6]. A força da cifra de Vigenère recai sobre o fato de que são usados não somente um ou dois mas vinte e seis alfabetos de cifragem distintos para codificar uma mensagem. Assim como somente um alfabeto pode ser utilizado para codificar todo o plaintext, pode-se utilizar um alfabeto de cifragem para cada letra. Neste último caso, uma palavra-chave deve ser compartilhada entre o emissor e o receptor a fim de que o receptor saiba qual dos vinte e seis alfabetos deve ser utilizado para decodificar cada letra da mensagem [1]. 2 De acordo com o dicionário Priberam [10], criptoanalista é que ou quem é especialista em criptoanálise. De acordo com o dicionário Priberam, criptoanálise é análise ou decifração de comunicação ou escrita codificada ou secreta.

14 12 Capítulo 1. História da Criptografia Os alfabetos da cifra de Vigenère são dados como segue. Sendo o plaintext composto pelas vinte e seis letras do alfabeto [a-z], o primeiro alfabeto de cifragem é dado pelo deslocamento de uma letra para a direita do plaintext. O segundo alfabeto é dado pelo deslocamento de uma letra para a direita do primeiro alfabeto e o mesmo ocorre para o terceiro alfabeto em relação ao segundo e assim por diante. O conjunto de vinte e seis alfabetos compõe a matriz Vigenère. Como será visto adiante, o método de criptografia polialfabética, ou mais especificamente a cifra de Vigenère, veio a ser implementada em uma máquina que veio a ser conhecida como Enigma, patenteada pela primeira vez em MECANIZAÇÃO DA CRIPTOGRAFIA A mecanização da criptografia pode ser observada desde a criação do disco cifrado por Leon Battista Alberti em meados de 1450 e A cifra de Vigenère consistiu em uma grande melhoria ao disco cifrado apesar de ter sido quebrado por Babbage e Kasiski, como será visto adiante. Sendo assim, a busca por máquinas criptográficas acentuou-se durante as Grandes Guerras no século XX a fim de restabelecer a comunicação secreta entre países aliados de guerra. A primeira contribuição de Charles Babbage deu-se em 1821 quando o mesmo propôs uma máquina para o cálculo de tabelas matemáticas com grande precisão e livre de erros, a Máquina Diferencial #1. Babbage abandonou tanto o projeto da Máquina Diferencial #1 após vários anos de trabalho como o projeto da Máquina Diferencial #2 por falta de financiamento governamental. Porém, um século depois, durante a Segunda Guerra Mundial, as primeiras incarnações da máquina de Babbage tiveram profundo impacto sobre a criptoanálise. Além disso, provavelmente no ano de 1854, Babbage, com sucesso, quebrou a cifra Vigenère [1]; feito reconhecido somente no século XX. O advento da Primeira Guerra Mundial e do rádio intensificou a necessidade de uma cifra que fosse realmente efetiva. O rádio, inventado em, aproximadamente, 1894 por Guglielmo Marconi, trazia tanto a facilidade da comunicação sem fio como a facilidade de interceptação dos dados. Portanto, no período de 1914 e 1918 não houveram grandes descobertas e todos os novos mecanismo de cifra propostos foram quebrados. Apesar da ineficiência dos métodos de criptografia, a supremacia dos criptoanalistas Aliados foi bem ilustrada no caso da interceptação do telegrama de Zimmermann. Em janeiro de 1917 o telegrama enviado pelo ministro Zimmermann ao embaixador alemão no México foi interceptado pelos britânicos e enviado para a Sala 40, o departamento de cifra do Almirantado. O telegrama sugeria que, caso os Estado Unidos adentrassem a guerra, o México iria se aliar ao ministro alemão. Como consequência, a decodificação do telegrama de Zimmermann impulsionou os Estados Unidos a entrar na Primeira Guerra

15 1.2. Mecanização da Criptografia 13 Mundial permitindo a vitória dos Aliados [3] Enigma Em 1923, o alemão Arthur Scherbius inventou a Enigma, a máquina criptográfica que veio a ser o meio de comunicação segura dos alemães durante a Segunda Guerra Mundial apesar de ter falhado comercialmente na década de 1920 [3]. A Enigma era baseada em uma série de rotores, sendo que cada rotor possuía vinte e seis letras, cada uma com um contato elétrico [7]. A forma básica da criação de Scherbius consiste de três elementos conectados por fios: um teclado, um scrambler 3 e uma placa de visualização. O teclado é o meio de entrada do plaintext enquanto que o scrambler é responsável por codificar cada letra do texto de entrada em uma letra no texto codificado e a placa de visualização consiste em um conjunto de lâmpadas que indicam a letra no ciphertext. A Figura 2 representa uma versão simplificada da máquina Enigma com um alfabeto de seis letras no caso em que a letra b é codificada para a letra A. Figura 2 Versão simplificada da máquina Enigma de um disco com alfabeto de seis letras [1]. A letra b é pressionada no teclado sendo roteada pelo scrambler para a letra A que é exibida na placa de visualização. O alfabeto da Enigma muda a cada vez que uma tecla é pressionada e uma letra é codificada. No caso da Enigma simplificada da Figura 2, o codificador define seis alfabetos de cifra sendo possível, portanto, implementar um mecanismo de cifra polialfabética. Porém, se a tecla b for pressionada seis vezes o scrambler retornará para seu ponto inicial permitindo que um padrão de cifragem seja detectado. De forma a tratar este problema um segundo scrambler foi adicionado à máquina. A versão da Enigma com dois discos tem a vantagem de que um dado padrão de criptografia só se repete no momento em que o segundo disco retorna ao seu ponto de 3 Do inglês, scrambler é uma parte da Enigma responsável por rotear cada letra do alfabeto em uma outra que fará parte do ciphertext.

16 14 Capítulo 1. História da Criptografia início, o que requer que a máquina efetue trocas entre 676 alfabetos de cifragem, no caso de um alfabeto completo com vinte e seis letras [1]. A versão padrão da máquina de Scherbius que veio a ser adotada posteriormente pelos militares alemães possui, além dos descritos, outros dois elementos: um terceiro scrambler e um refletor, como pode ser visto na Figura 3. O refletor é similar ao scrambler, visto que consiste em um disco com ligações internas, porém difere na medida em que ele não gira e que os fios entram e saem pelo mesmo lado. Neste esquema, quando um letra é pressionada no teclado, o sinal passa pelos três scramblers, entra no refletor que direciona o sinal para os mesmos três scramblers, porém por outro caminho, até que a luz que representa a letra que deve ir para o ciphertext é acesa na placa de lâmpadas. Figura 3 Versão padrão da máquina de Scherbius com 3 scramblers [1]. Para que uma mensagem seja criptografada pela Enigma o operador deve configurar a posição inicial dos scramblers. A posição inicial da máquina consiste na chave que deverá ser usada para a decodificação da mensagem pelo receptor. O operador da máquina deve digitar letra por letra do plaintext e anotar a letra que é exibida na placa de lâmpadas. A sequência de letras indicadas pela máquina define o texto codificado que neste momento pode ser transmitido via rádio para o destinatário. O operador do rádio que recebe o ciphertext deve possuir uma outra máquina Enigma e conhecer a configuração inicial da máquina usada na codificação do texto. Tendo isso, o operador deve digitar cada letra da mensagem codificada de forma a obter o texto original. Nesta versão da máquina Enigma existem posições iniciais dos scramblers que podem ser utilizadas como chave. Se um interceptador define um grupo de aproximadamente doze pessoas para testar todas as possíveis configurações é viável que a mensagem seja decodificada em somente um dia. Considerando esta fraqueza, Scherbius melhorou o nível de segurança da Enigma através da inserção de uma placa de plugues e permitindo que os scramblers se tornassem removíveis e permutáveis.

17 1.2. Mecanização da Criptografia 15 A placa de plugues permite ao emissor inserir cabos que tem como função permutar algumas letras antes que elas entrem no primeiro scrambler. O operador da Enigma detinha de seis cabos, o que permitia a troca de seis pares de letras deixando outras quatorze em sua posição original. A mudança de posição das letras e dos scramblers permite rearranjar a máquina em possíveis configurações iniciais, ou chaves, aumentando, portanto, o nível de segurança. Após persuadir os militares alemães, Scherbius, em 1925, iniciou a produção em massa da Enigma sendo adotada no serviço militar no ano seguinte. A Figura 4 apresenta o modelo mais recente da máquina Enigma desenvolvida em 1932 [4]. Figura 4 Enigma alemã desenvolvida em A invenção de Scherbius proveu à Alemanha o melhor sistema de criptografia no mundo. Mediante à isso e ao contrário da Primeira Guerra Mundial, a força de criptoanálise britânica concentrada na Sala 40 viu sua capacidade intelectual diminuir rapidamente. Os americanos, assim como os franceses, falharam na tentativa de quebrar a Enigma. Em contrapartida, a Polônia, vendo-se cercada pela Rússia e pela Alemanha, criou o departamento de cifra Biuro Szyfrów. Hans-Thilo Schmidt, nascido em Berlim e rejeitado pela sua nação, forneceu o primeiro passo para a quebra da Enigma. Como forma de ganhar dinheiro e fazer vingança, em 1931 Schmidt permitiu que uma agente secreto francês, de codinome Rex, fotografasse dois documentos que descreviam o manuseio da máquina Enigma. Apesar de possuir o material necessário para a construção de uma réplica da

18 16 Capítulo 1. História da Criptografia Enigma, os franceses consideraram impossível obter a chave necessária para decodificar as mensagens alemãs. Devido à um contrato de dez anos passados, a França repassou para a Polônia, e mais especificamente para Biuro Szyfrów, os documentos obtidos com Hans-Thilo junto à tarefa de quebrar a máquina de criptografia alemã. Apesar da Enigma parecer invulnerável, Biuro organizou um curso de criptografia e convidou cerca de vinte matemáticos recrutando os três melhores. O matemático com maior destaque foi Marian Rejewski. A estratégia de Marian Rejewski era a de buscar padrões que pudessem auxiliar na tarefa de inferir a chave de cifragem. A chave usada pelos operadores alemães era trocada todos os dias, como era descrito nos documentos obtidos através de Schmidt. Portanto, Rejewski dividiu a tarefa de revelar a chave do dia em dois problemas, o de encontrar a configuração dos scramblers e o de encontrar a configuração da placa de plugues. A configuração dos scramblers foi descoberta através da criação de um catálogo contendo o tamanho das palavras enquanto que a organização dos plugues pode ser deduzida analisando-se trechos de mensagens codificadas. A técnica de Rejewski foi utilizada pelos poloneses durante vários anos sem que os alemães soubessem que suas mensagens estavam sendo interceptadas e decodificadas. Apesar do sucesso, os poloneses não puderam se beneficiar do trabalho de Rejewski e lidavam com a possível invasão alemã. Em 1939, o major Gwido Langer, chefe do Biuro Szyfrów, revelou aos franceses e britânicos uma das bombes 4 de Rejewski oferecendo-os uma réplica da Enigma e um esquema da bombe. Semanas depois, no dia 1 de setembro de 1939, Hitler invadiu a Polônia dando início à Segunda Guerra Mundial. A tarefa de quebrar a Enigma passou a ser novamente um serviço da Sala 40. Reconhecendo a necessidade de matemáticos e cientistas no grupo de criptoanálise, novos membros foram recrutados. O grupo passou a atuar no Bletchley Park, chegando a ser composto por homens e mulheres. Conforme a Enigma fosse sendo inovada, a criptoanálise britânica ia evoluindo reprojetando a bombe e desenvolvendo novas estratégias combinando a disponibilidade de recursos com o conhecimento herdado do serviço polonês. O matemático Alan Turing foi quem descobriu e explorou a maior fraqueza da Enigma, o que permitiu que a Enigma fosse quebrada até mesmo nas mais difíceis circunstâncias. Analisando uma biblioteca de mensagens decodificadas, Turing percebeu que muitas delas seguiam uma rígida estrutura, sendo possível predizer partes das mensagens considerando a hora de envio e o remetente. Esses trechos de plaintext que poderiam ser associados com trechos de ciphertext eram chamados cribs. Alan Turing provou que um crib impõe restrições à configuração inicial da máquina para a codificação da mensagem 4 Bombe, uma unidade com seis máquinas de Rejewski trabalhando em paralelo. A máquina de Rejewski é uma réplica da Enigma capaz de testar configurações iniciais além de escrever as combinações testadas.

19 1.3. Criptografia Moderna 17 reduzindo as possibilidades de chaves. Porém ainda seria necessário que diversas combinações de scramblers fossem testadas. Para tal tarefa, desenvolveu-se uma máquina que testasse as configurações que satisfaziam tais restrições, também chamada de bombe. Em 1941, haviam quinze bombes trabalhando na tarefa de encontrar a configuração utilizada pelos alemães naquele dia. No melhor dos casos, era possível que uma chave fosse descoberta em uma hora. Tendo descoberta a chave, todas as outras mensagens poderiam ser decodificadas possibilitando aos militares conhecer os planos da Alemanha e atuar com base nesse conhecimento. A inteligência militar que derivou da missão de quebrar a Enigma alemã era parte da operação de codinome Ultra. Os documentos da Ultra continham mensagens italianas e japonesas o que colocou os Aliados em vantagem na guerra, além de auxiliar ações específicas provendo a posição inimiga. Como exemplo, as mensagens obtidas dispunham a localização exata de diversos U-boats. O ataque a todos os U-boats levantaria a suspeita de que a Enigma teria sido quebrada. Ao invés de um ataque em massa, os Aliados poderiam enviar mensagens falsas pedindo detalhes sobre um plano de ataque eminente. Apesar das suspeitas, a quebra da Enigma era considerada impossível pelos alemães e qualquer vazamento de informação era associado à um possível espião. Embora com controvérsias, acredita-se que o trabalho realizado na Bletchley Park se tornou um fator decisivo na vitória do Aliados na Segunda Grande Guerra. Além disso, é certo de que o trabalho dos criptoanalistas britânicos implicou no encurtamento da guerra [1]. 1.3 CRIPTOGRAFIA MODERNA Além das máquinas bombes de Alan Turing utilizadas durante a Segunda Guerra Mundial para quebrar a Enigma, os britânicos desenvolveram a Colossus para quebrar a cifra de Lorenz. Além de ser consideravelmente rápida a Colossus era programável e, por esse motivo, foi considerada a precursora do computador digital moderno. Desenvolvida por Tommy Flowers, com base nos projetos de Max Newman, a Colossus foi enviada à Bletchley Park em Porém, como tudo o que havia no Bletchley Park, os planos do primeiro computador foram destruídos. Assim sendo, o ENIAC (Electronic Numerical Integrator and Calculator), desenvolvido em 1945 por J. Presper Eckert e John W. Mauchly, foi considerado a mãe de todos os computadores. O uso de computadores para a codificação de uma mensagem inclui três diferenças entre a criptografia computacional e a criptografia mecânica [1]: A máquina de cifra mecânica, como a Enigma, é limitada pela sua construção, enquanto um computador pode simular uma máquina de cifra hipotética de com-

20 18 Capítulo 1. História da Criptografia plexidade imensa; Circuitos eletrônicos são mais rápidos do que scramblers mecânicos; O computador pode embaralhar números binários ao invés de letras, sendo necessária somente a conversão de letras para números. A criptografia se tornou restrita aos que possuíam computadores, ou seja, ao governo e ao exército. Durante a década de 1960 os computadores se tornaram mais poderosos e mais baratos se tornando ferramenta de mercado. Com a adesão dos computadores pelo mercado o problema de distribuição de chave se tornou a preocupação dos criptografadores. O problema da distribuição de chave é dado na situação que se segue. Assumindo que duas pessoas queiram trocar uma mensagem confidencial entre si por telefone então a mesma deve ser codificada pelo emissor. Para codificar a mensagem, o emissor deve enviar a chave ao receptor para que a mensagem possa ser decodificada. Portanto, a chave em si também é secreta. Para resolver tal problema Whitfield Diffie, em 1975, propôs um novo tipo de cifra que introduz o conceito de chave assimétrica [11]. Até então todos os métodos de cifragem faziam uso de chave simétrica (Figura 5), sendo que a mesma chave era utilizada para ambos os processos de codificação e decodificação. No caso da cifra assimétrica, tem-se duas chaves, uma para a codificação e outra para a decodificação. Figura 5 Esquema geral de criptografia simétrica [2] Apesar de ter solucionado o problema de troca de chaves, somente Ronald Rivest, Adi Shamir e Leonard Adleman foram capazes de propôr uma função matemática apropriada para tornar a criptografia assimétrica em uma invenção prática. Em 1977, Rivest formalizou a ideia que faltava para a proposta de um método assimétrico de criptografia que veio a se tornar a cifra mais influente na criptografia moderna, o RSA 5 [12]. 5 RSA é uma referência ao sobrenome de seus criadores, Rivest, Shamir e Adleman.

21 1.4. Criptografia Quântica 19 Em 1976, o DES (Data Encryption System) [13] foi apresentado pelos especialistas da IBM se tornando a norma de cifração dos Estados Unidos [6]. O DES é um algoritmo de cifra por bloco baseado em criptografia simétrica e faz uso de chaves de 56 bits. Tendo sido quebrado em 1999 em um projeto de vinte e duas horas de duração, o DES foi compensado pelo 3DES (triple DES) que faz uso do DES para codificar cada bloco de dados três vezes, sendo que a cada cifragem uma chave diferente é usada [7]. Atualmente, o AES (Advanced Encryption Standard) [14] é usado em substituição ao DES tanto pelo governo americano como por diversas organizações. O AES faz uso de três cifras diferentes: o AES-128, AES-192 e AES-256, sendo que 128, 192 e 256 denotam o tamanho das chaves, porém, ambos com tamanho de bloco de 128 bits. Tanto o DES como o AES são classificados como cifras por bloco. A criptografia de chave simétrica faz uso de dois tipos de cifras: as cifras por bloco e as cifras de fluxo. Enquanto a cifra por bloco toma uma predeterminada quantidade de bits do plaintext, conhecida por bloco, e a codifica, a cifra por fluxo codifica um bit por vez. É possível utilizar uma cifra por bloco como um cifrador de fluxo caso o tamanho do bloco seja definido como unário. 1.4 CRIPTOGRAFIA QUÂNTICA Apesar de especialistas tais como o criptógrafo americano Phil Zimmermann e William Crowell, diretor da NSA (National Security Agency), confiarem nos métodos atuais de criptografia, relatos históricos nos mostram que cifras consideradas inquebráveis sucumbiram à criptoanálise. Como exemplo tem-se a cifra de Vigenère, quebrada por Babbage, e a máquina alemã Enigma quebrada tanto pelos poloneses como pelos britânicos. Atualmente a segurança da informação é mantida pela eficácia da criptografia assimétrica do RSA. Porém, mesmo que o RSA venha a ser inutilizado, o futuro da criptografia se detém na física quântica como forma de prover um sistema de cifragem inquebrável. A ideia de criptografia quântica foi desenvolvida em 1984 por Charles Bennett [1]. Bennett junto de Gilles Brassard, um cientista da computação da Universidade de Montreal, desenvolveram uma sistema baseado na ideia de dinheiro quântico de Stephen Wiesner datada na década de O dinheiro quântico de Wiesner era baseado na física dos prótons e foi esta a representação usada por Bennett e Brassard para a transmissão dos bits convencionais. Neste sistema os bits 0 e 1 são representados pela polarização dos fótons. Existem dois possíveis esquemas de associação que podem ser escolhidos pelo emissor da mensagem, comumente denotado como Alice: o esquema retilíneo e o diagonal. No esquema retilíneo, representa 1 e denota 0, enquanto que no esquema diagonal denota 1 e denota

22 20 Capítulo 1. História da Criptografia 0. Para que Bob, o receptor da mensagem, consiga decodificar a mensagem enviada por Alice a chave, ou o esquema de polarização aplicado a cada fóton, deve ser de seu conhecimento. Esta situação remete ao problema da distribuição de chave. A solução para o problema de distribuição de chave quântica reside em três estágios preparatórios [8]: 1 Alice transmite uma sequência de fótons alternando entre a polarização retilínea e diagonal; 2 Bob mensura a polarização dos fótons utilizando randomicamente os filtros de polarização retilínea e diagonal; 3 Alice, fazendo uso de um meio de transmissão comum, notifica Bob os esquemas de polarização usados para cada fóton. Bob anuncia à Alice em quais ocasiões ele utilizou o esquema correto de polarização. Ambos ignoram os fótons em que Bob escolheu o filtro errado concentrando-se somente nos fótons que foram recebidos com sucesso. No terceiro estágio tem-se uma sequência randômica de bits que foram recebidos corretamente por Bob. Esta sequência, apesar de não consistir em uma mensagem, pode ser usada como uma chave para o real processo de criptografia da mensagem. Além de prover um método seguro de transmissão de dados, a criptografia quântica provê uma forma de detecção de intrusos. Se Eve, uma suposta espiã, utilizada o filtro errado na interceptação esta ação alterará o fóton o que se tornará evidente à Alice e Bob caso um teste de erros seja realizado. O fóton possui a capacidade se ser indivisível, portanto, uma mensuração errada é capaz de alterar sua polarização além de prover à Eve somente uma oportunidade de corte na comunicação. Acredita-se que se sistemas de criptografia quântica puderem ser implementados para grandes distâncias então a evolução das cifras chegaria a seu fim [1]. Como exemplo, em 1995, pesquisadores da Universidade de Genebra foram capazes de implementar um sistema de criptografia quântica de Genebra até a cidade de Nyon, ambas localizadas na Suíça, há uma distância de aproximadamente 20 quilômetros. E, de acordo com Gary Stix [6], as primeiras tentativas de incorporar a criptografia quântica em redes, não somente ponto-a-ponto, já começaram, tendo como exemplo o financiamento para interligação de seis nós de rede que se estendem entre as universidades de Harvard e de Boston e a BBN Technologies, de Cambridge.

23 21 2 AES - ADVANCED ENCRYPTION STANDARD O AES, também conhecido como algoritmo Rijndael, foi anunciado pelo NIST (National Institute of Standards and Technology) em 2001 e está definido no FIPS 1 Publication #197 [14]. O AES é um algoritmo de criptografia simétrica capaz de codificar e descodificar blocos de informações de 128 bits. Existem variações do algoritmo que fazem uso de chaves de 128, 192 e 256 bits denotados, respectivamente, por AES-128, AES-192 e AES-256. O algoritmo faz uso de operações de soma, multiplicação e inverso multiplicativo sobre o campo finito 2 GF(2 8 ), o qual será detalhado na seção que se segue. 2.1 CAMPO FINITO GF(2 8 ) No AES todas as operações são realizadas em bytes de 8 bits e as operações aritméticas, especificamente, são realizadas sob o campo finito GF(2 8 ). De forma geral, um campo é um conjunto em que podemos efetuar adição, multiplicação, subtração e divisão sem deixar o conjunto. Porém, essas operações são diferentes das utilizadas para números. A notação GF(2 8 ) considera um conjunto de 2 8 polinômios possíveis com coeficientes binários, sendo que cada polinômio tem a forma f(x) = a 7 x 7 + a 6 x 6 + a 5 x 5 + a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 sendo que a i, com i variando entre 7 e 0, pode assumir os valores 0 ou 1. A notação polinomial é suficiente para representar qualquer valor binário de 8 bits. Então, operações que precisam ser realizadas entre dois bytes são realizadas sobre polinômios de grau inferior ou igual à Adição A adição de polinômios é realizada através da soma dos coeficientes correspondentes que é, por sua vez, equivalente à operação de XOR bit-a-bit entre dois bytes e é dada pela Equação 2.1. a(x) + b(x) = (a 7 b 7 )x 7 + (a 6 b 6 )x (a 1 b 1 )x + (a 0 b 0 ) (a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 ) (b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ) (2.1) sendo que se a i = b i então a i b i = 0 e, caso contrário, a i b i = 1. 1 FIPS, acrônimo para Federal Information Processing Standards. 2 Campo finito também pode ser denotado por Galois Fields cujo acrônimo é GF.

24 22 Capítulo 2. AES - Advanced Encryption Standard Exemplo Considerando os polinômios a(x) = x 6 + x 4 + x e b(x) = x 7 + x 5 + x 3 + x, a adição de a(x) e b(x) é dada por a(x) + b(x) = (x 6 + x 4 + x 2 + 1) + (x 7 + x 5 + x 3 + x) = x 7 + x 6 + x 5 + x 4 + x 3 + x 2 + x + 1 ( ) ( ) = ( ) fazendo 0 1 = 1, 1 0 = 0,..., 0 1 = 1 e 1 0 = 0, utilizando-se tanto a notação polinomial como a binária Operação exclusive OR Exclusive OR, ou simplesmente XOR, é uma operação lógica que retorna um resultado dependendo dos valores de entrada e é denotada por. No caso do XOR bit-a-bit os valores de entrada podem ser 0 ou 1. A saída para cada uma das quatro possíveis combinações dos bits de entrada é dada na Tabela 1. Entrada A Entrada B Saída Tabela 1 Tabela verdade da operação XOR Multiplicação A multiplicação de dois polinômios pode ser realizada utilizando a operação xtime. A operação xtime multiplica um dado polinômio a(x) por x e é definida como (a 6 a 5 a 4 a 3 a 2 a 1 a 0 0), se a 7 = 0 e x a(x) = (a 6 a 5 a 4 a 3 a 2 a 1 a 0 0) ( ), se a 7 = 1 Se a 7 = 0 a operação xtime, também denotada por a(x) {02}, configura a operação de shift-left 3 de 1 bit. Por outro lado, a 7 = 1 implica em uma multiplicação por x que gerará um polinômio de grau 8, o que não é representável por somente 8 bits. Portanto, aplica-se uma operação de XOR x 4 + x 3 + x + 1, ou ( ) na notação binária, a fim de reduzir o grau do polinômio, sendo x 4 + x 3 + x + 1 oriundo do polinômio irredutível 4 3 A operação de shift-left consiste no deslocamento dos bits para a esquerda completando-se bit menos significativo com o valor 0. 4 O polinômio f(x) é dito irredutível se, e somente se, f(x) não pode ser expresso como o produto de dois polinômios.

25 2.2. Estrutura Geral 23 m(x) = x 8 + x 4 + x 3 + x + 1 e da observação de que x 8 mod m(x) = [m(x) x 8 ] = (x 4 + x 3 + x + 1) No caso em que uma multiplicação por um polinômio de potência maior do que um for necessária, aplica-se a operação xtime repetidamente Exemplo Utilizando-se a aritmética binária e considerando os polinômios p(x) = x 6 + x 4 + x 2 + x + 1 e q(x) = x 7 + x + 1, computamos ( ) ( ) como segue. Efetuando a distributiva, a operação p(x) x deve ser recalculada repetidas vezes a fim de obter a multiplicação de p(x) = x 6 + x 4 + x 2 + x + 1 por x 7, x e 1. Portanto ( ) ( ) = ( ) ( ) ( ) = ( ) ( ) ( ) = ( ) ( ) = ( ), pois a 7 = 1 ( ) ( ) = ( ) ( ) ( ) = ( ) ( ) = ( ), pois a 7 = 1 ( ) ( ) = ( ) ( ) ( ) = ( ) ( ) ( ) = ( ) Então ( ) ( ) = ( ) [( ) ( ) ( )] = ( ) ( ) ( ) = ( ) que é equivalente ao polinômio x 7 + x ESTRUTURA GERAL A entrada do algoritmo de cifragem é chamado de plaintext. Este bloco de texto é codificado e transformado no ciphertext que serve como entrada para o algoritmo de decrifragem. Tanto o bloco plaintext como o ciphertext possuem 128 bits, ou 16 bytes. A representação dos dados no algoritmo é feita em forma de matriz de bytes 4x4 chamada de state. No cifrador, o plaintext é copiado para a state que será a matriz a ser manipulada pelo algoritmo até que, no último estágio, a state seja copiada para o ciphertext, como pode ser visto na Figura 6.

26 24 Capítulo 2. AES - Advanced Encryption Standard Figura 6 Esquema geral do algoritmo de cifragem do AES. A ocupação da matriz state segue a ordem das colunas. Os primeiros 4 bytes do plaintext ocupam a primeira coluna, os segundos ocupam a segunda coluna e assim por diante. O mesmo ocorre para os bytes da chave de criptografia. O algoritmo possui n rounds 5. A Tabela 2 apresenta o número de rounds em relação ao tamanho da chave. # de rounds Tamanho da chave (em bytes) Tabela 2 Relação entre o número de rounds e tamanho de chave. Os primeiros n 1 rounds consistem de quatro funções de transformação: SubBytes: executa uma substituição byte-a-byte em state fazendo uso da S-box (Apêndice A); state; ShiftRows: opera movimentos circulares de shift-left nas linhas de MixColumns: mapeia bytes para novos valores através do uso de operações aritméticas em GF(2 8 ); e 5 O AES-Rijndael possui estrutura iterativa em que um mesmo conjunto de funções de transformação é repetido diversas vezes. Este conjunto de funções é chamado de round.

27 2.3. Funções de Transformação 25 AddRoundKey: aplica um XOR bit-a-bit na chave correspondente ao round e na matriz state. Antes do primeiro round aplica-se a função AddRoundKey, o que considera-se como sendo o round 0. O n-ésimo round possui somente três das quatro funções de transformação, excluindo a operação MixColumns, como mostra a Figura 7. Figura 7 Criptografia no AES. A seção seguinte trata com mais detalhes as funções de transformação utilizadas pelo algoritmo AES. 2.3 FUNÇÕES DE TRANSFORMAÇÃO Como mencionado anteriormente, as funções de transformação são quatro: SubBytes, ShiftRows, MixColumns e AddRoundKey. Cada uma das funções de transformação utilizadas na criptografia possui a sua inversa; e esta, por sua vez, é utilizada na decodificação do ciphertext Transformação SubBytes A função de transformação SubBytes consiste em acessar à matriz de bytes S-box e mapear cada um dos 16 bytes da matriz state para um novo valor correspondente. A

28 26 Capítulo 2. AES - Advanced Encryption Standard S-box é definida pelo AES e possui 16x16 bytes, o que abrange todos os possíveis 256 bytes. Considerando os 8 bits de um byte, os 4 bits mais à esquerda são usados para consultar a linha enquanto os 4 bits mais à direita são usados como o valor da coluna. No exemplo dado na Figura 8, consultaríamos a linha x = 9 e a coluna y = A, obtendo o valor B8. Sendo assim, a posição em state que pertencia ao valor 9A passará a ser ocupada por B8. Figura 8 Exemplo de consulta à tabela S-box para o byte 9A. A função de transformação inversa à SubBytes faz uso da matriz inverse S-box, matriz semelhante à S-box, sendo que se X = S box(y ) então Y = inverse S box(x) Exemplo A função SubBytes é exemplificada na transformação realizada a seguir. Cada byte é utilizado para mapear cada valor da state original em seu correspondente na S-box D D E3 F 6 6C 1D E3 5F 50 A4 11 CF = 4E 9D B1 58 2F 5E C8 6A EE 0D 38 E7 28 D Tomando a primeira coluna da matriz mais à esquerda, tem-se que a posição x = 4 e y = 8 da S-box retorna o valor 52, da mesma forma que S box(x = 6, y = C) = 50, S box(x = 4, y = E) = 2F e S box(x = E, y = E) = 28. O mesmo é feito para os bytes das demais colunas. Os acessos à S-box podem ser verificados consultando-se a tabela anexada ao Apêndice A A S-box A substitution box, ou S-box, especifica como cada byte deve ser substituído por outro valor em cada um dos rounds. A S-box é uma matriz de 16x16 bytes e é construída como segue: Inicializa-se cada uma das posições S-box[i][j] com ij, sendo que os

29 2.3. Funções de Transformação 27 índices i e j variam no intervalo de valores hexadecimais [0, F ], resultando na matriz F F F F 0 F 1 F 2... F F Mapeia-se cada valor da S-box para o seu multiplicativo inverso no campo finito GF(2 8 ), que pode ser calculado através do algoritmo de Euclides estendido [2, 15]. O valor 00 é mapeado para ele mesmo; Considerando que cada byte consiste de 8 bits que podem ser representados como (b 7, b 6, b 5, b 4, b 3, b 2, b 1, b 0 ), a transformação affine dada pela Equação 2.2 é aplicada a cada um dos 16x16 bytes da S-box. b b 0 1 b b 1 1 b b 2 0 b b b = (2.2) b 4 0 b b 5 1 b b 6 1 b b 7 0 É importante ressaltar que cada elemento na multiplicação matricial é o XOR bit-a-bit da multiplicação dos elementos de uma linha por uma coluna. Portanto ( ) (b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ) ( ) (b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 )... ( ) (b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ) O byte resultante dessa multiplicação é, por fim, adicionado à ( ) utilizandose a aritmética do campo finito GF(2 8 ) Transformação ShiftRows A função de transformação ShiftRows aplica operações circulares de shift-left 6 na matriz state. Considerando as quatro linhas da matriz, a primeira delas não é alterada. 6 Na operação circular de shift-left a última posição da palavra recebe o primeiro byte que seria descartado ao invés de receber o byte nulo, diferente do shift-left convencional.

30 28 Capítulo 2. AES - Advanced Encryption Standard Por outro lado, a segunda linha recebe um shift-left de 1 byte, a terceira um shift-left de 2 bytes e na quarta linha é realizado um shift-left de 3 bytes. De forma genérica, o resultado da aplicação da função ShiftRows em uma state resulta na matriz à direita da seguinte transformação. s 0,0 s 0,1 s 0,2 s 0,3 s 0,0 s 0,1 s 0,2 s 0,3 s 1,0 s 1,1 s 1,2 s 1,3 s = 1,1 s 1,2 s 1,3 s 1,0 s 2,0 s 2,1 s 2,2 s 2,3 s 2,2 s 2,3 s 2,0 s 2,1 s 3,0 s 3,1 s 3,2 s 3,3 s 3,3 s 3,0 s 3,1 s 3,2 A função inversa de ShiftRows consiste em operações de shift-right nos bytes de state. Semelhante às operações realizadas em ShiftRows, a função inversa não altera a primeira linha de state e efetua deslocamentos à direta de 1 byte na segunda linha, 2 bytes na terceira e 3 bytes na quarta e última linha de state Exemplo Considerando a matriz dada a seguir, a primeira linha não é alterada pela função ShiftRows enquanto a segunda linha passa por um shift-left de 1 byte, a terceira de 2 bytes e a quarta de 3 bytes E3 F 6 50 A4 11 CF 2F 5E C8 6A 28 D Efetuando o shift-left de 1 byte na segunda linha obtém-se que 50 A4 11 CF = A4 11 CF 50 O deslocamento de bytes realizado na terceira linha pode ser entendido como a repetição da operação de shift-left de 1 byte, enquanto que para a terceira pode-se afirmar que três operações de shift-left são equivalentes à um shift-right de 1 byte. Assim sendo 2F 5E C8 6A = 5E C8 6A 2F = C8 6A 2F 5E 28 D = D7 07 Por fim, a operação de ShiftRows resulta na matriz de dados dada por E3 F 6 A4 11 CF 50 C8 6A 2F 5E D7 07

31 2.3. Funções de Transformação Transformação MixColumns A transformação MixColumns opera em cada coluna da matriz state individualmente. Cada byte é mapeado para um novo valor que é resultado de uma função que utiliza todos os elementos da coluna a qual o byte pertence. A função pode ser representada pela multiplicação de matrizes da Equação s 0,0 s 0,1 s 0,2 s 0,3 s 0,0 s 0,1 s 0,2 s 0, s 1,0 s 1,1 s 1,2 s 1,3 s = 1,0 s 1,1 s 1,2 s 1, s 2,0 s 2,1 s 2,2 s 2,3 s 2,0 s 2,1 s 2,2 s 2, s 3,0 s 3,1 s 3,2 s 3,3 s 3,0 s 3,1 s 3,2 s 3,3 (2.3) Cada elemento s i,j é resultado da soma do produto dos elementos de uma linha em uma coluna, lembrando que as operações de adição ( ) e multiplicação ( ) nesta função de transformação são as definidas no campo GF(2 8 ). A transformação realizada em uma única coluna de state pode ser expressa pelo conjunto de equações 2.4. s 0,j = (2 s 0,j ) (3 s 1,j ) s 2,j s 3,j s 1,j = s 0,j (2 s 1,j ) (3 s 2,j ) s 3,j s 2,j = s 0,j s 1,j (2 s 2,j ) (3 s 3,j ) s 3,j = (3 s 0,j ) s 1,j s 2,j (2 s 3,j ) (2.4) Vale lembrar que a escrita de equações do tipo 3 s 0,j como s 0,j (2 s 0,j ) permite o uso da operação xtime. A função inversa à MixColumns é definida pela multiplicação de matrizes dada pela Equação 2.5 0E 0B 0D 09 s 0,0 s 0,1 s 0,2 s 0,3 s 0,0 s 0,1 s 0,2 s 0,3 09 0E 0B 0D s 1,0 s 1,1 s 1,2 s 1,3 s = 1,0 s 1,1 s 1,2 s 1,3 0D 09 0E 0B s 2,0 s 2,1 s 2,2 s 2,3 s 2,0 s 2,1 s 2,2 s 2,3 0B 0D 09 0E s 3,0 s 3,1 s 3,2 s 3,3 s 3,0 s 3,1 s 3,2 s 3,3 (2.5) sendo a Equação (2.5) a inversa da Equação (2.3) Exemplo Considerando a matriz state obtida no exemplo da função de transformação ShiftRows, a função MixColumns aplica as transformações definidas em 2.4 em cada uma das quatro colunas.

32 30 Capítulo 2. AES - Advanced Encryption Standard Substituindo cada valor da primeira coluna da state em sua respectiva equação em 2.4 tem-se que s 0,0 = (2 52) (3 A4) C8 94 s 1,0 = 52 (2 A4) (3 C8) 94 s 2,0 = 52 A4 (2 C8) (3 94) s 3,0 = (3 52) A4 C8 (2 94) Utilizando a propriedade de que (3 s i,j ) (2 s i,j s i,j ), obtem-se que s 0,0 = (2 52) (2 A4 A4) C8 94 s 1,0 = 52 (2 A4) (2 C8 C8) 94 s 2,0 = 52 A4 (2 C8) ( ) s 3,0 = ( ) A4 C8 (2 94) Sabendo que 2 s i,j é equivalente à função xtime, calcula-se (2 52) xtime( ) = ( ) = A4 16 (2 A4) xtime( ) = ( ) ( ) = (2 C8) xtime( ) = ( ) ( ) = 8B 16 (2 94) xtime( ) = ( ) ( ) = Então s 0,0 = A4 (53 A4) C8 94 = 0F s 1,0 = (8B C8) 94 = D6 s 2,0 = 52 A4 8B (33 94) = DA s 3,0 = (A4 52) A4 C8 33 = A9 O mesmo processo é realizado para as colunas 1, 2 e 3 e a matriz state resultante da função MixColumns é dada por 0F 60 6F 5E D6 31 C0 B3 DA A9 BF 6B Transformação AddRoundKey A transformação AddRoundKey consiste em um XOR bit-a-bit entre os 128 bits de state com os 128 bits da chave associada ao round. Pensando a operação a nível de colunas, o XOR é realizado entre a primeira coluna de state e a primeira palavra da subchave de criptografia, assim como é feita entre a segunda coluna e a segunda palavra e assim por diante.

33 2.4. Algoritmo de Expansão de Chave 31 Vale ressaltar que após a expansão da chave passada por parâmetro para o algoritmo de criptografia, cada round recebe uma chave de 4 palavras (16 bytes), sendo que cada palavra possui 4 bytes de tamanho. Para a implementação do decodificador é importante ressaltar que a função de transformação AddRoundKey é a sua própria inversa, ambas consistindo de uma operação de XOR bit-a-bit Exemplo Considere a matriz state e a sub-chave dadas abaixo. 4B 2C D 11 DB CA 86 4A 9D D2 88 0B F 9 00 Matriz state Sub-chave 8D 89 F 4 18 A3 3E D 80 E8 D8 7A F D 41 F D A função AddRoundKey efetua o XOR bit-a-bit entre os elementos s i,j da state com os k i,j da sub-chave. A transformação pode ser representada por (4B 6D) (2C 11) (33 DB) (37 CA) 26 3D E8 F D (86 88) (4A 0B) (9D F 9) (D2 00) 0E D2 = (8D A3) (89 3E) (F 4 86) (18 93) 2E B7 72 8B (6D 7A) (80 F D) (E8 41) (D8 F D) 17 7D A9 25 A função AddRoundKey pode ser vista como uma operação a nível de colunas de forma que o XOR é realizado entre cada coluna da state e uma palavra da sub-chave associada ao round atual. 2.4 ALGORITMO DE EXPANSÃO DE CHAVE O algoritmo de expansão de chave recebe como parâmetro uma chave de 128 bits e produz um vetor w de 44 palavras, sendo que cada palavra possui 4 bytes. Cada um dos 11 rounds, incluindo o round 0, recebe uma sub-chave de 16 bytes na função de transformação AddRoundKey. As quatro primeiras palavras do vetor w recebem a chave inicial. As posições de 4 à 43 são preenchidas com 4 palavras por vez geradas a partir de palavras anteriores correspondentes às posições w[i 1] e w[i 4], sendo i é o índice que percorre w. Existem dois casos na geração de uma nova palavra: 1. Se o índice i é múltiplo de 4 aplica-se a função g em w[i 1] e w[i] = w [i 1] XOR w[i 4];

34 32 Capítulo 2. AES - Advanced Encryption Standard 2. Senão a nova palavra é gerada a partir de w[i 1] XOR w[i 4]. A função g (Figura 9) recebe como parâmetro w[i 1] e aplica as sub-funções RotWord e SubWord, em sequência, nesta entrada, finalizando o procedimento executando um XOR entre o resultado intermediário e uma constante associada ao round. A saída da função g é w [i 1] que será usada na operação XOR w[i 4]. Figura 9 Função g [2]. A sub-função RotWord realiza uma shift-left circular em uma palavra. Desta forma, os bytes de uma palavra são reposicionados como segue. [ B 0 B 1 B 2 B 3 ] = [ B 1 B 2 B 3 B 0 ] Por outro lado, SubWord realiza a substituição de cada byte da palavra de entrada fazendo uso da matriz S-box. A constante associada a cada round utilizada para realizar o XOR da função g pode ser consultada na Tabela 3. j RC[j] B 36 Tabela 3 Round Constant (RC) utilizada na função g [2]. A constante de cada round é definida como Rcon[j] = (RC[j], 0, 0, 0), sendo que RC[1] = 1 e RC[j] = 2 RC[j 1], sendo a operação de multiplicação definida em GF(2 8 ).

JHEYNE NAYARA ORTIZ IMPLEMENTAÇÃO DO AES-RIJNDAEL EM FPGA USANDO VHDL

JHEYNE NAYARA ORTIZ IMPLEMENTAÇÃO DO AES-RIJNDAEL EM FPGA USANDO VHDL JHEYNE NAYARA ORTIZ IMPLEMENTAÇÃO DO AES-RIJNDAEL EM FPGA USANDO VHDL LONDRINA PR 2013 JHEYNE NAYARA ORTIZ IMPLEMENTAÇÃO DO AES-RIJNDAEL EM FPGA USANDO VHDL Trabalho de Conclusão de Curso apresentado ao

Leia mais

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU Auditoria e Segurança da Informação GSI536 Prof. Rodrigo Sanches Miani FACOM/UFU Princípios de Criptografia Tópicos O papel da criptografia na segurança das redes de comunicação; Criptografia de chave

Leia mais

Criptografia e os conteúdos matemáticos do Ensino Médio

Criptografia e os conteúdos matemáticos do Ensino Médio Clarissa de Assis Olgin Universidade Luterana do Brasil Brasil clarissa_olgin@yahoo.com.br Resumo Os pressupostos educacionais da Educação Matemática salientam a importância do desenvolvimento do processo

Leia mais

Criptografia. 1. Introdução. 2. Conceitos e Terminologias. 2.1. Criptografia. 2.2. Criptoanálise e Criptologia. 2.3. Cifragem, Decifragem e Algoritmo

Criptografia. 1. Introdução. 2. Conceitos e Terminologias. 2.1. Criptografia. 2.2. Criptoanálise e Criptologia. 2.3. Cifragem, Decifragem e Algoritmo 1. Introdução O envio e o recebimento de informações são uma necessidade antiga, proveniente de centenas de anos. Nos últimos tempos, o surgimento da Internet e de tantas outras tecnologias trouxe muitas

Leia mais

UFF - Universidade Federal Fluminense

UFF - Universidade Federal Fluminense UFF - Universidade Federal Fluminense Unidade: PURO - Pólo Universitário de Rio das Ostras Centro Tecnológico Instituto de Computação Departamento de Ciência da Computação Disciplina: Informática I Turma:

Leia mais

Referências. Criptografia e Segurança de Dados. Outras Referências. Alguns tipos de ataques. Alguns tipos de ataques. Alguns tipos de ataques

Referências. Criptografia e Segurança de Dados. Outras Referências. Alguns tipos de ataques. Alguns tipos de ataques. Alguns tipos de ataques Criptografia e Segurança de Dados Aula 1: Introdução à Criptografia Referências Criptografia em Software e Hardware Autores: Edward D. Moreno Fábio D. Pereira Rodolfo B. Chiaramonte Rodolfo Barros Chiaramonte

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 2 Agenda da Disciplina Certificado Digital e suas aplicações Segurança Criptografia Simétrica

Leia mais

Segurança em redes de. Histórico da escrita secreta

Segurança em redes de. Histórico da escrita secreta Segurança em redes de computadores Histórico da escrita secreta Evolução da escrita secreta Mensagem oculta Fatos históricos narrados por Heródoto desde 480 a.c. Histaeucontra o rei persa Maria I Stuart,

Leia mais

Criptografia. Prof. Ricardo José Martins ricardo.martins@muz.ifsuldeminas.edu.br. IFSULDEMINAS, campus Muzambinho Curso de Ciência da Computação

Criptografia. Prof. Ricardo José Martins ricardo.martins@muz.ifsuldeminas.edu.br. IFSULDEMINAS, campus Muzambinho Curso de Ciência da Computação IFSULDEMINAS, campus Muzambinho Curso de Ciência da Computação Criptografia Prof. Ricardo José Martins ricardo.martins@muz.ifsuldeminas.edu.br Curso de Bacharelado em Ciência da Computação AED III Algoritmo

Leia mais

Conceitos de Segurança em Sistemas Distribuídos

Conceitos de Segurança em Sistemas Distribuídos Conceitos de Segurança em Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br 30 de novembro de 2011

Leia mais

Luckas Andre Farias. Criptografia em hardware usando VHDL aplicado a VOIP

Luckas Andre Farias. Criptografia em hardware usando VHDL aplicado a VOIP Luckas Andre Farias Criptografia em hardware usando VHDL aplicado a VOIP Londrina 2012 Luckas Andre Farias Criptografia em hardware usando VHDL aplicado a VOIP Trabalho de Conclusão de curso apresentado

Leia mais

Segurança de Redes. Criptografia. Requisitos da seg. da informação. Garantir que a informação seja legível somente por pessoas autorizadas

Segurança de Redes. Criptografia. Requisitos da seg. da informação. Garantir que a informação seja legível somente por pessoas autorizadas Segurança de Redes Criptografia Prof. Rodrigo Rocha rodrigor@santanna.g12.br Requisitos da seg. da informação Confidencialidade Garantir que a informação seja legível somente por pessoas autorizadas Integridade

Leia mais

CRIPTOGRAFIA E SEGURANÇA DE REDES

CRIPTOGRAFIA E SEGURANÇA DE REDES Universidade Federal do Piauí Departamento de Informática e Estatística Curso de Ciência da Computação CRIPTOGRAFIA E SEGURANÇA DE REDES Carlos André Batista de Carvalho Capítulo 03 - Cifras de Bloco e

Leia mais

Criptografia Digital. Prof. Flávio Humberto Cabral Nunes

Criptografia Digital. Prof. Flávio Humberto Cabral Nunes Criptografia Digital Prof. Flávio Humberto Cabral Nunes Conteúdo 1. Introdução 2. Aplicações 3. Criptografia e seus Conceitos 4. Tipos de Criptografia em Relação ao Uso de Chaves 5. Autenticação Comum

Leia mais

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos.

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos. Objetivos 2. Sistemas de Numeração, Operações e Códigos Revisar o sistema de numeração decimal Contar no sistema de numeração binário Converter de decimal para binário e vice-versa Aplicar operações aritméticas

Leia mais

Atributos de segurança. TOCI-08: Segurança de Redes. Ataques a canais de comunicação. Confidencialidade

Atributos de segurança. TOCI-08: Segurança de Redes. Ataques a canais de comunicação. Confidencialidade Atributos de segurança TOCI-08: Segurança de Redes Prof. Rafael Obelheiro rro@joinville.udesc.br Aula 9: Segurança de Comunicações Fundamentais confidencialidade integridade disponibilidade Derivados autenticação

Leia mais

Introdução. Iremos procurar ver aqui alguns mecanismos de proteção mais utilizados como: criptografia e SSL. 1.0 Criptografia

Introdução. Iremos procurar ver aqui alguns mecanismos de proteção mais utilizados como: criptografia e SSL. 1.0 Criptografia Introdução Atualmente no mundo internacional das redes e com o comércio eletrônico, todo sistema de computador se tornou um alvo em potencial para intrusos. O problema é que não há como saber os motivos

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 7 1. A CAMADA DE APLICAÇÃO Parte 1 Depois de estudar todas as camadas preliminares, chegamos à camada onde são encontradas todas as aplicações. As camadas situadas abaixo da camada de aplicação

Leia mais

www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 06 Criptografia e Esteganografia

www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 06 Criptografia e Esteganografia Gestão da Segurança da Informação Professor: Maurício 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

Leia mais

Segurança da Informação

Segurança da Informação Segurança da Informação (Extraído da apostila de Segurança da Informação do Professor Carlos C. Mello) 1. Conceito A Segurança da Informação busca reduzir os riscos de vazamentos, fraudes, erros, uso indevido,

Leia mais

Sumário. Parte I Conceitos Básicos de Criptografia, Software e Hardware...19. Agradecimentos...7 Sobre os Autores...9 Prefácio...

Sumário. Parte I Conceitos Básicos de Criptografia, Software e Hardware...19. Agradecimentos...7 Sobre os Autores...9 Prefácio... 11 Sumário Agradecimentos...7 Sobre os Autores...9 Prefácio... 17 Parte I Conceitos Básicos de Criptografia, Software e Hardware...19 Capítulo 1 Conceitos de Segurança de Dados e Criptografia... 21 1.1

Leia mais

Hardware Criptográfico para Interface de Comunicação Segura entre Dispositivos

Hardware Criptográfico para Interface de Comunicação Segura entre Dispositivos Hardware Criptográfico para Interface de Comunicação Segura entre Dispositivos Orientador: Prof. Ricardo de Carvalho Destro, M.Sc. Departamento: Engenharia Elétrica Candidato: Rafael Cavalcanti N FEI:

Leia mais

Programação de Computadores I BCC 701. Introdução

Programação de Computadores I BCC 701. Introdução Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Programação de Computadores I BCC 701 Introdução 2012-01 PROF. MARCELO LUIZ SILVA

Leia mais

Software de Telecomunicações. Introdução à Cifra

Software de Telecomunicações. Introdução à Cifra Software de Telecomunicações Introdução à Cifra Prof RG Crespo Software de Telecomunicações Introdução : 1/21 Plano de estudos Parte I Definições básicas Cifras clássicas: Substituição: monoalfabética

Leia mais

Questionário de Estudo - P1 Criptografia

Questionário de Estudo - P1 Criptografia Questionário de Estudo - P1 Criptografia 1) A criptografia e a criptoanálise são dois ramos da criptologia. Qual a diferença entre essas duas artes? Enquanto a Criptografia é a arte de esconder dados e

Leia mais

Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos

Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos Departamento de Informática, UFMA Graduação em Ciência da Computação Francisco José da Silva e Silva 1 Introdução Segurança em sistemas

Leia mais

Cifras de Chaves Simétricas por. Blocos (2010/10/7) P. Quaresma. Cifras Fieiras. Cifras por Blocos. Cifras de Chaves. Cifra Produto & Rede de FEAL

Cifras de Chaves Simétricas por. Blocos (2010/10/7) P. Quaresma. Cifras Fieiras. Cifras por Blocos. Cifras de Chaves. Cifra Produto & Rede de FEAL Cifras por Cifras por Definição (Cifra de ) Considere uma cifra constituída por um conjunto de funções de encriptação e desencriptação, respectivamente {E e : e K} e {D d : d K}, onde K é o espaço das

Leia mais

MA14 - Aritmética Unidade 24 Resumo

MA14 - Aritmética Unidade 24 Resumo MA14 - Aritmética Unidade 24 Resumo Introdução à Criptografia Abramo Hefez PROFMAT - SBM Aviso Este material é apenas um resumo de parte do conteúdo da disciplina e o seu estudo não garante o domínio do

Leia mais

Segurança da Informação

Segurança da Informação INF-108 Segurança da Informação Criptografia simétrica Prof. João Henrique Kleinschmidt Santo André, junho de 2013 Criptografia Criptografia: Estudo dos princípios e técnicas pelas quais a mensagem ou

Leia mais

Codificação de Informação 2010/2011

Codificação de Informação 2010/2011 Codificação de Informação 2010/2011 Sumário: Criptografia Introdução, terminologia, critérios de classificação Alguns métodos de cifra clássicos Noção de segredo perfeito (Shannon) Criptografia e Cripto

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

Criptografia e PGP. Fernando J. Carmo, Pedro A. Lemes, Tiago H. Freitas. Faculdade de Tecnologia de Guaratinguetá Guaratinguetá SP Brasil

Criptografia e PGP. Fernando J. Carmo, Pedro A. Lemes, Tiago H. Freitas. Faculdade de Tecnologia de Guaratinguetá Guaratinguetá SP Brasil Criptografia e PGP Fernando J. Carmo, Pedro A. Lemes, Tiago H. Freitas Faculdade de Tecnologia de Guaratinguetá Guaratinguetá SP Brasil fdesenvolvedor@hotmail.com, pedro.lemes@gmail.com tiagofreitas12@gmail.com

Leia mais

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO Profs. M.Sc. Lucio M. Duarte e Ph.D. Avelino Zorzo 1 Faculdade de Informática - PUCRS 1 REPRESENTAÇÃO DE DADOS Acredita-se que a criação de números veio com

Leia mais

Segurança da Informação

Segurança da Informação INF-108 Segurança da Informação Criptografia assimétrica Prof. João Henrique Kleinschmidt Santo André, junho de 2013 Problema de distribuição de chaves A criptografia de chave simétrica pode manter seguros

Leia mais

A MATEMÁTICA DOS CÓDIGOS CRIPTOGRÁFICOS

A MATEMÁTICA DOS CÓDIGOS CRIPTOGRÁFICOS A MATEMÁTICA DOS CÓDIGOS CRIPTOGRÁFICOS Paloma Barbosa Freire Universidade Católica de Brasília Curso de Matemática e-mail: palomapsb@hotmail.com José Eduardo Castilho Universidade Católica de Brasília

Leia mais

CERTIFICAÇÃO DIGITAL

CERTIFICAÇÃO DIGITAL Autenticidade Digital CERTIFICAÇÃO DIGITAL Certificação Digital 1 Políticas de Segurança Regras que baseiam toda a confiança em um determinado sistema; Dizem o que precisamos e o que não precisamos proteger;

Leia mais

SEGURANÇA DA INFORMAÇÃO PROF. SÓCRATES FILHO http://socratesfilho.wordpress.com

SEGURANÇA DA INFORMAÇÃO PROF. SÓCRATES FILHO http://socratesfilho.wordpress.com Comentários sobre prova do TRE/PR 2009 (CESPE TRE/PR 2009 Analista Judiciário Especialidade: Análise de Sistemas) A figura acima ilustra como um sistema de gerenciamento de segurança da informação (SGSI)

Leia mais

UNIVERSIDADE ESTADUAL DE GOIÁS UNIDADE UNIVERSITÁRIA DE JUSSARA LICENCIATURA EM MATEMÁTICA ANA PAULA ALVES MACHADO DE LIMA

UNIVERSIDADE ESTADUAL DE GOIÁS UNIDADE UNIVERSITÁRIA DE JUSSARA LICENCIATURA EM MATEMÁTICA ANA PAULA ALVES MACHADO DE LIMA UNIVERSIDADE ESTADUAL DE GOIÁS UNIDADE UNIVERSITÁRIA DE JUSSARA LICENCIATURA EM MATEMÁTICA ANA PAULA ALVES MACHADO DE LIMA A HISTÓRIA DA CRIPTOGRAFIA E A APLICAÇÃO DE TEORIA DOS NÚMEROS EM CRIPTOGRAFIA

Leia mais

A História do Computador. Linguagem de Programação Rone Ilídio/ Natã Goulart UFSJ - CAP

A História do Computador. Linguagem de Programação Rone Ilídio/ Natã Goulart UFSJ - CAP A História do Computador Linguagem de Programação Rone Ilídio/ Natã Goulart UFSJ - CAP Origem da Palavra Computador (século XIX) pessoa com função de fazer contas e resolver problemas com número Termo

Leia mais

Aula 3 - Sistemas de Numeração

Aula 3 - Sistemas de Numeração UEM Universidade Estadual de Maringá DIN - Departamento de Informática Disciplina: Fundamentos da Computação Profª Thelma Elita Colanzi Lopes thelma@din.uem.br Aula 3 - Sistemas de Numeração O ser humano,

Leia mais

CÓDIGOS E SENHAS: SEQUÊNCIA DIDÁTICA COM O TEMA CRIPTOGRAFIA NO ENSINO FUNDAMENTAL

CÓDIGOS E SENHAS: SEQUÊNCIA DIDÁTICA COM O TEMA CRIPTOGRAFIA NO ENSINO FUNDAMENTAL CÓDIGOS E SENHAS: SEQUÊNCIA DIDÁTICA COM O TEMA CRIPTOGRAFIA NO ENSINO FUNDAMENTAL Claudia Lisete Oliveira Groenwald Universidade Luterana do Brasil claudiag@ulbra.br Clarissa de Assis Olgin Universidade

Leia mais

Criptografia em hardware usando VHDL aplicado a VOIP

Criptografia em hardware usando VHDL aplicado a VOIP Criptografia em hardware usando VHDL aplicado a VOIP Luckas Andre Farias Wesley Attrot (orientador) 1 Departamento de Computação Universidade Estadual de Londrina (UEL) Caixa Postal 10.011 CEP 86057-970

Leia mais

Capítulo 8. Segurança de redes

Capítulo 8. Segurança de redes Capítulo 8 Segurança de redes slide 1 2011 Pearson Prentice Hall. Todos os direitos reservados. Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, Pearson Education-Prentice Hall,

Leia mais

Sigilo Autenticação Assinatura e Controle de integridade

Sigilo Autenticação Assinatura e Controle de integridade 1 Sigilo Autenticação Assinatura e Controle de integridade Segurança em Redes Introdução No início da utilização da Internet, a questão sobre segurança tinha pouca importância devido a dimensão pequena

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação da Informação Um dispositivo eletrônico, armazena e movimenta as informações internamente

Leia mais

AULA 01 INTRODUÇÃO. Eduardo Camargo de Siqueira CIRCUITOS DIGITAIS Engenharia de Computação

AULA 01 INTRODUÇÃO. Eduardo Camargo de Siqueira CIRCUITOS DIGITAIS Engenharia de Computação AULA 01 INTRODUÇÃO Eduardo Camargo de Siqueira CIRCUITOS DIGITAIS Engenharia de Computação O COMPUTADOR O homem sempre procurou máquinas que o auxiliassem em seu trabalho. O computador é consciente, trabalhador,

Leia mais

Sistemas de Numeração

Sistemas de Numeração Sistemas de Numeração Um numeral é um símbolo ou grupo de símbolos que representa um número em um determinado instante da evolução do homem. Tem-se que, numa determinada escrita ou época, os numerais diferenciaram-se

Leia mais

Criptografia e Segurança em Redes Capítulo 9. Quarta Edição William Stallings

Criptografia e Segurança em Redes Capítulo 9. Quarta Edição William Stallings Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings Capítulo 9 - Public Key Cryptography e RSA Cada egípicio recebia dois nomes que eram conhecidos respectivamente como o nome

Leia mais

Conceitos básicos de criptografia

Conceitos básicos de criptografia Conceitos básicos de criptografia Criptografia Conseguir que um grupo de pessoas transmita informação entre elas que seja ininteligível para todas as outras Uma solução: ter um dialecto próprio secreto

Leia mais

Informática Instrumental Aula 1. Prof. Msc. Fernando Nakayama de Queiroz

Informática Instrumental Aula 1. Prof. Msc. Fernando Nakayama de Queiroz Informática Instrumental Aula 1 Prof. Msc. Fernando Nakayama de Queiroz Ementa da disciplina 1. Apresentação do sistema operacional windows e linux; 2. Aprendendo a operar o teclado e principais teclas

Leia mais

Unidade Central de Processamento Organização da UCP Execução de instruções em paralelo ("pipeline") Execução de programas

Unidade Central de Processamento Organização da UCP Execução de instruções em paralelo (pipeline) Execução de programas http://www.ic.uff.br/~debora/fac! Dar noções iniciais dos componentes básicos de um sistema de computador, assim também como conceitos fundamentais necessários para a manipulação de informação dentro do

Leia mais

Venda segura. Série Matemática na Escola

Venda segura. Série Matemática na Escola Venda segura Série Objetivos 1. Apresentar alguns conceitos de criptografia de chave pública; 2. Contextualizar o assunto através de exemplos práticos. 3. Motivar o estudo de operações matemáticas envolvendo

Leia mais

Codificação de Canal

Codificação de Canal Laboratório de Processamento de Sinais Laboratório de Sistemas Embarcados Universidade Federal do Pará 26 de janeiro de 2012 Sumário 1 Introdução a 2 Códigos de Blocos Lineares 3 Códigos Cíclicos Introdução

Leia mais

- Aula 2 ESTÁGIOS DA EVOLUÇÃO DA ARQUITETURA DOS COMPUTADORES

- Aula 2 ESTÁGIOS DA EVOLUÇÃO DA ARQUITETURA DOS COMPUTADORES - Aula 2 ESTÁGIOS DA EVOLUÇÃO DA ARQUITETURA DOS COMPUTADORES 1. INTRODUÇÃO Centenas de tipos diferentes de computadores foram projetados e construídos ao longo do ciclo evolutivo dos computadores digitais.

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Introdução à Computação DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Informática x Computação

Leia mais

ITACRIPTO: UMA PROPOSTA DE APLICATIVO DE CRIPTOGRAFIA PARA O ITA

ITACRIPTO: UMA PROPOSTA DE APLICATIVO DE CRIPTOGRAFIA PARA O ITA Anais do 14 O Encontro de Iniciação Científica e Pós-Graduação do ITA XIV ENCITA / 2008 Instituto Tecnológico de Aeronáutica São José dos Campos SP Brasil Outubro 20 a 23 2008. ITACRIPTO: UMA PROPOSTA

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA

Leia mais

UNIVERSIDADE FEDERAL DE MINAS GERAIS DEPARTAMENTO DE MATEMÁTICA ESPECIALIZAÇÃO EM MATEMÁTICA PARA PROFESSORES

UNIVERSIDADE FEDERAL DE MINAS GERAIS DEPARTAMENTO DE MATEMÁTICA ESPECIALIZAÇÃO EM MATEMÁTICA PARA PROFESSORES UNIVERSIDADE FEDERAL DE MINAS GERAIS DEPARTAMENTO DE MATEMÁTICA ESPECIALIZAÇÃO EM MATEMÁTICA PARA PROFESSORES MONOGRAFIA CRIPTOGRAFIA RSA ANDRÊZA GRAZIELE SANTOS PEDRA ORIENTADOR: PAULO ANTÔNIO FONSECA

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Capítulo 2. Numéricos e Códigos. 2011 Pearson Prentice Hall. Todos os direitos reservados.

Capítulo 2. Numéricos e Códigos. 2011 Pearson Prentice Hall. Todos os direitos reservados. Capítulo 2 Sistemas Numéricos e Códigos slide 1 Os temas apresentados nesse capítulo são: Conversão entre sistemas numéricos. Decimal, binário, hexadecimal. Contagem hexadecimal. Representação de números

Leia mais

História e Organização Básica de Computadores

História e Organização Básica de Computadores História e Organização Básica de Computadores Arquitetura de Computadores Introdução Durante a evolução do computador digital moderno foram projetadas e construídas centenas de diferentes tipos de computadores.

Leia mais

CRIPFTOGRAFIA ASSIMÉTRICA DE IMAGENS UTILIZANDO ALGORITMO RSA

CRIPFTOGRAFIA ASSIMÉTRICA DE IMAGENS UTILIZANDO ALGORITMO RSA CRIPFTOGRAFIA ASSIMÉTRICA DE IMAGENS UTILIZANDO ALGORITMO RSA Bruno da Silva *, Humberto Pessoa Almeida *, Cintia Carvalho Oliveira e Daniele Carvalho Oliveira * Universidade de Uberaba Engenharia de Computação,

Leia mais

Estudo do Padrão Avançado de Criptografia AES Advanced Encryption Standard

Estudo do Padrão Avançado de Criptografia AES Advanced Encryption Standard Estudo do Padrão Avançado de Criptografia AES Advanced Encryption Standard Diogo Fernando Trevisan 1 Rodrigo P. da Silva Sacchi 2 Lino Sanabria 2 Resumo: Este trabalho retrata a implementação do algoritmo

Leia mais

C R I P T O G R A F I A

C R I P T O G R A F I A Faculdade de Ciência e Tecnologia C R I P T O G R A F I A A CRIPTOGRAFIA NA SEGURANÇA DE DADOS Rodrigo Alves Silas Ribas Zenilson Apresentando Cripto vem do grego kryptós e significa oculto, envolto, escondido.

Leia mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

3 Sistemas Criptográficos

3 Sistemas Criptográficos 3 Sistemas Criptográficos 3.1 Introdução À medida que a Internet se populariza, a quantidade de documentos e transações eletrônicas aumenta. A necessidade de segurança eletrônica é uma realidade, e a Criptografia

Leia mais

ELETRÔNICA DIGITAL 1

ELETRÔNICA DIGITAL 1 CENTRO FEDERAL DE ENSINO TECNOLÓGICO DE SANTA CATARINA UNIDADE SÃO JOSÉ ÁREA DE TELECOMUNICAÇÕES ELETRÔNICA DIGITAL 1 CAPÍTULO 1 SUMÁRIO INTRODUÇÃO...2 1. SISTEMAS DE NUMERAÇÃO...4 1.1 Introdução...4

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Profa. Rita Rodorigo PARTE 1 2010 1 1- Introdução Computador é uma máquina composta de partes eletrônicas e eletromecânicas, capaz de coletar, manipular, transformar dados sistematicamente

Leia mais

Tópicos de criptografia para o ensino médio

Tópicos de criptografia para o ensino médio Flávio Ornellas Loureiro Tópicos de criptografia para o ensino médio Universidade Estadual do Norte Fluminense Darcy Ribeiro Campos dos Goytacazes - RJ Agosto, 2014 Flávio Ornellas Loureiro Tópicos de

Leia mais

Amigos e inimigos: Alice, Bob e Trudy

Amigos e inimigos: Alice, Bob e Trudy Unidade 2 Criptografia e Certificação Digital 33 Amigos e inimigos: Alice, Bob e Trudy dados Bob e Alice querem se comunicar de forma segura. Trudy (intruso) pode interceptar, apagar e adicionar mensagens

Leia mais

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de Escola Secundária c/3º CEB José Macedo Fragateiro Curso Profissional de Nível Secundário Componente Técnica Disciplina de Sistemas Digitais e Arquitectura de Computadores 29/21 Módulo 1: Sistemas de Numeração

Leia mais

Segurança da Informação. Criptografia, protocolos seguros e suas aplicações

Segurança da Informação. Criptografia, protocolos seguros e suas aplicações Segurança da Informação Criptografia, protocolos seguros e suas aplicações Criptografia Serviços Oferecidos Serviços Disponibilidade Integridade Controle de acesso Autenticidade da origem Não-repudiação

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Redes de Computadores. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Redes de Computadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Nível de Aplicação Responsável por interagir com os níveis inferiores de uma arquitetura de protocolos de forma a disponibilizar

Leia mais

Segurança de Redes de Computadores. Ricardo José Cabeça de Souza www.ricardojcsouza.com.br ricardo.souza@ifpa.edu.br

Segurança de Redes de Computadores. Ricardo José Cabeça de Souza www.ricardojcsouza.com.br ricardo.souza@ifpa.edu.br Segurança de Redes de Computadores Ricardo José Cabeça de Souza Proposta de substituir o DES, o NIST (National Institute of Standards and Technology dos E. U.) promoveu uma competição para que fosse feito

Leia mais

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros Aula 04 Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros Prof. Otávio Gomes otavio.gomes@ifmg.edu.br sites.google.com/a/ifmg.edu.br/otavio-gomes/ 1 Bytes A maioria dos microcomputadores

Leia mais

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa Prof. Marcelo de Sá Barbosa Introdução Visão geral das técnicas de segurança Algoritmos de criptografia Assinaturas digitais Criptografia na prática Introdução A necessidade de proteger a integridade e

Leia mais

Capítulo UM Bases Numéricas

Capítulo UM Bases Numéricas Capítulo UM Bases Numéricas 1.1 Introdução Quando o homem aprendeu a contar, ele foi obrigado a desenvolver símbolos que representassem as quantidades e grandezas que ele queria utilizar. Estes símbolos,

Leia mais

¹CPTL/UFMS, Três Lagoas, MS,Brasil, oliveiralimarafael@hotmail.com. ²CPTL/UFMS, Três Lagoas, MS, Brasil.

¹CPTL/UFMS, Três Lagoas, MS,Brasil, oliveiralimarafael@hotmail.com. ²CPTL/UFMS, Três Lagoas, MS, Brasil. Encontro de Ensino, Pesquisa e Extensão, Presidente Prudente, 22 a 25 de outubro, 2012 36 INTRODUÇÃO A CRIPTOGRAFIA RSA Rafael Lima Oliveira¹, Prof. Dr. Fernando Pereira de Souza². ¹CPTL/UFMS, Três Lagoas,

Leia mais

Tecnologia da Administração Computador: origem, funcionamento e componentes básicos Parte I Sumário Introdução Origem Funcionamento Componentes Básicos Referências Introdução O objetivo deste material

Leia mais

Sistemas numéricos. Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS ago-09

Sistemas numéricos. Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS ago-09 Sistemas numéricos Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS ago-09 Introdução Tempos remotos... A necessidade de contar!! Animais, alimentos

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Sistema de Numeração Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Sistemas Numéricos Principais sistemas numéricos: Decimal 0,

Leia mais

ESTUDO DE ALGORITMOS CRIPTOGRAFICOS E IMPLEMENTAÇÃO DE UMA ENTIDADE CERTIFICADORA

ESTUDO DE ALGORITMOS CRIPTOGRAFICOS E IMPLEMENTAÇÃO DE UMA ENTIDADE CERTIFICADORA UNIVERSIDADE CATÓLICA DE GOIÁS DEPARTAMENTO DE COMPUTAÇÃO GRADUÇÃO EM CIÊNCIA DA COMPUTAÇÃO ESTUDO DE ALGORITMOS CRIPTOGRAFICOS E IMPLEMENTAÇÃO DE UMA ENTIDADE CERTIFICADORA AUDIR DA COSTA OLIVEIRA FILHO

Leia mais

Criptografia. Criptografia. Criptografia. Criptografia - Termos. Profº. Esp. Salomão Soares salomaosoares@bol.com.

Criptografia. Criptografia. Criptografia. Criptografia - Termos. Profº. Esp. Salomão Soares salomaosoares@bol.com. Criptografia Criptografia Profº. Esp. Salomão Soares salomaosoares@bol.com.br Macapá/AP 2012 Método para proteção de acesso de pessoas não autorizadas à informação sigilosa; Este método busca armazenar

Leia mais

- Aula 1 - ARQUITETURA DE COMPUTADORES

- Aula 1 - ARQUITETURA DE COMPUTADORES - Aula 1 - ARQUITETURA DE COMPUTADORES Em arquitetura de computadores serão estudados aspectos da estrutura e do funcionamento dos computadores. O objetivo é apresentar de forma clara e abrangente a natureza

Leia mais

INFORMÁTICA HISTÓRIA DA INFORMÁTICA 1º PD PROFESSOR

INFORMÁTICA HISTÓRIA DA INFORMÁTICA 1º PD PROFESSOR INFORMÁTICA HISTÓRIA DA INFORMÁTICA 1º PD PROFESSOR Nelson Fabbri Gerbelli O que é informática? INFORMAÇÃO TECNOLOGIA INFORMÁTICA INFORmação automática 2 ÁBACO Na China, 3000 anos antes de Cristo, surgiu

Leia mais

CRIPTOGRAFIA EM REDES DE COMPUTADORES

CRIPTOGRAFIA EM REDES DE COMPUTADORES CRIPTOGRAFIA EM REDES DE COMPUTADORES 1 Tiago Menezes Xavier de Souza, 1 Alexandre Paulino Sierra da Silva 1 Universidade Paranaense (UNIPAR) Paranavaí- PR- Brasil tiagoxavier13@outlook.com, alexandre.pss@unipar.br

Leia mais

Aumentando a segurança do MD6 em relação aos ataques diferenciais

Aumentando a segurança do MD6 em relação aos ataques diferenciais Aumentando a segurança do MD6 em relação aos ataques diferenciais Valdson S. Cleto 1, Routo Terada 1 1 Instituto de Matemática e Estatística Universidade de São Paulo (USP) São Paulo SP Brazil vcleto@gmail.com,

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

Introdução à Criptografia. Segurança da Informação Prof. João Bosco M. Sobral

Introdução à Criptografia. Segurança da Informação Prof. João Bosco M. Sobral Introdução à Criptografia Segurança da Informação Prof. João Bosco M. Sobral 1 O que é Segurança da Informação Segurança de Informação relaciona-se com vários e diferentes aspectos referentes à: confidencialidade

Leia mais

Organização de Computadores I

Organização de Computadores I Departamento de Ciência da Computação - UFF Objetivos Organização de Computadores I Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br http://www.ic.uff.br/~debora/orgcomp Dar noções iniciais

Leia mais

O Computador. Evolução dos métodos de cálculo. Estrutura do Computador Digital

O Computador. Evolução dos métodos de cálculo. Estrutura do Computador Digital NOTAS DE AULA ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES 1 Introdução à Ciência da Computação Histórico da Computação A tarefa de processamento de dados consiste em: o tomar certa informação, o processá-la

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 1 Introdução: Um computador é uma máquina (conjunto de partes eletrônicas e eletromecânicas) capaz de sistematicamente coletar, manipular e fornecer resultados da manipulação de dados para um ou mais objetivos.

Leia mais

Engenharia de Segurança

Engenharia de Segurança Engenharia de Segurança Profa. Dra. Kalinka Regina Lucas Jaquie Castelo Branco kalinka@icmc.usp.br Slides baseados nas transparências de diversos professores e autores de livros (prof. Edward David Moreno,

Leia mais

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Segurança da Informação Aula 02

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Segurança da Informação Aula 02 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Segurança da Informação Aula 02 Agenda 1. Segurança da Informação 1.1.Introdução 1.2.Conceitos 1.3.Ameaças a Segurança da

Leia mais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

PC Fundamentos Revisão 4

PC Fundamentos Revisão 4 exatasfepi.com.br PC Fundamentos Revisão 4 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

Certificação digital para agente de registro e aplicações

Certificação digital para agente de registro e aplicações Certificação digital para agente de registro e aplicações Resumo de minicurso realizado no 15º Seminário RNP de Capacitação e Inovação Italo Valcy Ponto de Presença da RNP na Bahia

Leia mais

Computadores I: Dados e informações

Computadores I: Dados e informações Computadores I: Dados e informações A1 Texto 1 Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 20/06/2005 Autor: B.Piropo Dado e informação Um computador é uma máquina que tem por fim processar

Leia mais