152
Criptografia em Hardware Minicurso do Evento EMICRO-SE http://www.gprufs.org/emicro-se/ Aracaju, 15 de Novembro de 2012 Edward David Moreno [email protected] 1

Criptografia em hardware emicro se - nov 15 2012

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

Page 1: Criptografia em hardware   emicro se - nov 15 2012

Criptografia em Hardware

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

Aracaju, 15 de Novembro de 2012

Edward David [email protected]

1

Page 2: Criptografia em hardware   emicro se - nov 15 2012

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

Page 3: Criptografia em hardware   emicro se - nov 15 2012

ReferênciasCriptografia em Software e Hardware, 2005Autores:

Edward D. Moreno

Fábio D. Pereira

Rodolfo B. Chiaramonte

3

Page 4: Criptografia em hardware   emicro se - nov 15 2012

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

Page 5: Criptografia em hardware   emicro se - nov 15 2012

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

Page 6: Criptografia em hardware   emicro se - nov 15 2012

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

Page 7: Criptografia em hardware   emicro se - nov 15 2012

Eventos - Criptografia em Hardware

CRYPTO

Computers and Security - Elsevier

CHES

7

Outros

Security - ACM

Outros

SBSEG - Brasil

Page 8: Criptografia em hardware   emicro se - nov 15 2012

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

Page 9: Criptografia em hardware   emicro se - nov 15 2012

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

Page 10: Criptografia em hardware   emicro se - nov 15 2012

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

Page 11: Criptografia em hardware   emicro se - nov 15 2012

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

Page 12: Criptografia em hardware   emicro se - nov 15 2012

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)

Page 13: Criptografia em hardware   emicro se - nov 15 2012

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

Page 14: Criptografia em hardware   emicro se - nov 15 2012

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

Page 15: Criptografia em hardware   emicro se - nov 15 2012

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

Page 16: Criptografia em hardware   emicro se - nov 15 2012

Definições

16

Emissor (A) e Receptor (B)Texto Original ou Texto LimpoCifrarDecifrarCriptografia X Criptoanálise = Criptologia

Cifrar DecifrarTextoOriginal

TextoOriginal

TextoCifrado

Page 17: Criptografia em hardware   emicro se - nov 15 2012

Algoritmo vs Chave ?

17

Algoritmo

Algoritmo

K

Princípio de Kerckhoffs

Espaço de Chaves

Page 18: Criptografia em hardware   emicro se - nov 15 2012

Como Funciona ?

18

Mensagem

Algoritmo de encriptação

Criptograma

Criptograma

Algoritmo de decriptação

Mensagem

Chave

Chave

CigragemCigragem

DecifragemDecifragem

Page 19: Criptografia em hardware   emicro se - nov 15 2012

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).

Page 20: Criptografia em hardware   emicro se - nov 15 2012

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

Page 21: Criptografia em hardware   emicro se - nov 15 2012

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

Page 22: Criptografia em hardware   emicro se - nov 15 2012

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

Page 23: Criptografia em hardware   emicro se - nov 15 2012

Breve Histórico

Máquina ENIGMA

23

Page 24: Criptografia em hardware   emicro se - nov 15 2012

ENIGMA ENIGMA -- Máquina de três rotoresMáquina de três rotores

24

Page 25: Criptografia em hardware   emicro se - nov 15 2012

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

Page 26: Criptografia em hardware   emicro se - nov 15 2012

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

Page 27: Criptografia em hardware   emicro se - nov 15 2012

Onde é utilizada ?

Internet:� Home Banking;� Comércio Eletrônico;� E-mail;

Sistemas Distribuídos;Bancos de Dados.

27

Page 28: Criptografia em hardware   emicro se - nov 15 2012

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

Page 29: Criptografia em hardware   emicro se - nov 15 2012

Objetivos da Criptografia

(1) Confidencialidade;(2) Integridade dos Dados;(3) Autenticação;(4) Não-Repúdio.

29

Page 30: Criptografia em hardware   emicro se - nov 15 2012

