• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Criptografia em hardware   emicro se - nov 15 2012
 

Criptografia em hardware emicro se - nov 15 2012

on

  • 986 views

Minicurso ministrado na EMICRO/SE - Escola Regional de Microeletrônica, Nordeste, na cidade de Aracaju, no dia 15/11/2012

Minicurso ministrado na EMICRO/SE - Escola Regional de Microeletrônica, Nordeste, na cidade de Aracaju, no dia 15/11/2012

Statistics

Views

Total Views
986
Views on SlideShare
986
Embed Views
0

Actions

Likes
1
Downloads
25
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Criptografia em hardware   emicro se - nov 15 2012 Criptografia em hardware emicro se - nov 15 2012 Presentation Transcript

    • Criptografia em HardwareMinicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/Aracaju, 15 de Novembro de 2012 Edward David Moreno edwdavid@gmail.com 1
    • SumárioParte I – ConceitosParte II – Exemplos em C e VHDL & FPGAsParte III - Parte Prática – Algoritmos PosicionaisParte IV - Parte Prática – Algoritmos Conhecidos (DES, AES, RC5, IDEA, RSA, etc.)Parte V– Classificação Moderna de Soluções deSegurança 2
    • ReferênciasCriptografia em Software e Hardware, 2005Autores: Edward D. Moreno Fábio D. Pereira Rodolfo B. Chiaramonte 3
    • Outras Referências SEGURANÇA DE DADOS CRIPTOGRAFIA EM REDES DE COMPUTADOR Autor: Routo Terada CRYPTOGRAPHY AND NETWORK SECURITY PRINCIPLES AND PRACTICE Autor:William Stallings HANDBOOK OF APPLIED CRYPTOGRAPHY Autores: A. Menezes, P. van Oorschot, e S. Vanstone. 4
    • Publicações Springer Transactions on Computational Science, 2010 – Security in Computing Part I – LNCS 6340 Autor: Edward MorenoTransactions on Computational Science, 2010– Security in Computing Part II – LNCS 6480Autor: Edward Moreno Transactions on Computational Science – Security in Computing – LNCS 5430, 2009 Autor: Edward Moreno 5
    • People - Criptografia em Hardware Prof. C Paar Profa. Ingrid Verbauwhede Prof. Bart Preneel Prof. Cetin Kaya Koc Profa. Catherine Gateboys Grupo COSICProf. Ricardo Dahab (UNICAMP) Computer SecurityProf. Paulo Barreto (USP) and Industrial CryptographyProf. Julio Hernandez (UNICAMP) 6
    • Eventos - Criptografia em Hardware CHES CRYPTO Computers and Security - Elsevier Security - ACM Outros Outros SBSEG - Brasil 7
    • Computer Security Conference Ranking and Statistic http://faculty.cs.tamu.edu/guofei/sec_conf_stat.htm S&P (Oakland) IEEE Symposium on Security and Privacy CCS ACM Conference on Computer and Communications SecurityRank1 Crypto International Cryptology Conference Eurocrypt European Cryptology Conference Usenix Security Symposium Security NDSS ISOC Network and Distributed System Security Symposium 8
    • Computer Security Conference Ranking and Statistic ESORICS European Symposium on Research in Computer Security RAID International Symposium on Recent Advances in Intrusion Detection ACSAC Annual Computer Security Applications ConferenceRank 2 The International Conference on Dependable Systems and DSN Networks IEEE Computer Security Foundations Symposium. CSF (CSFW) Supersedes CSFW (Computer Security Foundations Workshop) TCC Theory of Cryptography Conference International Conference on the Theory and Application of Asiacrypt Cryptology and Information Security IMC Internet Measurement Conference 9
    • Computer Security Conference Ranking and Statistic – Rank 3 (1) IEEE Communications Society/CreateNet Internation Conference on Security andSecureComm Privacy for Emerging Areas in Communication Networks GI SIG SIDAR Conference on Detection of Intrusions and Malware andDIMVA Vulnerability AssessmentAsiaCCS ACM Symposium on Information, Computer and Communications SecurityACNS International Conference on Applied Cryptography and Network SecurityFC International Conference on Financial Cryptography and Data SecuritySAC ACM Symposium on Applied ComputingACISP Australasia Conference on Information Security and PrivacyICICS International Conference on Information and Communications SecurityISC Information Security Conference 10
    • Computer Security Conference Ranking and Statistic – Rank 3 (2)ICISC International Conference on Information Security and CryptologySACMAT ACM Symposium on Access Control Models and TechnologiesCT-RSA RSA Conference, Cryptographers TrackSEC IFIP International Information Security Conference ACM Conference on Wireless Network SecurityWiSec Supersedes WiSe (ACM Workshop on Wireless Security) and SASN (ACM(WiSe, SASN) Workshop on Security of Ad-Hoc and Sensor Networks)SOUPS Symposium On Usable Privacy and SecurityIFIP WG 11.9IFIP WG 11.9 International Conference on Digital ForensicsDFRWS Digital Forensic Research ConferencePETS Privacy Enhancing Technologies Symposium 11
    • Computer Security Conference Ranking and Statistic – WorkshopsFSE Fast Software Encryption workshopPKC International Workshop on Public-Key CryptographyNSPW New Security Paradigms WorkshopIH Workshop on Information HidingWSPEC Workshop on Security and Privacy in E-commerceDRM ACM Workshop on Digital Rights ManagementIWIA IEEE International Information Assurance WorkshopIAW IEEE SMC Information Assurance Workshop "The West Point Workshop"CHES Workshop on Cryptographic Hardware and Embedded SystemsSRUTI USENIX Workshop on Steps to Reducing Unwanted Traffic on the InternetHotSec USENIX Workshop on Hot Topics in SecurityLEET USENIX Workshop on Large-scale Exploits and Emergent Threats(HotBots,W Supersedes HotBots (USENIX Workshop on Hot Topics in Understanding Botnets)ORM) and WORM (ACM Workshop on Recurring/Rapid Malcode) 12
    • Parte I ConceitosMinicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/Aracaju, 15 a 17 de Novembro de 2012 Edward David Moreno edwdavid@gmail.com 13
    • O que é Criptografia? Criptografia significa grafia oculta; Kriptos = Grafia; Graphos = Oculta. É a ciência de escrever em cifras de modo que apenas o destinatário possa decifrar; Hoje em dia não é utilizada apenas para codificação. 14
    • Esquema Geral “A criptografia pode ser entendida como um conjunto de métodos e técnicas para cifrar ou codificar informações legíveis por meio de um algoritmo, convertendo um texto original em um texto ilegível, sendo possível mediante o processo inverso recuperar as informações originais” 15
    • Definições Emissor (A) e Receptor (B) Texto Original ou Texto Limpo Cifrar Decifrar Criptografia X Criptoanálise = Criptologia Texto Texto Cifrado Original Cifrar DecifrarTextoOriginal 16
    • Algoritmo vs Chave ? AlgoritmoAlgoritmo K Espaço de Chaves Princípio de Kerckhoffs 17
    • Como Funciona ? Algoritmo de encriptação Mensagem CriptogramaCigragem Chave Algoritmo de decriptação Criptograma MensagemDecifragem Chave 18
    • Então Criptografia é ...• Processo de transformação, através de uma chave secreta, de informação legível (mensagem) em informação ilegível (criptograma)• Somente os indivíduos que conhecem a chave secreta tem capacidade de decifrar o criptograma e recriar a mensagem• A dificuldade da decriptação reside em descobrir a chave secreta e não o segredo do método utilizado (algoritmo de criptografia). 19
    • Breve Histórico Usada desde a antigüidade: Presença na escrita hieroglífica dos egípcios; Codificação de planos de batalhas pelos romanos; Grandes mudanças a partir de meados do século passado; 20
    • Breve Histórico Em 1901, iniciou-se a era da comunicação sem fio: Aumenta o desafio da criptologia; Em 1921 Edward H. Herben fundou a Hebern Electric Code: Início da construção de máquinas de cifragem; 21
    • Breve Histórico Até o fim da década de 70 algoritmos criptográficos secretos; Exemplo: Máquina ENIGMA utilizada pelos alemães até a 2ª Guerra Mundial era totalmente secreta; Atualmente a segurança baseia-se apenas no conhecimento da chave secreta, e não do algoritmo. 22
    • Breve HistóricoMáquinaENIGMA 23
    • ENIGMA - Máquina de três rotores 24
    • Breve HistóricoAlgoritmos Importantes: 1976 LUCIFER apresentado pela IBM à NBS (National Bureal of Standards), que após algumas modificações adota como padrão: DES (Data Encryption Standard); AES (2000) 1978 Criado algoritmo de chave pública RSA (nome derivado das iniciais dos autores – Rivest, Shamir e Adleman); 1965 -> ECC, 2008 -> MQQ SHA-1, 2012 -> SHA-3 (Kecca) 25
    • Qual a Importância daCriptografia ? Segurança da transferência de dados na rede; Armazenamento de informações codificadas; Assinatura Digital e Integridade; ... 26
    • Onde é utilizada ? Internet: Home Banking; Comércio Eletrônico; E-mail; Sistemas Distribuídos; Bancos de Dados. 27
    • Serviços de Segurança Funcionalides que, se presentes, possibilitam restringir determinados riscos de segurança Classificação: Serviço de Confidencialidade Serviço de Autenticação Serviço de Integridade Serviço de Irretratabilidade (não repudiação) Serviço de Disponibilidade Serviço de Controle de Acesso Serviço de Auditoria 28
    • Objetivos da Criptografia (1) Confidencialidade; (2) Integridade dos Dados; (3) Autenticação; (4) Não-Repúdio. 29
    • (1) Confidencialidade É um serviço para evitar que pessoas não autorizadas “entendam” o que está sendo transmitido; Este serviço também é conhecido como sigilo. 30
    • (2) Integridade dos Dados É um serviço que assegura que os dados não foram alterados; Dois tipos de alteração: Acidental; Intencional: Inserção; Deleção; Substituição. 31
    • (3) Autenticação Vários Tipos: Usuário; Remetente; Destinatário; Atualidade. 32
    • (4) Não-Repúdio É um serviço que previne que alguma entidade negue uma ação que havia executado previamente; Exemplo: “Uma entidade pode autorizar a compra de uma propriedade por uma segunda entidade e depois negar tal autorização.” Handbook of Applied Cryptography (1996). 33
    • Importante A criptografia não é o único meio de prover a segurança da informação, é apenas um conjunto de técnicas que devem ser utilizadas em conjunto com outras. 34
    • Termos Comuns Texto original = Texto claro = Plaintext; Texto cifrado = Texto código = Chipertext; Cifrar/Criptografar - Converter texto claro para cifrado; Decifrar/Decriptografar - Recuperar o texto original a partir do texto cifrado; Criptologia - Estudo sobre os códigos: Compreende criptografia e criptoanálise. 35
    • Cifras em Bloco x Stream Cifras em bloco processam blocos de caracteres (64 bits ou mais) durante a cifragem/decifragem; Cifras Stream processam um bit ou um byte por vez; Maioria das cifras atuais utilizam blocos. 36
    • Criptoanálise Ciência que busca determinar a chave ou decifrar mensagens sem o conhecimento da chave; Uma tentativa de criptoanálise é chamada de ataque. 37
    • Tipos de algoritmos Tipos de Algoritmos Simétrico: Uma única chave Assimétrico: Utiliza duas chaves (secreta e privada) Sistemas Híbridos: Utilizam os dois tipos de algoritmos 38
    • Tipos de algoritmos Simétricos: Uma mesma chave é utilizada tanto para a criptografia quanto para a decriptografia; 39
    • Tipos de algoritmos Assimétricos: Possuem duas chaves: uma pública e outra privada. 40
    • Algoritmos Simétricos Vantagens: Mais rápido; Bom nível de segurança; Desvantagens: Única chave compartilhada pelo emissor e receptor; Como distribuir a chave ? Exposição da chave compromete todas as mensagens 41
    • Algoritmos AssimétricosVantagens: Duas chaves: uma para criptografia e outra para a decriptografia; Facilita a distribuição de chaves;Desvantagens: Velocidade de cifragem e decifragem; Segurança baseada em problemas matemáticos complexos. Dificuldade de implementação em plataformas com restrições 42
    • Principais Algoritmos SimétricosNome Tipo Tam. chave Tam. blocoDES bloco 56 64Triple DES (2 ch.) bloco 112 64Triple DES (3 ch.) bloco 168 64IDEA bloco 128 64BLOWFISH bloco 32 a 448 64RC5 bloco 0 a 2040 32,64,128CAST-128 bloco 40 a 128 64RC2 bloco 0 a 1024 64RC4 stream 0 a 256 --Rijndael (AES) bloco 128,192,256 128, 192, 256MARS bloco variável 128RC6 bloco variável 128Serpent bloco variável 128Twofish bloco 128,192,256 128 43
    • Principais Algoritmos Assimétricos– DH - Diffie Hellman (Troca de Chaves)– RSA • Rivest-Shamir-Adelman • Algoritmo publicado em 1978 • Sua patente expirou em 2000 • Valores típicos para tamanho de chaves – 512, 1024, 2048 bits– ECC • “Elliptic Curve Cryptography” • Baseada na teoria de Curvas Elipticas– MQQ – é recente e ainda um pouco desconhecido, mas é promissor, pois parece mais ser mais rapido que o ECC 44
    • Propriedade da Assinatura DigitalVerificar o Autor e a data/hora da assinaturaAutenticar o conteúdo originalA assinatura deve poder ser verificável por terceiros(resolver disputas) TiposDireta Envolve somente X e Y Segurança está na chave privada de X Selo de TempoArbitrada X -> A -> Y 45
    • Requisitos da Assinatura DigitalDepender do ConteúdoUsar informação única do originadorFácil de produzirFácil de reconhecer e verificarInviável de forjarDeve ser prático manter uma cópia daassinatura 46
    • Assinatura Digital Arbitrada Usando Criptografia Simétrica(Árbitro vê a mensagem)(1) X → A: M || EKXA[IDX || H(M)](2) A → Y: EKAY[IDX || M || EKXA[IDX || H(M)] || T] (Árbitro não vê a mensagem) (1) X → A: IDX || EKXY[M] || EKXA[IDX || H(EKXY[M])] (2) A → Y: EKAY[IDX || EKXY[M] || EKXA[IDX || H(EKXY[M] )] || T] 47
    • Assinatura Digital Arbitrada Usando Criptografia Assimétrica(Árbitro não vê a mensagem) (1) X → A: IDX || EKRX[IDX || EKUY(EKRX[M])] (2) A → Y: EKRA[IDX || EKUY[EKRX [M]] || T] 48
    • RSA - Assinatura Digital HM || M Comparar D H E EKRa[H(M)] KUa KRa 49
    • Principais Algoritmos HashingAlgoritmo de Hash Compr. Hash kbytes/sAbreast Bavies-Meyer (c/IDEA) 128 22Davies-Meyer (c/DES) 64 9GOST Hash 256 11NAVAL (3 passos) variável 168NAVAL (4 passos) variável 118NAVAL (5 passos) variável 95MD4 - Message Digest 4 128 236MD5 - Message Digest 5 128 174N-HASH (12 rounds) 128 29N-HASH (15 rounds) 128 24RIPE-MD 128 182RIPE-MD-160 160 ---SHA - Secure Hash Algorithm 160 75SNEFRU (4 passos) 128 48SNEFRU (8 passos) 128 23SHA-3 (kecca) 50
    • Esteganografia Não é criptografia; Maneiras de ocultar informações: Tinta invisível; Letras destacadas com lápis; Bits escondidos em certas imagens; Não faz sentido falar em quebra, mas em interceptação; Referência: Bases Matemáticas da Criptografia - TEMPEST 51
    • Esteganografia (cont) Desvantagens: Desempenho; Uso de muita informação para ocultar pequenos textos; Vantagens: Não desperta suspeitas de envolvimento com segredos. Referência: Bases Matemáticas da Criptografia - TEMPEST 52
    • Funções São utilizadas para denotar os algoritmos criptográficos de maneira formal; Exemplos: fk(x) = y; f-1k(y) = x; k é a chave, x o texto plano e y o texto cifrado; fk(x) indica a criptografia e f-1k(y) indica que o algoritmo inverso está sendo utilizado (decriptografia) 53
    • Esquema Geral Chave K Chave K IlegívelLegível y Legível x fk(x)=y fk-1(y)=x x Linha de comunicação 54
    • Exercício Baseado no formalismo de funções, tente imaginar como seria um algoritmo de criptografia simples. 55
    • Uma Possível Solução y = fk(x) = x + k; x = f-1k(y) = y - k; Tabela de Caracteres - A – B – C – D – E 0 – 1 – 2 – 3 – 4 - 5 Exemplo: y = f3(2) = 2 + 3 = 5; x = f-13(5) = 5 – 3 = 2; 56
    • Parte II Exemplo de Algoritmos Criptográficos em Hardware (VHDL e FPGAs) FPGAs) e Software (C)Algoritmo Posicional Autores: Edward David Moreno,DES Fabio Dacencio Pereira,IDEA Rodolfo ChiaramonteRSA edwdavid@gmail.comAESRC5 57
    • Algoritmo Cifra de César É um algoritmo muito simples, mas também inseguro. Consiste em atribuir valores seqüenciais para cada letra e criptografar somando um valor fixo aos valores das letras. A chave pode ser facilmente descoberta através da tentativa de todas as possibilidades ou teste de freqüência das letras (ataque por só-texto-ilegível). EMICRO-SE - Aracaju - Nov 15-17 de 2012 58
    • Algoritmo Posicional O algoritmo se baseia no algoritmo Cifra de César inserindo uma função que trabalha com a posição do caracter e somando seu resultado ao valor da letra (e não um valor fixo como no algoritmo Cifra de César). Exemplo de Posicional - Grau 3 EMICRO-SE - Aracaju - Nov 15-17 de 2012 59
    • Algoritmo Posicional Para quebrar o algoritmo posicional, ou seja, obter a chave, é necessário um ataque mais elaborado: o ataque por texto legível conhecido. Nesse ataque, é necessário ter em mãos um texto legível o seu correspondente criptografado e calcular a chave através da resolução de um sistema. Um ataque testando todas as chaves é inviável. EMICRO-SE - Aracaju - Nov 15-17 de 2012 60
    • Algoritmo Posicional Foram implementadas versões do algoritmo Posicional para obter uma maior segurança.Essas versões utilizam blocos de 32 bits e existem versões em que são acrescidos bits aleatórios.Esses bits aleatórios podem ser no ultimo bloco ou distribuídos pelo bloco. Existem 2 versões em que bits aleatórios são acrescidos no ultimo bloco, no entanto, em uma delas o bloco é fixo e em outra o bloco é rotacionado. EMICRO-SE - Aracaju - Nov 15-17 de 2012 61
    • Algoritmo Posicional A seguir é apresentada uma tabela comestimativas do tempo necessário para quebrar umamensagem com o algoritmo Posicional testando todasas chaves: EMICRO-SE - Aracaju - Nov 15-17 de 2012 62
    • Implementação do algoritmoPOSICIONAL O algoritmo posicional foi implementado inicialmente em linguagem C, e posteriormente em hardware utilizando a linguagem VHDL. A implementação em hardware obteve um desempenho parecido com o da implementação em software, entretanto, é possível obter um desempenho muito melhor em hardware através de uma implementação paralela. EMICRO-SE - Aracaju - Nov 15-17 de 2012 63
    • Implementação do algoritmoPOSICIONAL Uma simulação de execução do algoritmo em Hardware EMICRO-SE - Aracaju - Nov 15-17 de 2012 64
    • Comparação de DesempenhoSoftware x Hardware Uma comparação de desempenho das implementações em software e hardware sãoTempo (segundos) 0,5Mb apresentadas(ms) seguir: 0,5Mb 1,0Mb 1,5Mb 1,0Mb 1,5Mb Tempo a8 106 84 62 40 2 1 2 3 4 5 6 7 8 9 10 0 1 3 5 7 9 Grau da função posicional Grau da função posicional Implementação Implementação em Software em Hardware EMICRO-SE - Aracaju - Nov 15-17 de 2012 65
    • Comparação de desempenho - várias versões do Posicional, IDEA e RSA 20 18 16Tempo (segundos) 14 12 10 8 6 4 2 0 0,5 1,0 1,5 Po sicio nal - Grau 6 Tamanho do arquivo (Mbytes) 10 Po sicio nal - Grau Po sicio nal 32 - Grau 6 Po sicio nal 32 - Grau 10 Po sicio nal 32 - B its aleató rio s fixo s - Grau 6 Po sicio nal 32 - B its aleató rio s fixo s - Grau 10 Po sicio nal 32 - B its aleató rio s co m ro tação - Grau 6 Po sicio nal 32 - B its aleató rio s co m ro tação - Grau 10 Po sicio nal 32 - B its aleató rio s distribuído s - Grau 6 Po sicio nal 32 - B its aleató rio s distribuído s - Grau 10 IDEA RSA - 24 bits EMICRO-SE - Aracaju - Nov 15-17 de 2012 66
    • Principais Plataformas Algoritmos de criptografia Hardware SoftwareClássico Reconfigurável Processadores Específicos Ambientes ASIC FPGAs Intel, RISC Embedded Systems DSP, Smart Card, etc EMICRO-SE - Aracaju - Nov 15-17 de 2012 67
    • Selecionando uma Plataforma- Desempenho Algoritmos- Custo: - Custo por unidade - Custo de desenvolvimento- Consumo de Potência (ex. Dispositivos wireless)- Flexibilidade: - Troca de Parâmetros - Agilidade de Chaves Qual é a melhor Plataforma - Agilidade Algoritmos Depende: Necessidades da- Segurança FísicaEMICRO-SE - Aracaju - Nov 15-17 Aplicação de 2012 68
    • Características das PlataformasComparação HW/SW e FPGAs Característica BAIXO ALTODesempenho FPGAs ASIC SWCusto SW ASICDesenvolvimento FPGAsCusto por Unidade ASIC SW FPGAsFlexibilidade ASIC SW FPGAs EMICRO-SE - Aracaju - Nov 15-17 de 2012 69
    • Criptografia em FPGAsVantagens Potenciais de algoritmos de criptografia implementados em CORE Agilidade dos Algoritmos Carga e Atualização dos Algoritmos Eficiência da Arquitetura Eficiência de Recursos Mudanças nos Algoritmos Throughput – relativo ao software Eficiencia vs Custo – relativo aos ASICs EMICRO-SE - Aracaju - Nov 15-17 de 2012 70
    • Exemplo Atomicidade (AES)Algoritmo XOR ADD SUB Shift Var Rot GF Mult LUTMARS * * * * * *RC6 * * * * *Rijndael * * *Serpent * *Twofish * * * EMICRO-SE - Aracaju - Nov 15-17 de 2012 71
    • Desempenho AES - FPGAsAlgoritmo Throughput (Gbit/s) SlicesRC6 2.40 10856Serpent 4.86 9004Twofish 1.59 9345 Rijndael 1.94 10992Ref.Reconfigurable Hardware in Modern Cryptography. Prof. Christof Paar.Worcester Polytechnic Institute, Worcester, MA, USA. EMICRO-SE - Aracaju - Nov 15-17 de 2012 72
    • Desempenho vs Segurança ? 20 18 16Tempo (segundos) 14 12 10 8 6 4 2 0 0,5 1,0 1,5 Po sicio nal - Grau 6 Tamanho do arquivo (Mbytes) 10 Po sicio nal - Grau Po sicio nal 32 - Grau 6 Po sicio nal 32 - Grau 10 Po sicio nal 32 - B its aleató rio s fixo s - Grau 6 Po sicio nal 32 - B its aleató rio s fixo s - Grau 10 Po sicio nal 32 - B its aleató rio s co m ro tação - Grau 6 Po sicio nal 32 - B its aleató rio s co m ro tação - Grau 10 Po sicio nal 32 - B its aleató rio s distribuído s - Grau 6 Po sicio nal 32 - B its aleató rio s distribuído s - Grau 10 IDEA RSA - 24 bits EMICRO-SE - Aracaju - Nov 15-17 de 2012 73
    • Principais Algoritmos Simétricos Algoritmo Projetista Key (bits) Bloco (bytes) Aplicação AES J. Daemen, V. Rijmen 128, 192, 256 16 DMSEnvoy Blowfish Bruce Schneier <= 448 8 Norton Utilities 3DES D. Coppersmith 168 8 SSL, SSH IDEA X Lai, J. Massey 128 8 PGP, SSH, SSL RC6 R. Rivest, M. 128, 192, 256 16 AES candidato Robshaw, et al. STREAM KEY RC4 R. Rivest Mínimo 8, máximo 2048 em SSL múltiplo de 8 bits Default: 128 SEAL P. Rogaway Variável, Default: 160 Disk Encryption11/19/2012 74
    • Implementação em Software Linguagem C11/19/2012 75
    • Implementação em Software Linguagem C Desempenho em software 8 7,09 7 5,77 6 Segundos 5 1 MB 3,9 4 3,35 5 MB 3 10 MB 2 0,94 0,88 1,4 0,7 1 0,14 0 DES AES RC511/19/2012 76
    • Operações nos Alg Simétricos X O R D e s lo c a m e n to /R S -B O X P e r m u ta ç ã o o ta ç ã oD X X X XE SA X X XE SS e X X Xr pe n tC X Xa s t-1 2 8M X X XAR ST X X X Xwo fis hM X X X Xa ge n taF r X X Xo gB X X XlowF is hR X XC 5R X X XC 6 11/19/2012 77
    • Implementação em Hardware FPGAs Tempo de propagação de cada algoritmo em hardware 28,789 30 19,55 21,05 Ns 20 10 0 DES AES RC5 Taxa de texto cifrado por segundo Algoritmos 55,57 60,00 MB/seg 40,00 20,46 19,00 20,00 0,00 DES AES RC5 Algoritmos11/19/2012 78
    • Comparação do DES Desempenho Temporal Mega Bytes Cifrados 500 400 400 300 200 100 25 1 0 1s 1s 1s Hardware c/ Hardware s/ Software em C Pipeline Pipeline Tempo em segundos11/19/2012 79
    • CASAD - Criptoprocessador11/19/2012 80
    • CASAD - Criptoprocessador11/19/2012 81
    • CASAD - Criptoprocessador Desempenho dos algoritmos DES e RC5 30 26 25 25 19 20 17,5 PPG MB/s 15 Cripto 10 7,25 HW 5 1 0 DES RC5 Algoritmo11/19/2012 82
    • CASAD – Criptoprocessador - Algoritmo DES C to roessa o s rip p c dre Ndºe Mz H M/s B C s iclo H B M8 2 ifn C 5 0 -- 33 10 0 H 70 ifn 9 x 2 2 50 13 4 Oe Cres pn o 1 6 15 5 60 2 S u o DS ec Cre E 5 16 6 19 99 VIW L 1 6 12 2 2611/19/2012 83
    • CASAD - Criptoprocessador Algoritmo DES Proc. Freqüência Memória Texto claro Tempo de cifragem P4 1.6 GHz 256 MB 1 MB 0,99 s P3 1.0 GHz 256 MB 1 MB 1,05 s P3 800 MHz 128 MB 1 MB 1,19 s P3 700 MHz 128 MB 1 MB 1,26 s P3 500 MHz 128 MB 1 MB 1,75 s K6 500 MHz 64 MB 1 MB 2,15 s VLIW 122 MHz -- 1 MB 0,038 s11/19/2012 84
    • Parte IIIParte Prática – Algoritmos Posicionais Edward David Moreno edwdavid@gmail.com 85
    • Cifra de César Letras na mensagem original substituída por outras deslocadas em um número fixo de posições (chave) no alfabeto; Exemplo Chave = 3: Original: R O D O L F O Cifrado: U R G R O I R Este exemplo, com chave 3, constitui na forma original da Cifra de César. 86
    • Tabela de Substituição Exercício – Gere as cifras para as palavras: CRIPTOGRAFIA UNIVEM CARAGUATATUBA Decifre as palavras: FRPSXWDGRU DOJRULWPR 87
    • Soluções: CRIPTOGRAFIA: FULSWRJUDILD UNIVEM: XQLYHP CARAGUATATUBA: FDUDJXDWDWXED FRPSXWDGRU: COMPUTADOR DOJRULWPR: ALGORITMO 88
    • Outras Chaves Hoje em dia toda cifra que apresenta uma substituição com deslocamento fixo é chamada Cifra de César; Exemplo Chave = 10: ALGORITMO: KVQYBSDWY COMPUTADOR: MYWZEDKNYB 89
    • Com Ajuda de TabelaMatemática Suponha chave = 7; Para cifrar a letra E (4) = 4 + 7 = 11 (L); Computacionalmente é indicado usar a Tabela ASCII 90
    • Implementação Escreva um algoritmo para implementar a criptografia utilizando a Cifra de César:Algoritmo Cesar variavel palavra,cifrado: texto; i, chave: inteiro; ler palavra; ler chave; para i de 1 até tamanho_palavra cifrado[i] = palavra[i]+chave; mostrar cifrado;Fim. 91
    • Implementação em C#include <stdio.h>#include <stdlib.h>int main(){ char palavra[40]; char cifrado[40]; int i=0; int chave; printf("Palavra: "); scanf("%s", &palavra); printf("Chave: "); scanf("%d", &chave); while(palavra[i]!=0) cifrado[i] = (((palavra[i++]-65)+chave)%26)+65; cifrado[i]=0; printf("Cifrado: %sn", cifrado); system("PAUSE"); return 0;} 92
    • Substituição Simples Baseado em tabela de substituição; Troca-se as letras da primeira linha pelas letras da segunda linha; As letras da segunda linha são selecionadas aleatoriamente (chave da substituição); Possível obter 26! combinações de chave: 26! = 403291461126605635584000000. 93
    • Substituição Simples Exemplos utilizando a tabela acima: ALGORITMO = IPMGBAEZG COMPUTADOR = KGZTOEIRGB CARAGUATATUBA = CARAGUATATUBA = KIBIMOIEIEONI 94
    • Implementação Escreva um algoritmo para implementar criptografia usando a Substituição Simples:Algoritmo Simples variavel palavra,cifrado, chave,linha1 : texto; i: inteiro; ler palavra; para i de 1 até tamanho_palavra cifrado[i] = chave[palavra[i]]; mostrar cifrado;Fim. 95
    • Implementação em C#include <stdio.h>#include <stdlib.h>int main(){char chave[]={I,N,K,R,F,S,M,W,A,X,J,P,Z, Q,G,T,Y,B,D,E,O,H,V,L,U,C}; char palavra[50]; char cifrado[50]; int i=0; printf("Digite uma palavra: "); scanf("%s", &palavra); while(palavra[i]!=0) cifrado[i] = chave[(int)(palavra[i++]-65)]; cifrado[i]=0; printf("Cifrado: %sn", cifrado); system("PAUSE"); return 0;} 96
    • Como seria a Decriptografia? Calcular a chave inversa: Chave Original: Chave Inversa: 97
    • Implementação dadecriptografia#include <stdio.h>#include <stdlib.h>int main(){char chaveI[]={I,R,Z,S,T,E,O,V,A,K,C,X,G, B,U,L,N,D,F,P,Y,W,H,J,Q,M}; char palavra[50]; char cifrado[50]; int i=0; printf("Digite uma palavra: "); scanf("%s", &palavra); while(palavra[i]!=0) cifrado[i] = chaveI[(int)(palavra[i++]-65)]; cifrado[i]=0; printf("Cifrado: %sn", cifrado); system("PAUSE"); return 0;} 98
    • Cifra de Vigenère Cada letra é representada por um inteiro; Chave é uma seqüência de N letras; Para cifrar, soma-se o valor da letra com o valor da chave para uma determinada posição; 99
    • Cifra de Vigenère Exemplo: CARAGUATATUBA Chave: CRIPTO 100
    • Exercício Exercício – Gere as cifras para as palavras usando a chave: “CHAVE” CRIPTOGRAFIA UNIVEM CARAGUATATUBA Decifre a palavra: CSGJVKAMJ 101
    • Soluções CRIPTOGRAFIA: EYIKXQNRVJKH UNIVEM: WUIQIO CARAGUATATUBA: EHRVKWHTVXWIA CSGJVKAMJ: ALGORITMO 102
    • Implementação Escreva um algoritmo para implementar a Cifra de Vigenère:Algoritmo Vigenere variavel palavra,cifrado,chave:texto; i, tam: inteiro; ler palavra; tam = tamanho da chave ler chave; para i de 1 até tamanho_palavra cifrado[i]=palavra[i]+chave[i mod tam]; mostrar cifrado;Fim. 103
    • Implementação em C#include <stdio.h>#include <stdlib.h>int main(){ char palavra[40]; char cifrado[40]; int i=0; int tam=0; char chave[15]; printf("Palavra: "); scanf("%s", &palavra); printf("Chave: "); scanf("%s", &chave); while(chave[tam]!=0)tam++; while(palavra[i]!=0) { cifrado[i] = (((palavra[i]-65)+(chave[i%tam]-65))%26)+65; i++; } cifrado[i]=0; printf("Cifrado: %sn", cifrado); system("PAUSE"); return 0; } 104
    • Introdução a criptoanálise Exercício: Tente decifrar o texto a seguir: 105
    • Algoritmo Posicional Desenvolvido para fins didáticos; Algoritmo Simétrico; Cifrador do tipo Stream; Não é muito simples, porém não muito complexo; Possui algumas falhas que podem ser exploradas. 106
    • Algoritmo Posicional -Funcionamento A posição que o caracter ocupa interfere em como ele será criptografado; Segue uma função polinomial do tipo: f(x,p,k) = x + (k1 * pn + k2 * pn-1 + ... + kn * p1); onde: x é o caracter original; p é a posição; k é a chave e kn são grupos de 8 bits da chave. 107
    • Algoritmo Posicional -Exemplo Utilizando a chave 23,26,45,63 temos: 108
    • Algoritmo Posicional - Criptanalise Ataque por força bruta é inviável: 109
    • Algoritmo Posicional - Criptanalise O algoritmo Posicional é formado por funções lineares; É possível montar um sistema linear e resolvê-lo para obter a chave; 110
    • Algoritmo Posicional - CriptanaliseExemplo Considere que um criptanalista obteve conhecimento da posição do caracter, do texto original e do texto criptografado utilizados no exemplo anterior, como mostra a tabela: 111
    • Algoritmo Posicional - CriptanaliseExemplo Continuação É possível montar um sistema que tem como incógnita a chave: 112
    • Algoritmo Posicional - CriptanaliseExemplo Continuação Ver solução completa em Resolução.xls 113
    • Posicional – Função paraCifrar int cifrachar (char pcifrar, int pos, int valores[], int gchave) { int vchave; int i; unsigned long int soma = 0; int aux; Calculo aux = pcifrar; for (i = 1; i <= gchave; i++) da { expressão vchave = valores[i]; soma += vchave * pow(pos,gchave-i+1); } aux = (aux + soma) % 256; Soma do return aux; } resultado 114
    • Parte IVParte Prática – Algoritmos ConhecidosAutores: Edward Moreno, Fabio Pereira,Rodolfo Chiaramonte Edward David Moreno edwdavid@gmail.com 115
    • Algoritmo DES Algoritmo Simétrico; Cifra em Blocos; Baseado na Rede de Feistel; 116
    • Algoritmo DES Esquerdaj Direitaj Kj XOR fKj(Dj) Esquerdaj+1 Direitaj+1 Kj+1 XOR fKj+1(Dj+1) Esquerdaj+2 Direitaj+2 117
    • Algoritmo DES E squ e rd a j D ire ita j Pe rm u ta çã o + Expa nsã o Kj XO R S-BO X P e rm u ta çã o P XO R Esq ue rd a j+ 1 D ireita j+ 1 118
    • Algoritmo DES - Permutação E(33 milhões por segundo) x = !((0x80000000 & entrada)==0); // bit 32 s0 += x << 0; s1 += x << 46; x = !((0x40000000 & entrada)==0); // bit 31 s1 += x << 45; x = !((0x20000000 & entrada)==0); // bit 30 s1 += x << 44; . . . x = !((0x00000004 & entrada)==0); // bit 3 s0 += x << 3; x = !((0x00000002 & entrada)==0); // bit 2 s0 += x << 2; x = !((0x00000001 & entrada)==0); // bit 1 s0 += x << 1; s1 += x << 47; // Total de 124 linhas 119
    • Algoritmo DES - Permutação E(Otimização - 70 milhões por segundo) int s1, s0; s0 = (entrada & 0x80000000) >> 31; s0 |= (entrada & 0x0000001f) << 1; s0 |= (entrada & 0x000001f8) << 3; s0 |= (entrada & 0x00001f80) << 5; s0 |= (entrada & 0x0001f800) << 7; s0 |= (entrada & 0x001f8000) << 9; s0 |= (entrada & 0x00180000) << 11; s1 = (entrada & 0x01e00000) >> 21; s1 |= (entrada & 0x1f800000) >> 19; s1 |= (entrada & 0xf8000000) >> 17; s1 |= (entrada & 0x00000001) >> 15; *_s1 = s1; *_s0 = s0; 120
    • Algoritmo IDEA Algoritmo Simétrico; Trabalha com blocos de 64 bits; Chave de 128 bits; Estrutura semelhante ao DES; Oito iterações. 121
    • Algoritmo IDEA - Operações ⊕ - Ou exclusivo (XOR) sobre 16 bits. + - Soma mod 216, ou seja, somar dois valores de 16 bits desprezando o mais à esquerda, correspondente a 216. - Esta operação consiste em vários passos: Multiplicar dois valores de 16 bits obtendo um valor que chamaremos de Z, sendo que antes de multiplicar, se um desses valores for 0 deve ser alterado para 216. Calcular Z mod (216+1), ou seja, o resto da divisão de Z por 216+1. Se o resultado da operação acima for 216, então o resultado final da operação é 0, caso contrário é o valor obtido acima (Z mod (216+1)). 122
    • Algoritmo IDEA - Operações void XOR(int * A, int B, int C) { *A = B ^ C; } void SOMA16(int * A, int B, int C) { *A = (B + C) % v2_16; } void MULT16(int * A, int B, int C) { long int aux; if (B == 0) B = v2_16; if (C == 0) C = v2_16; aux = BLAKLEY(B,C,(v2_16_1)); if (aux != v2_16) *A = (int) aux; else *A = 0; } 123
    • Algoritmo IDEA - Operações(BLAKLEY) int BLAKLEY(int a, int b, int n) // input: a,b,n // output: R = (a * b) mod n { unsigned int aux; int R; R = 0; for (aux = 0x80000000; aux > 0; aux >>= 1) { R = (R << 1 ); if((a & aux) != 0) R += b; if (R > n) R -= n; if (R > n) R -= n; }return R; } 124
    • Algoritmo AES• AES - Advanced Encryption Standard – Algoritmo selecionado: RIJNDAEL (2002)• Novo padrão FIPS (Federal Information Processing Standard) escolhido pelo NIST (National Institute of Standards and Technologies) para ser utilizado pelas organizações governamentais dos EUA na proteção de informações sensíveis• Marca um esforço de 4 anos de cooperação entre o governo dos EUA, empresas privadas e pesquisadores de diversos países 125
    • Algoritmo AES - Cifragem M Encriptador C AES Bloco: Bloco:128/192/256 bits 128/192/256 bits K Chave 128/192/256 bits 126
    • Algoritmo AES - Decifragem M Decriptador C AES Bloco: Bloco:128/192/256 bits 128/192/256 bits K 127
    • Algoritmo RSA Algoritmo Assimétrico; Segurança baseada na dificuldade computacional de se fatorar números longos; Para cifrar: Cifrado = Originalkp mod n; Para decifrar: Original = Cifradoks mod n; Onde: kp = chave pública; ks = chave secreta; n = produto dos primos utilizados na geração da chave 128
    • Ron Rivest, Adi Shamir e Len Adleman (1978) Blocos com valores binários menores que n Tamanho do Bloco é k bits, onde 2k < n ≤ 2k+1 TextoCifrado C = Me mod n KU = {e,n} M = Cd mod n = (Me)d mod n = Med mod n KR = {d,n}TextoPlano Requisitos do Algoritmo • É possível encontrar e, d, n tal que Med = M mod n para todo M < n • É relativamente fácil calcular Me e Cd para todos os valores de M < n • É improvável determinar d dado e, n 129
    • Algoritmo RSA Geração da Chave Selecione p,q p e q primos Calcular n = p x q Calcular φ(n) = (p-1)(q-1) Selecionar e inteiro gcd(φ(n),e) = 1; 1 < e < φ(n) φ Calcular d d = e-1 mod φ(n) Chave Pública KU={e,n} Chave Privada KR={d,n} Cifrar Texto Plano: M<n Texto Cifrado: C = Me (mod n) Decifrar Texto Plano: C Texto Cifrado: M = Cd (mod n) 130
    • Algoritmo RSA - Exemplo Selecionar dois números primos: p = 7 e q = 17 Calcular n = pq = 7 x 17 = 119 Calcular φ(n) = (p-1)(q-1) = 96 Selecionar e tal que e é relativamente primo a φ(n) e menor que φ(n); e = 5 Determinar d tal que de = 1 mod 96 e d < 96; d = 77, pois 77 x 5 = 385 = 4 x 96 +1 KU = {5,119} e KR = {77,119} 131
    • Algoritmo RSA – Exemplo (Continuação) Cifrar KU = 5,119TextoPlano 195 = 2476099 119 19 66 20807 Decifrar KR = 77,119 Texto Cifrado 66 6677 = 1,27...x10140 119 19 1,06...x10138 Texto Plano 19 132
    • Algoritmo MD5 Função de Hash; Entrada de comprimento arbitrário; Deve ser completado para se tornar múltiplo de 512 bits; Saída de 128 bits; 133
    • Algoritmo MD5 - Passos void md5(void) { AA = A; BB = B; CC = C; DD = D; R1(A,B,C,D, 0, 7, 1);R1(D,A,B,C, 1,12, 2);R1(C,D,A,B, 2,17, 3);R1(B,C,D,A, 3,22, 4); R1(A,B,C,D, 4, 7, 5);R1(D,A,B,C, 5,12, 6);R1(C,D,A,B, 6,17, 7);R1(B,C,D,A, 7,22, 8); R1(A,B,C,D, 8, 7, 9);R1(D,A,B,C, 9,12,10);R1(C,D,A,B,10,17,11);R1(B,C,D,A,11,22,12); R1(A,B,C,D,12, 7,13);R1(D,A,B,C,13,12,14);R1(C,D,A,B,14,17,15);R1(B,C,D,A,15,22,16); R2(A,B,C,D, 1, 5,17);R2(D,A,B,C, 6, 9,18);R2(C,D,A,B,11,14,19);R2(B,C,D,A, 0,20,20); R2(A,B,C,D, 5, 5,21);R2(D,A,B,C,10, 9,22);R2(C,D,A,B,15,14,23);R2(B,C,D,A, 4,20,24); R2(A,B,C,D, 9, 5,25);R2(D,A,B,C,14, 9,26);R2(C,D,A,B, 3,14,27);R2(B,C,D,A, 8,20,28); R2(A,B,C,D,13, 5,29);R2(D,A,B,C, 2, 9,30);R2(C,D,A,B, 7,14,31);R2(B,C,D,A,12,20,32); R3(A,B,C,D, 5, 4,33);R3(D,A,B,C, 8,11,34);R3(C,D,A,B,11,16,35);R3(B,C,D,A,14,23,36); R3(A,B,C,D, 1, 4,37);R3(D,A,B,C, 4,11,38);R3(C,D,A,B, 7,16,39);R3(B,C,D,A,10,23,40); R3(A,B,C,D,13, 4,41);R3(D,A,B,C, 0,11,42);R3(C,D,A,B, 3,16,43);R3(B,C,D,A, 6,23,44); R3(A,B,C,D, 9, 4,45);R3(D,A,B,C,12,11,46);R3(C,D,A,B,15,16,47);R3(B,C,D,A, 2,23,48); R4(A,B,C,D, 0, 6,49);R4(D,A,B,C, 7,10,50);R4(C,D,A,B,14,15,51);R4(B,C,D,A, 5,21,52); R4(A,B,C,D,12, 6,53);R4(D,A,B,C, 3,10,54);R4(C,D,A,B,10,15,55);R4(B,C,D,A, 1,21,56); R4(A,B,C,D, 8, 6,57);R4(D,A,B,C,15,10,58);R4(C,D,A,B, 6,15,59);R4(B,C,D,A,13,21,60); R4(A,B,C,D, 4, 6,61);R4(D,A,B,C,11,10,62);R4(C,D,A,B, 2,15,63);R4(B,C,D,A, 9,21,64); A = A + AA; B = B + BB; C = C + CC; D = D + DD; } 134
    • Algoritmo MD5 - Passos #define R1(a, b, c, d, k, s, i) a = b + (ROL((a + F(b,c,d) + X[k] + T[i]), s)) #define R2(a, b, c, d, k, s, i) a = b + (ROL((a + G(b,c,d) + X[k] + T[i]), s)) #define R3(a, b, c, d, k, s, i) a = b + (ROL((a + H(b,c,d) + X[k] + T[i]), s)) #define R4(a, b, c, d, k, s, i) a = b + (ROL((a + I(b,c,d) + X[k] + T[i]), s)) 135
    • Análise de Desempenho 20 18 16Tempo (segundos) 14 12 10 8 6 4 2 0 0,5 1,0 1,5 Tamanho do arquivo (Mbytes) P osicio nal - Grau 6 P o sicio nal - Grau 10 P osicio nal 32 - Grau 6 P o sicio nal 32 - Grau 10 P osicio nal 32 - Bits aleató rio s fixo s - Grau 6 P o sicio nal 32 - B its aleató rios fixo s - Grau 10 P osicio nal 32 - Bits aleató rio s co m ro tação - Grau 6 P o sicio nal 32 - B its aleató rios co m ro tação - Grau 10 P osicio nal 32 - Bits aleató rio s distribuído s - Grau 6 P o sicio nal 32 - B its aleató rios distribuído s - Grau 10 IDEA RSA - 24 bits 136
    • Análise de Desempenho 3 2,5Tempo (segundos) 2 1,5 1 0,5 0 0,5 1,0 1,5 Tamanho do arquivo (Mbytes) P o sicio nal - Grau 6 P o sicio nal - Grau 10 P o sicio nal 32 - Grau 6 P o sicio nal 32 - Grau 10 P o sicio nal 32 - Bits aleatório s fixo s - Grau 6 P o sicio nal 32 - Bits aleatório s fixo s - Grau 10 P o sicio nal 32 - Bits aleatório s co m rotação - Grau 6 P o sicio nal 32 - Bits aleatório s co m rotação - Grau 10 P o sicio nal 32 - Bits aleatório s distribuído s - Grau 6 P o sicio nal 32 - Bits aleatório s distribuído s - Grau 10 IDEA 137
    • Ferramenta WebCry 138
    • SICO - Sistema Inteligente deComunicação EMISSOR RECEPTOR GERENTE CONTROLE CONEXÃO R R D CLIENTE E CONEXÃO E C E E(INSEGURA) M SEGURA C R C C I E I E R S P P P I S T T T P O O O O T R R R O 139
    • Emissor Receptor - abre uma conexão com um cliente utilizando Sockets TCP e fica a espera de dados para criptografar. Assim que os dados chegam a Thread coloca-os no buffer de recepção para serem criptografados. Cripto - retira os dados do buffer de recepção e realiza a criptografia. Após a criptografia os dados são colocados em um buffer de emissão. 140
    • Emissor - Continuação Emissor - retira os dados do buffer de emissão e os envia através de uma conexão utilizando Sockets TCP. Gerente - verifica periodicamente o nível dos buffers compartilhados para detectar alguns parâmetros como velocidade de recepção, velocidade de criptografia e velocidade de envio. Esta Thread é a responsável por definir a necessidade da troca do algoritmo ou chave utilizada. 141
    • Receptor A Thread Receptor deste módulo tem a mesma função da Thread Receptor do módulo anterior, armazenando os dados que chegam em um buffer compartilhado. A Thread Decripto realizará a decriptografia dos dados e irá enviá-los para uma saída a ser definida (pode ser arquivo ou rede). 142
    • Receptor - Continuação A função da Thread de Controle é realizar algumas verificações no nível do buffer e enviá-las periodicamente para o módulo Emissor. Essa verificação pode ser utilizada como um parâmetro de comparação de funcionamento dos dois módulos e comprovar as medições no buffer realizados pelo módulo Emissor. 143
    • Parte VClassificação Moderna de Soluções deSegurança Edward David Moreno edwdavid@gmail.com 144
    • Classificação Moderna de Soluções de Segurança(Srivaths 2005) Aplicações VPN WEB browser DRM Secure Storage Protocolos de Segurança Protocolos de Comunicação Protocolo Autenticação Biométrica Integração Segura s DRM (fingerprint, face, voice) Serviços SSL/TLS, WTLS, IPSEC, Segurança S/MIME Primitivas Criptográficas Criptografia Simétrica Hash Criptografia Assinatura Key (RC4, RC5, DES, AES, (Sha-1, Chave Pública Digital (DAS, Exchange entre outros) MD5), MQQ, (RSA, ECC, ecDSA) (DH, SHA-3 HECC) ecDH) 145
    • Algoritmos Criptográficos - Primitivas Digital Signatures Key Exchange Encryption Cryptographic AlgorithmsSimetrics Asimetrics Hash Functions Random Number Generators DES RSA SHA-1 SHA-2 AES (H)ECDSA SHA-3 RC4 IBE (PBC) kecca 146
    • Algoritmos Criptográficos - Plataformas Cryptographic Algorithms Hardware SoftwareIP ASIC FPGA PC SoC Physical security Security problems(memory attacks) High Performance Low performance Flexibility(FPGAs) Flexibility Parallel processing Sequential processing Efficient use of resources Defficient use of resources High cost ( Asic implementation) Low cost (implementation) 147
    • Soluções de Segurança em Multicore Core Único Multiprocessador Multicore CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPUDomeika (2008) 148
    • Soluções de Segurança em Multicore/FPGAs4 Xilinx Microblaze em rede (Kavadias, 2010) 149
    • Soluções de Segurança em Multicore/Leon-3Arquitetura interna padrão do Leon3 (Gaisler, 1502011)
    • Multicore and GPUs – Open Researches•Projetar sistemas multicore eficientes em consumo de energia;•Paralelizar aplicações que requeiram alto desempenho e adequá-las a plataformasmulticore de forma eficiente e escalável;•Criar ferramentas que paralelizem automaticamente aplicações e as executem de formaeficiente em plataformas multicore;•Projetar e avaliar sistemas Multi-core e uso de GPUs em soluções de segurança eprocessamento de imagens que requeiram alto desempenho;•Considerando a nova geração da arquitetura unificada dos hardwares gráficos (GPUs),lançada pela nVidia, que veio tornar capaz a execução de programas genéricos, e queexistem aplicações com alto grau de paralelismo, e que transformam as GPUs emverdadeiros clusters; existe ainda necessidade de estudar e aplicar as GPU em váriasaplicações que requeiram o uso de alto processamento para alto volume de dados;•Construir ferramentas que auxiliem no processo automático do uso eficiente de GPUsem aplicações de alto volume de informações;•Verificar o uso de GPUs em soluções modernas de segurança: IDS e IPS de altodesempenho, em algoritmos criptográficos de desempenho crítico, em algoritmosbiométricos e etc. 151
    • Consumo de Energia Final da ExecuçãoDetalhes do consumo de energia na execução do algoritmo SHA 152