Upload
edward-david-moreno
View
857
Download
0
Embed Size (px)
DESCRIPTION
Minicurso ministrado na EMICRO/SE - Escola Regional de Microeletrônica, Nordeste, na cidade de Aracaju, no dia 15/11/2012
Citation preview
Criptografia em Hardware
Minicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/
Aracaju, 15 de Novembro de 2012
Edward David [email protected]
1
SumárioParte 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ênciasCriptografia em Software e Hardware, 2005Autores:
Edward D. Moreno
Fábio D. Pereira
Rodolfo B. Chiaramonte
3
Outras Referências
CRYPTOGRAPHY AND NETWORK SECURITYPRINCIPLES AND PRACTICEAutor:William Stallings
HANDBOOK OF APPLIED CRYPTOGRAPHYAutores:
A. Menezes, P. van Oorschot, e S. Vanstone.
SEGURANÇA DE DADOSCRIPTOGRAFIA EM REDES DE COMPUTADORAutor: Routo Terada
4
Publicações Springer
Transactions on Computational Science, 2010
– Security in Computing Part II – LNCS 6480Autor: Edward Moreno
Transactions on Computational Science
– Security in Computing – LNCS 5430, 2009Autor: Edward Moreno
Transactions on Computational Science, 2010
– Security in Computing Part I – LNCS 6340
Autor: Edward Moreno
5
People - Criptografia em Hardware
Profa. Ingrid Verbauwhede
Profa. Catherine Gateboys
Prof. C Paar
6
Prof. Ricardo Dahab (UNICAMP)
Prof. Cetin Kaya Koc
Prof. Julio Hernandez (UNICAMP)
Prof. Paulo Barreto (USP)
Prof. Bart Preneel
Grupo COSIC
Computer Security and Industrial Cryptography
Eventos - Criptografia em Hardware
CRYPTO
Computers and Security - Elsevier
CHES
7
Outros
Security - ACM
Outros
SBSEG - Brasil
Computer Security Conference Ranking and Statistic
http://faculty.cs.tamu.edu/guofei/sec_conf_stat.htm
8
Rank1
S&P (Oakland) IEEE Symposium on Security and Privacy
CCS ACM Conference on Computer and Communications Security
Crypto International Cryptology Conference
Eurocrypt European Cryptology Conference
Security Usenix Security Symposium
NDSS ISOC Network and Distributed System Security Symposium
9
Computer Security Conference Ranking and Statistic
Rank 2
ESORICS European Symposium on Research in Computer Security
RAID International Symposium on Recent Advances in Intrusion Detection
ACSAC Annual Computer Security Applications Conference
DSN The International Conference on Dependable Systems and Networks
CSF (CSFW) IEEE Computer Security Foundations Symposium.Supersedes CSFW (Computer Security Foundations Workshop)
TCC Theory of Cryptography Conference
Asiacrypt International Conference on the Theory and Application of Cryptology and Information Security
IMC Internet Measurement Conference
10
Computer Security Conference Ranking and Statistic – Rank 3 (1)
SecureComm IEEE Communications Society/CreateNet Internation Conference on Security and Privacy for Emerging Areas in Communication Networks
DIMVA GI SIG SIDAR Conference on Detection of Intrusions and Malware and 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 SecuritySAC ACM Symposium on Applied ComputingACISP Australasia Conference on Information Security and PrivacyICICS International Conference on Information and Communications SecurityISC Information Security Conference
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
WiSec(WiSe, SASN)
ACM Conference on Wireless Network SecuritySupersedes WiSe (ACM Workshop on Wireless Security) and SASN (ACM 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
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-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 Systems SRUTI USENIX Workshop on Steps to Reducing Unwanted Traffic on the InternetHotSec USENIX Workshop on Hot Topics in SecurityLEET(HotBots,WORM)
USENIX Workshop on Large-scale Exploits and Emergent ThreatsSupersedes HotBots (USENIX Workshop on Hot Topics in Understanding Botnets) and WORM (ACM Workshop on Recurring/Rapid Malcode)
Parte I
Minicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/Aracaju, 15 a 17 de Novembro de 2012
Edward David [email protected]
13
Conceitos
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 umconjunto de métodos e técnicas para cifrar oucodificar informações legíveis por meio de umalgoritmo, convertendo um texto original emum texto ilegível, sendo possível mediante oprocesso inverso recuperar as informaçõesoriginais”
15
Definições
16
Emissor (A) e Receptor (B)Texto Original ou Texto LimpoCifrarDecifrarCriptografia X Criptoanálise = Criptologia
Cifrar DecifrarTextoOriginal
TextoOriginal
TextoCifrado
Algoritmo vs Chave ?
17
Algoritmo
Algoritmo
K
Princípio de Kerckhoffs
Espaço de Chaves
Como Funciona ?
18
Mensagem
Algoritmo de encriptação
Criptograma
Criptograma
Algoritmo de decriptação
Mensagem
Chave
Chave
CigragemCigragem
DecifragemDecifragem
Então Criptografia é ...
19
• 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).
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 ENIGMA -- Máquina de três rotoresMáquina de três rotores
24
Breve HistóricoAlgoritmos Importantes:� 1976 � LUCIFER apresentado pela IBM à NBS
(National Bureal of Standards), que após algumas modificações adota como padrão:� DES (Data Encryption Standard);
� AES (2000)� 1978 � Criado algoritmo de chave pública RSA
(nome derivado das iniciais dos autores –Rivest, Shamir e Adleman);
� 1965 -> ECC, 2008 -> MQQ� SHA-1, 2012 -> SHA-3 (Kecca)
25
Qual a Importância 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
28
Funcionalides que, se presentes, possibilitam restringir determinados riscos de segurança
Classificação:
Serviço de ConfidencialidadeServiço de AutenticaçãoServiço de Integridade
Serviço de Irretratabilidade (não repudiação)Serviço de Disponibilidade
Serviço de Controle de AcessoServiço de Auditoria
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 segundaentidade e depois negar tal autorização.”Handbook of Applied Cryptography (1996).
33
Importante
A criptografia não é o único meio deprover a segurança da informação, éapenas um conjunto de técnicas quedevem ser utilizadas em conjunto comoutras.
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
38
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
Tipos de algoritmos
Simétricos:� Uma mesma chave é utilizada tanto para a
criptografia quanto para a decriptografia;
39
Tipos de algoritmos
Assimétricos:� Possuem duas chaves: uma pública e outra
privada.
40
Algoritmos Simétricos
Vantagens:� Mais rápido;� Bom nível de segurança;
Desvantagens:� Única chave compartilhada pelo emissor e receptor;� Como distribuir a chave ?� Exposição da chave compromete todas as
mensagens
41
Algoritmos AssimétricosVantagens:� Duas chaves: uma para criptografia e outra
para a decriptografia;� Facilita a distribuição de chaves;
Desvantagens:� Velocidade de cifragem e decifragem;� Segurança baseada em problemas matemáticos
complexos.� Dificuldade de implementação em plataformas
com restrições42
Principais Algoritmos Simétricos
43
Nome Tipo Tam. chave Tam. bloco
DES bloco 56 64
Triple 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, 256
MARS bloco variável 128RC6 bloco variável 128Serpent bloco variável 128Twofish bloco 128,192,256 128
Principais Algoritmos Assimétricos
44
– 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
Propriedade da Assinatura Digital
45
Verificar o Autor e a data/hora da assinaturaAutenticar o conteúdo originalA assinatura deve poder ser verificável por terceiros (resolver disputas)
Direta� Envolve somente X e Y� Segurança está na chave privada de X� Selo de Tempo
Arbitrada� X -> A -> Y
Tipos
Requisitos da Assinatura Digital
46
Depender 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 da assinatura
Assinatura Digital ArbitradaUsando Criptografia Simétrica
47
(1) X → A: M || EKXA[IDX || H(M)]
(2) A → Y: EKAY[IDX || M || EKXA
[IDX || H(M)] || T]
(1) X → A: IDX || EKXY[M] || EKXA
[IDX || H(EKXY[M])]
(2) A → Y: EKAY[IDX || EKXY
[M] || EKXA[IDX || H(EKXY
[M] )] || T]
(Árbitro não vê a mensagem)
(Árbitro vê a mensagem)
Assinatura Digital ArbitradaUsando Criptografia Assimétrica
48
(1) X → A: IDX || EKRX[IDX || EKUY
(EKRX[M])]
(2) A → Y: EKRA[IDX || EKUY
[EKRX[M]] || T]
(Árbitro não vê a mensagem)
RSA - Assinatura Digital
49
M
H
| |
EKRa[H(M)]
D
KUa
E
KRa
H
CompararM
Principais Algoritmos Hashing
50
Algoritmo de Hash Compr. Hash kbytes/s
Abreast 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)
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 - TEMPEST51
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 - TEMPEST52
Funções
São utilizadas para denotar os algoritmos criptográficos de maneira formal;Exemplos:� fk(x) = y; � f-1
k(y) = x;� k é a chave, x o texto plano e y o texto cifrado;� fk(x) indica a criptografia e f-1
k(y) indica que o algoritmo inverso está sendo utilizado (decriptografia)
53
Esquema Geral
fk(x)=y fk-1(y)=x
Chave K
Legível
x
Legível
x
Chave K
Linha de
comunicação
Ilegível
y
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-1
k(y) = y - k;
Exemplo:� y = f3(2) = 2 + 3 = 5; � x = f-1
3(5) = 5 – 3 = 2;
Tabela de Caracteres- A – B – C – D – E
0 – 1 – 2 – 3 – 4 - 5
56
Parte II
57
Exemplo de AlgoritmosExemplo de AlgoritmosCriptográficosCriptográficosem Hardware (VHDL e em Hardware (VHDL e FPGAsFPGAs) ) e Software (C)e Software (C)
Algoritmo PosicionalAlgoritmo PosicionalDESDESIDEAIDEARSARSAAESAESRC5RC5
Autores: Edward David Moreno, Fabio Dacencio Pereira, Rodolfo Chiaramonte
EMICRO-SE - Aracaju - Nov 15-17 de 2012 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 umvalor fixo aos valores das letras.
A chave pode ser facilmente descobertaatravés da tentativa de todas aspossibilidades ou teste de freqüência dasletras (ataque por só-texto-ilegível).
EMICRO-SE - Aracaju - Nov 15-17 de 2012 59
Algoritmo PosicionalO algoritmo se baseia no algoritmo Cifra
de César inserindo uma função que trabalhacom a posição do caracter e somando seuresultado ao valor da letra (e não um valorfixo como no algoritmo Cifra de César).
Exemplo de Posicional - Grau 3
EMICRO-SE - Aracaju - Nov 15-17 de 2012 60
Algoritmo Posicional
Para quebrar o algoritmo posicional, ouseja, obter a chave, é necessário um ataquemais elaborado: o ataque por texto legívelconhecido.
Nesse ataque, é necessário ter em mãosum texto legível o seu correspondentecriptografado e calcular a chave através daresolução de um sistema.
Um ataque testando todas as chaves éinviável.
EMICRO-SE - Aracaju - Nov 15-17 de 2012 61
Algoritmo PosicionalForam 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 emque bits aleatórios são acrescidos no ultimobloco, no entanto, em uma delas o bloco é fixo eem outra o bloco é rotacionado.
EMICRO-SE - Aracaju - Nov 15-17 de 2012 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 63
Implementação do algoritmo POSICIONAL
O algoritmo posicional foi implementadoinicialmente em linguagem C, e posteriormente emhardware utilizando a linguagem VHDL.
A implementação em hardware obteve umdesempenho parecido com o da implementação emsoftware, entretanto, é possível obter umdesempenho muito melhor em hardware atravésde uma implementação paralela.
EMICRO-SE - Aracaju - Nov 15-17 de 2012 64
Implementação do algoritmo POSICIONAL
Uma simulação de execução do algoritmo em Hardware
EMICRO-SE - Aracaju - Nov 15-17 de 2012 65
Comparação de DesempenhoSoftware x Hardware
Uma comparação de desempenho das implementações em software e hardware são
apresentadas a seguir:
0
2
4
6
8
10
1 3 5 7 9
0,5Mb 1,0Mb 1,5Mb
Grau da função posicional
Tempo (ms)
Implementaçãoem Hardware
Implementaçãoem Software
0
2
4
6
8
1 2 3 4 5 6 7 8 9 10
Grau da função posicional
0,5Mb 1,0Mb 1,5MbTempo (segundos)
EMICRO-SE - Aracaju - Nov 15-17 de 2012 66
Comparação de desempenho Comparação de desempenho -- várias versões várias versões do Posicional, IDEA e RSAdo Posicional, IDEA e RSA
0
2
4
6
8
10
12
14
16
18
20
0,5 1,0 1,5Tamanho do arquivo (Mbytes)
Te
mp
o (
se
gu
nd
os
)
Posicional - Grau 6 Posicional - Grau 10
Posicional 32 - Grau 6 Posicional 32 - Grau 10
Posicional 32 - B its aleatórios fixos - Grau 6 Posicional 32 - B its aleatórios fixos - Grau 10
Posicional 32 - B its aleatórios com ro tação - Grau 6 Posicional 32 - B its aleatórios com ro tação - Grau 10
Posicional 32 - B its aleatórios distribuídos - Grau 6 Posicional 32 - B its aleatórios distribuídos - Grau 10
IDEA RSA - 24 bits
EMICRO-SE - Aracaju - Nov 15-17 de 2012 67
Principais PlataformasPrincipais Plataformas
Algoritmos de criptografia
Processadores
Hardware
Clássico EspecíficosAmbientes
ASIC FPGAs Intel, RISC Embedded Systems
DSP, Smart Card, etc
Software
Reconfigurável
EMICRO-SE - Aracaju - Nov 15-17 de 2012 68
Selecionando uma PlataformaSelecionando 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 - Agilidade Algoritmos
- Segurança Física
Qual é a melhor PlataformaDepende: Necessidades da
Aplicação
EMICRO-SE - Aracaju - Nov 15-17 de 2012 69
Características das PlataformasCaracterísticas das Plataformas
Comparação HW/SW e FPGAs
Característica BAIXOALTO
DesempenhoSW
Custo Desenvolvimento
Custo por Unidade
Flexibilidade ASIC SW
FPGAs ASIC
FPGAsSW ASIC
ASIC SW FPGAs
FPGAs
EMICRO-SE - Aracaju - Nov 15-17 de 2012 70
Criptografia em FPGAsCriptografia 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 71
Exemplo Atomicidade (AES)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 72
Desempenho AES Desempenho AES -- FPGAsFPGAs
RC6 2.40 10856
Serpent 4.86 9004
Twofish 1.59 9345
Algoritmo Throughput (Gbit/s) Slices
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 73
0
2
4
6
8
10
12
14
16
18
20
0,5 1,0 1,5Tamanho do arquivo (Mbytes)
Te
mp
o (
se
gu
nd
os
)
Posicional - Grau 6 Posicional - Grau 10
Posicional 32 - Grau 6 Posicional 32 - Grau 10
Posicional 32 - B its aleatórios fixos - Grau 6 Posicional 32 - B its aleatórios fixos - Grau 10
Posicional 32 - B its aleatórios com ro tação - Grau 6 Posicional 32 - B its aleatórios com ro tação - Grau 10
Posicional 32 - B its aleatórios distribuídos - Grau 6 Posicional 32 - B its aleatórios distribuídos - Grau 10
IDEA RSA - 24 bits
Desempenho vs Segurança ?Desempenho vs Segurança ?
11/19/2012 74
Principais Algoritmos SimétricosPrincipais Algoritmos Simétricos
Algoritmo Projetista Key (bits) Bloco (bytes) Aplicação
AES J. Daemen, V. Rijmen 128, 192, 256 16 DMSEnvoyBlowfish Bruce Schneier <= 448 8 Norton Utilities3DES D. Coppersmith 168 8 SSL, SSHIDEA X Lai, J. Massey 128 8 PGP, SSH, SSLRC6 R. Rivest, M.
Robshaw, et al.128, 192, 256 16 AES candidato
STREAM KEYRC4 R. Rivest Mínimo 8, máximo 2048 em
múltiplo de 8 bitsDefault: 128
SSL
SEAL P. Rogaway Variável, Default: 160 Disk Encryption
11/19/2012 75
Implementação em SoftwareImplementação em SoftwareLinguagem CLinguagem C
11/19/2012 76
Implementação em SoftwareImplementação em SoftwareLinguagem CLinguagem C
Desempenho em software
0,94 0,880,14
3,93,35
0,7
5,77
1,4
7,09
012345678
DES AES RC5
Se
gu
nd
os
1 MB
5 MB
10 MB
11/19/2012 77
Operações nos Operações nos AlgAlg SimétricosSimétricosX O R D e s l o c a m e n t o / R
o t a ç ã oS - B O X P e r m u t a ç ã o
DES
X X X X
AES
X X X
S er pe n
t
X X X
Ca st -
1 28
X X
MAR
S
X X X
Two fi s
h
X X X X
Ma ge nt a
X X X X
F ro g
X X X
Bl o
wF ish
X X X
RC5
X X
RC6
X X X
11/19/2012 78
Implementação em Hardware Implementação em Hardware FPGAsFPGAs
19,5528,789
21,05
0
10
20
30
Ns
DES AES RC5
Algoritmos
Tempo de propagação de cada
algoritmo em hardware
20,46
55,57
19,00
0,00
20,00
40,00
60,00
MB/seg
DES AES RC5
Algoritmos
Taxa de texto cifrado
por segundo
11/19/2012 79
Comparação do DESComparação do DES
Desempenho Temporal
400
25 10
100200300400500
1 s 1 s 1 s
Hardware c/Pipeline
Hardware s/Pipeline
Software em C
Tempo em segundos
Meg
a B
yte
s C
ifra
do
s
11/19/2012 80
CASAD CASAD -- CriptoprocessadorCriptoprocessador
11/19/2012 81
CASAD CASAD -- CriptoprocessadorCriptoprocessador
11/19/2012 82
CASAD CASAD -- CriptoprocessadorCriptoprocessador
Desempenho dos algoritmos DES e RC5
1
7,25
17,5
2625
19
0
5
10
15
20
25
30
DES RC5
Algoritmo
MB
/s
PPG
Cripto
HW
11/19/2012 83
CASAD CASAD –– CriptoprocessadorCriptoprocessador --Algoritmo DESAlgoritmo DES
Criptoprocessadores Nº deCiclos
MHz MB/s
Hifn BCM5802 -- 33 100Hifn 790x 22 50 143OpenCores 16 155 620SecuCore DES 5 166 1999VLIW 16 122 26
11/19/2012 84
CASAD CASAD -- CriptoprocessadorCriptoprocessadorAlgoritmo DESAlgoritmo DES
Proc. Freqüência Memória Texto claro Tempo de cifragem
P4 1.6 GHz 256 MB 1 MB 0,99 sP3 1.0 GHz 256 MB 1 MB 1,05 sP3 800 MHz 128 MB 1 MB 1,19 sP3 700 MHz 128 MB 1 MB 1,26 sP3 500 MHz 128 MB 1 MB 1,75 sK6 500 MHz 64 MB 1 MB 2,15 sVLIW 122 MHz -- 1 MB 0,038 s
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çãoEscreva 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: %s\n", 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 =� COMPUTADOR =� CARAGUATATUBA =
Exemplos utilizando a tabela acima:� ALGORITMO = IPMGBAEZG� COMPUTADOR = KGZTOEIRGB� 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: %s\n", 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: %s\n", cifrado);
system("PAUSE");
return 0;}
98
Cifra de VigenèreCada 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: CARAGUATATUBAChave: 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;
ler chave;
para i de 1 até tamanho_palavra
cifrado[i]=palavra[i]+chave[i mod tam];
mostrar cifrado;
Fim.
tam = tamanho da chave
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: %s\n", 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
Ataque por força bruta é inviável:
Algoritmo Posicional - Criptanalise
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 obteveconhecimento da posição do caracter,do texto original e do textocriptografado utilizados no exemploanterior, como mostra a tabela:
111
É possível montar um sistema que tem como incógnita a chave:
Algoritmo Posicional - Criptanalise Exemplo Continuação
112
Ver solução completa em Resolução.xls
Algoritmo Posicional - Criptanalise Exemplo Continuação
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;aux = pcifrar;for (i = 1; i <= gchave; i++){
vchave = valores[i];soma += vchave * pow(pos,gchave-i+1);
}aux = (aux + soma) % 256;
return aux;}
Calculo da expressão
Soma do resultado
114
Parte IV
Parte Prática – Algoritmos Conhecidos
Autores: Edward Moreno, Fabio Pereira, Rodolfo Chiaramonte
Edward David [email protected]
115
Algoritmo DES
Algoritmo Simétrico;Cifra em Blocos;Baseado na Rede de Feistel;
116
Algoritmo DESEsquerdaj Direitaj
Esquerdaj+1 Direitaj+1
XOR fKj(Dj)
Kj
Esquerdaj+2 Direitaj+2
XOR fKj+1(Dj+1)
Kj+1
117
Algoritmo DES
Perm utação + Expansão
XOR
S-BOX
Perm utação P
Kj
XOR
Esquerdaj D ire itaj
Esquerdaj+1 Direita j+1
118
Algoritmo DES - Permutação E(33 milhões por segundo)
x = !((0x80000000 & entrada)==0); // bit 32s0 += x << 0;s1 += x << 46;x = !((0x40000000 & entrada)==0); // bit 31s1 += x << 45;x = !((0x20000000 & entrada)==0); // bit 30s1 += x << 44;...x = !((0x00000004 & entrada)==0); // bit 3s0 += x << 3;x = !((0x00000002 & entrada)==0); // bit 2s0 += x << 2;x = !((0x00000001 & entrada)==0); // bit 1s0 += 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
125
• 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
Algoritmo AES - Cifragem
126
M EncriptadorAES
C
Bloco:
128/192/256 bitsK
Bloco:
128/192/256 bits
Chave
128/192/256 bits
Algoritmo AES - Decifragem
127
M DecriptadorAES
C
Bloco:
128/192/256 bitsK
Bloco:
128/192/256 bits
Algoritmo RSAAlgoritmo 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
chave128
Ron Rivest, Adi Shamir e Len Adleman (1978)
C = Me mod nM = Cd mod n = (Me)d mod n = Med mod n
Blocos com valores binários menores que nTamanho do Bloco é k bits, onde 2k < n ≤ 2k+1
KU = {e,n}KR = {d,n}
• É 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
Requisitos do Algoritmo
TextoPlano
TextoCifrado
129
Algoritmo RSA
Selecione p,q p e q primosCalcular n = p x qCalcular φφφφ(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}
Geração da Chave
Texto Plano: M < nTexto Cifrado: C = Me (mod n)
Cifrar
Texto Plano: CTexto Cifrado: M = Cd (mod n)
Decifrar
130
Algoritmo RSA - Exemplo
Selecionar dois números primos: p = 7 e q = 17Calcular n = pq = 7 x 17 = 119Calcular φ(n) = (p-1)(q-1) = 96Selecionar e tal que e é relativamente primo a φ(n) e menor que φ(n); e = 5Determinar d tal que de = 1 mod 96 e d < 96; d = 77, pois 77 x 5 = 385 = 4 x 96 + 1KU = {5,119} e KR = {77,119}
131
Algoritmo RSA – Exemplo (Continuação)
195 = 2476099 1192080766
KU = 5,119
TextoPlano
19
6677 = 1,27...x10140 1191,06...x1013819
KR = 77,119
Texto Plano 19
Texto Cifrado 66
Cifrar
Decifrar
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 - Passosvoid 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
0
2
4
6
8
10
12
14
16
18
20
0,5 1,0 1,5Tamanho do arquivo (Mbytes)
Te
mp
o (
se
gu
nd
os
)
Posicional - Grau 6 Posicional - Grau 10
Posicional 32 - Grau 6 Posicional 32 - Grau 10
Posicional 32 - Bits aleatórios fixos - Grau 6 Posicional 32 - B its aleatórios fixos - Grau 10
Posicional 32 - Bits aleatórios com ro tação - Grau 6 Posicional 32 - B its aleatórios com ro tação - Grau 10
Posicional 32 - Bits aleatórios distribuídos - Grau 6 Posicional 32 - B its aleatórios distribuídos - Grau 10
IDEA RSA - 24 bits
136
Análise de Desempenho
0
0,5
1
1,5
2
2,5
3
0,5 1,0 1,5Tamanho do arquivo (Mbytes)
Te
mp
o (
se
gu
nd
os
)
Posicional - Grau 6 Posicional - Grau 10
Posicional 32 - Grau 6 Posicional 32 - Grau 10
Posicional 32 - Bits aleatórios fixos - Grau 6 Posicional 32 - Bits aleatórios fixos - Grau 10
Posicional 32 - Bits aleatórios com rotação - Grau 6 Posicional 32 - Bits aleatórios com rotação - Grau 10
Posicional 32 - Bits aleatórios distribuídos - Grau 6 Posicional 32 - Bits aleatórios distribuídos - Grau 10
IDEA
137
Ferramenta WebCry
138
SICO - Sistema Inteligente de Comunicação
RECEPTOR
CRIPTO
EMISSOR
GERENTE
RECEPTOR
DECRIPTO
CONTROLE
CONEXÃOSEGURA
CONEXÃOCLIENTE
(INSEGURA)
EMISSOR RECEPTOR
139
Emissor
Receptor - abre uma conexão com um clienteutilizando Sockets TCP e fica a espera dedados para criptografar. Assim que os dadoschegam a Thread coloca-os no buffer derecepção para serem criptografados.Cripto - retira os dados do buffer de recepçãoe realiza a criptografia. Após a criptografia osdados são colocados em um buffer deemissã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 amesma função da Thread Receptor domódulo anterior, armazenando os dados quechegam em um buffer compartilhado.A Thread Decripto realizará a decriptografiados dados e irá enviá-los para uma saída aser 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
Classificação Moderna de Soluções de Segurança (Srivaths 2005)
145
Aplicações
WEB browserVPN DRM Secure Storage
Protocolos de Segurança
Protocolos de Comunicação Segura
SSL/TLS, WTLS, IPSEC, S/MIME
Protocolos DRM
Autenticação Biométrica (fingerprint, face, voice)
Primitivas Criptográficas
Criptografia Simétrica (RC4, RC5, DES, AES,
entre outros)
Hash(Sha-1,
MD5), MQQ,
SHA-3
Criptografia Chave Pública (RSA, ECC,
HECC)
Assinatura Digital (DAS,
ecDSA)
KeyExchange
(DH,ecDH)
Integração Serviços
Segurança
Algoritmos Criptográficos - Primitivas
146
Cryptographic Algorithms
Simetrics Asimetrics Hash Functions
DES
AES
RC4
RSA
IBE (PBC)
SHA-1
RandomNumber
Generators
Digital SignaturesKey Exchange
Encryption
SHA-2
SHA-3
(H)ECDSA
kecca
Algoritmos Criptográficos - Plataformas
147
Cryptographic Algorithms
Hardware Software
ASIC FPGA PC SoC
� Physical security� High Performance� Flexibility(FPGAs)� Parallel processing� Efficient use of resources� High cost ( Asic implementation)
� Security problems(memory attacks)� Low performance� Flexibility� Sequential processing� Defficient use of resources� Low cost (implementation)
IP
Soluções de Segurança em Multicore
148
Core Único
CPU
Multiprocessador
CPU CPU
Multicore
CPU CPU
CPU CPU
CPU CPU
CPU CPU
Domeika (2008)
Soluções de Segurança em Multicore/FPGAs
1494 Xilinx Microblaze em rede (Kavadias, 2010)
Soluções de Segurança em Multicore/Leon-3
150Arquitetura interna padrão do Leon3 (Gaisler, 2011)
Multicore and GPUs – Open Researches
151
•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.
Consumo de Energia
152
Final daExecução
Detalhes do consumo de energia na execução do algoritmo SHA