Codificação de Informação 2010/2011

Documentos relacionados
OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC

TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC

Autenticação por par de. chaves assimétricas. Bruno Follmann

AULA 08 CRIPTOGRAFIA E SEGURANÇA DE DADOS CRIPTOGRAFIA ASSIMÉTRICA CHAVES E ALGORITMOS 03/03/2016 PROF. FABIANO TAGUCHI

PTC Aula 20. (Kurose, p ) (Peterson, p ) 14/06/ Princípios de criptografia

Criptografia e Segurança em Redes Capítulo 9. Quarta Edição William Stallings

Criptografia com Maple

Tópicos de Ambiente Web Segurança

Criptografia. Criptografia de Chave Pública. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

Criptografia Assimétrica e Funções de Síntese

Troca de chaves Diffie-Hellman Grupos finitos Grupos cíclicos

D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR 1

Desvendando os mistérios do criptossistema RSA. Grasiele Cristiane Jorge. Pós-Doc - IMECC - UNICAMP

Complexidade de Algoritmos

Algoritmos probabilísticos

Engloba os criptossistemas clássicos. Outros nomes: (Criptografia...)

Segurança Informática em Redes e Sistemas

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações

Números primos e Criptografia

RSA: ALGORITMOS DE CHAVE PÚBLICA PRIMEIRA PUBLICAÇÃO: ABRIL/1998 QUARTA REVISÃO: DEZEMBRO/2004

PK - Public Key RSA. Segurança RSA

Cifras Assimétricas MICEI/MSDPA. José Carlos Bacelar Almeida Motivação

Aula 15. Ivan Sendin. 11 de outubro de FACOM - Universidade Federal de Uberlandia TSeg.

Aula 23. Ivan Sendin. 31 de outubro de FACOM - Universidade Federal de Uberlandia TSeg.

Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica.

Criptografia e Segurança das Comunicações

TSeg. Ivan Sendin. Aula 10. Ivan Sendin. FACOM - Universidade Federal de Uberlândia 27 de setembro de 2017

Criptografia Simétrica e Assimétrica, Hash, e Assinatura Digital

INE5680 SEGURANÇA DA INFORMAÇÃO E DE REDES Prova 1 04/10/2013 Turmas A e B Prova A NOME : MATRÍCULA :

Segurança da Informação Aula 7 Assinaturas Digitais e HASH.

Algoritmos criptográficos de chave pública

O USO DA CRIPTOGRAFIA EM ÁUDIO

1 Potências e raízes em Aritmética Modular. Seja p primo e a um inteiro primo com p; a aplicação

Já sabemos como determinar todas as soluções de uma equação diofantina linear, caso esta seja resolúvel. Para conguências temos:

Criptografia Assimétrica. Jiyan Yari

Capítulo 8. Segurança de redes

Teoria dos Números e Criptografia

Criptografia e Segurança

Criptografia. Criptografia de Chave Pública. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

Criptografia no MSX Fulswrjudild qr PVZ

Números Primos e Criptografia RSA

Software de Telecomunicações. Teoria dos números

Criptografia Aplicada LESI / LMCC Exame de Recurso Fevereiro de 2008

Reticulados e Criptograa Pós-Quântica

Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Z p

Criptografia Aplicada LESI / LMCC

Teste à Primalidade. (Método de Monte Carlo) Geração de Números Primos (Grandes)

Abordagens para a. Distribuição de Chaves

Segurança da Informação

Segurança e Auditoria de Sistemas. Confiança Mútua Assinatura Digital Certificado Digital

quem utiliza esse processo para envio de s, por exemplo, está bem protegido de fraudes.

Notas sobre teoria dos números (3)

Mecanismos Criptográficos Esquemas

Aula 1 - Introdução à Criptografia

Técnicas de criptografia. Funções Hash Criptografia com chave secreta Criptografia com chave pública Assinatura digital Protocolos

Nome: Nº de aluno: Exame 1ª chamada (perguntas impar) / Repescagem 1º teste / Repescagem 2º teste SRC /07/04 1º teste

TESTES DE PRIMALIDADE

Introdução à Segurança e Primitivas Criptográficas

Auxilio a Resolução da Lista de Exercícios

Análise da segurança de esteganocriptografia em seqüências de imagens p.1/33

Implementação de Protocolos Criptográficos. Manuel DI Universidade do Minho Setembro de

Segurança conceitos básicos. Sistemas Distribuídos

Criptografia Assimétrica

Segurança em Sistemas Operacionais

Universidade do Minho

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular

Segurança de Sistemas de Informação

