SlideShare una empresa de Scribd logo
1 de 152
Descargar para leer sin conexión
Criptografia em Hardware
Minicurso do Evento EMICRO-SE
http://www.gprufs.org/emicro-se/



Aracaju, 15 de Novembro de 2012


                    Edward David Moreno
                    edwdavid@gmail.com
                                          1
Sumário
Parte I – Conceitos
Parte II – Exemplos em C e VHDL & FPGAs
Parte III - Parte Prática – Algoritmos Posicionais
Parte IV - Parte Prática – Algoritmos Conhecidos
          (DES, AES, RC5, IDEA, RSA, etc.)
Parte V– Classificação Moderna de Soluções de
Segurança



                                                     2
Referências
Criptografia em Software e Hardware, 2005
Autores:
     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 Moreno
Transactions on Computational Science, 2010
– Security in Computing Part II – LNCS 6480
Autor: 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 COSIC
Prof. Ricardo Dahab (UNICAMP)       Computer Security
Prof. Paulo Barreto (USP)           and Industrial
                                    Cryptography
Prof. 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 Security


Rank
1    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 Conference

Rank 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 and
SecureComm
             Privacy for Emerging Areas in Communication Networks


             GI SIG SIDAR Conference on Detection of Intrusions and Malware and
DIMVA
             Vulnerability Assessment



AsiaCCS      ACM Symposium on Information, Computer and Communications Security



ACNS         International Conference on Applied Cryptography and Network Security

FC           International Conference on Financial Cryptography and Data Security
SAC          ACM Symposium on Applied Computing
ACISP        Australasia Conference on Information Security and Privacy
ICICS        International Conference on Information and Communications Security
ISC          Information Security Conference                                         10
Computer Security Conference Ranking and
                   Statistic – Rank 3 (2)


ICISC       International Conference on Information Security and Cryptology


SACMAT      ACM Symposium on Access Control Models and Technologies

CT-RSA      RSA Conference, Cryptographers' Track


SEC         IFIP International Information Security Conference

             ACM Conference on Wireless Network Security
WiSec
             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 Security
IFIP WG 11.9IFIP WG 11.9 International Conference on Digital Forensics
DFRWS        Digital Forensic Research Conference
PETS         Privacy Enhancing Technologies Symposium

                                                                                 11
Computer Security Conference Ranking and
                 Statistic – Workshops
FSE          Fast Software Encryption workshop

PKC          International Workshop on Public-Key Cryptography

NSPW         New Security Paradigms Workshop


IH           Workshop on Information Hiding

WSPEC        Workshop on Security and Privacy in E-commerce
DRM          ACM Workshop on Digital Rights Management
IWIA         IEEE International Information Assurance Workshop
IAW          IEEE SMC Information Assurance Workshop "The West Point Workshop"
CHES         Workshop on Cryptographic Hardware and Embedded Systems
SRUTI        USENIX Workshop on Steps to Reducing Unwanted Traffic on the Internet
HotSec       USENIX Workshop on Hot Topics in Security
LEET         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

                   Conceitos

Minicurso do Evento EMICRO-SE
http://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             Decifrar
Texto
Original                                        16
Algoritmo vs Chave ?

                   Algoritmo

Algoritmo
                          K
                          Espaço de Chaves



                  Princípio de Kerckhoffs


                                            17
Como Funciona ?

                   Algoritmo de
                   encriptação
     Mensagem                      Criptograma

Cigragem                  Chave




                    Algoritmo de
                    decriptação
     Criptograma                    Mensagem


Decifragem                 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órico
Máquina
ENIGMA




                  23
ENIGMA - Máquina de três rotores




                                   24
Breve Histórico
Algoritmos 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 da
Criptografia ?

  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étricos
Vantagens:
 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étricos
Nome                 Tipo             Tam. chave    Tam. bloco
DES                           bloco            56           64
Triple DES (2 ch.)   bloco            112           64
Triple DES (3 ch.)   bloco            168           64
IDEA                 bloco            128           64
BLOWFISH             bloco            32 a 448      64
RC5                  bloco            0 a 2040      32,64,128
CAST-128             bloco            40 a 128      64
RC2                  bloco            0 a 1024      64
RC4                  stream           0 a 256       --
Rijndael (AES)       bloco            128,192,256   128, 192, 256
MARS                 bloco            variável      128
RC6                  bloco            variável      128
Serpent              bloco            variável      128
Twofish              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 Digital
Verificar o Autor e a data/hora da assinatura
Autenticar o conteúdo original
A assinatura deve poder ser verificável por terceiros
(resolver disputas)

                       Tipos
Direta
   Envolve somente X e Y
   Segurança está na chave privada de X
   Selo de Tempo
Arbitrada
   X -> A -> Y
                                                        45
Requisitos da Assinatura Digital

Depender do Conteúdo
Usar informação única do originador
Fácil de produzir
Fácil de reconhecer e verificar
Inviável de forjar
Deve ser prático manter uma cópia da
assinatura

                                       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


                                 H
