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

Documentos relacionados
Criptografia e Segurança

, com k 1, p 1, p 2,..., p k números primos e α i, β i 0 inteiros, as factorizações de dois números inteiros a, b maiores do que 1.

CIC 111 Análise e Projeto de Algoritmos II

11.1) Noções Elementares 11.2) MDCs e algoritmos de Euclides 11.3) Aritmética modular 11.4) Aplics da MD: O sistema criptográfico RSA

Universidade do Minho

Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 42

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

Notas sobre teoria dos números (3)

MA14 - Aritmética Lista 1. Unidades 1 e 2

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

Inteiros. Inteiros. Congruência. Discrete Mathematics with Graph Theory Edgar Goodaire e Michael Parmenter, 3rd ed 2006.

Números Inteiros Algoritmo da Divisão e suas Aplicações

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

1 Congruências e aritmética modular

MA14 - Aritmética Unidade 15 - Parte 1 Resumo. Congruências

MATEMÁTICA DISCRETA ARITMÉTICA RACIONAL (6/6) Carlos Luz. EST Setúbal / IPS Maio 2012

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

Equações Diofantinas + = polinómios conhecidos polinómios desconhecidos

Elementos de Matemática Finita ( ) Exercícios resolvidos

MATEMÁTICA MÓDULO 8 DIVISIBILIDADE E CONGRUÊNCIA. Professor Matheus Secco

Complexidade de Algoritmos

1. O que podemos dizer sobre a imagem da função. f : Z Z, f(x) = x 2 + x + 1?

Matemática Discreta. Introdução à Teoria de Números - Exercícios 1 o ano /2011

MATEMÁTICA 1 MÓDULO 2. Divisibilidade. Professor Matheus Secco

Lista 2 - Álgebra I para Computação - IME -USP -2011

Algoritmos probabilísticos

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Teoria dos Números

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

Números Primos e Criptografia RSA

PK - Public Key RSA. Segurança RSA

XIX Semana Olímpica de Matemática. Nível 3. Polinômios Ciclotômicos e Congruência Módulo p. Samuel Feitosa

Matemática Discreta. Fundamentos e Conceitos da Teoria dos Números. Universidade do Estado de Mato Grosso. 4 de setembro de 2017

Códigos de Detecção de Erros 2ª. parte. Prof. Ricardo de O. Duarte DECOM - UFOP

NÚMEROS INTEIROS E CRIPTOGRAFIA UFRJ

ALGORITMO DE EUCLIDES

Slides de apoio: Fundamentos

Criptografia e Segurança de Rede Capítulo 4. Quarta Edição por William Stallings

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

Dado um inteiro positivo n, definimos U(n) como sendo o conjunto dos inteiros positivos menores que n e primos com n. Não é difícil ver que a

D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR 1

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

MAT Álgebra I para Licenciatura 2 a Lista de exercícios

Teorema 1.1 (Teorema de divisão de Euclides). Dados n Z e d N, existe uma única dupla q Z, r. n = qd + r

Sistemas de Numeração

NÚMEROS ESPECIAIS. Luciana Santos da Silva Martino. lulismartino.wordpress.com PROFMAT - Colégio Pedro II

Módulo de Números Naturais. Divisibilidade e Teorema da Divisão Euclideana. 8 ano E.F.

Matemática para Ciência de Computadores

Equações Diofantinas + = polinómios conhecidos polinómios desconhecidos

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

Divisão e conquista. Eficiência de divisão e conquista

Programa Combinatória Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 52

Roteiro da segunda aula presencial - ME

NÚMEROS INTEIROS. Álgebra Abstrata - Verão 2012

REVISÃO DOS CONTEÚDOS

a = bq + r e 0 r < b.

Teorema de Euclides O conjunto dos números primos é infinito. O número de primos menores ou iguais a um dado x é representado

Se mdc(a,m) = 1, como a é invertível módulo m, a equação. ax b (mod m)

Tópicos de Matemática Elementar

Números Primos: onde estão? Por que encontrá-los? Ana Cristina Vieira MAT/UFMG. Primos

é uma proposição verdadeira. tal que: 2 n N k, Φ(n) = Φ(n + 1) é uma proposição verdadeira. com n N k, tal que:

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

