Criptografia e Segurança

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

CIC 111 Análise e Projeto de Algoritmos II

Universidade do Minho

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

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

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

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

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

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

D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR 1

Complexidade de Algoritmos

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

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

Matemática para Ciência de Computadores

1 Congruências e aritmética modular

AKS: um algoritmo para identificar números primos

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

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

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

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

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

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

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

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

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

Álgebra A - Aula 02 Teorema da fatoração única, Propriedade fundamental dos primos, números primos

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

Tópicos de Matemática Elementar

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

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

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

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

Números Primos e Criptografia RSA

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

Arquitetura de Computadores I

Criptografia com Maple

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

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

REVISÃO DOS CONTEÚDOS

a = bq + r e 0 r < b.

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

Álgebra A - Aula 01 Algoritmo da divisão de Euclides e Algoritmo Euclideano estendido

Funções - Primeira Lista de Exercícios

NÚMEROS INTEIROS E CRIPTOGRAFIA UFRJ

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

Organização e Arquitetura de Computadores I

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

MAT115 Introdução ao Processamento de Dados Professor: Ibirisol Fontes Ferreira DCC: Departamento de Ciência da Computação

Arquitetura e Organização de Computadores

Sistemas de Numeração

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

a = bq + r e 0 r < b.

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

Números primos e Criptografia

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

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Matemática A - 10 o Ano

CRIVO QUADRÁTICO: UM ESTUDO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS

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

Sistemas Digitais. Circuitos Aritméticos. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito

5. Expressões aritméticas

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

Algoritmos. OBMEP Teoria dos números - Parte I. Algoritmo da divisão:

MA14 - Aritmética Unidade 20 Resumo. Teoremas de Euler e de Wilson

Matemática Discreta. SLIDE 3 Professor Júlio Cesar da Silva. site:

Este material é apenas um resumo de parte do conteúdo da disciplina.

Teorema Chinês dos Restos. Sistema de Congruências. Tópicos Adicionais

Multiplicação Divisão

Roteiro da segunda aula presencial - ME

Teoria dos Números e Criptografia

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

ALGORITMO DE EUCLIDES

Aula Inaugural Curso Alcance 2017

MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito

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

Aritmética em Bases Não Decimais

REVISÃO DOS CONTEÚDOS

Transcrição:

Criptografia e Segurança das Comunicações Bases matemáticas: Teoria dos números Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 1/40 Introdução A teoria dos números ( number theory ) aborda as propriedades de operações sobre inteiros. A teoria dos números é fundamental na criptografia, porque os ficheiros planos são transcritos em sequência de números (ordem de cada caracter num texto, sequência de bits num ficheiro gráfico,...). Os algoritmos criptográficos dependem fortemente da aritmética modular. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 2/40

Divisores (1) O conjunto dos inteiros {...,-2,-1,0,1,2,...} é representado por Z. [Def] 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). Ex: 15=4.3+2 [Def] b é divisível por a, a b, sse o resto de a/b for 0. Ex: 3 9. Nota 1: se a b, então q a e q b. Nota 2: O cálculo da soma e da subtração de dois inteiros de dimensão n é O(log n), o produto e a divisão de dois inteiros é O(log 2 n). Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 3/40 Divisores (2) Teorema: dados os números a,b,c a b a c a (b + c ) a b a bc a b b c a c Exemplos: 1. 17 34 17 170 17 204 2. 17 34 17 340 3. 6 12 12 144 6 144 Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 4/40

Divisores (3) [Def] O maior divisor comum de dois números a b, gcd(a,b), é o maior inteiro d tal que d a e d b. Para determinar gcd(a,b), basta factorizar os dois números e tomar os factores comuns com o menor dos expoentes. Ex: gcd(4200, 10780) = gcd(2 3.3.5 2.7, 2 2.5. 7 2.11) = 2 2.5.7 = 140 Nota1: gcd(a,b)=gcd(b,a). Nota2: factorização de números é uma operação computacionalmente custosa. 1994: a aplicação do QS-Quadratic Sieve distribuída por 1600 computadores conseguiu factorizar número RSA-129 (129 bits) em 8 meses. 2005: factorizado número RSA-560. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 5/40 Divisores (4) Algoritmo de Euclides: determina gcd(a,b) sem cálculo de todos os factores. Figura 2-7, Behrouz Forouzan, Cryptography and Network Security Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 6/40