M             ||          M
                                       Comparar
                                 D
    H   E          EKRa[H(M)]
                                KUa
        KRa




                                                  49
Principais Algoritmos Hashing
Algoritmo de Hash               Compr. Hash   kbytes/s
Abreast Bavies-Meyer (c/IDEA)   128           22
Davies-Meyer (c/DES)            64            9
GOST Hash                       256           11
NAVAL (3 passos)                variável      168
NAVAL (4 passos)                variável      118
NAVAL (5 passos)                variável      95
MD4 - Message Digest 4          128           236
MD5 - Message Digest 5          128           174
N-HASH (12 rounds)              128           29
N-HASH (15 rounds)              128           24
RIPE-MD                         128           182
RIPE-MD-160                     160           ---
SHA - Secure Hash Algorithm     160           75
SNEFRU (4 passos)               128           48
SNEFRU (8 passos)               128           23
SHA-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ível
Legí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 Chiaramonte
RSA
                        edwdavid@gmail.com
AES
RC5
                                                  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 com
estimativas do tempo necessário para quebrar uma
mensagem com o algoritmo Posicional testando todas
as chaves:




              EMICRO-SE - Aracaju - Nov 15-17
                         de 2012                62
Implementação do algoritmo
POSICIONAL
       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 algoritmo
POSICIONAL

  Uma simulação de execução do algoritmo em
                   Hardware




              EMICRO-SE - Aracaju - Nov 15-17
                         de 2012                64
Comparação de Desempenho
Software x Hardware
                 Uma comparação de desempenho das
               implementações em software e hardware são
Tempo (segundos)
                    0,5Mb apresentadas(ms) seguir: 0,5Mb 1,0Mb 1,5Mb
                          1,0Mb 1,5Mb Tempo a
8
                                                         10
6
                                                          8
4                                                         6
2                                                         4
0                                                         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
                   16