Multiplicação Divisão

Divisão e conquista. Há divisão quando o algoritmo tem pelo menos 2 chamadas recursivas no corpo

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense

Folhas de exercícios

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

Resoluções das atividades

Denominamos equação polinomial ou equação algébrica de grau n a toda equação da forma:

Matemática A - 10 o Ano

1 Conjuntos, Números e Demonstrações

CURSO PRF 2017 MATEMÁTICA

Organização e Arquitetura de Computadores I

Fundamentos: Algoritmos, Inteiros e Matrizes. Inteiros e. Primos e. Divisor Comum. Inteiros e. Algoritmos. Teoria dos Centro de Informática UFPE

MA14 - Aritmética Unidade 22 Resumo. Aritmética das Classes Residuais

Teoria dos Números e Criptografia

SISTEMA CRIPTOGRÁFICO RSA. Chave pública: (n, a) onde a N <(p 1)(q 1) e mdc(a, (p 1)(q 1)) = 1. Chave privada: (n, b)

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

Sistemas de Computação

Prof. Leonardo Augusto Casillo

Elementos de Matemática Finita

Aritmética em Bases Não Decimais

MATEMÁTICA MÓDULO 1 TEORIA DOS NÚMEROS 1. DIVISIBILIDADE 1.1. DEFINIÇÃO 1.2. CRITÉRIOS DE DIVISIBILIDADE

Aritmética Binária. Adição. Subtração. Aqui tudo nasce do cálculo.

Notas sobre teoria dos números (2)

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Números são números, letras são números e sinais de pontuação, símbolos e até mesmo as instruções do próprio computador são números.

Criptografia com Maple

Funções - Primeira Lista de Exercícios

a = bq + r e 0 r < b.

Detecção e correcção de erros

Exercícios Repetição

Corpos estendidos no espaço em grupos

Técnico em Eletrônica Módulo I Eletrônica Digital (ED) - Prof. Samuel M. B. Cavalcante

Circuitos Lógicos. Capítulo 9 Aritmérica Digital: Operações e Circuitos

Note-se que pelo Teorema de Euler. a φ(n) 1 (mod n) logo existe k nas condições da definição acima e. Raízes Primitivas. Ordem de um elemento

Aritmética Binária e Complemento a Base. Introdução ao Computador 2010/1 Renan Manola

UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE CIÊNCIAS PROGRAMA DE PÓS-GRADUAÇÃO EM MATEMÁTICA MESTRADO PROFISSIONAL EM MATEMÁTICA - PROFMAT

Transcrição:

Software de Telecomunicações Teoria dos números Prof RG Crespo Software de Telecomunicações Teoria números : 1/37 Números primos (1) O conjunto dos inteiros {...,-2,-1,0,1,2,...} é representado por Z. Definição: A divisão de a por b (b 1), a/b, é um par (q,r) tal que a = q.b+r (q é designado por quociente, r por resto). b é divisível por a, a b, sse o resto de a/b for 0 (ex: 3 9) Nota: A soma e a subtração de dois inteiros é O(log n), o produto e a divisão de dois inteiros é O(log 2 n). Definição: um número p é primo sse existirem apenas dois divisores (1 p e p p). Ex: são primos 1,2,3,5,7,11,13,17,19, Prof RG Crespo Software de Telecomunicações Teoria números : 2/37

Números primos (2) Teorema fundamental da aritmética: Qualquer número n pode ser representado por um produto de números primos. Ex: 4200 = 2 3.3.5 2.7, 10780=2 2.5.7 2 2 113-1= 3391.23279.65993.1868569.1066818132868207 Definição: O maior divisor comum de dois números a b, gcd(a,b) é o maior inteiro d tal que d a e d b. Basta factorizar os dois números e tomar os primos comuns com o menor dos expoentes. Ex: gcd(4200,10780) = 2 2.5.7 = 140 Prof RG Crespo Software de Telecomunicações Teoria números : 3/37 Números primos (3) Nota1: gcd(a,b)=gcd(b,a). Nota2: factorização de números é operação custosa 1994: a aplicação do QS-Quadratic Sieve distribuída por 1600 computadores conseguiu factorizar número RSA-129 em 8 meses. 2005: factorizado número RSA-560. Definição: Dois números a b são primos entre si, sse gcd(a,b)=1. Afirma-se que a é co-primo de b. Ex: 26 e 15 não são primos, mas são primos entre si. Prof RG Crespo Software de Telecomunicações Teoria números : 4/37

