28
TESTES DE PRIMALIDADE

TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

Embed Size (px)

Citation preview

Page 1: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

TESTES DE PRIMALIDADE

Page 2: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

MOTIVACAOTestes de primalidade são ingredientes essenciais em sistemas de segurança computadorizados.Há uma série de sistemas de segurança que contam com a suposição que é difícil fatorar números, ou seja, dado um número composto, encontrar seus fatores primos é uma tarefa complicada.

Page 3: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

AS TRANCAS MATEMÁTICASFunções UnidirecionaisTrancas matemáticas ou funções unidirecionais são procedimentos matemáticos faceis de realizar e difíceis de se reverter.

Porquê são importantes ?São a base de toda e qualquer criptografia. São estes procedimentos que possibilitam que uma mensagem possa ser enviada em um meio de comunicação público, de forma segura.

Page 4: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

POR EXEMPLO:Se pegamos aleatoriamente dois números primos tais como P1 = 709 e P2 = 733 e multiplicá-los para obtermos: N = P1 * P2.

N = 709 * 733 = 519697 (isso é fácil de calcular)

Temos duas coisas: um número grande (519697) e a fatoração prima deste número grande (709 * 733).Agora, imagine que eu esconda a fatoração prima e forneça apenas o seguinte: 519697 = ? * ? (isso é difícil de calcular)

Page 5: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

É REALMENTE DIFÍCILSe eu te pedir para encontrar a fatoração primária, por ondevocê começaria? Para encontrar a solução, é necessáriofazer um monte de testes de tentativa e erro.

A multiplicação é rápida (fácil) de calcular, enquanto afatoração primária é lenta (difícil). Este simples fato forma abase do esquema de criptografia RSA.

Page 6: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

É FÁCIL PEGAR DOIS PRIMOS GRANDES QUAISQUER ?Escolher dois primos grandes e aleatorios é uma tarefa fácil ?Se pensarmos um pouco, é importante saber se um número, por exemplo, 99194853094755497, é primo ou composto.

Page 7: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

P x NPP = Um problema pode ser RESOLVIDO em tempo polinomial.NP = Um problema pode ser VERIFICADO em tempo polinomial

∎“P = NP” De modo simplificado, o problema pergunta se existem problemas matemáticos cuja resposta pode ser verificada em tempo polinomial, que não possam ser resolvidos (diretamente, sem se ter um candidato à solução) em tempo polinomial. Ilustrando: se alguém lhe disser que o número 13.717.421 pode ser escrito como o produto de dois outros inteiros, você provavelmente demorará para provar isso; contudo, se lhe assoprarem que ele é o produto de 3.607 por 3.803, você seria capaz de muito rapidamente verificar tal fato.

Page 8: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

DIVISAO POR TENTATIVAVamos começar com o teste mais simples e menos eficiente.

Page 9: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

TESTANDO …Para verificarmos se um número é primo usando o TESTE DADIVISAO POR TENTATIVA, temos que dividir o número atéencontrarmos o primeiro (ou menor) divisor.Sabendo que qualquer número composto é formado por doisou mais primos, no pior caso teremos que testar para a raizquadrada do número em questão (arredondada para cima).

Page 10: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

EXEMPLO:Por exemplo, vamos tentar determinar se 103 é primo ou não.A raiz quadrada de 103 arredondada para cima é 11.Os números primos entre 2 e 11 são 3, 5 e 7 e 11.Já os números 4, 6, 8 e 10 são pares e o 9 é um múltiplo de 3,que é um número primo, então podemos omiti-los.

Page 11: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

EXEMPLO:Ao fazer isso, nos diminuímos a lista de fatores que precisam ser testados para apenas 4 números!

Nenhum dos números 3, 5, 7 ou 11 divide o 103 de forma inteira, então sabemos que o 103 é primo.

Page 12: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

CRIVO DE ERASTOSTENESUma outra abordagem …

Page 13: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

ENCONTRANDOCOMPOSTOSResolver o problema de econtrar números primos é o mesmoproblema de encontrar números compostos.Como todo primo é não composto, encontrar os compostos nosdá os primos. É uma abordagem bem mais custosa, mas quefunciona pra casos pequenos.

Page 14: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

NA PRÁTICA∎ Definimos um limite similar ao procedimento de DIVISÃO

POR TENTATIVA.∎ Criamos uma lista de números que esteja entre 2 até o

valor limite.∎ Encontramos o primeiro primo da lista. Ele é um primo, 2.∎ Removemos da lista os múltiplos de 2.∎ Repitimos o procedimento.

Page 15: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança
Page 16: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

TESTE DE PRIMALIDADE DE FERMATOferece um teste simples e eficiente para ignorar números não-primos.

Page 17: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

