criptografia em hardware emicro se - nov 15 2012

Post on 05-Jun-2015

857 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Criptografia em Hardware

Minicurso do Evento EMICRO-SEhttp://www.gprufs.org/emicro-se/

Aracaju, 15 de Novembro de 2012

Edward David Morenoedwdavid@gmail.com

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 Morenoedwdavid@gmail.com

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

edwdavid@gmail.com

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

Parte III

Parte Prática – Algoritmos Posicionais

Edward David Morenoedwdavid@gmail.com

85

Cifra de César

Letras na mensagem original substituída por outras deslocadas em um número fixo de posições (chave) no alfabeto;Exemplo � Chave = 3:� Original: R O D O L F O

� Cifrado: U R G R O I R

Este exemplo, com chave 3, constitui na forma original da Cifra de César.

86

Tabela de Substituição

Exercício – Gere as cifras para as palavras:CRIPTOGRAFIA

UNIVEM

CARAGUATATUBA

Decifre as palavras:FRPSXWDGRU

DOJRULWPR

87

Soluções:

CRIPTOGRAFIA: FULSWRJUDILD

UNIVEM: XQLYHP

CARAGUATATUBA: FDUDJXDWDWXED

FRPSXWDGRU: COMPUTADOR

DOJRULWPR: ALGORITMO

88

Outras Chaves

Hoje em dia toda cifra que apresenta uma substituição com deslocamento fixo é chamada Cifra de César;Exemplo � Chave = 10:ALGORITMO: KVQYBSDWY

COMPUTADOR: MYWZEDKNYB

89

Com Ajuda de Tabela Matemática

Suponha chave = 7;Para cifrar a letra E (4) = 4 + 7 = 11 (L);Computacionalmente é indicado usar a Tabela ASCII

90

Implementaçã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 Morenoedwdavid@gmail.com

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

Parte V

Classificação Moderna de Soluções de Segurança

Edward David Morenoedwdavid@gmail.com

144

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

top related