Números primos (4) Algoritmo de Euclides (determina gcd(a,b) sem cálculo da factorização) 1. Para calcular gcd(a,b), calcular a divisão do maior número pelo menor: a = q.b+r 2. Se r 0, voltar ao passo 1 e calcular gcd(r,b). Se r=0, gcd(a,b) = b Algoritmo de Euclides é O(log 3 n)- log n divisões * O(log 2 n) cada divisão Ex: Determinar gcd(1547,560) 1547 = 2.560 + 427 calcular gcd(427,560) 560 = 1.427 + 133 calcular gcd(427,133) por multiplicação 427 = 3.133 + 28 calcular gcd(28,133) russa 133 = 4.28 + 21 calcular gcd(28,21) 28 = 1.21 + 7 calcular gcd(7,21) 21 = 3.7 + 0 gcd(1547,560)=7 Prof RG Crespo Software de Telecomunicações Teoria números : 5/37 Números primos (5) Proposição: Se d = gcd(a,b), existem dois números u e v tais que d=ua+vb: para calcular u,v basta inverter o algoritmo de Euclides, substituindo os restos pelas igualdades anteriores. Ex:7 = 28 1.21 = 28 1.(133-4.28) 5.28-1.133 = 5.(427 3.133) 1.133 5. 427 16.133 = 5. 427 16.(560 1.427) 21.427 16.560 = 21.(1547 2.560) 16.560 21. 1547 58.560 Nota: a proposição permite facilmente calcular o inverso de um número módulo M, se M for primo. 1 = gcd(a,m) = ua+bm: logo, a -1 mod M = u. Prof RG Crespo Software de Telecomunicações Teoria números : 6/37

Números primos (6) Algoritmo estendido de Euclides:determina triplo (d,x,y) tal que ax+my=d: se d=1, então x=a -1 mod M. Função Euclides-estendido(a,b) se b=0 retornar (a,1,0); k := a/b; r := a mod b; (d,x,y) := Euclides-estendido(b,r); retornar (d,y,x-ky); Prof RG Crespo Software de Telecomunicações Teoria números : 7/37 Números primos (7) Exemplo: determinar 123-1 mod 1003 a b k r Retorna 1003 123 8 19 (1,13,-106) 123 19 6 9 (1,-2,13) 19 9 2 1 (1,1,-2) 9 1 9 0 (1,0,1) 1 0 - - (1,1,0) 123-1 mod 1003-106 897 Prof RG Crespo Software de Telecomunicações Teoria números : 8/37

Números primos (8) Definição: A função Euler totient, ϕ(n) = #{0 b<n gcd(b,n)=1} indica o número de todos os valores coprimos de n. ϕ(1) = 1 ϕ(p) = p-1, para todos os primos de p se n=pq (p,q primos), então ϕ(n) = (p-1)(q-1) Proposição: Se a for primo relativo de n, então a ϕ(n) = 1 mod n Prof RG Crespo Software de Telecomunicações Teoria números : 9/37 Números primos (9) Definição: A função π(n) indica o número de primos menores que n. Os primos até 25 são: 2, 3, 5, 7, 11, 13, 17, 19 e 23. Logo, π(3) = 2, π(10) = 4, π(25) = 9. Teorema números primos: π(n) é da ordem de n/(ln n a), com a 1. Nota: há zonas em que os primos estão mais concentrados (ex: 1_000_000_000_061, 1_000_000_000_063) e noutras mais dispersos. Prof RG Crespo Software de Telecomunicações Teoria números : 10/37