(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

Page 31: Criptografia em hardware   emicro se - nov 15 2012

(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

Page 32: Criptografia em hardware   emicro se - nov 15 2012

(3) Autenticação

Vários Tipos:� Usuário;� Remetente;� Destinatário;� Atualidade.

32

Page 33: Criptografia em hardware   emicro se - nov 15 2012

(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

Page 34: Criptografia em hardware   emicro se - nov 15 2012

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

Page 35: Criptografia em hardware   emicro se - nov 15 2012

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

Page 36: Criptografia em hardware   emicro se - nov 15 2012

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

Page 37: Criptografia em hardware   emicro se - nov 15 2012

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

Page 38: Criptografia em hardware   emicro se - nov 15 2012

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

Page 39: Criptografia em hardware   emicro se - nov 15 2012

Tipos de algoritmos

Simétricos:� Uma mesma chave é utilizada tanto para a

criptografia quanto para a decriptografia;

39

Page 40: Criptografia em hardware   emicro se - nov 15 2012

Tipos de algoritmos

Assimétricos:� Possuem duas chaves: uma pública e outra

privada.

40

Page 41: Criptografia em hardware   emicro se - nov 15 2012

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

Page 42: Criptografia em hardware   emicro se - nov 15 2012

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

Page 43: Criptografia em hardware   emicro se - nov 15 2012

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

Page 44: Criptografia em hardware   emicro se - nov 15 2012

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

Page 45: Criptografia em hardware   emicro se - nov 15 2012

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

Page 46: Criptografia em hardware   emicro se - nov 15 2012

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

Page 47: Criptografia em hardware   emicro se - nov 15 2012

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)

Page 48: Criptografia em hardware   emicro se - nov 15 2012

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)

Page 49: Criptografia em hardware   emicro se - nov 15 2012

RSA - Assinatura Digital

49

M

H

| |

EKRa[H(M)]

D

KUa

E

KRa

H

CompararM

Page 50: Criptografia em hardware   emicro se - nov 15 2012

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)

Page 51: Criptografia em hardware   emicro se - nov 15 2012

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

Page 52: Criptografia em hardware   emicro se - nov 15 2012

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

Page 53: Criptografia em hardware   emicro se - nov 15 2012

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

Page 54: Criptografia em hardware   emicro se - nov 15 2012

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

Page 55: Criptografia em hardware   emicro se - nov 15 2012

Exercício

Baseado no formalismo de funções, tente imaginar como seria um algoritmo de criptografia simples.

55

Page 56: Criptografia em hardware   emicro se - nov 15 2012

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

Page 57: Criptografia em hardware   emicro se - nov 15 2012

Parte II

[email protected]

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

Page 58: Criptografia em hardware   emicro se - nov 15 2012

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).

Page 59: Criptografia em hardware   emicro se - nov 15 2012

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

Page 60: Criptografia em hardware   emicro se - nov 15 2012

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.

Page 61: Criptografia em hardware   emicro se - nov 15 2012

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.

Page 62: Criptografia em hardware   emicro se - nov 15 2012

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:

Page 63: Criptografia em hardware   emicro se - nov 15 2012

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.

Page 64: Criptografia em hardware   emicro se - nov 15 2012

EMICRO-SE - Aracaju - Nov 15-17 de 2012 64

Implementação do algoritmo POSICIONAL

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

Page 65: Criptografia em hardware   emicro se - nov 15 2012

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)

Page 66: Criptografia em hardware   emicro se - nov 15 2012

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

Page 67: Criptografia em hardware   emicro se - nov 15 2012

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

Page 68: Criptografia em hardware   emicro se - nov 15 2012

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

Page 69: Criptografia em hardware   emicro se - nov 15 2012

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

Page 70: Criptografia em hardware   emicro se - nov 15 2012

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

Page 71: Criptografia em hardware   emicro se - nov 15 2012

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 * * * *

Page 72: Criptografia em hardware   emicro se - nov 15 2012

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.

Page 73: Criptografia em hardware   emicro se - nov 15 2012

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 ?

Page 74: Criptografia em hardware   emicro se - nov 15 2012

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

Page 75: Criptografia em hardware   emicro se - nov 15 2012

11/19/2012 75

Implementação em SoftwareImplementação em SoftwareLinguagem CLinguagem C

Page 76: Criptografia em hardware   emicro se - nov 15 2012

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

Page 77: Criptografia em hardware   emicro se - nov 15 2012

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

Page 78: Criptografia em hardware   emicro se - nov 15 2012

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

Page 79: Criptografia em hardware   emicro se - nov 15 2012

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

Page 80: Criptografia em hardware   emicro se - nov 15 2012

11/19/2012 80

CASAD CASAD -- CriptoprocessadorCriptoprocessador

Page 81: Criptografia em hardware   emicro se - nov 15 2012

11/19/2012 81

CASAD CASAD -- CriptoprocessadorCriptoprocessador