Infraestrutura de Chave Pública - InfoSec. 14 de Junho de 2016

CRIPTOSSISTEMAS BASEADOS EM NÚMEROS PRIMOS

Criptografia. Aula 4: Autenticação de mensagens e canais seguros. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

4 ÍNDICE Exemplo de redundância e distância de unicidade... 41

Entendendo a criptografia e como ela pode ser usada na prática. Italo Valcy Universidade Federal da Bahia CERT.

SEGURANÇA CRIPTOGRAFIA E SEGURANÇA DE DADOS. As funções de cifra são consideradas totalmente seguras se:

Existem infinitos números de Carmichael, mas não provaremos isso neste curso.

Criptografia Quântica. Gustavo Thebit Pfeiffer Rodrigo Rodrigues Paim Vinicius Neves Motta

GBC083 - Segurança da Informação Aula 2 - Sigilo Perfeito. 28 de Março de 2016

Lista de Exercícios 2

CRIPTOGRAFIA RSA APLICADA A ÁUDIO

NÚMEROS INTEIROS E CRIPTOGRAFIA UFRJ

Segurança a em Redes. Aula 5. Sistema de Criptografia Assimétrica. Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro

Redes de Computadores

Apresentação de Senhas em Máquinas Hostis

Aula 8. Ivan Sendin. 11 de setembro de FACOM - Universidade Federal de Uberlândia SEG.

Falando um segredo em público a um estranho e mantendo o segredo

Mantendo Segredos com a ajuda da Matemática

Transcrição:

Codificação de Informação 2010/2011 Sumário: Criptografia de chave pública Tipos de chave: cifras simétricas Chave comum à operação de cifrar e de decifrar Chave secreta P mensagem em claro, C mensagem cifrada K chave usada para cifrar e decifar f função usada para cifrar f 1 função usada para decifrar C = f ( K, P) P = f 1 ( K,C) Dept. InformáGca / FCT 16 Novembro 2010 2 1

Tipos de chave: Cifras assimétricas K p Chave pública para cifrar K s Chave privada para decifrar Estas chaves estão ligadas a uma determinada engdade com a qual se quer comunicar K p diferente de K s f função para cifrar f 1 função para decifrar Estas funções exigem normalmente tempos de execução muito mais longos do que as funções usadas nas chaves simétricas C = f (K p, P) P = f 1 (K s, C) Dept. InformáGca / FCT 16 Novembro 2010 3 Criptografia de chave secreta A criptografia de chave secreta/única usa apenas uma chave ParGlhada pelo emissor e pelo receptor Se a chave é descoberta as comunicações estão compromegdas É simétrica, os intervenientes são pares Assim, não protege o emissor no caso em que um intruso forja uma mensagem e declara que esta provém do emissor Dept. InformáGca / FCT 16 Novembro 2010 4 2

Desvantagens chave simétrica Problema de distribuição de chaves Chave deve ser alterada com uma certa frequência Algoritmos de assinatura digital que uglizam chaves simétricas necessitam de chaves grandes o que complica ainda mais o problema da distribuição de chaves. Dept. InformáGca / FCT 16 Novembro 2010 5 Criptografia de chave pública Provavelmente o avanço mais significagvo em 3000 anos de criptografia NSA (US): 1960 s (?) CESG (UK): 1970 James Ellis, relatório classificado CESG não viu as potencialidades Diffie & Hellman: 1976 RSA: 1978 (1ª realização prágca) Usa duas chaves uma pública e outra privada Assimétrica porque os pargcipantes não têm o mesmo papel Não subsgtui mas complementa a criptografia de chave secreta Dept. InformáGca / FCT 16 Novembro 2010 6 3

Criptografia de chave pública A criptografia de chave pública/duas chaves/ assimétrica envolve o uso de duas chaves: a chave pública, que é conhecida de todos, e pode ser usada para cifrar mensagens, e verificar assinaturas a chave privada, conhecida só pelo receptor, usada para decifrar mensagens, e assinar (criar) assinaturas Dept. InformáGca / FCT 16 Novembro 2010 7 Criptografia de chave pública É assimétrica porque: Aqueles que podem cifrar mensagens e verificar assinaturas não podem decifrar mensagens e criar assinaturas Dept. InformáGca / FCT 16 Novembro 2010 8 4

Criptografia de chave pública Dept. InformáGca / FCT 16 Novembro 2010 9 Porquê a criptografia de chave pública? Desenvolvida para resolver duas questões: Distribuição de chaves como ter comunicações seguras sem ter que trocar a chave na rede Assinaturas digitais como verificar que uma mensagem chegou intacta do emissor, e que este é quem diz ser Dept. InformáGca / FCT 16 Novembro 2010 10 5

