Your SlideShare is downloading. ×
0
Criptografia em HardwareMinicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/Aracaju, 15 de Novembro de 2012      ...
SumárioParte I – ConceitosParte II – Exemplos em C e VHDL & FPGAsParte III - Parte Prática – Algoritmos PosicionaisParte I...
ReferênciasCriptografia em Software e Hardware, 2005Autores:     Edward D. Moreno     Fábio D. Pereira     Rodolfo B. Chia...
Outras Referências    SEGURANÇA DE DADOS    CRIPTOGRAFIA EM REDES DE COMPUTADOR    Autor: Routo Terada    CRYPTOGRAPHY AND...
Publicações Springer Transactions on Computational Science, 2010 – Security in Computing Part I – LNCS 6340 Autor: Edward ...
People - Criptografia em Hardware        Prof. C Paar       Profa. Ingrid Verbauwhede        Prof. Bart Preneel        Pro...
Eventos - Criptografia em Hardware    CHES    CRYPTO    Computers and Security - Elsevier     Security - ACM    Outros    ...
Computer Security Conference Ranking and                       Statistic      http://faculty.cs.tamu.edu/guofei/sec_conf_s...
Computer Security Conference Ranking and                         Statistic         ESORICS      European Symposium on Rese...
Computer Security Conference Ranking and                    Statistic – Rank 3 (1)             IEEE Communications Society...
Computer Security Conference Ranking and                   Statistic – Rank 3 (2)ICISC       International Conference on I...
Computer Security Conference Ranking and                 Statistic – WorkshopsFSE          Fast Software Encryption worksh...
Parte I                   ConceitosMinicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/Aracaju, 15 a 17 de Novemb...
O que é Criptografia?  Criptografia significa grafia oculta;    Kriptos = Grafia;    Graphos = Oculta.  É a ciência de esc...
Esquema Geral  “A criptografia pode ser entendida como um  conjunto de métodos e técnicas para cifrar ou  codificar inform...
Definições   Emissor (A) e Receptor (B)   Texto Original ou Texto Limpo   Cifrar   Decifrar   Criptografia X Criptoanálise...
Algoritmo vs Chave ?                   AlgoritmoAlgoritmo                          K                          Espaço de Ch...
Como Funciona ?                   Algoritmo de                   encriptação     Mensagem                      Criptograma...
Então Criptografia é ...• Processo de transformação, através de  uma chave secreta, de informação legível  (mensagem) em i...
Breve Histórico  Usada desde a antigüidade:    Presença na escrita hieroglífica dos    egípcios;    Codificação de planos ...
Breve Histórico  Em 1901, iniciou-se a era da  comunicação sem fio:    Aumenta o desafio da criptologia;  Em 1921 Edward H...
Breve Histórico  Até o fim da década de 70  algoritmos criptográficos secretos;    Exemplo: Máquina ENIGMA utilizada pelos...
Breve HistóricoMáquinaENIGMA                  23
ENIGMA - Máquina de três rotores                                   24
Breve HistóricoAlgoritmos Importantes:  1976     LUCIFER apresentado pela IBM à NBS  (National Bureal of Standards), que a...
Qual a Importância daCriptografia ?  Segurança da transferência de dados na  rede;  Armazenamento de informações  codifica...
Onde é utilizada ?  Internet:    Home Banking;    Comércio Eletrônico;    E-mail;  Sistemas Distribuídos;  Bancos de Dados...
Serviços de Segurança Funcionalides que, se presentes, possibilitam  restringir determinados riscos de segurança          ...
Objetivos da Criptografia  (1)   Confidencialidade;  (2)   Integridade dos Dados;  (3)   Autenticação;  (4)   Não-Repúdio....
(1) Confidencialidade  É um serviço para evitar que pessoas  não autorizadas “entendam” o que está  sendo transmitido;  Es...
(2) Integridade dos Dados  É um serviço que assegura que os  dados não foram alterados;  Dois tipos de alteração:    Acide...
(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: ...
Importante  A criptografia não é o único meio de  prover a segurança da informação, é  apenas um conjunto de técnicas que ...
Termos Comuns Texto original = Texto claro = Plaintext; Texto cifrado = Texto código = Chipertext; Cifrar/Criptografar - C...
Cifras em Bloco x Stream  Cifras em bloco processam blocos de  caracteres (64 bits ou mais) durante a  cifragem/decifragem...
Criptoanálise Ciência que busca determinar a chave ou decifrar mensagens sem o conhecimento da chave; Uma tentativa de cri...
Tipos de algoritmos Tipos de Algoritmos   Simétrico: Uma única chave   Assimétrico: Utiliza duas chaves (secreta e   priva...
Tipos de algoritmos  Simétricos:    Uma mesma chave é utilizada tanto para a    criptografia quanto para a decriptografia;...
Tipos de algoritmos  Assimétricos:    Possuem duas chaves: uma pública e outra    privada.                                ...
Algoritmos Simétricos  Vantagens:    Mais rápido;    Bom nível de segurança;  Desvantagens:    Única chave compartilhada p...
Algoritmos AssimétricosVantagens: Duas chaves: uma para criptografia e outra para a decriptografia; Facilita a distribuiçã...
Principais Algoritmos SimétricosNome                 Tipo             Tam. chave    Tam. blocoDES                         ...
Principais Algoritmos Assimétricos– DH - Diffie Hellman (Troca de Chaves)– RSA   •   Rivest-Shamir-Adelman   •   Algoritmo...
Propriedade da Assinatura DigitalVerificar o Autor e a data/hora da assinaturaAutenticar o conteúdo originalA assinatura d...
Requisitos da Assinatura DigitalDepender do ConteúdoUsar informação única do originadorFácil de produzirFácil de reconhece...
Assinatura Digital Arbitrada                    Usando Criptografia Simétrica(Árbitro vê a mensagem)(1) X → A: M || EKXA[I...
Assinatura Digital Arbitrada      Usando Criptografia Assimétrica(Árbitro não vê a mensagem)  (1) X → A: IDX || EKRX[IDX |...
RSA - Assinatura Digital                                 HM             ||          M                                     ...
Principais Algoritmos HashingAlgoritmo de Hash               Compr. Hash   kbytes/sAbreast Bavies-Meyer (c/IDEA)   128    ...
Esteganografia  Não é criptografia;  Maneiras de ocultar informações:    Tinta invisível;    Letras destacadas com lápis; ...
Esteganografia (cont)  Desvantagens:   Desempenho;   Uso de muita informação para ocultar   pequenos textos;  Vantagens:  ...
Funções São utilizadas para denotar os algoritmos criptográficos de maneira formal; Exemplos:   fk(x) = y;   f-1k(y) = x; ...
Esquema Geral          Chave K                  Chave K                     IlegívelLegível                 y             ...
Exercício  Baseado no formalismo de funções,  tente imaginar como seria um algoritmo  de criptografia simples.            ...
Uma Possível Solução y = fk(x) = x + k; x = f-1k(y) = y - k;                            Tabela de Caracteres              ...
Parte II   Exemplo de Algoritmos   Criptográficos   em Hardware (VHDL e FPGAs)                         FPGAs)   e Software...
Algoritmo Cifra de César     É um algoritmo muito simples, mas também inseguro.     Consiste em atribuir valores seqüencia...
Algoritmo Posicional      O algoritmo se baseia no algoritmo Cifra de César inserindo uma função que trabalha com a posiçã...
Algoritmo Posicional      Para quebrar o algoritmo posicional, ou  seja, obter a chave, é necessário um ataque  mais elabo...
Algoritmo Posicional      Foram implementadas versões do algoritmo  Posicional para obter uma maior segurança.Essas versõe...
Algoritmo Posicional    A seguir é apresentada uma tabela comestimativas do tempo necessário para quebrar umamensagem com ...
Implementação do algoritmoPOSICIONAL       O algoritmo posicional foi implementado  inicialmente em linguagem C, e posteri...
Implementação do algoritmoPOSICIONAL  Uma simulação de execução do algoritmo em                   Hardware              EM...
Comparação de DesempenhoSoftware x Hardware                 Uma comparação de desempenho das               implementações ...
Comparação de desempenho - várias versões         do Posicional, IDEA e RSA                   20                   18     ...
Principais Plataformas              Algoritmos de criptografia           Hardware                        SoftwareClássico ...
Selecionando uma Plataforma- Desempenho Algoritmos- Custo:   - Custo por unidade     - Custo de   desenvolvimento- Consumo...
Características das PlataformasComparação HW/SW e FPGAs   Característica                              BAIXO               ...
Criptografia em FPGAsVantagens Potenciais de algoritmos de criptografia            implementados em CORE       Agilidade d...
Exemplo Atomicidade (AES)Algoritmo   XOR ADD       SUB        Shift       Var Rot       GF Mult LUTMARS         *    *    ...
Desempenho AES - FPGAsAlgoritmo               Throughput (Gbit/s)            SlicesRC6                               2.40 ...
Desempenho vs Segurança ?                   20                   18                   16Tempo (segundos)                  ...
Principais Algoritmos Simétricos     Algoritmo   Projetista             Key (bits)      Bloco (bytes)   Aplicação     AES ...
Implementação em Software       Linguagem C11/19/2012       75
Implementação em Software       Linguagem C                             Desempenho em software                        8   ...
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                    ...
Implementação em Hardware     FPGAs           Tempo de propagação de cada              algoritmo em hardware              ...
Comparação do DES                                           Desempenho Temporal             Mega Bytes Cifrados           ...
CASAD - Criptoprocessador11/19/2012      80
CASAD - Criptoprocessador11/19/2012      81
CASAD - Criptoprocessador                         Desempenho dos algoritmos DES e RC5                    30               ...
CASAD – Criptoprocessador -     Algoritmo DES             C to roessa o s              rip p c dre           Ndºe    Mz   ...
CASAD - Criptoprocessador     Algoritmo DES             Proc.   Freqüência Memória Texto claro Tempo de cifragem          ...
Parte IIIParte Prática – Algoritmos Posicionais                    Edward David Moreno                    edwdavid@gmail.c...
Cifra de César  Letras na mensagem original substituída por  outras deslocadas em um número fixo de  posições (chave) no a...
Tabela de Substituição  Exercício – Gere as cifras para as palavras:  CRIPTOGRAFIA  UNIVEM  CARAGUATATUBA  Decifre as pala...
Soluções:  CRIPTOGRAFIA: FULSWRJUDILD  UNIVEM: XQLYHP  CARAGUATATUBA: FDUDJXDWDWXED  FRPSXWDGRU: COMPUTADOR  DOJRULWPR: AL...
Outras Chaves  Hoje em dia toda cifra que apresenta  uma substituição com deslocamento  fixo é chamada Cifra de César;  Ex...
Com Ajuda de TabelaMatemática  Suponha chave = 7;  Para cifrar a letra E (4) = 4 + 7 = 11  (L);  Computacionalmente é indi...
Implementação Escreva um algoritmo para implementar a criptografia utilizando a Cifra de César:Algoritmo Cesar     variave...
Implementação em C#include <stdio.h>#include <stdlib.h>int main(){   char palavra[40];    char cifrado[40];    int i=0;   ...
Substituição Simples  Baseado em tabela de substituição;  Troca-se as letras da primeira linha pelas  letras da segunda li...
Substituição Simples  Exemplos utilizando a tabela acima:    ALGORITMO = IPMGBAEZG    COMPUTADOR = KGZTOEIRGB    CARAGUATA...
Implementação Escreva um algoritmo para implementar criptografia usando a Substituição Simples:Algoritmo Simples     varia...
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,                ...
Como seria a Decriptografia? Calcular a chave inversa:   Chave Original:   Chave Inversa:                               97
Implementação dadecriptografia#include <stdio.h>#include <stdlib.h>int main(){char chaveI[]={I,R,Z,S,T,E,O,V,A,K,C,X,G,   ...
Cifra de Vigenère Cada letra é representada por um inteiro; Chave é uma seqüência de N letras; Para cifrar, soma-se o valo...
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  Deci...
Soluções  CRIPTOGRAFIA: EYIKXQNRVJKH  UNIVEM: WUIQIO  CARAGUATATUBA: EHRVKWHTVXWIA  CSGJVKAMJ: ALGORITMO                  ...
Implementação  Escreva um algoritmo para implementar a Cifra de  Vigenère:Algoritmo Vigenere  variavel palavra,cifrado,cha...
Implementação em C#include <stdio.h>#include <stdlib.h>int main(){   char palavra[40];    char cifrado[40];    int i=0;   ...
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 simpl...
Algoritmo Posicional -Funcionamento  A posição que o caracter ocupa  interfere em como ele será  criptografado;  Segue uma...
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...
Algoritmo Posicional - CriptanaliseExemplo  Considere que um criptanalista obteve  conhecimento da posição do caracter,  d...
Algoritmo Posicional - CriptanaliseExemplo Continuação  É possível montar um sistema que tem  como incógnita a chave:     ...
Algoritmo Posicional - CriptanaliseExemplo Continuação  Ver solução completa em Resolução.xls                             ...
Posicional – Função paraCifrar int cifrachar (char pcifrar, int pos, int valores[], int gchave) {    int vchave;    int i;...
Parte IVParte Prática – Algoritmos ConhecidosAutores: Edward Moreno, Fabio Pereira,Rodolfo Chiaramonte                   E...
Algoritmo DES  Algoritmo Simétrico;  Cifra em Blocos;  Baseado na Rede de Feistel;                                116
Algoritmo DES       Esquerdaj                   Direitaj                          Kj         XOR          fKj(Dj)      Esq...
Algoritmo DES       E squ e rd a j        D ire ita j                         Pe rm u ta çã o +                           ...
Algoritmo DES - Permutação E(33 milhões por segundo)      x = !((0x80000000 &   entrada)==0); // bit 32      s0 += x << 0;...
Algoritmo DES - Permutação E(Otimização - 70 milhões por segundo)      int s1, s0;      s0 = (entrada & 0x80000000) >> 31;...
Algoritmo IDEA  Algoritmo Simétrico;  Trabalha com blocos de 64 bits;  Chave de 128 bits;  Estrutura semelhante ao DES;  O...
Algoritmo IDEA - Operações  ⊕ -        Ou exclusivo (XOR) sobre 16 bits.  + -        Soma mod 216, ou seja, somar dois  va...
Algoritmo IDEA - Operações  void XOR(int * A, int B, int C)  { *A = B ^ C; }  void SOMA16(int * A, int B, int C)  { *A = (...
Algoritmo IDEA - Operações(BLAKLEY)   int BLAKLEY(int a, int b, int n)   // input: a,b,n   // output: R = (a * b) mod n   ...
Algoritmo AES• AES - Advanced Encryption Standard   – Algoritmo selecionado: RIJNDAEL (2002)• Novo padrão FIPS (Federal In...
Algoritmo AES - Cifragem      M             Encriptador               C                       AES    Bloco:               ...
Algoritmo AES - Decifragem     M             Decriptador           C                      AES    Bloco:                   ...
Algoritmo RSA  Algoritmo Assimétrico;  Segurança baseada na dificuldade  computacional de se fatorar números  longos;  Par...
Ron Rivest, Adi Shamir e Len Adleman (1978)             Blocos com valores binários menores que n            Tamanho do Bl...
Algoritmo RSA                 Geração da Chave      Selecione p,q          p e q primos      Calcular n = p x q      Calcu...
Algoritmo RSA - Exemplo   Selecionar dois números primos: p = 7 e q =   17   Calcular n = pq = 7 x 17 = 119   Calcular φ(n...
Algoritmo RSA – Exemplo (Continuação)              Cifrar        KU = 5,119TextoPlano   195 = 2476099 119 19              ...
Algoritmo MD5  Função de Hash;  Entrada de comprimento arbitrário;    Deve ser completado para se tornar    múltiplo de 51...
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, ...
Algoritmo MD5 - Passos #define   R1(a,   b,   c,   d,   k,   s,   i)   a   =   b   +   (ROL((a   +   F(b,c,d) + X[k] + T[i...
Análise de Desempenho                   20                   18                   16Tempo (segundos)                   14 ...
Análise de Desempenho                    3                   2,5Tempo (segundos)                    2                   1,...
Ferramenta WebCry                    138
SICO - Sistema Inteligente deComunicação                 EMISSOR                     RECEPTOR                 GERENTE     ...
Emissor  Receptor - abre uma conexão com um cliente  utilizando Sockets TCP e fica a espera de  dados para criptografar. A...
Emissor - Continuação  Emissor - retira os dados do buffer de  emissão e os envia através de uma conexão  utilizando Socke...
Receptor  A Thread Receptor deste módulo tem a  mesma função da Thread Receptor do  módulo anterior, armazenando os dados ...
Receptor - Continuação  A função da Thread de Controle é realizar  algumas verificações no nível do buffer e  enviá-las pe...
Parte VClassificação Moderna de Soluções deSegurança                   Edward David Moreno                   edwdavid@gmai...
Classificação Moderna de Soluções de Segurança(Srivaths 2005) Aplicações          VPN                   WEB browser       ...
Algoritmos Criptográficos - Primitivas                        Digital Signatures                          Key Exchange    ...
Algoritmos Criptográficos - Plataformas                         Cryptographic Algorithms            Hardware              ...
Soluções de Segurança em Multicore      Core Único   Multiprocessador      Multicore                                      ...
Soluções de Segurança em Multicore/FPGAs4 Xilinx Microblaze em rede (Kavadias, 2010)   149
Soluções de Segurança em Multicore/Leon-3Arquitetura interna padrão do Leon3 (Gaisler,   1502011)
Multicore and GPUs – Open Researches•Projetar sistemas multicore eficientes em consumo de energia;•Paralelizar aplicações ...
Consumo de Energia                                             Final da                                             Execuç...
Upcoming SlideShare
Loading in...5
×

Criptografia em hardware emicro se - nov 15 2012

920

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
920
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Criptografia em hardware emicro se - nov 15 2012"

  1. 1. Criptografia em HardwareMinicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/Aracaju, 15 de Novembro de 2012 Edward David Moreno edwdavid@gmail.com 1
  2. 2. SumárioParte I – ConceitosParte II – Exemplos em C e VHDL & FPGAsParte III - Parte Prática – Algoritmos PosicionaisParte IV - Parte Prática – Algoritmos Conhecidos (DES, AES, RC5, IDEA, RSA, etc.)Parte V– Classificação Moderna de Soluções deSegurança 2
  3. 3. ReferênciasCriptografia em Software e Hardware, 2005Autores: Edward D. Moreno Fábio D. Pereira Rodolfo B. Chiaramonte 3
  4. 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. 5. Publicações Springer Transactions on Computational Science, 2010 – Security in Computing Part I – LNCS 6340 Autor: Edward MorenoTransactions on Computational Science, 2010– Security in Computing Part II – LNCS 6480Autor: Edward Moreno Transactions on Computational Science – Security in Computing – LNCS 5430, 2009 Autor: Edward Moreno 5
  6. 6. People - Criptografia em Hardware Prof. C Paar Profa. Ingrid Verbauwhede Prof. Bart Preneel Prof. Cetin Kaya Koc Profa. Catherine Gateboys Grupo COSICProf. Ricardo Dahab (UNICAMP) Computer SecurityProf. Paulo Barreto (USP) and Industrial CryptographyProf. Julio Hernandez (UNICAMP) 6
  7. 7. Eventos - Criptografia em Hardware CHES CRYPTO Computers and Security - Elsevier Security - ACM Outros Outros SBSEG - Brasil 7
  8. 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 SecurityRank1 Crypto International Cryptology Conference Eurocrypt European Cryptology Conference Usenix Security Symposium Security NDSS ISOC Network and Distributed System Security Symposium 8
  9. 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 ConferenceRank 2 The International Conference on Dependable Systems and DSN Networks IEEE Computer Security Foundations Symposium. CSF (CSFW) Supersedes CSFW (Computer Security Foundations Workshop) TCC Theory of Cryptography Conference International Conference on the Theory and Application of Asiacrypt Cryptology and Information Security IMC Internet Measurement Conference 9
  10. 10. Computer Security Conference Ranking and Statistic – Rank 3 (1) IEEE Communications Society/CreateNet Internation Conference on Security andSecureComm Privacy for Emerging Areas in Communication Networks GI SIG SIDAR Conference on Detection of Intrusions and Malware andDIMVA Vulnerability AssessmentAsiaCCS ACM Symposium on Information, Computer and Communications SecurityACNS International Conference on Applied Cryptography and Network SecurityFC International Conference on Financial Cryptography and Data SecuritySAC ACM Symposium on Applied ComputingACISP Australasia Conference on Information Security and PrivacyICICS International Conference on Information and Communications SecurityISC Information Security Conference 10
  11. 11. Computer Security Conference Ranking and Statistic – Rank 3 (2)ICISC International Conference on Information Security and CryptologySACMAT ACM Symposium on Access Control Models and TechnologiesCT-RSA RSA Conference, Cryptographers TrackSEC IFIP International Information Security Conference ACM Conference on Wireless Network SecurityWiSec Supersedes WiSe (ACM Workshop on Wireless Security) and SASN (ACM(WiSe, SASN) Workshop on Security of Ad-Hoc and Sensor Networks)SOUPS Symposium On Usable Privacy and SecurityIFIP WG 11.9IFIP WG 11.9 International Conference on Digital ForensicsDFRWS Digital Forensic Research ConferencePETS Privacy Enhancing Technologies Symposium 11
  12. 12. Computer Security Conference Ranking and Statistic – WorkshopsFSE Fast Software Encryption workshopPKC International Workshop on Public-Key CryptographyNSPW New Security Paradigms WorkshopIH Workshop on Information HidingWSPEC Workshop on Security and Privacy in E-commerceDRM ACM Workshop on Digital Rights ManagementIWIA IEEE International Information Assurance WorkshopIAW IEEE SMC Information Assurance Workshop "The West Point Workshop"CHES Workshop on Cryptographic Hardware and Embedded SystemsSRUTI USENIX Workshop on Steps to Reducing Unwanted Traffic on the InternetHotSec USENIX Workshop on Hot Topics in SecurityLEET USENIX Workshop on Large-scale Exploits and Emergent Threats(HotBots,W Supersedes HotBots (USENIX Workshop on Hot Topics in Understanding Botnets)ORM) and WORM (ACM Workshop on Recurring/Rapid Malcode) 12
  13. 13. Parte I ConceitosMinicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/Aracaju, 15 a 17 de Novembro de 2012 Edward David Moreno edwdavid@gmail.com 13
  14. 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. 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. 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 DecifrarTextoOriginal 16
  17. 17. Algoritmo vs Chave ? AlgoritmoAlgoritmo K Espaço de Chaves Princípio de Kerckhoffs 17
  18. 18. Como Funciona ? Algoritmo de encriptação Mensagem CriptogramaCigragem Chave Algoritmo de decriptação Criptograma MensagemDecifragem Chave 18
  19. 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. 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. 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. 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
  23. 23. Breve HistóricoMáquinaENIGMA 23
  24. 24. ENIGMA - Máquina de três rotores 24
  25. 25. Breve HistóricoAlgoritmos Importantes: 1976 LUCIFER apresentado pela IBM à NBS (National Bureal of Standards), que após algumas modificações adota como padrão: DES (Data Encryption Standard); AES (2000) 1978 Criado algoritmo de chave pública RSA (nome derivado das iniciais dos autores – Rivest, Shamir e Adleman); 1965 -> ECC, 2008 -> MQQ SHA-1, 2012 -> SHA-3 (Kecca) 25
  26. 26. Qual a Importância daCriptografia ? Segurança da transferência de dados na rede; Armazenamento de informações codificadas; Assinatura Digital e Integridade; ... 26
  27. 27. Onde é utilizada ? Internet: Home Banking; Comércio Eletrônico; E-mail; Sistemas Distribuídos; Bancos de Dados. 27
  28. 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. 29. Objetivos da Criptografia (1) Confidencialidade; (2) Integridade dos Dados; (3) Autenticação; (4) Não-Repúdio. 29
  30. 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. 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. 32. (3) Autenticação Vários Tipos: Usuário; Remetente; Destinatário; Atualidade. 32
  33. 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. 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. 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. 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. 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. 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. 39. Tipos de algoritmos Simétricos: Uma mesma chave é utilizada tanto para a criptografia quanto para a decriptografia; 39
  40. 40. Tipos de algoritmos Assimétricos: Possuem duas chaves: uma pública e outra privada. 40
  41. 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. 42. Algoritmos AssimétricosVantagens: Duas chaves: uma para criptografia e outra para a decriptografia; Facilita a distribuição de chaves;Desvantagens: Velocidade de cifragem e decifragem; Segurança baseada em problemas matemáticos complexos. Dificuldade de implementação em plataformas com restrições 42
  43. 43. Principais Algoritmos SimétricosNome Tipo Tam. chave Tam. blocoDES bloco 56 64Triple DES (2 ch.) bloco 112 64Triple DES (3 ch.) bloco 168 64IDEA bloco 128 64BLOWFISH bloco 32 a 448 64RC5 bloco 0 a 2040 32,64,128CAST-128 bloco 40 a 128 64RC2 bloco 0 a 1024 64RC4 stream 0 a 256 --Rijndael (AES) bloco 128,192,256 128, 192, 256MARS bloco variável 128RC6 bloco variável 128Serpent bloco variável 128Twofish bloco 128,192,256 128 43
  44. 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. 45. Propriedade da Assinatura DigitalVerificar o Autor e a data/hora da assinaturaAutenticar o conteúdo originalA assinatura deve poder ser verificável por terceiros(resolver disputas) TiposDireta Envolve somente X e Y Segurança está na chave privada de X Selo de TempoArbitrada X -> A -> Y 45
  46. 46. Requisitos da Assinatura DigitalDepender do ConteúdoUsar informação única do originadorFácil de produzirFácil de reconhecer e verificarInviável de forjarDeve ser prático manter uma cópia daassinatura 46
  47. 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. 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. 49. RSA - Assinatura Digital HM || M Comparar D H E EKRa[H(M)] KUa KRa 49
  50. 50. Principais Algoritmos HashingAlgoritmo de Hash Compr. Hash kbytes/sAbreast Bavies-Meyer (c/IDEA) 128 22Davies-Meyer (c/DES) 64 9GOST Hash 256 11NAVAL (3 passos) variável 168NAVAL (4 passos) variável 118NAVAL (5 passos) variável 95MD4 - Message Digest 4 128 236MD5 - Message Digest 5 128 174N-HASH (12 rounds) 128 29N-HASH (15 rounds) 128 24RIPE-MD 128 182RIPE-MD-160 160 ---SHA - Secure Hash Algorithm 160 75SNEFRU (4 passos) 128 48SNEFRU (8 passos) 128 23SHA-3 (kecca) 50
  51. 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. 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. 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. 54. Esquema Geral Chave K Chave K IlegívelLegível y Legível x fk(x)=y fk-1(y)=x x Linha de comunicação 54
  55. 55. Exercício Baseado no formalismo de funções, tente imaginar como seria um algoritmo de criptografia simples. 55
  56. 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. 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 ChiaramonteRSA edwdavid@gmail.comAESRC5 57
  58. 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. 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. 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. 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. 62. Algoritmo Posicional A seguir é apresentada uma tabela comestimativas do tempo necessário para quebrar umamensagem com o algoritmo Posicional testando todasas chaves: EMICRO-SE - Aracaju - Nov 15-17 de 2012 62
  63. 63. Implementação do algoritmoPOSICIONAL O algoritmo posicional foi implementado inicialmente em linguagem C, e posteriormente em hardware utilizando a linguagem VHDL. A implementação em hardware obteve um desempenho parecido com o da implementação em software, entretanto, é possível obter um desempenho muito melhor em hardware através de uma implementação paralela. EMICRO-SE - Aracaju - Nov 15-17 de 2012 63
  64. 64. Implementação do algoritmoPOSICIONAL Uma simulação de execução do algoritmo em Hardware EMICRO-SE - Aracaju - Nov 15-17 de 2012 64
  65. 65. Comparação de DesempenhoSoftware x Hardware Uma comparação de desempenho das implementações em software e hardware sãoTempo (segundos) 0,5Mb apresentadas(ms) seguir: 0,5Mb 1,0Mb 1,5Mb 1,0Mb 1,5Mb Tempo a8 106 84 62 40 2 1 2 3 4 5 6 7 8 9 10 0 1 3 5 7 9 Grau da função posicional Grau da função posicional Implementação Implementação em Software em Hardware EMICRO-SE - Aracaju - Nov 15-17 de 2012 65
  66. 66. Comparação de desempenho - várias versões do Posicional, IDEA e RSA 20 18 16Tempo (segundos) 14 12 10 8 6 4 2 0 0,5 1,0 1,5 Po sicio nal - Grau 6 Tamanho do arquivo (Mbytes) 10 Po sicio nal - Grau Po sicio nal 32 - Grau 6 Po sicio nal 32 - Grau 10 Po sicio nal 32 - B its aleató rio s fixo s - Grau 6 Po sicio nal 32 - B its aleató rio s fixo s - Grau 10 Po sicio nal 32 - B its aleató rio s co m ro tação - Grau 6 Po sicio nal 32 - B its aleató rio s co m ro tação - Grau 10 Po sicio nal 32 - B its aleató rio s distribuído s - Grau 6 Po sicio nal 32 - B its aleató rio s distribuído s - Grau 10 IDEA RSA - 24 bits EMICRO-SE - Aracaju - Nov 15-17 de 2012 66
  67. 67. Principais Plataformas Algoritmos de criptografia Hardware SoftwareClássico Reconfigurável Processadores Específicos Ambientes ASIC FPGAs Intel, RISC Embedded Systems DSP, Smart Card, etc EMICRO-SE - Aracaju - Nov 15-17 de 2012 67
  68. 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. 69. Características das PlataformasComparação HW/SW e FPGAs Característica BAIXO ALTODesempenho FPGAs ASIC SWCusto SW ASICDesenvolvimento FPGAsCusto por Unidade ASIC SW FPGAsFlexibilidade ASIC SW FPGAs EMICRO-SE - Aracaju - Nov 15-17 de 2012 69
  70. 70. Criptografia em FPGAsVantagens Potenciais de algoritmos de criptografia implementados em CORE Agilidade dos Algoritmos Carga e Atualização dos Algoritmos Eficiência da Arquitetura Eficiência de Recursos Mudanças nos Algoritmos Throughput – relativo ao software Eficiencia vs Custo – relativo aos ASICs EMICRO-SE - Aracaju - Nov 15-17 de 2012 70
  71. 71. Exemplo Atomicidade (AES)Algoritmo XOR ADD SUB Shift Var Rot GF Mult LUTMARS * * * * * *RC6 * * * * *Rijndael * * *Serpent * *Twofish * * * EMICRO-SE - Aracaju - Nov 15-17 de 2012 71
  72. 72. Desempenho AES - FPGAsAlgoritmo Throughput (Gbit/s) SlicesRC6 2.40 10856Serpent 4.86 9004Twofish 1.59 9345 Rijndael 1.94 10992Ref.Reconfigurable Hardware in Modern Cryptography. Prof. Christof Paar.Worcester Polytechnic Institute, Worcester, MA, USA. EMICRO-SE - Aracaju - Nov 15-17 de 2012 72
  73. 73. Desempenho vs Segurança ? 20 18 16Tempo (segundos) 14 12 10 8 6 4 2 0 0,5 1,0 1,5 Po sicio nal - Grau 6 Tamanho do arquivo (Mbytes) 10 Po sicio nal - Grau Po sicio nal 32 - Grau 6 Po sicio nal 32 - Grau 10 Po sicio nal 32 - B its aleató rio s fixo s - Grau 6 Po sicio nal 32 - B its aleató rio s fixo s - Grau 10 Po sicio nal 32 - B its aleató rio s co m ro tação - Grau 6 Po sicio nal 32 - B its aleató rio s co m ro tação - Grau 10 Po sicio nal 32 - B its aleató rio s distribuído s - Grau 6 Po sicio nal 32 - B its aleató rio s distribuído s - Grau 10 IDEA RSA - 24 bits EMICRO-SE - Aracaju - Nov 15-17 de 2012 73
  74. 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 Encryption11/19/2012 74
  75. 75. Implementação em Software Linguagem C11/19/2012 75
  76. 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 RC511/19/2012 76
  77. 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 ç ã oD X X X XE SA X X XE SS e X X Xr pe n tC X Xa s t-1 2 8M X X XAR ST X X X Xwo fis hM X X X Xa ge n taF r X X Xo gB X X XlowF is hR X XC 5R X X XC 6 11/19/2012 77
  78. 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 Algoritmos11/19/2012 78
  79. 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 segundos11/19/2012 79
  80. 80. CASAD - Criptoprocessador11/19/2012 80
  81. 81. CASAD - Criptoprocessador11/19/2012 81
  82. 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 Algoritmo11/19/2012 82
  83. 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 2611/19/2012 83
  84. 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 s11/19/2012 84
  85. 85. Parte IIIParte Prática – Algoritmos Posicionais Edward David Moreno edwdavid@gmail.com 85
  86. 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. 87. Tabela de Substituição Exercício – Gere as cifras para as palavras: CRIPTOGRAFIA UNIVEM CARAGUATATUBA Decifre as palavras: FRPSXWDGRU DOJRULWPR 87
  88. 88. Soluções: CRIPTOGRAFIA: FULSWRJUDILD UNIVEM: XQLYHP CARAGUATATUBA: FDUDJXDWDWXED FRPSXWDGRU: COMPUTADOR DOJRULWPR: ALGORITMO 88
  89. 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. 90. Com Ajuda de TabelaMatemática Suponha chave = 7; Para cifrar a letra E (4) = 4 + 7 = 11 (L); Computacionalmente é indicado usar a Tabela ASCII 90
  91. 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. 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. 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. 94. Substituição Simples Exemplos utilizando a tabela acima: ALGORITMO = IPMGBAEZG COMPUTADOR = KGZTOEIRGB CARAGUATATUBA = CARAGUATATUBA = KIBIMOIEIEONI 94
  95. 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. 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. 97. Como seria a Decriptografia? Calcular a chave inversa: Chave Original: Chave Inversa: 97
  98. 98. Implementação dadecriptografia#include <stdio.h>#include <stdlib.h>int main(){char chaveI[]={I,R,Z,S,T,E,O,V,A,K,C,X,G, B,U,L,N,D,F,P,Y,W,H,J,Q,M}; char palavra[50]; char cifrado[50]; int i=0; printf("Digite uma palavra: "); scanf("%s", &palavra); while(palavra[i]!=0) cifrado[i] = chaveI[(int)(palavra[i++]-65)]; cifrado[i]=0; printf("Cifrado: %sn", cifrado); system("PAUSE"); return 0;} 98
  99. 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. 100. Cifra de Vigenère Exemplo: CARAGUATATUBA Chave: CRIPTO 100
  101. 101. Exercício Exercício – Gere as cifras para as palavras usando a chave: “CHAVE” CRIPTOGRAFIA UNIVEM CARAGUATATUBA Decifre a palavra: CSGJVKAMJ 101
  102. 102. Soluções CRIPTOGRAFIA: EYIKXQNRVJKH UNIVEM: WUIQIO CARAGUATATUBA: EHRVKWHTVXWIA CSGJVKAMJ: ALGORITMO 102
  103. 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. 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. 105. Introdução a criptoanálise Exercício: Tente decifrar o texto a seguir: 105
  106. 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. 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. 108. Algoritmo Posicional -Exemplo Utilizando a chave 23,26,45,63 temos: 108
  109. 109. Algoritmo Posicional - Criptanalise Ataque por força bruta é inviável: 109
  110. 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. 111. Algoritmo Posicional - CriptanaliseExemplo Considere que um criptanalista obteve conhecimento da posição do caracter, do texto original e do texto criptografado utilizados no exemplo anterior, como mostra a tabela: 111
  112. 112. Algoritmo Posicional - CriptanaliseExemplo Continuação É possível montar um sistema que tem como incógnita a chave: 112
  113. 113. Algoritmo Posicional - CriptanaliseExemplo Continuação Ver solução completa em Resolução.xls 113
  114. 114. Posicional – Função paraCifrar int cifrachar (char pcifrar, int pos, int valores[], int gchave) { int vchave; int i; unsigned long int soma = 0; int aux; Calculo aux = pcifrar; for (i = 1; i <= gchave; i++) da { expressão vchave = valores[i]; soma += vchave * pow(pos,gchave-i+1); } aux = (aux + soma) % 256; Soma do return aux; } resultado 114
  115. 115. Parte IVParte Prática – Algoritmos ConhecidosAutores: Edward Moreno, Fabio Pereira,Rodolfo Chiaramonte Edward David Moreno edwdavid@gmail.com 115
  116. 116. Algoritmo DES Algoritmo Simétrico; Cifra em Blocos; Baseado na Rede de Feistel; 116
  117. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 127. Algoritmo AES - Decifragem M Decriptador C AES Bloco: Bloco:128/192/256 bits 128/192/256 bits K 127
  128. 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. 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 TextoCifrado C = Me mod n KU = {e,n} M = Cd mod n = (Me)d mod n = Med mod n KR = {d,n}TextoPlano Requisitos do Algoritmo • É possível encontrar e, d, n tal que Med = M mod n para todo M < n • É relativamente fácil calcular Me e Cd para todos os valores de M < n • É improvável determinar d dado e, n 129
  130. 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. 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. 132. Algoritmo RSA – Exemplo (Continuação) Cifrar KU = 5,119TextoPlano 195 = 2476099 119 19 66 20807 Decifrar KR = 77,119 Texto Cifrado 66 6677 = 1,27...x10140 119 19 1,06...x10138 Texto Plano 19 132
  133. 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. 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. 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. 136. Análise de Desempenho 20 18 16Tempo (segundos) 14 12 10 8 6 4 2 0 0,5 1,0 1,5 Tamanho do arquivo (Mbytes) P osicio nal - Grau 6 P o sicio nal - Grau 10 P osicio nal 32 - Grau 6 P o sicio nal 32 - Grau 10 P osicio nal 32 - Bits aleató rio s fixo s - Grau 6 P o sicio nal 32 - B its aleató rios fixo s - Grau 10 P osicio nal 32 - Bits aleató rio s co m ro tação - Grau 6 P o sicio nal 32 - B its aleató rios co m ro tação - Grau 10 P osicio nal 32 - Bits aleató rio s distribuído s - Grau 6 P o sicio nal 32 - B its aleató rios distribuído s - Grau 10 IDEA RSA - 24 bits 136
  137. 137. Análise de Desempenho 3 2,5Tempo (segundos) 2 1,5 1 0,5 0 0,5 1,0 1,5 Tamanho do arquivo (Mbytes) P o sicio nal - Grau 6 P o sicio nal - Grau 10 P o sicio nal 32 - Grau 6 P o sicio nal 32 - Grau 10 P o sicio nal 32 - Bits aleatório s fixo s - Grau 6 P o sicio nal 32 - Bits aleatório s fixo s - Grau 10 P o sicio nal 32 - Bits aleatório s co m rotação - Grau 6 P o sicio nal 32 - Bits aleatório s co m rotação - Grau 10 P o sicio nal 32 - Bits aleatório s distribuído s - Grau 6 P o sicio nal 32 - Bits aleatório s distribuído s - Grau 10 IDEA 137
  138. 138. Ferramenta WebCry 138
  139. 139. SICO - Sistema Inteligente deComunicação EMISSOR RECEPTOR GERENTE CONTROLE CONEXÃO R R D CLIENTE E CONEXÃO E C E E(INSEGURA) M SEGURA C R C C I E I E R S P P P I S T T T P O O O O T R R R O 139
  140. 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. 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. 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. 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. 144. Parte VClassificação Moderna de Soluções deSegurança Edward David Moreno edwdavid@gmail.com 144
  145. 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. 146. Algoritmos Criptográficos - Primitivas Digital Signatures Key Exchange Encryption Cryptographic AlgorithmsSimetrics Asimetrics Hash Functions Random Number Generators DES RSA SHA-1 SHA-2 AES (H)ECDSA SHA-3 RC4 IBE (PBC) kecca 146
  147. 147. Algoritmos Criptográficos - Plataformas Cryptographic Algorithms Hardware SoftwareIP ASIC FPGA PC SoC Physical security Security problems(memory attacks) High Performance Low performance Flexibility(FPGAs) Flexibility Parallel processing Sequential processing Efficient use of resources Defficient use of resources High cost ( Asic implementation) Low cost (implementation) 147
  148. 148. Soluções de Segurança em Multicore Core Único Multiprocessador Multicore CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPUDomeika (2008) 148
  149. 149. Soluções de Segurança em Multicore/FPGAs4 Xilinx Microblaze em rede (Kavadias, 2010) 149
  150. 150. Soluções de Segurança em Multicore/Leon-3Arquitetura interna padrão do Leon3 (Gaisler, 1502011)
  151. 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 plataformasmulticore de forma eficiente e escalável;•Criar ferramentas que paralelizem automaticamente aplicações e as executem de formaeficiente em plataformas multicore;•Projetar e avaliar sistemas Multi-core e uso de GPUs em soluções de segurança eprocessamento de imagens que requeiram alto desempenho;•Considerando a nova geração da arquitetura unificada dos hardwares gráficos (GPUs),lançada pela nVidia, que veio tornar capaz a execução de programas genéricos, e queexistem aplicações com alto grau de paralelismo, e que transformam as GPUs emverdadeiros clusters; existe ainda necessidade de estudar e aplicar as GPU em váriasaplicações que requeiram o uso de alto processamento para alto volume de dados;•Construir ferramentas que auxiliem no processo automático do uso eficiente de GPUsem aplicações de alto volume de informações;•Verificar o uso de GPUs em soluções modernas de segurança: IDS e IPS de altodesempenho, em algoritmos criptográficos de desempenho crítico, em algoritmosbiométricos e etc. 151
  152. 152. Consumo de Energia Final da ExecuçãoDetalhes do consumo de energia na execução do algoritmo SHA 152
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×