Divisores (5) O algoritmo de Euclides 1 é o algoritmo mais antigo ainda em uso. Algoritmo de Euclides é O(log 3 n)- log n divisões * O(log 2 n) cada divisão por multiplicação russa quociente divisor Exemplo: Determinar gcd(1547,560) resto 1547 = 2.560 + 427 calcular gcd(560,427) 560 = 1.427 + 133 calcular gcd(427,133) 427 = 3.133 + 28 calcular gcd(133,28) 133 = 4.28 + 21 calcular gcd(28,21) 28 = 1.21 + 7 calcular gcd(21,7) 21 = 3.7 + 0 gcd(1547,560)=7 1 Viveu em Alexandria, 360-290 AC, frequentemente referido como pai dividendo da geometria. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 7/40 Divisores (6) Algoritmo estendido de Euclides: 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 o resto por dividendo-quociente*divisor. 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 a módulo M, se M e a forem co-primos. 1 = gcd(a,m) = ua+bm: logo, a -1 mod M = u. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 8/40

Divisores (7) O algoritmo Euclides estendido pode ser executado de forma recorrente, calculando o triplo (d,x,y) tal que ax+by=d. d é o maior divisor comun, gcd(a,b) Se d=1, então x=a -1 mod M. Extended-euclidean(a,b) { if (b==0) return (a,1,0); q = a/b; r = a%b; (d,x,y) = Extended-euclidean (b,r); return (d,y,x-qy); } Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 9/40 Divisores (8) Exemplo: determinar 123-1 mod 1003 a b q 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 Criptografia e Segurança das Comunicações Teoria números : 10/40

Números primos (1) [Def] 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, [Def] 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. Teorema fundamental da aritmética: Qualquer número n pode ser representado por um produto de números primos 1. Ex: 4200 = 2 3.3.5 2.7, 10780=2 2.5.7 2 2 113-1= 3391.23279.65993.1868569.1066818132868207 1 Denominado por factores Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 11/40 Números primos (2) [Def] A função Euler totient, determina o número de todos os valores co-primos de n. ϕ(n) = #{0 b<n gcd(b,n)=1} Teoremas: ϕ(1) = 1. Se p for primo, ϕ(p) = p-1. Se p for primo, ϕ(p n ) = p n-1 (p-1). 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 Criptografia e Segurança das Comunicações Teoria números : 12/40

Números primos (3) [Def] 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 Criptografia e Segurança das Comunicações Teoria números : 13/40 Números primos (4) 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 bits), devem ser necessários 0.4(ln 2 200 )=55 testes. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 14/40

Números primos (5) 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. Nota1: 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). Nota2: EFF premiou a descoberta com $100 000 por ser o primeiro primo com mais de 10 milhões de dígitos. Quem descobrir o primeiro primo com mais de 100 milhões de dígitos receberá $150 000. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 15/40 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! Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 16/40

Primalidade (2) B. 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 a n-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 Criptografia e Segurança das Comunicações Teoria números : 17/40 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... Criptografia e Segurança das Comunicações Teoria números : 18/40

Primalidade (4) C. 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. Nota: esta é a estratégia usada na cifra RSA para gerar números aleatórios de grande dimensão. Aviso: Alguns primos p permitem a fácil factorização de (p-1)! Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 19/40 Primalidade (5) 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. Para números não primos, ¾ dos valores de a acabam no ponto 3.3 Se o número for candidato a primo, efectuar o teste normal Nota: pode revelar que, afinal, não é primo! Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 20/40

Primalidade (6) 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 Criptografia e Segurança das Comunicações Teoria números : 21/40 Primalidade (7) 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 Criptografia e Segurança das Comunicações Teoria números : 22/40

Aritmética modular (1) [Def] a módulo M, a mod M, é o resto de a/m. Nota 1: r é por vezes designado resíduo. Nota 2: sem nos aperceber, o relógio é um sistema modular (M igual a 12 horas) [Def] Z n, é o conjunto de todos os resíduos módulo n. Exemplos: Z 2 ={0,1}, Z 6 ={0,1,2,3,4,5} [Def] Dois números a,b são congruentes, a b mod N, sse tiverem o mesmo resíduo. Exemplos: 4 12 mod 8, 3-5 mod 8 Operador congruência Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 23/40 Aritmética modular (2) Os operadores aritméticos usuais em Z: +, -, * são aplicados em Z n. 1. [Opcional] Calcula-se o resíduo a cada operando para simplificar. 2. Calcula-se a operação em Z. 3. Determina-se o resíduo. Exemplos: (14+7) mod 15 = 21 mod 15 = 6 (7*11) mod 20 = 77 mod 20 = 17 Figura 2-13, Behrouz Forouzan, Cryptography and Network Security Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 24/40