CaracterisGcas da criptografia de chave pública Depende de duas chaves que devem ter as seguintes caracterísgcas: Computacionalmente impossível conhecer a chave para decifrar sabendo apenas o algoritmo e a chave usada para cifrar Computacionalmente fácil cifrar/decifrar mensagens quando a chave correcta é conhecida O papel das duas chaves pode ser trocado Dept. InformáGca / FCT 16 Novembro 2010 11 Segurança de sistemas com chave pública Ataques de força bruta por procura exaus@va são teoricamente possíveis Mas as chaves são demasiado grandes (>512bits) Segurança baseia se numa suficientemente grande diferença entre a facilidade em cifrar/decifrar e a dificuldade em fazer a cripto análise Obter a chave privada a pargr da chave pública é possível teoricamente, mas demasiadamente pesado computacionalmente para ser possível na prágca Os métodos conhecidos para cifrar e decifrar mensagens são computacionalmente bastantes pesado. Assim sendo, são lentos quando comparados com os métodos de chave secreta Dept. InformáGca / FCT 16 Novembro 2010 12 6

Cifra assimétrica Comunicação Alice para Bob Bob calcula o par (KP B, KS B ) KS B é mangdo secreto, KP B é publicado (por exemplo na página web do Bob) Alice Obtém a chave pública KP B de Bob e, cifra a mensagem P com a chave KP B do Bob C= cifra_assimétrica_e(kp B,P) Bob Usa a chave privada KS B do Bob para decifrar C: P = cifra_assimétrica_d(ks B,P) Dept. InformáGca / FCT 16 Novembro 2010 13 Aplicação à assinatura digital Procedimento: Alice Bob Gera um resumo (digest ou hash) h=h(m) da mensagem Calcula uma assinatura s para m usando a sua chave privada KP A : s = RSA_D(KS A,h) Envia m e s a Bob Calcula h=h(m) a pargr de m Decifra h =RSA_E(KP A,h) usando a chave pública de Alice Verifica se h e h são iguais GaranGda a autengcidade do emissor e a integridade da mensagem Dept. InformáGca / FCT 16 Novembro 2010 14 7

Escolha do algoritmo Tempo de execução de um algoritmo Depende da dimensão do problema Exemplo: Ordenar 10 números leva menos tempo que ordenar 10000 números Para alguns problemas sabe se o número de passos que qualquer algoritmo leva a resolver um problema com n elementos Ordenar n números leva n log n passos Dept. InformáGca / FCT 16 Novembro 2010 15 Escolha do algoritmo É necessário um problema que necessite de pelo menos um número exponencial de passos São conhecidos problemas em que as soluções conhecidas levam tempo (sub)exponencial Factorizar primos Calcular o logaritmo discreto... Dept. InformáGca / FCT 16 Novembro 2010 16 8

Troca de chaves de Diffie Helman Inventado por Diffie & Helman em 1976 Primeira publicação sobre criptografia de chave pública Método permite que dois uglizadores concordem numa chave simétrica de forma segura. Essa chave é depois usada para cifrar/decifrar as mensagens Só para troca de chaves Não uglizado para cifrar/assinar Chaves de 1024 bits Baseado na dificuldade de calcular o logaritmo discreto Dept. InformáGca / FCT 16 Novembro 2010 17 Logaritmos discretos Em aritmégca módulo p: a raiz primi0va de um número primo p é o valor a tal que as suas potências geram todos os inteiros de 1 a p 1 Se a é raiz primigva de p, os números a mod p, a 2 mod p,, a p 1 mod p são disgntos e correspondem a uma permutação dos números de 1 a p 1 Para qualquer inteiro b e uma raiz primigva a de um número primo p, pode se encontrar um i tal que b = a i mod p (em que 0 <= i <= p 1) b é o logaritmo discreto módulo p para a base a Dept. InformáGca / FCT 16 Novembro 2010 18 9

Logaritmo discreto Computação módulo n Exemplo módulo 13 b = a i mod 13 i 1 2 3 4 5 6 7 8 9 10 11 12 b 2 4 8 3 6 12 11 9 5 10 7 1 b = 2 i mod 13 2 é raiz primigva de 13 (módulo 13) Dept. InformáGca / FCT 16 Novembro 2010 19 Método de Diffie Hellman Todos os uglizadores concordam nos seguintes valores: Um número primo q muito grande α é uma raiz primigva de q (em módulo q) Cada uglizador (eg. A) gera a sua chave Escolhe uma chave secreta (número): x A < q Calcula a sua chave pública: y A = α x A mod q Cada uglizador publica a sua chave pública y A Dept. InformáGca / FCT 16 Novembro 2010 20 10