Tempo (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                        Software



Clá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 Plataformas
Comparação HW/SW e FPGAs

   Característica                              BAIXO
                                 ALTO
Desempenho                                                 FPGAs ASIC
      SW
Custo                          SW                              ASIC
Desenvolvimento                FPGAs

Custo por Unidade             ASIC                    SW      FPGAs

Flexibilidade                   ASIC                         SW FPGAs
                    EMICRO-SE - Aracaju - Nov 15-17
                               de 2012                                69
Criptografia em FPGAs
Vantagens 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 LUT

MARS         *    *             *            *             *                       *

RC6          *    *                           *            *               *

Rijndael     *                                 *                           *

Serpent      *                                 *

Twofish               *                       *                                *



                  EMICRO-SE - Aracaju - Nov 15-17
                             de 2012                                  71
Desempenho AES - FPGAs
Algoritmo               Throughput (Gbit/s)            Slices

RC6                               2.40                 10856

Serpent                           4.86                 9004

Twofish                           1.59                 9345

 Rijndael                           1.94                10992


Ref.
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
                   16
Tempo (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 Encryption




11/19/2012                              74
Implementação em Software
       Linguagem C




11/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            RC5



11/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 ç ã o
D          X                   X                  X             X
E
 S
A          X                 X                    X
E
 S
S e        X                 X                    X
r p
e n
  t
C          X                                      X
a s
 t-
1 2
 8
M          X                 X                    X
A
R
 S
T          X                 X                    X             X
w
o f
is
 h
M          X                 X                    X             X
a g
e n
 ta
F r        X                                      X             X
o g
B          X                                      X             X
lo
w
F i
s
 h
R          X                 X
C
 5
R          X                 X                    X
C
 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
                                                                         Algoritmos
11/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 segundos




11/19/2012                                        79
CASAD - Criptoprocessador




11/19/2012      80
CASAD - Criptoprocessador




11/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
                                         Algoritmo




11/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    26


11/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 s




11/19/2012                         84
Parte III
Parte 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 Tabela
Matemá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 da
decriptografia
#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 - Criptanalise
Exemplo

  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 - Criptanalise
Exemplo Continuação

  É possível montar um sistema que tem
  como incógnita a chave:




                                      112
Algoritmo Posicional - Criptanalise
Exemplo Continuação




  Ver solução completa em Resolução.xls




                                      113
Posicional – Função para
Cifrar
 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 IV
Parte Prática – Algoritmos Conhecidos



Autores: 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
 Texto
Cifrado
        C = Me mod n                                        KU = {e,n}
        M = Cd mod n = (Me)d mod n = Med mod n              KR = {d,n}
Texto
Plano


                        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,119

Texto
Plano   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
                   16
Tempo (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,5
Tempo (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 de
Comunicaçã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 V
Classificação Moderna de Soluções de
Seguranç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 Algorithms



Simetrics       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                                Software




IP     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 CPU




Domeika (2008)
                                                        148
Soluções de Segurança em Multicore/FPGAs




4 Xilinx Microblaze em rede (Kavadias, 2010)   149
Soluções de Segurança em Multicore/Leon-3




Arquitetura interna padrão do Leon3 (Gaisler,   150
2011)
Multicore and GPUs – Open Researches
•Projetar sistemas multicore eficientes em consumo de energia;
•Paralelizar aplicações que requeiram alto desempenho e adequá-las a plataformas
multicore de forma eficiente e escalável;
•Criar ferramentas que paralelizem automaticamente aplicações e as executem de forma
eficiente em plataformas multicore;
•Projetar e avaliar sistemas Multi-core e uso de GPUs em soluções de segurança e
processamento 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 que
existem aplicações com alto grau de paralelismo, e que transformam as GPUs em
verdadeiros clusters; existe ainda necessidade de estudar e aplicar as GPU em várias
aplicaçõ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 GPUs
em aplicações de alto volume de informações;
•Verificar o uso de GPUs em soluções modernas de segurança: IDS e IPS de alto
desempenho, em algoritmos criptográficos de desempenho crítico, em algoritmos
biométricos e etc.


                                                                             151
Consumo de Energia

                                             Final da
                                             Execução




Detalhes do consumo de energia na execução do algoritmo SHA


                                                              152

Más contenido relacionado

La actualidad más candente

Criptografia Moderna - Visita do SRBR (Samsung Research do Brasil)
Criptografia Moderna - Visita do SRBR (Samsung Research do Brasil)Criptografia Moderna - Visita do SRBR (Samsung Research do Brasil)
Criptografia Moderna - Visita do SRBR (Samsung Research do Brasil)Ruy De Queiroz
 
T aula4-introducao-criptografia
T aula4-introducao-criptografiaT aula4-introducao-criptografia
T aula4-introducao-criptografiaHélio Martins
 
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]Ministério Público da Paraíba
 
Segurança na Internet das Coisas Usando Aprendizado de Máquina para Detecção ...
Segurança na Internet das Coisas Usando Aprendizado de Máquina para Detecção ...Segurança na Internet das Coisas Usando Aprendizado de Máquina para Detecção ...
Segurança na Internet das Coisas Usando Aprendizado de Máquina para Detecção ...Marcos Felipe
 
A Segurança Informática e o Negócio Electrónico
A Segurança Informática e o Negócio ElectrónicoA Segurança Informática e o Negócio Electrónico
A Segurança Informática e o Negócio Electróniconesi
 

La actualidad más candente (10)

Criptografia Aplicada
Criptografia AplicadaCriptografia Aplicada
Criptografia Aplicada
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Criptografia Moderna - Visita do SRBR (Samsung Research do Brasil)
Criptografia Moderna - Visita do SRBR (Samsung Research do Brasil)Criptografia Moderna - Visita do SRBR (Samsung Research do Brasil)
Criptografia Moderna - Visita do SRBR (Samsung Research do Brasil)
 
Aula 2 semana2
Aula 2 semana2Aula 2 semana2
Aula 2 semana2
 
T aula4-introducao-criptografia
T aula4-introducao-criptografiaT aula4-introducao-criptografia
T aula4-introducao-criptografia
 
Esteganografia
EsteganografiaEsteganografia
Esteganografia
 
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
 
Segurança na Internet das Coisas Usando Aprendizado de Máquina para Detecção ...
Segurança na Internet das Coisas Usando Aprendizado de Máquina para Detecção ...Segurança na Internet das Coisas Usando Aprendizado de Máquina para Detecção ...
Segurança na Internet das Coisas Usando Aprendizado de Máquina para Detecção ...
 
Sensor Networks
Sensor NetworksSensor Networks
Sensor Networks
 
A Segurança Informática e o Negócio Electrónico
A Segurança Informática e o Negócio ElectrónicoA Segurança Informática e o Negócio Electrónico
A Segurança Informática e o Negócio Electrónico
 

Similar a Criptografia em hardware emicro se - nov 15 2012

126015847 seguranca-de-redes-criptografia-2
126015847 seguranca-de-redes-criptografia-2126015847 seguranca-de-redes-criptografia-2
126015847 seguranca-de-redes-criptografia-2Marco Guimarães
 
126015847 seguranca-de-redes-criptografia-2 (1)
126015847 seguranca-de-redes-criptografia-2 (1)126015847 seguranca-de-redes-criptografia-2 (1)
126015847 seguranca-de-redes-criptografia-2 (1)Marco Guimarães
 
TECREDES_SRC - Aula 09 (Introdução aos sistemas de criptografia).pdf
TECREDES_SRC - Aula 09 (Introdução aos sistemas de criptografia).pdfTECREDES_SRC - Aula 09 (Introdução aos sistemas de criptografia).pdf
TECREDES_SRC - Aula 09 (Introdução aos sistemas de criptografia).pdfssusere0b5a8
 
Criptografia no .Net Framework
Criptografia no .Net FrameworkCriptografia no .Net Framework
Criptografia no .Net FrameworkThiago Vidal
 
Segurança das informações e continuidade dos negócios
Segurança das informações e continuidade dos negóciosSegurança das informações e continuidade dos negócios
Segurança das informações e continuidade dos negóciosandersonmpan
 
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosApresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosSanger Dias
 
Seguranca da informação simulado respondido (1)
Seguranca da informação   simulado respondido (1)Seguranca da informação   simulado respondido (1)
Seguranca da informação simulado respondido (1)Fabricio Trindade
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO SEGURANÇA DE DADOS
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO SEGURANÇA DE DADOSCST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO SEGURANÇA DE DADOS
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO SEGURANÇA DE DADOSOs Fantasmas !
 
criptografia de chaves assimetricas
criptografia de chaves assimetricascriptografia de chaves assimetricas
criptografia de chaves assimetricasSuh Valentim
 
Criptografia de Chaves Assimetricas
Criptografia de Chaves AssimetricasCriptografia de Chaves Assimetricas
Criptografia de Chaves AssimetricasSuh Valentim
 
Pim 2 semestre_v51
Pim 2 semestre_v51Pim 2 semestre_v51
Pim 2 semestre_v51Suh Valentim
 
29/09/2011 - 9h às 12h30 - TI nacional e os projetos do ministério da defesa...
29/09/2011 -  9h às 12h30 - TI nacional e os projetos do ministério da defesa...29/09/2011 -  9h às 12h30 - TI nacional e os projetos do ministério da defesa...
29/09/2011 - 9h às 12h30 - TI nacional e os projetos do ministério da defesa...Rio Info
 
Segurança da Informação, Novos Desafios
Segurança da Informação, Novos DesafiosSegurança da Informação, Novos Desafios
Segurança da Informação, Novos Desafiosedmofilho
 
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaIoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaAndré Curvello
 
Conceitos Básicos de Criptografia
Conceitos Básicos de CriptografiaConceitos Básicos de Criptografia
Conceitos Básicos de CriptografiaMariana Carvalho
 
Redes e os princípios da criptografia
Redes e os princípios da criptografiaRedes e os princípios da criptografia
Redes e os princípios da criptografiaUNIEURO
 

Similar a Criptografia em hardware emicro se - nov 15 2012 (20)

126015847 seguranca-de-redes-criptografia-2
126015847 seguranca-de-redes-criptografia-2126015847 seguranca-de-redes-criptografia-2
126015847 seguranca-de-redes-criptografia-2
 
126015847 seguranca-de-redes-criptografia-2 (1)
126015847 seguranca-de-redes-criptografia-2 (1)126015847 seguranca-de-redes-criptografia-2 (1)
126015847 seguranca-de-redes-criptografia-2 (1)
 
TECREDES_SRC - Aula 09 (Introdução aos sistemas de criptografia).pdf
TECREDES_SRC - Aula 09 (Introdução aos sistemas de criptografia).pdfTECREDES_SRC - Aula 09 (Introdução aos sistemas de criptografia).pdf
TECREDES_SRC - Aula 09 (Introdução aos sistemas de criptografia).pdf
 
Criptografia no .Net Framework
Criptografia no .Net FrameworkCriptografia no .Net Framework
Criptografia no .Net Framework
 
Segurança das informações e continuidade dos negócios
Segurança das informações e continuidade dos negóciosSegurança das informações e continuidade dos negócios
Segurança das informações e continuidade dos negócios
 
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosApresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
 
Inf seg redinf_semana5
Inf seg redinf_semana5Inf seg redinf_semana5
Inf seg redinf_semana5
 
Seguranca da informação simulado respondido (1)
Seguranca da informação   simulado respondido (1)Seguranca da informação   simulado respondido (1)
Seguranca da informação simulado respondido (1)
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO SEGURANÇA DE DADOS
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO SEGURANÇA DE DADOSCST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO SEGURANÇA DE DADOS
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO SEGURANÇA DE DADOS
 
criptografia de chaves assimetricas
criptografia de chaves assimetricascriptografia de chaves assimetricas
criptografia de chaves assimetricas
 
Criptografia de Chaves Assimetricas
Criptografia de Chaves AssimetricasCriptografia de Chaves Assimetricas
Criptografia de Chaves Assimetricas
 
Pim 2 semestre_v51
Pim 2 semestre_v51Pim 2 semestre_v51
Pim 2 semestre_v51
 
29/09/2011 - 9h às 12h30 - TI nacional e os projetos do ministério da defesa...
29/09/2011 -  9h às 12h30 - TI nacional e os projetos do ministério da defesa...29/09/2011 -  9h às 12h30 - TI nacional e os projetos do ministério da defesa...
29/09/2011 - 9h às 12h30 - TI nacional e os projetos do ministério da defesa...
 
Segurança da Informação, Novos Desafios
Segurança da Informação, Novos DesafiosSegurança da Informação, Novos Desafios
Segurança da Informação, Novos Desafios
 
Segurança de redes
Segurança de redesSegurança de redes
Segurança de redes
 
Webcast Luiz Vieira criptografia on-the-fly com software livre
Webcast Luiz Vieira criptografia on-the-fly com software livreWebcast Luiz Vieira criptografia on-the-fly com software livre
Webcast Luiz Vieira criptografia on-the-fly com software livre
 
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaIoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
 
Conceitos Básicos de Criptografia
Conceitos Básicos de CriptografiaConceitos Básicos de Criptografia
Conceitos Básicos de Criptografia
 
Desafios do IoT
Desafios do IoTDesafios do IoT
Desafios do IoT
 
Redes e os princípios da criptografia
Redes e os princípios da criptografiaRedes e os princípios da criptografia
Redes e os princípios da criptografia
 

Más de Edward David Moreno

Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufsImplementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufsEdward David Moreno
 
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEstudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEdward David Moreno
 
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsLivro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsEdward David Moreno
 
Implementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosImplementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosEdward David Moreno
 
Oportunidades para inovaçao e empreendedorismo em computacao
Oportunidades para inovaçao e empreendedorismo em computacaoOportunidades para inovaçao e empreendedorismo em computacao
Oportunidades para inovaçao e empreendedorismo em computacaoEdward David Moreno
 

Más de Edward David Moreno (6)

Jai2008 energia-capitulo
Jai2008 energia-capituloJai2008 energia-capitulo
Jai2008 energia-capitulo
 
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufsImplementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
 
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEstudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
 
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsLivro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
 
Implementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosImplementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficos
 
Oportunidades para inovaçao e empreendedorismo em computacao
Oportunidades para inovaçao e empreendedorismo em computacaoOportunidades para inovaçao e empreendedorismo em computacao
Oportunidades para inovaçao e empreendedorismo em computacao
 

Criptografia em hardware emicro se - nov 15 2012

  • 1. Criptografia em Hardware Minicurso do Evento EMICRO-SE http://www.gprufs.org/emicro-se/ Aracaju, 15 de Novembro de 2012 Edward David Moreno edwdavid@gmail.com 1
  • 2. Sumário Parte I – Conceitos Parte II – Exemplos em C e VHDL & FPGAs Parte III - Parte Prática – Algoritmos Posicionais Parte IV - Parte Prática – Algoritmos Conhecidos (DES, AES, RC5, IDEA, RSA, etc.) Parte V– Classificação Moderna de Soluções de Segurança 2
  • 3. Referências Criptografia em Software e Hardware, 2005 Autores: Edward D. Moreno Fábio D. Pereira Rodolfo B. Chiaramonte 3
  • 4. 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
  • 5. Publicações Springer Transactions on Computational Science, 2010 – Security in Computing Part I – LNCS 6340 Autor: Edward Moreno Transactions on Computational Science, 2010 – Security in Computing Part II – LNCS 6480 Autor: Edward Moreno Transactions on Computational Science – Security in Computing – LNCS 5430, 2009 Autor: Edward Moreno 5
  • 6. People - Criptografia em Hardware Prof. C Paar Profa. Ingrid Verbauwhede Prof. Bart Preneel Prof. Cetin Kaya Koc Profa. Catherine Gateboys Grupo COSIC Prof. Ricardo Dahab (UNICAMP) Computer Security Prof. Paulo Barreto (USP) and Industrial Cryptography Prof. Julio Hernandez (UNICAMP) 6
  • 7. Eventos - Criptografia em Hardware CHES CRYPTO Computers and Security - Elsevier Security - ACM Outros Outros SBSEG - Brasil 7
  • 8. 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 Security Rank 1 Crypto International Cryptology Conference Eurocrypt European Cryptology Conference Usenix Security Symposium Security NDSS ISOC Network and Distributed System Security Symposium 8
  • 9. 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 Conference Rank 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
  • 10. Computer Security Conference Ranking and Statistic – Rank 3 (1) IEEE Communications Society/CreateNet Internation Conference on Security and SecureComm Privacy for Emerging Areas in Communication Networks GI SIG SIDAR Conference on Detection of Intrusions and Malware and DIMVA Vulnerability Assessment AsiaCCS ACM Symposium on Information, Computer and Communications Security ACNS International Conference on Applied Cryptography and Network Security FC International Conference on Financial Cryptography and Data Security SAC ACM Symposium on Applied Computing ACISP Australasia Conference on Information Security and Privacy ICICS International Conference on Information and Communications Security ISC Information Security Conference 10
  • 11. Computer Security Conference Ranking and Statistic – Rank 3 (2) ICISC International Conference on Information Security and Cryptology SACMAT ACM Symposium on Access Control Models and Technologies CT-RSA RSA Conference, Cryptographers' Track SEC IFIP International Information Security Conference ACM Conference on Wireless Network Security WiSec 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 Security IFIP WG 11.9IFIP WG 11.9 International Conference on Digital Forensics DFRWS Digital Forensic Research Conference PETS Privacy Enhancing Technologies Symposium 11
  • 12. Computer Security Conference Ranking and Statistic – Workshops FSE Fast Software Encryption workshop PKC International Workshop on Public-Key Cryptography NSPW New Security Paradigms Workshop IH Workshop on Information Hiding WSPEC Workshop on Security and Privacy in E-commerce DRM ACM Workshop on Digital Rights Management IWIA IEEE International Information Assurance Workshop IAW IEEE SMC Information Assurance Workshop "The West Point Workshop" CHES Workshop on Cryptographic Hardware and Embedded Systems SRUTI USENIX Workshop on Steps to Reducing Unwanted Traffic on the Internet HotSec USENIX Workshop on Hot Topics in Security LEET 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
  • 13. Parte I Conceitos Minicurso do Evento EMICRO-SE http://www.gprufs.org/emicro-se/ Aracaju, 15 a 17 de Novembro de 2012 Edward David Moreno edwdavid@gmail.com 13
  • 14. 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
  • 15. 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
  • 16. Definições Emissor (A) e Receptor (B) Texto Original ou Texto Limpo Cifrar Decifrar Criptografia X Criptoanálise = Criptologia Texto Texto Cifrado Original Cifrar Decifrar Texto Original 16
  • 17. Algoritmo vs Chave ? Algoritmo Algoritmo K Espaço de Chaves Princípio de Kerckhoffs 17
  • 18. Como Funciona ? Algoritmo de encriptação Mensagem Criptograma Cigragem Chave Algoritmo de decriptação Criptograma Mensagem Decifragem Chave 18
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 24. ENIGMA - Máquina de três rotores 24
  • 25. Breve Histórico Algoritmos 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
  • 26. Qual a Importância da Criptografia ? Segurança da transferência de dados na rede; Armazenamento de informações codificadas; Assinatura Digital e Integridade; ... 26
  • 27. Onde é utilizada ? Internet: Home Banking; Comércio Eletrônico; E-mail; Sistemas Distribuídos; Bancos de Dados. 27
  • 28. 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
  • 29. Objetivos da Criptografia (1) Confidencialidade; (2) Integridade dos Dados; (3) Autenticação; (4) Não-Repúdio. 29
  • 30. (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
  • 31. (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
  • 32. (3) Autenticação Vários Tipos: Usuário; Remetente; Destinatário; Atualidade. 32
  • 33. (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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. Tipos de algoritmos Simétricos: Uma mesma chave é utilizada tanto para a criptografia quanto para a decriptografia; 39
  • 40. Tipos de algoritmos Assimétricos: Possuem duas chaves: uma pública e outra privada. 40
  • 41. 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
  • 42. Algoritmos Assimétricos Vantagens: 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
  • 43. Principais Algoritmos Simétricos Nome Tipo Tam. chave Tam. bloco DES bloco 56 64 Triple DES (2 ch.) bloco 112 64 Triple DES (3 ch.) bloco 168 64 IDEA bloco 128 64 BLOWFISH bloco 32 a 448 64 RC5 bloco 0 a 2040 32,64,128 CAST-128 bloco 40 a 128 64 RC2 bloco 0 a 1024 64 RC4 stream 0 a 256 -- Rijndael (AES) bloco 128,192,256 128, 192, 256 MARS bloco variável 128 RC6 bloco variável 128 Serpent bloco variável 128 Twofish bloco 128,192,256 128 43
  • 44. 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
  • 45. Propriedade da Assinatura Digital Verificar o Autor e a data/hora da assinatura Autenticar o conteúdo original A assinatura deve poder ser verificável por terceiros (resolver disputas) Tipos Direta Envolve somente X e Y Segurança está na chave privada de X Selo de Tempo Arbitrada X -> A -> Y 45
  • 46. Requisitos da Assinatura Digital Depender do Conteúdo Usar informação única do originador Fácil de produzir Fácil de reconhecer e verificar Inviável de forjar Deve ser prático manter uma cópia da assinatura 46
  • 47. 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
  • 48. 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
  • 49. RSA - Assinatura Digital H M || M Comparar D H E EKRa[H(M)] KUa KRa 49
  • 50. Principais Algoritmos Hashing Algoritmo de Hash Compr. Hash kbytes/s Abreast Bavies-Meyer (c/IDEA) 128 22 Davies-Meyer (c/DES) 64 9 GOST Hash 256 11 NAVAL (3 passos) variável 168 NAVAL (4 passos) variável 118 NAVAL (5 passos) variável 95 MD4 - Message Digest 4 128 236 MD5 - Message Digest 5 128 174 N-HASH (12 rounds) 128 29 N-HASH (15 rounds) 128 24 RIPE-MD 128 182 RIPE-MD-160 160 --- SHA - Secure Hash Algorithm 160 75 SNEFRU (4 passos) 128 48 SNEFRU (8 passos) 128 23 SHA-3 (kecca) 50
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. Esquema Geral Chave K Chave K Ilegível Legível y Legível x fk(x)=y fk-1(y)=x x Linha de comunicação 54
  • 55. Exercício Baseado no formalismo de funções, tente imaginar como seria um algoritmo de criptografia simples. 55
  • 56. 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
  • 57. 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 Chiaramonte RSA edwdavid@gmail.com AES RC5 57
  • 58. 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
  • 59. 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
  • 60. 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
  • 61. 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
  • 62. Algoritmo Posicional A seguir é apresentada uma tabela com estimativas do tempo necessário para quebrar uma mensagem com o algoritmo Posicional testando todas as chaves: EMICRO-SE - Aracaju - Nov 15-17 de 2012 62
  • 63. Implementação do algoritmo POSICIONAL 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
  • 64. Implementação do algoritmo POSICIONAL Uma simulação de execução do algoritmo em Hardware EMICRO-SE - Aracaju - Nov 15-17 de 2012 64
  • 65. Comparação de Desempenho Software x Hardware Uma comparação de desempenho das implementações em software e hardware são Tempo (segundos) 0,5Mb apresentadas(ms) seguir: 0,5Mb 1,0Mb 1,5Mb 1,0Mb 1,5Mb Tempo a 8 10 6 8 4 6 2 4 0 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
  • 66. Comparação de desempenho - várias versões do Posicional, IDEA e RSA 20 18 16 Tempo (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
  • 67. Principais Plataformas Algoritmos de criptografia Hardware Software Clá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
  • 68. 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
  • 69. Características das Plataformas Comparação HW/SW e FPGAs Característica BAIXO ALTO Desempenho FPGAs ASIC SW Custo SW ASIC Desenvolvimento FPGAs Custo por Unidade ASIC SW FPGAs Flexibilidade ASIC SW FPGAs EMICRO-SE - Aracaju - Nov 15-17 de 2012 69
  • 70. Criptografia em FPGAs Vantagens 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
  • 71. Exemplo Atomicidade (AES) Algoritmo XOR ADD SUB Shift Var Rot GF Mult LUT MARS * * * * * * RC6 * * * * * Rijndael * * * Serpent * * Twofish * * * EMICRO-SE - Aracaju - Nov 15-17 de 2012 71
  • 72. Desempenho AES - FPGAs Algoritmo Throughput (Gbit/s) Slices RC6 2.40 10856 Serpent 4.86 9004 Twofish 1.59 9345 Rijndael 1.94 10992 Ref. Reconfigurable Hardware in Modern Cryptography. Prof. Christof Paar. Worcester Polytechnic Institute, Worcester, MA, USA. EMICRO-SE - Aracaju - Nov 15-17 de 2012 72
  • 73. Desempenho vs Segurança ? 20 18 16 Tempo (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
  • 74. 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 Encryption 11/19/2012 74
  • 75. Implementação em Software Linguagem C 11/19/2012 75
  • 76. 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 RC5 11/19/2012 76
  • 77. 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 ç ã o D X X X X E S A X X X E S S e X X X r p e n t C X X a s t- 1 2 8 M X X X A R S T X X X X w o f is h M X X X X a g e n ta F r X X X o g B X X X lo w F i s h R X X C 5 R X X X C 6 11/19/2012 77
  • 78. 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 Algoritmos 11/19/2012 78
  • 79. 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 segundos 11/19/2012 79
  • 82. 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 Algoritmo 11/19/2012 82
  • 83. 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 26 11/19/2012 83
  • 84. 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 s 11/19/2012 84
  • 85. Parte III Parte Prática – Algoritmos Posicionais Edward David Moreno edwdavid@gmail.com 85
  • 86. 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
  • 87. Tabela de Substituição Exercício – Gere as cifras para as palavras: CRIPTOGRAFIA UNIVEM CARAGUATATUBA Decifre as palavras: FRPSXWDGRU DOJRULWPR 87
  • 88. Soluções: CRIPTOGRAFIA: FULSWRJUDILD UNIVEM: XQLYHP CARAGUATATUBA: FDUDJXDWDWXED FRPSXWDGRU: COMPUTADOR DOJRULWPR: ALGORITMO 88
  • 89. 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
  • 90. Com Ajuda de Tabela Matemática Suponha chave = 7; Para cifrar a letra E (4) = 4 + 7 = 11 (L); Computacionalmente é indicado usar a Tabela ASCII 90
  • 91. 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
  • 92. 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
  • 93. 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
  • 94. Substituição Simples Exemplos utilizando a tabela acima: ALGORITMO = IPMGBAEZG COMPUTADOR = KGZTOEIRGB CARAGUATATUBA = CARAGUATATUBA = KIBIMOIEIEONI 94
  • 95. 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
  • 96. 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
  • 97. Como seria a Decriptografia? Calcular a chave inversa: Chave Original: Chave Inversa: 97
  • 98. Implementação da decriptografia #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
  • 99. 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
  • 100. Cifra de Vigenère Exemplo: CARAGUATATUBA Chave: CRIPTO 100
  • 101. Exercício Exercício – Gere as cifras para as palavras usando a chave: “CHAVE” CRIPTOGRAFIA UNIVEM CARAGUATATUBA Decifre a palavra: CSGJVKAMJ 101
  • 102. Soluções CRIPTOGRAFIA: EYIKXQNRVJKH UNIVEM: WUIQIO CARAGUATATUBA: EHRVKWHTVXWIA CSGJVKAMJ: ALGORITMO 102
  • 103. 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
  • 104. 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
  • 105. Introdução a criptoanálise Exercício: Tente decifrar o texto a seguir: 105
  • 106. 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
  • 107. 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
  • 108. Algoritmo Posicional - Exemplo Utilizando a chave 23,26,45,63 temos: 108
  • 109. Algoritmo Posicional - Criptanalise Ataque por força bruta é inviável: 109
  • 110. 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
  • 111. Algoritmo Posicional - Criptanalise Exemplo 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
  • 112. Algoritmo Posicional - Criptanalise Exemplo Continuação É possível montar um sistema que tem como incógnita a chave: 112
  • 113. Algoritmo Posicional - Criptanalise Exemplo Continuação Ver solução completa em Resolução.xls 113
  • 114. Posicional – Função para Cifrar 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
  • 115. Parte IV Parte Prática – Algoritmos Conhecidos Autores: Edward Moreno, Fabio Pereira, Rodolfo Chiaramonte Edward David Moreno edwdavid@gmail.com 115
  • 116. Algoritmo DES Algoritmo Simétrico; Cifra em Blocos; Baseado na Rede de Feistel; 116
  • 117. Algoritmo DES Esquerdaj Direitaj Kj XOR fKj(Dj) Esquerdaj+1 Direitaj+1 Kj+1 XOR fKj+1(Dj+1) Esquerdaj+2 Direitaj+2 117
  • 118. 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
  • 119. 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
  • 120. 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
  • 121. Algoritmo IDEA Algoritmo Simétrico; Trabalha com blocos de 64 bits; Chave de 128 bits; Estrutura semelhante ao DES; Oito iterações. 121
  • 122. 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
  • 123. 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
  • 124. 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
  • 125. 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
  • 126. Algoritmo AES - Cifragem M Encriptador C AES Bloco: Bloco: 128/192/256 bits 128/192/256 bits K Chave 128/192/256 bits 126
  • 127. Algoritmo AES - Decifragem M Decriptador C AES Bloco: Bloco: 128/192/256 bits 128/192/256 bits K 127
  • 128. 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
  • 129. 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 Texto Cifrado C = Me mod n KU = {e,n} M = Cd mod n = (Me)d mod n = Med mod n KR = {d,n} Texto Plano 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
  • 130. 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
  • 131. 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
  • 132. Algoritmo RSA – Exemplo (Continuação) Cifrar KU = 5,119 Texto Plano 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
  • 133. 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
  • 134. 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
  • 135. 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
  • 136. Análise de Desempenho 20 18 16 Tempo (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
  • 137. Análise de Desempenho 3 2,5 Tempo (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
  • 139. SICO - Sistema Inteligente de Comunicaçã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
  • 140. 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
  • 141. 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
  • 142. 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
  • 143. 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
  • 144. Parte V Classificação Moderna de Soluções de Segurança Edward David Moreno edwdavid@gmail.com 144
  • 145. 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
  • 146. Algoritmos Criptográficos - Primitivas Digital Signatures Key Exchange Encryption Cryptographic Algorithms Simetrics Asimetrics Hash Functions Random Number Generators DES RSA SHA-1 SHA-2 AES (H)ECDSA SHA-3 RC4 IBE (PBC) kecca 146
  • 147. Algoritmos Criptográficos - Plataformas Cryptographic Algorithms Hardware Software IP 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
  • 148. Soluções de Segurança em Multicore Core Único Multiprocessador Multicore CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU Domeika (2008) 148
  • 149. Soluções de Segurança em Multicore/FPGAs 4 Xilinx Microblaze em rede (Kavadias, 2010) 149
  • 150. Soluções de Segurança em Multicore/Leon-3 Arquitetura interna padrão do Leon3 (Gaisler, 150 2011)
  • 151. Multicore and GPUs – Open Researches •Projetar sistemas multicore eficientes em consumo de energia; •Paralelizar aplicações que requeiram alto desempenho e adequá-las a plataformas multicore de forma eficiente e escalável; •Criar ferramentas que paralelizem automaticamente aplicações e as executem de forma eficiente em plataformas multicore; •Projetar e avaliar sistemas Multi-core e uso de GPUs em soluções de segurança e processamento 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 que existem aplicações com alto grau de paralelismo, e que transformam as GPUs em verdadeiros clusters; existe ainda necessidade de estudar e aplicar as GPU em várias aplicaçõ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 GPUs em aplicações de alto volume de informações; •Verificar o uso de GPUs em soluções modernas de segurança: IDS e IPS de alto desempenho, em algoritmos criptográficos de desempenho crítico, em algoritmos biométricos e etc. 151
  • 152. Consumo de Energia Final da Execução Detalhes do consumo de energia na execução do algoritmo SHA 152