Números primos (10) Consequência 1: há muitos números primos por onde escolher! Ex: π(10 20 ) O(10 20 /19) 5.2 *10 18 (na realidade, π(10 20 ) = 2 220 819 602 560 918 840 2.2 *10 18 ). Consequência 2: a procura de um primo não é muito pesada. Em média, os números primos estão afastados O(ln n): como os pares e múltiplos de 5 não contam, a procura é 0.4 * ln n Ex: para procurar um primo à volta de 2 200 (200 dígitos binários), devem ser necessários 0.4(ln 2 200 )=55 testes. Prof RG Crespo Software de Telecomunicações Teoria números : 11/37 Números primos (11) Computação distribuída permite determinar números primos cada vez maiores. O maior número primo, identificado em Agosto 2008, é 2 43,112,609-1 com 12_978_189 dígitos decimais. Nota: Os primos Mersenne possuem a forma 2 n -1, sendo conhecidos 49 (31= 2 5-1 é primo, mas 2047 = 2 11-1 não é primo). Prof RG Crespo Software de Telecomunicações Teoria números : 12/37

Primalidade (1) Como escolher um número primo? A. Por aproximação Hardly e Wright, procurar nos valores próximos prime(n) n(log n+log log n 1) Ex: prime(10 6 ) 15 400 000: na realidade é 15 485 863. Impraticável: para n elevado a distância entre dois primos é O(log n) e determinar se número é primo custa! B. Gerar um número aleatório n ímpar, n 5 e verificar se é primo com um teste de primalidade (ex, Rabin-Miller). Se não for, procurar à volta de lg N. Se não conseguir encontrar, gerar novo número aleatório e procurar nessa zona. Esta é a estratégia usada na cifra RSA para gerar números aleatórios de grande dimensão. Prof RG Crespo Software de Telecomunicações Teoria números : 13/37 Primalidade (2) Peneira de Eratosthenes ( sieve ) Descoberto em 250 AC Método determinista, mas pouco eficiente para números de grande dimensão. 1. Escrever todos os números de 2 an-1. 2. Fazer d 2 (primeiro primo). 3. Se n não for divisível por d, eliminar da lista todos os múltiplos de d. 4. Se a lista não estiver vazia, d primo seguinte e regressar a 3. Se a lista estiver vazia, n é primo Prof RG Crespo Software de Telecomunicações Teoria números : 14/37

Primalidade (3) [Exemplo] Seja n=17 Lista: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 d 2: 17 não é divisível por 2! Eliminados múltiplos de 2 (2 4 6 8 10 12 14 16) Lista: 3 5 7 9 11 13 15 d 3: 17 não é divisível por 3! Eliminados múltiplos de 3 (3 9) Lista: 5 7 11 13 15 d 5: 17 não é divisível por 5! Eliminados múltiplos de 5 (5 15) Lista: 7 11 13 d 7: 17 não é divisível por 7! Eliminados múltiplos de 7 (7)... Prof RG Crespo Software de Telecomunicações Teoria números : 15/37 Primalidade (4) Teste de Rabin-Miller 1. Calcular k,m (ímpar) tal que n-1= m.2 k. Nota: O cálculo é rápido: deslocar para a direita enquanto a divisão for par, k é o número de deslocamentos, m é a divisão ímpar. 2. Seleccionar base, tal que 1 b < n. 3. a b m mod n i. Se a=n-1, então n pode ser primo. ii. Se algum dos valores a 2 mod n, a 4 mod n,, a 2^(k-1) mod n for igual n-1, então n pode ser primo. iii. Se falhar 3.1 e 3.2, então n não é primo. Se o número for candidato a primo, efectuar o teste normal Nota: pode revelar que, afinal, não é primo! Para números não primos, ¾ dos valores de a acabam no ponto 3.3 Prof RG Crespo Software de Telecomunicações Teoria números : 16/37