Page 82: Criptografia em hardware   emicro se - nov 15 2012

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

Page 83: Criptografia em hardware   emicro se - nov 15 2012

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

Page 84: Criptografia em hardware   emicro se - nov 15 2012

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

Page 85: Criptografia em hardware   emicro se - nov 15 2012

Parte III

Parte Prática – Algoritmos Posicionais

Edward David [email protected]

85

Page 86: Criptografia em hardware   emicro se - nov 15 2012

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

Page 87: Criptografia em hardware   emicro se - nov 15 2012

Tabela de Substituição

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

UNIVEM

CARAGUATATUBA

Decifre as palavras:FRPSXWDGRU

DOJRULWPR

87

Page 88: Criptografia em hardware   emicro se - nov 15 2012

Soluções:

CRIPTOGRAFIA: FULSWRJUDILD

UNIVEM: XQLYHP

CARAGUATATUBA: FDUDJXDWDWXED

FRPSXWDGRU: COMPUTADOR

DOJRULWPR: ALGORITMO

88

Page 89: Criptografia em hardware   emicro se - nov 15 2012

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

Page 90: Criptografia em hardware   emicro se - nov 15 2012

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

Page 91: Criptografia em hardware   emicro se - nov 15 2012

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

Page 92: Criptografia em hardware   emicro se - nov 15 2012

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

Page 93: Criptografia em hardware   emicro se - nov 15 2012

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

Page 94: Criptografia em hardware   emicro se - nov 15 2012

Substituição Simples

Exemplos utilizando a tabela acima:� ALGORITMO =� COMPUTADOR =� CARAGUATATUBA =

Exemplos utilizando a tabela acima:� ALGORITMO = IPMGBAEZG� COMPUTADOR = KGZTOEIRGB� CARAGUATATUBA = KIBIMOIEIEONI

94

Page 95: Criptografia em hardware   emicro se - nov 15 2012

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

Page 96: Criptografia em hardware   emicro se - nov 15 2012

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

Page 97: Criptografia em hardware   emicro se - nov 15 2012

Como seria a Decriptografia?Calcular a chave inversa:� Chave Original:

� Chave Inversa:

97

Page 98: Criptografia em hardware   emicro se - nov 15 2012

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

Page 99: Criptografia em hardware   emicro se - nov 15 2012

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

Page 100: Criptografia em hardware   emicro se - nov 15 2012

Cifra de Vigenère

Exemplo: CARAGUATATUBAChave: CRIPTO

100

Page 101: Criptografia em hardware   emicro se - nov 15 2012

Exercício

Exercício – Gere as cifras para as palavras usando a chave: “CHAVE”CRIPTOGRAFIA

UNIVEM

CARAGUATATUBA

Decifre a palavra:CSGJVKAMJ

101

Page 102: Criptografia em hardware   emicro se - nov 15 2012

Soluções

CRIPTOGRAFIA: EYIKXQNRVJKH

UNIVEM: WUIQIO

CARAGUATATUBA: EHRVKWHTVXWIA

CSGJVKAMJ: ALGORITMO

102

Page 103: Criptografia em hardware   emicro se - nov 15 2012

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

Page 104: Criptografia em hardware   emicro se - nov 15 2012

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

Page 105: Criptografia em hardware   emicro se - nov 15 2012

Introdução a criptoanálise

Exercício:� Tente decifrar o texto a seguir:

105

Page 106: Criptografia em hardware   emicro se - nov 15 2012

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

Page 107: Criptografia em hardware   emicro se - nov 15 2012

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

Page 108: Criptografia em hardware   emicro se - nov 15 2012

Algoritmo Posicional -Exemplo

Utilizando a chave 23,26,45,63 temos:

108

Page 109: Criptografia em hardware   emicro se - nov 15 2012

Ataque por força bruta é inviável:

Algoritmo Posicional - Criptanalise

109

Page 110: Criptografia em hardware   emicro se - nov 15 2012

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

Page 111: Criptografia em hardware   emicro se - nov 15 2012

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

Page 112: Criptografia em hardware   emicro se - nov 15 2012

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

Algoritmo Posicional - Criptanalise Exemplo Continuação

112

Page 113: Criptografia em hardware   emicro se - nov 15 2012

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

Algoritmo Posicional - Criptanalise Exemplo Continuação

113

Page 114: Criptografia em hardware   emicro se - nov 15 2012

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

Page 115: Criptografia em hardware   emicro se - nov 15 2012

Parte IV