Eficiência de operações (1) 1. Produto: pretende-se avaliar x.y, com valores na ordem 2 1024 10 308. i. Cálculo pelo método matricial (proposto pela primeira vez por Fibonnaci) é muito ineficiente. ii. Multiplicação russa (ou camponesa) com shift e somas. 1. Enquanto y 1 executar e colocar lado a ladox=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 Criptografia e Segurança das Comunicações Teoria números : 25/40 Eficiência de operações (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 Criptografia e Segurança das Comunicações Teoria números : 26/40

Eficiência de operações (3) 2. Produto modular: pretende-se avaliar a*b mod N i. Cálculo ingénuo 1. Determinar primeiro a*b 2. Calcular depois a*b mod N Este cálculo pode ser muito ineficiente por gera valores de dimensão muito elevada. A redução mod N é uma operação demorada. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 27/40 Eficiência de operações (4) ii. Multiplicação Montgomery Na multiplicação modular, a redução constitui a parte mais demorada. A multiplicação Montgomery permite que a redução seja feita com valores de dimensão reduzida. Considere-se o produto ab=c mod N, com N=m k -1. Neste caso, c = c 1 m k + c 0 Rescrevendo, c = c 1 (m k 1) + c 1 + c 0 = c 1 + c 0 mod N. Ex: pretende-se calcular 3089 mod 99 sem efectuar reduções 3089 = 30*100 + 89 = 30*(100-1)+30 + 89 = 30*99 + 119 = 30*99 + 1*100+19 = 30*99 + 1*(100-1)+1+19 = 31*99 + 20 Logo, 3089 mod 99 = (31*99 + 20) mod 99 = 20 1 P. L. Montgomery; Modular multiplication without trial division. Mathematics of Computation, 44(170):519-521, Apr 1985. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 28/40

Eficiência de operações (5) Passos na multiplicação Montgomery a*b mod N: 1. Converter multiplicando e multiplicador para a forma Montgomery i. Seleccionar R=2 k, com R>N e gcd(r,n)=1. ii. Calcular R' e N' tal que RR' - NN' =1. iii. Identificar as formas Montgomey de a,b: a' = ar mod N, b' = br mod N 2. Calcular o produto a' * b' = (ar mod N) * (br mod N) = abr 2 = X 3. Converter resultado m = ((x mod R) * N') mod R x = (X+mR)/R if x N then x=x-n return x Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 29/40 Eficiência de operações (6) Exemplo: calcular 61*5 mod 79 Selecciona-se R=10 2 (nota: nos computadores usa-se base binária) a' = 61*100 mod 79 = 17, b' = 5*100 mod 79 = 26 Algoritmo Euclides invertido dá 64.100-81.79=1. Logo, R' = 64 e N' = 81 a' * b' = 17*26 = 442 m = (442 mod 10 2 * 64) mod 10 2 =(42*64) mod 10 2 =3402 mod 10 2 =2 x = (442 + 2*79)/10 2 mod 10 2 = 600/10 2 mod 10 2 = 6 mod 10 2 =6 61*5 mod 79 = 6 Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 30/40

Eficiência de operações (7) iii. Multiplicação 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) co-primos. 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 Criptografia e Segurança das Comunicações Teoria números : 31/40 Eficiência de operações (8) 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 grupos de 11! Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 32/40

Eficiência de operações (9) 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 = Cmod p = C mod q d p M = d mod( p 1) p = C p d p mod p C q d q M = d mod( q 1) q = C 2. Decifrar mensagem a partir dos resíduos M = ( M R R p q = ( p = ( q p 1 1 R q + M q mod q) p = R ) mod N p p mod p) q = q q 1 p 1 mod N mod N q d q mod q Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 33/40 Eficiência de operações (10) 3. Exponenciação modular: Pretende-se avaliar x c mod N Em cada multiplicação por x calcula-se logo 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 Criptografia e Segurança das Comunicações Teoria números : 34/40

Eficiência de operações (11) 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(log 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 Criptografia e Segurança das Comunicações Teoria números : 35/40 Eficiência de operações (12) 1 x c mod N em hardware z x Lógica controlo c mult mod N Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 36/40

Números aleatórios (1) [Def] 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. [Def] 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 Criptografia e Segurança das Comunicações Teoria números : 37/40 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 Criptografia e Segurança das Comunicações Teoria números : 38/40

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 Criptografia e Segurança das Comunicações Teoria números : 39/40 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 o Diehard. Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 40/40