Primalidade (5) Exemplo: Vejamos se n=29 é primo 1. 28 = 14.2 = 7. 2 2 2. Seleccionar base b=10 3. a 10 7 mod 29 17 1. a 28 2. (10 7 ) 2 mod 29 28. Pode ser primo (na realidade é!) Exemplo: Vejamos se n=221 é primo 1. 220 = 110.2 = 55. 2 2 2. Seleccionar base b=5 3. a 5 55 mod 221 112 1. a 220 2. (5 55 ) 2 mod 221 168 220 (nota: como k=2, não existem mais testes) 3. Conclui-se que 221 não é primo (nota: factorizando, tem-se 221=13*17) Prof RG Crespo Software de Telecomunicações Teoria números : 17/37 Primalidade (6) Teorema pequeno de Fermat ( Fermat Little Theorem ): Se p é co-primo de a, então a p-1 =1 mod p. Ex: 7 e 3 são co-primos, pelo que 7 2 =1 mod 3. Igualmente, 3 90 =1 mod 91 [nota: 91 não é primo] Os números (a,p) são designados pseudo-primos. Prof RG Crespo Software de Telecomunicações Teoria números : 18/37

Congruência (1) Definição: a é congruente a b módulo M, a b mod M, sse (a b) M. M é designado módulo da congruência. Ex: 17 4 mod 26, porque 13 26. Os números Z M ={0,1,,M-1} formam um anel de inteiros módulo M com operadores +,* módulo M. Frequentemente, a b mod M é representado por a=b modm A aritmética modular foi explorada em primeiro lugar por Gauss. A relação de congruência é fundamental na cifra, uma vez que todas as alterações não devem sair do alfabeto a cifrar/ decifrar. Prof RG Crespo Software de Telecomunicações Teoria números : 19/37 Congruência (2) As congruências, com o mesmo módulo, podem ser somadas / subtraídas ou multiplicadas. Se a b mod M e c d mod M, então a±c b±d mod M e ac bd mod M. Ex: 3 = 3 mod 9, 4 = 4 mod 9, logo 3+4 = 7 mod 9 3 = 3 mod 9, 8 = 8 mod 9, logo 3+8 = 2 mod 9 O zero é elemento neutro da adição. x+0 x mod M 0+x mod M Prof RG Crespo Software de Telecomunicações Teoria números : 20/37

Congruência (3) Tal como em Z, os aneis Z M possuem inversos aditivos. Definição: Um inverso aditivo módulo M de a é um valor b tal que a+b =1 mod M. Teorema: para cada elemento de um anel Z M, existe um e só um inverso aditivo. Ex: 3+6=0 mod 9, logo 6 é inverso aditivo de 3 módulo 9. Prof RG Crespo Software de Telecomunicações Teoria números : 21/37 Congruência (4) Ao contrário de Z, os aneis Z M possuem inversos multiplicativos para alguns elementos (não todos!). Definição: Um inverso multiplicativo módulo M de a, a -1 mod M, é um valor tal que aa -1 =1 mod M. A condição pode ser refeita para aa -1 = 1 + Mk, que tem uma única solução se a e M forem primos entre si (ou seja, gcd(a,m)=1). Se a M forem primos entre si, para identificar a -1, basta refazer a igualdade gcd(a,m)=1 1. Determinar os numeros u,v tal que 1 = um + va 2. a -1 = v Prof RG Crespo Software de Telecomunicações Teoria números : 22/37

Congruência (5) Ex: Calcular 160-1 mod 839 839 = 5.160 + 39 160 = 4.39 + 4 39 = 9.4 + 3 4 = 1.3 + 1 1 = 4 1.3 = 4 1.(39-9.4) 10.4-1.39 = 10.(160-4.39)-1.39 10.160-41.39 = 10.160-41.(839-5.160) 215.160-41.839 Logo, 160-1 mod 839 = 215 Verificação: 160*215 = 35400 = 1 mod 839 35400 839-35399 1 Prof RG Crespo Software de Telecomunicações Teoria números : 23/37 41 Congruência (6) Teorema: Num anel Z P todos os elementos não nulos possuem inverso multiplicativo, sse P for primo. Prova: pela definição de inverso multiplicativo, aa -1 = 1 + Pk que tem solução sse a,p forem co-primos. Se todos os elementos não nulos de Z P forem co-primos, então P é primo. Corrolário: a/b em Z P é dada por ab -1 mod P Ex: 37/160 mod 839 = 37*160-1 = 37*215= 7955 mod 839 = 404 Prof RG Crespo Software de Telecomunicações Teoria números : 24/37