Parte Prática – Algoritmos Conhecidos

Autores: Edward Moreno, Fabio Pereira, Rodolfo Chiaramonte

Edward David [email protected]

115

Page 116: Criptografia em hardware   emicro se - nov 15 2012

Algoritmo DES

Algoritmo Simétrico;Cifra em Blocos;Baseado na Rede de Feistel;

116

Page 117: Criptografia em hardware   emicro se - nov 15 2012

Algoritmo DESEsquerdaj Direitaj

Esquerdaj+1 Direitaj+1

XOR fKj(Dj)

Kj

Esquerdaj+2 Direitaj+2

XOR fKj+1(Dj+1)

Kj+1

117

Page 118: Criptografia em hardware   emicro se - nov 15 2012

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

Page 119: Criptografia em hardware   emicro se - nov 15 2012

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

Page 120: Criptografia em hardware   emicro se - nov 15 2012

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

Page 121: Criptografia em hardware   emicro se - nov 15 2012

Algoritmo IDEA

Algoritmo Simétrico;Trabalha com blocos de 64 bits;Chave de 128 bits;Estrutura semelhante ao DES;Oito iterações.

121

Page 122: Criptografia em hardware   emicro se - nov 15 2012

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

Page 123: Criptografia em hardware   emicro se - nov 15 2012

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

Page 124: Criptografia em hardware   emicro se - nov 15 2012

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

Page 125: Criptografia em hardware   emicro se - nov 15 2012

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

Page 126: Criptografia em hardware   emicro se - nov 15 2012

Algoritmo AES - Cifragem

126

M EncriptadorAES

C

Bloco:

128/192/256 bitsK

Bloco:

128/192/256 bits

Chave

128/192/256 bits

Page 127: Criptografia em hardware   emicro se - nov 15 2012

Algoritmo AES - Decifragem

127

M DecriptadorAES

C

Bloco:

128/192/256 bitsK

Bloco:

128/192/256 bits

Page 128: Criptografia em hardware   emicro se - nov 15 2012

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

Page 129: Criptografia em hardware   emicro se - nov 15 2012

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

Page 130: Criptografia em hardware   emicro se - nov 15 2012

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

Page 131: Criptografia em hardware   emicro se - nov 15 2012

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

Page 132: Criptografia em hardware   emicro se - nov 15 2012

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

Page 133: Criptografia em hardware   emicro se - nov 15 2012

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

Page 134: Criptografia em hardware   emicro se - nov 15 2012

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

Page 135: Criptografia em hardware   emicro se - nov 15 2012

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

Page 136: Criptografia em hardware   emicro se - nov 15 2012

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

Page 137: Criptografia em hardware   emicro se - nov 15 2012

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

Page 138: Criptografia em hardware   emicro se - nov 15 2012

Ferramenta WebCry

138

Page 139: Criptografia em hardware   emicro se - nov 15 2012

SICO - Sistema Inteligente de Comunicação

RECEPTOR

CRIPTO

EMISSOR

GERENTE

RECEPTOR

DECRIPTO

CONTROLE

CONEXÃOSEGURA

CONEXÃOCLIENTE

(INSEGURA)

EMISSOR RECEPTOR

139

Page 140: Criptografia em hardware   emicro se - nov 15 2012

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

Page 141: Criptografia em hardware   emicro se - nov 15 2012

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

Page 142: Criptografia em hardware   emicro se - nov 15 2012

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

Page 143: Criptografia em hardware   emicro se - nov 15 2012

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

Page 144: Criptografia em hardware   emicro se - nov 15 2012

Parte V

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

Edward David [email protected]

144

Page 145: Criptografia em hardware   emicro se - nov 15 2012

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

Page 146: Criptografia em hardware   emicro se - nov 15 2012

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

Page 147: Criptografia em hardware   emicro se - nov 15 2012

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

Page 148: Criptografia em hardware   emicro se - nov 15 2012

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)

Page 149: Criptografia em hardware   emicro se - nov 15 2012

Soluções de Segurança em Multicore/FPGAs

1494 Xilinx Microblaze em rede (Kavadias, 2010)

Page 150: Criptografia em hardware   emicro se - nov 15 2012

Soluções de Segurança em Multicore/Leon-3

150Arquitetura interna padrão do Leon3 (Gaisler, 2011)

Page 151: Criptografia em hardware   emicro se - nov 15 2012

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.

Page 152: Criptografia em hardware   emicro se - nov 15 2012

Consumo de Energia

152

Final daExecução

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