SOBRE O TESTETecnicamente, o teste é para os números compostos, nãoprimos. Isso acontece porque o teste pode determinar comsegurança se um numero dado é composto ou não, mas podedizer apenas com certa precisão de esse número é primo.Esse teorema é útil quando a divisão por tentativa for inviável equando uma lista dos números que são exceções do teoremaestiver disponível.

Page 18: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

TEOREMASeja mdc(a,b) o Máximo Divisor comum de a e b.

Se b é primo, então para qualquer a cujo mdc(a,b) = 1, temos:

𝒂𝒃−𝟏 = 𝟏 (𝒎𝒐𝒅 𝒃)

Page 19: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

EXEMPLO:Escolhemos um número n = 100;Escolhemos outro número no intervalo [2, n-1];Vamos escolher o 3 neste exemplo:Calculamos 𝒂𝒏 𝒎𝒐𝒅 𝒏 → 𝟑𝟏𝟎𝟎 𝒎𝒐𝒅 𝟏𝟎𝟎 = 𝟏;Verificamos se 𝒂𝒏 𝒎𝒐𝒅 𝒏 = 𝒂 𝒎𝒐𝒅 𝒏 .

Se sim, n é composto ! Se não, n pode ser primo ...No nosso exemplo, 3100 (mod 100) = 1 e 100 (mod 100) = 0. Podemos dizer que 100 é composto.

Page 20: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

PORQUE “PODE SER ?”Infelizmente existem números que passam o teste de Fermatpara todas as bases para as quais são relativamente primosSão os chamados números de Carmichael, e são infinitos.

52633Pseudoprimo

Page 21: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

TESTE DE MILLER-RABINO teste de Miller-Rabin é parecido com o Pequeno Teorema de Fermat, mas ele funciona melhor com exceções, como os números de Carmichael.

Page 22: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

NA PRÁTICAEscolhemos um número n ímpar.Vamos escolher n = 321Expressamos n-1 como 2𝑠x d, onde d é ímpar.Podemos expressar n como 26 x 5.Escolhemos um número aleatório a entre 2 e n.Vamos escolher 100.

Page 23: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

NA PRÁTICACalculamos 𝑎𝑑 𝑚𝑜𝑑 𝑛 . Se o resultado for 1 ou -1 , o número npassa no teste e provavelmente é primo.Pra nosso exemplo:

𝑎𝑑 𝑚𝑜𝑑 𝑛 = 1005(𝑚𝑜𝑑 321) = 313

Como nós ainda não obtivemos 1 ou -1, não podemos dizerque n é provavelmente primo ainda. Entretanto, ainda há oque fazer,

Page 24: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

NA PRÁTICASe o resultado não for 1 ou -1, calculamos a2d, a4d, ... e assimpor diante até a2s-1d.Ou seja, calculamos a elevado a d vezes potências de 2 até 2s-1.

Se um desses números for 1 ou -1 (mod n), então n passa noteste de Miller-Rabin e é provavelmente um número primo.Se n não passar em nenhum desses testes, ele é composto.

Page 25: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

VOLTANDO AO EXEMPLONo nosso exemplo, o valor do a é 100, o de s é 6 e o valor de d é 5.Nós continuaríamos o teste da seguinte forma:

1002d = 10 = 1 × 1020. 1 × 1020 (mod 321) = 64. Então continuamos.1004d = 20 = 1 × 1040. 1 × 1040 (mod 321) = 244. 244 =/= 1 or -1.

Aqui podemos parar. s - 1 = 6 - 1 = 5. Nós chegamos em 4d = 22 e nãoexistem mais potências de 2 vezes d abaixo de 5d. Como nenhum dosnossos cálculos deu 1 ou -1, podemos dizer com segurança que n =321 é composto.

Page 26: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

CONFIABILIDADESe você descobrir que o seu valor de n é primo, tente de novo com umoutro valor aleatório para a para melhorar a confiabilidade doresultado do teste. Se n é realmente primo, ele vai passar no testepara qualquer outro valor de a. Se n for composto, ele não vai passarem pelo menos três quartos dos valores de a. Isso dá a esse métodouma confiabilidade maior que o Pequeno Teorema de Fermat oferece,onde certos números compostos (os números de Carmichael) podempassar para qualquer valor de a.

Page 27: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

PROBLEMAS CONHECIDOS COM PRIMOS

∎Densidade Quantos primos existem entre {1 ...... n}?∎ Listagem Liste todos os primos entre {1 ...... n} .∎Teste Dado um inteiro n, este n é primo?∎Aleatório Escolha um primo aleatório entre {1 ...... n}.

Page 28: TESTES DE PRIMALIDADE - Matemática UFMGisrael/Ensino/AlgA/2016/apresentacoes/GuilhermeS… · MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança

Obrigado