Congruência (7) Definição: a soma módulo 2, a b, resulta 1 sse os operandos forem distintos. a b = a+b mod 2 Propriedades: para quaisquer a,k a a = 0 A B A B a k k = a 0 0 0 0 1 1 1 0 1 1 1 0 Prof RG Crespo Software de Telecomunicações Teoria números : 25/37 Eficiência de operações RSA (1) A grande dimensão dos blocos RSA levou à criação de bibliotecas de operações. i. Produto Pretende-se avaliar x.y, com valores na ordem 2 1024 10 308. Cálculo pelo método matricial (proposto pela primeira vez por Fibonnaci) é muito ineficiente. Alternativa: multiplicação russa, com shift e somas. 1. Enquanto y 1 executar e colocar lado a lado x=2.x e y=y/2 2. Cortar todos os x i para y i pares 3. Somar todos os x i para y i ímpares Complexidade: O(log 2 n)- log n somas * O(log n) cada soma Prof RG Crespo Software de Telecomunicações Teoria números : 26/37

Eficiência de operações RSA (2) Exemplo: Cálculo de 52 * 37 52 *37 364 156 1924 multiplicação matricial russa 52 37 104 18 208 9 416 4 832 2 1664 1 1924 Prof RG Crespo Software de Telecomunicações Teoria números : 27/37 Eficiência de operações RSA (3) ii. Exponenciação módulo M Cálcular x c e só depois calcular x c mod N gera valores de dimensão muito elevada. Alternativa: em cada multiplicação por x, calcular o módulo para reduzir os valores intermédios. Exponenciação pode ser efectuada da esquerda para a direita (solução adoptada aqui), ou da direita para a esquerda. 1. Representar c = b k-1 b 0 2. Executar algoritmo z = 1; for ( i=k-1; i>=0; i-- ) { if ( b i =1 ) mult=x else mult=1; z = z 2.mult mod N;} Prof RG Crespo Software de Telecomunicações Teoria números : 28/37

Eficiência de operações RSA (4) Ex: Cálculo de 30 37 mod 77 (37 = 100101) 1. z = 1 2. i = 5; b 5 =1 mult= 30; z = 1 2 * 30 mod 77 30 3. i = 4; b 4 =0 mult= 1; z = 30 2 mod 77 53 4. i = 3; b 3 =0 mult= 1; z = 53 2 mod 77 37 5. i = 2; b 2 =1 mult= 30; z = 37 2 * 30 mod 77 29 6. i = 1; b 1 =0 mult= 1; z = 29 2 mod 77 71 7. i = 0; b 0 =1 mult= 30; z = 71 2 * 30 mod 77 2 Complexidade O(lg 3 n) Nota: Ataque DPA ( Differential Power Analysis ) baseado na análise das variações no consumo de energia durante o cálculo de mult*z dentro do ciclo for. Prof RG Crespo Software de Telecomunicações Teoria números : 29/37 Eficiência de operações RSA (5) 1 x c mod N em hardware z x Lógica controlo c mult mod N Prof RG Crespo Software de Telecomunicações Teoria números : 30/37

Eficiência de operações RSA (6) iii. Decifra RSA Decifra mais eficiente com auxílio do CRT Teorema Chinês dos Restos (CRT-Chinese Remainder Theorem): Seja N=n 1 *n 2 * *n r com n i,n j (i j) coprimos. A N Qualquer A [0,(N-1)] é representado por (a 1 =A mod n 1, a 2 =A mod n 2,, a r =A mod n r ) A calculado, a partir de (a 1, a 2,, a r ), pela seguinte equação: r = i= 1 i N = n ( a N N i i i 1 i mod n ) mod N = n n Ln n 1Ln 1 2 i 1 i i+ r Prof RG Crespo Software de Telecomunicações Teoria números : 31/37 Eficiência de operações RSA (7) Exemplo: Sun-Tsu inicia batalha com 208 soldados e no final pretende determinar rapidamente os sobreviventes. Verifica que os sobreviventes agrupados em 3, sobram 2 (a 1 = A mod 3 2) agrupados em 5, sobram 3 (a 2 = A mod 5 3) agrupados em 7, sobram 2 (a 2 = A mod 7 2) a) N 1 =5.7=35; N 2 =3.7=21; N 3 =3.5=15 b)35-1 mod 3 = 2, 21-1 mod 5 = 1, 15-1 mod 7 = 1 c) A=2.35.2 + 3.21.1 + 2.15.1 (mod 3.5.7) = 23 mod 105. Sun-Tsu ou tem 23 ou tem 128 soldados. Nota: fácil verificar sem ter de agrupar em 11! Prof RG Crespo Software de Telecomunicações Teoria números : 32/37