Chaves de Diffie Hellman Elementos globais q, α UGl. A Geração de chave Seleccionar X A <q Calcular Y A =α XA mod q Y A Y B UGl. B Geração de chave Seleccionar X B <q Calcular Y B =α XB mod q K = (Y B ) XA mod q K = (Y A ) XB mod q Dept. InformáGca / FCT 16 Novembro 2010 21 Chaves de Diffie Hellman Dept. InformáGca / FCT 16 Novembro 2010 22 11

Troca de chaves de Diffie Hellman A chave parglhada para uma sessão dos uglizadores A & B é K AB : K AB = α x A. xb = y A x B = y B x A mod q mod q (que B pode calcular) mod q (que A pode calcular) K AB é usada como chave de sessão numa comunicação entre Alice e Bob K AB pode ser usada noutras sessões entre Alice e Bob Um intruso necessita um dos x; para isso tem de calcular um logaritmo discreto, o que é computacionalmente muito di cil Dept. InformáGca / FCT 16 Novembro 2010 23 Porque é que D H funciona? K = (Yb) xa mod q = = (a xb mod q) xa mod q = = a xb.xa mod q = = (a xa mod q) xb mod q= = (Ya) xb mod q Dept. InformáGca / FCT 16 Novembro 2010 24 12

Exemplo de Diffie Helman Os uglizadores Alice e Bob querem trocar chaves: Concordam no primo q=353 e α=3 Seleccionam ao acaso as chaves secretas: A escolhe x A =97, B escolhe x B =233 Calculam as chaves públicas: y A =3 97 mod 353 = 40 (Alice) y B =3 233 mod 353 = 248 (Bob) Calculam a chave de sessão : K AB = y B x A mod 353 = 248 97 = 160 (Alice) K AB = y A x B mod 353 = 40 233 = 160 (Bob) Dept. InformáGca / FCT 16 Novembro 2010 25 Segurança de Diffie Hellman X A e X B são privadas; o intruso conhece q, α, Y A, Y B Para furar a cifra é preciso calcular o logaritmo discreto X B = logaritmo discreto α,q (Y B ) É fácil calcular exponenciais módulo p, mas é muito di cil calcular logaritmos discretos Dept. InformáGca / FCT 16 Novembro 2010 26 13

RSA Rivest, Shamir & Adleman do MIT em 1977 Esquema de chave pública mais bem conhecido e mais uglizado Dept. InformáGca / FCT 16 Novembro 2010 27 RSA Baseado em exponenciação de inteiros usando aritmégca modular Exponenciação leva O((log n) 3 ) operações (fácil cifrar/decifrar) Usa inteiros muito grandes (eg. 1024 bits) Segurança devida à dificuldade em factorizar números primos muito grandes Factorização leva O(e log n log log n ) operações (muito di cil obter a chave privada a pargr da chave pública) Dept. InformáGca / FCT 16 Novembro 2010 28 14

Geração de chaves RSA Cada uglizador calcula um par chave pública/chave privada Selecciona 2 números primos aleatoriamente p, q Calcula N = p.q ø(n)=(p-1)(q-1) Selecciona a chave de cifra e que deve cumprir: 1<e<ø(N), gcd(e,ø(n))=1 Resolve a equação seguinte para determinar a chave d (e.d)mod ø(n)=1 e 0 d N Publica a sua chave pública: K P ={e,n} Mantém secreta a sua chave privada: K S ={d,n} Dept. InformáGca / FCT 16 Novembro 2010 29 Uso do RSA Para cifrar a mensagem M, o emissor: Obtém a chave pública do receptor K P ={e,n} Calcula: C=M e mod N, em que 0 M<N Para decifrar o texto cifrado C o desgnatário: usa a sua chave privada K S ={d,n} calcula: M=C d mod N Note se que M tem de ser menor que o módulo N (divide se o texto em blocos de x bits, tal que 2 x <N e o maior possível) Dept. InformáGca / FCT 16 Novembro 2010 30 15