Eficiência de operações RSA (8) Por ser o único com acesso a p,q o proprietário pode calcular mais rapidamente M=C d mod N, 1. Na construção da cifra RSA tem-se N=pq. Calcular C p d p M = Cmod p = C mod q = d mod( p 1) p = C p d p mod p C q d q M = d mod( q 1) = C 2. Decifrar mensagem a partir dos resíduos M = ( M R p = ( p p 1 R q + M q mod q) p = R ) mod N p p q 1 mod q 1 p 1 Rq = ( q mod p) q = q mod N Prof RG Crespo Software de Telecomunicações Teoria números : 33/37 q mod N q d q Números aleatórios (1) Definição: O período de uma sequência é valor mínimo de τ, tal que s(i+τ)=s(i), para todos 0 i<n-τ Ex: a sequência 010 010 01, de comprimento p=8, possui período 3. Definição: Um bloco ( block ) é uma sequência contínua de 1 s e um salto ( gap ) é uma sequência contínua de 0 s. Uma corrida ( run ) é um bloco ou um salto. Existem diversos métodos para determinar o grau de confinação de uma sequência binária pseudo-aleatória Princípio de Golomb Testes estatísticos (frequência, poker, corridas, ) Prof RG Crespo Software de Telecomunicações Teoria números : 34/37

Números aleatórios (2) Testes estatísticos Teste série: as frequências das transições 00, 01, 10, 11 são iguais. Teste poker : dividir sequência por subsequências com mesmo número de bits (m 3)-denominados poker hands, e comparar a distribuição dos valores com o teste χ 2. Princípios de Golomb: primeira tentativa para identificar as condições necessárias, mas não suficientes! 1. A diferença entre o número de 0 s e 1 s deve ser tão pequena quanto possível. Nota: na sequência 101010101010101010101010101010101010, diferença entre 0 s e 1 s é nula, mas não é aleatória (tal será detectado pelo terceiro princípio de Golomb). Prof RG Crespo Software de Telecomunicações Teoria números : 35/37 Números aleatórios (3) 2. Em todas as subsequências, metade das corridas são blocos e a outra metade são saltos. A frequência de corridas de comprimento i é, pelo menos, (½) i se o número de corridas for superior a 1; metade das corridas tem comprimento 1, um quarto das corridas tem comprimento 2, Ex: seja 00001100001110001111100001110001101110000100. À primeira vista a sequência parece ser aleatória, mas não obedece aos critérios de Golomb. Comprimento Blocos Saltos Corridas 1 19 25 44 (46%) 2 12 17 29 (30%) 3 6 10 16 (17%) 4 2 4 6 (6%) Falha! 5 1 0 1 (1%) Prof RG Crespo Software de Telecomunicações Teoria números : 36/37

Números aleatórios (3) 3. Autocorrelação é de 2 valores N. C( t) = C( t) = 1 N { N, se t = 0 K, se1 t N -1 N 1 N i=0= 0 (2s i 1)(2s i+ t 1), 0 t N 1 Ex: 011001000111101, gerada pelo LFSR de polinómio conectivo x 4 +x 3 +1, satisfaz os critérios de Golomb. 1. Número de 0 s é 7, número de 1 s é 8. 2. Existem 8 corridas: 4 corridas de comprimento 1 (2 saltos, 2 blocos). 2 corridas de comprimento 2 (1 salto, 1 bloco). 1 salto de comprimento 3, 1 bloco de comprimento 4. 3. C(0)=1, C(t)=-1/15 for 1 t 14 Nota: existem bons testes estatísticos, como Diehard Prof RG Crespo Software de Telecomunicações Teoria números : 37/37