Porque é que o RSA funciona? Teorema de Euler: a ø(n) mod N = 1 em que gcd(a,n)=1 No RSA temos: N=p.q ø(n)=(p-1)(q-1) Escolhem se e & d para serem inversos mod ø(n) Portanto e.d=1+k.ø(n) para algum k Assim sendo ( sempre em aritmégca mod N ) C d mod N = (M e ) d mod N = M 1+k.ø(N) mod N = M 1.(M ø(n) ) k mod N = M 1.(1) k mod N = M 1 mod N = M Dept. InformáGca / FCT 16 Novembro 2010 31 Exemplo RSA Seleccionar primos: p=17 & q=11 Calcular n = pq =17 11=187 Calcular ø(n)=(p 1)(q-1)=16 10=160 Seleccionar e : gcd(e,160)=1; escolher e=7 Determinar d: de=1 mod 160 e d < 160; d=23 uma vez que 23 7=161 Publicar a chave pública KU={7,187} Guardar a chave privada KR={23,187} Dept. InformáGca / FCT 16 Novembro 2010 32 16

Exemplo RSA Exemplo da fase de cifrar/decifrar do RSA: Dada a mensagem M = 88 (note se que 88<187) Cifrar: C = 88 7 mod 187 = 11 Decifrar: M = 11 23 mod 187 = 88 Dept. InformáGca / FCT 16 Novembro 2010 33 Outro exemplo não realista Dept. InformáGca / FCT 16 Novembro 2010 34 17

Exemplo mais realista (1) p e q têm 512 bits a que corresponde cerca de 160 dígitos decimais; n e Φ têm 309 dígitos Dept. InformáGca / FCT 16 Novembro 2010 35 Exemplo mais realista (2) p e q têm 512 bits a que corresponde cerca de 160 dígitos decimais; n e Φ têm 309 dígitos THIS IS A TEST passa a C = P e mod n P = C d mod n THIS IS A TEST Dept. InformáGca / FCT 16 Novembro 2010 36 18

Aspectos computacionais do RSA Geração da chave Exponenciação P e e C d podem produzir resultados intermédios gigantescos Propriedades da aritmégca modular [(a mod n) * (b mod n)] mod n = (a * b) mod n Podem se produzir resultados intermédios Dept. InformáGca / FCT 16 Novembro 2010 37 Geração da chave RSA Os uglizadores do RSA têm de: determinar dois primos ao acaso p, q Seleccionar e ou d e calcular o outro Os primos p,q não podem ser determinados facilmente a pargr de N=p.q Têm de ser suficientemente grandes Não há métodos directos para determinar primos muito grandes; Gpicamente usam se números aleatórios e testes de primalidade. Esses testes não garantem que o número seja primo Dept. InformáGca / FCT 16 Novembro 2010 38 19

Geração da chave RSA algoritmo Miller Rabin 1. Obter um número ímpar n ao acaso 2. Obter outro número inteiro ao acaso (1< a < n) 3. Aplicar a a e n um teste; se o teste falha, rejeitar o número e ir para 1 4. Se n passou o teste 3 para um nº suficientemente grande de tentagvas aceitar n 5. A teoria dos números diz que os números primos perto de X estão espaçados de ln X; logo para determinar um primo serão necessárias ln(n)/2 tentagvas Dept. InformáGca / FCT 16 Novembro 2010 39 Algoritmo para o teste de primalidade probabilisgca de Miller Rabin Miller-Rabin(n,t) INPUT: An odd integer n > 1 and a positive security parameter t OUTPUT: the answer "COMPOSITE" or "PRIME" Write n - 1 = 2 s r such that r is odd Repeat from 1 to t Choose a random integer a which satisfies 1 < a < n - 1 Compute y = a r mod n IF y <> 1 and y <> n-1 then DO j := 1 WHILE j < s and y <> n - 1 then DO y := y 2 mod n IF y = 1 THEN return("composite") j := j + 1 IF y <> n - 1 THEN return("composite") return("prime") Dept. InformáGca / FCT 16 Novembro 2010 40 20

Segurança do RSA Três abordagens para atacar o RSA: Força bruta sobre a chave (impossível dado o número de bits da chave) Baseados na teoria dos números (tentagva de factorizar o módulo N) Por medida do tempo que demora a correr o algoritmo para decifrar Dept. InformáGca / FCT 16 Novembro 2010 41 Três formas : Problema da factorização factorizar N=p.q, encontrar ø(n) e depois d determinar ø(n)ou d directamente Pensa se que todos eles são equivalentes a factorizar: Melhorias lentas ao longo dos anos Em Agosto de 1999 conseguiu se furar o RSA com 130 dígitos decimais (512 bits) usando o algoritmo Generalized Number Field Sieve Hoje em dia a segurança é garangda usando chaves entre os 1024 e 2048 bits Dept. InformáGca / FCT 16 Novembro 2010 42 21