You are on page 1of 21

´

Algebra
A - Aula 01
Algoritmo da divis˜ao de Euclides e Algoritmo
Euclideano estendido
Elaine Pimentel
Departamento de Matem´
atica, UFMG, Brazil

2o Semestre - 2010

Introdu¸c˜ao

I

I

I

I

Objetivo: estudar o m´etodo de criptografia de chaves p´
ublicas
conhecido como RSA.
´ necess´ario o estudo de alguns conceitos de uma ´area da
E
matem´atica chamada Teoria de n´
umeros.
Espera-se desenvolver o racioc´ınio l´
ogico matem´atico
introduzindo m´etodos de prova de teoremas como indu¸c˜ao
matem´atica e demonstra¸c˜ao por absurdo.
´ um curso de matem´atica para cientistas da computa¸c˜ao.
E

I Decodificar x Decifrar (quebrar). .Criptografia I Criptografia: estuda os m´etodos para codificar uma mensagem de modo que s´o seu destinat´ario leg´ıtimo consiga interpret´a-la. I Criptoan´alise: arte de decifrar c´ odigos secretos. I Prim´ordios: Cesar (transla¸c˜ao do alfabeto).

monoss´ılabo de uma letra = vogal. I Internet e criptografia: seguran¸ca.Criptografia I Substituir letras por s´ımbolos . letra mais frequente: A. assinatura. I Chave p´ ublica: saber codificar n˜ao implica saber decodificar! . consoantes mais frequentes: S e M M´etodo de contagem de frequˆencia de caracteres pode ser usado para decifrar inscri¸c˜ oes antigas. I Computadores: m´etodo de cifragem completamente inseguro (polinomial).contagem de frequˆencia: I I I I vogais s˜ao mais frequentes.

T. Shamir. Se n possui 150 algarismos ou mais.I. I I Teoria de n´ umeros: parte da matem´atica que estuda n´ umeros inteiros.) 1978. ´ dif´ıcil determinar os fatores primos de um n´ Obs: E umero composto. fator´a-lo levaria milhares de anos. mas ´e poss´ıvel verificar se um n´ umero ´e primo ou composto sem tentar fator´a-lo. I Decifrar RSA = fatora¸c˜ao de n.Criptografia RSA I RSA: Rivest. Adleman (M. I Decodifica¸c˜ao: precisamos conhecer p e q (chave de decodifica¸c˜ao). I Codifica¸c˜ao: basta conhecer o produto de dois primos (n = pq). n ´e chamado chave p´ ublica. .

Exemplo: Mathematica. estruturas de dados (vetores de tamanhos pr´e-fixados). I Computa¸c˜ao alg´ebrica: trata do c´alculo exato com inteiros. I Inteiros = listas! Algarismos = elemento da lista.. fra¸c˜oes. Divis˜ao ´e mais complicado. grandes o suficiente. C: n˜ao permitem lidar com n´ umeros dessa magnitude. como com l´apis e papel.Computa¸c˜ao alg´ebrica I Chave p´ ublica do RSA: multiplica-se dois primos muito grandes. I Inteiro de tamanho indeterminado: de tamanho flex´ıvel. etc. I Pascal. Restri¸c˜ oes: tamanho da mem´oria.. opera¸c˜oes de soma e multiplica¸c˜ao: usuais. . Maple.

sempre chegaremos a um resultado? (ponto fixo) o resultado obtido ´e sempre o desejado? (semˆantica) . Perguntas: I I I ao executarmos um conjunto de instru¸c˜ oes. I Especifica¸c˜ao de um algoritmo: entrada + instru¸c˜oes + sa´ıda.Algoritmos I Algoritmo = processo de c´alculo baseado em regras formais.

. pare.Algoritmo da divis˜ao I Objetivo: encontrar o quociente q e o resto r (sa´ıda) da divis˜ao entre dois inteiros positivos a e b (entrada): a = bq + r I 0 ≤ r < b. fa¸ca r := r − b. r = a Etapa 2: Se r < b. Nesse caso. Etapa 3: Se r ≥ b. q := q + 1 e volte `a Etapa 2. o quociente ´e q e o resto r . Algoritmo da divis˜ ao: Etapa 1: q = 0.

O resultado da aplica¸c˜ao do algoritmo corresponde `as especifica¸c˜ oes da sa´ıda (trivialmente). O algoritmo sempre para: sequˆencia decrescente de n´ umeros inteiros positivos. em especial se a >> b. 3. O algoritmo ´e extremamente ineficiente.Algoritmo da divis˜ao I Observa¸c˜oes: 1. . 2.

r 0 tais que a = bq + r 0≤r <b a = bq 0 + r 0 0 ≤ r0 < b (1) (2) Subtraindo-se (1) de (2). Prova: Unicidade . mas 0 ≤ r . temos 0 ≤ q − q0 < 1 ou seja. 0 ≤ b(q 0 − q) < b Como b > 0. . r 0 < b e portanto 0 ≤ r − r 0 < b. Existem n´ umeros inteiros q e r tais que 0≤r <b a = bq + r Al´em disso.Teorema da Divis˜ao Teorema de divis˜ ao: Sejam a e b inteiros positivos. q − q 0 = 0 → q = q 0 e r = r 0 . q e r s˜ao u ´nicos.Sejam q. obtemos: r − r 0 = b(q 0 − q) Ora. r . q 0 . Ou seja.

Escrevemos d = mdc(a. . b).Algoritmo Euclideano I I Objetivo: Calcular o mdc entre dois n´ umeros inteiros. b) = 1. Defini¸c˜ao: o m´aximo divisor comum entre a e b ´e o n´ umero d tal que: I I I I d|a (ou d ´e divisor de a) d|b se d 0 ´e divisor de a e b. dizemos que a e b s˜ao primos entre si. Se mdc(a. ent˜ao d 0 |d.

encontrando resto r1 . dividimos b por r1 . 54) = 2. Se r1 6= 0. Ou ´ltimo resto diferente de zero dessa sequˆencia de divis˜oes ´e o mdc(a. obtendo resto r2 .Algoritmo Euclideano I Dados dois n´ umeros inteiros positivos a e b tais que a ≥ b. . mdc(1234. b). divide-se a por b. I Exemplo: 1234 54 46 8 6 2 46 8 6 2 0 Ou seja. dividimos r1 por r2 e assim por diante. Se r2 6= 0.

. Por que o algoritmo para? a b r1 r2 = = = = bq1 + r1 r1 q2 + r2 r2 q3 + r3 r3 q4 + r4 .Algoritmo euclideano Perguntas: 1.. Por que o u ´ltimo resto n˜ao nulo ´e o mdc? 2. e e e e 0 ≤ r1 < b 0 ≤ r2 < r1 0 ≤ r3 < r2 0 ≤ r4 < r3 . .. .

Algoritmo euclideano Respostas: I Segunda pergunta: observe que b > r1 > r2 > . . o algoritmo sempre para. ≥ 0 Como essa sequˆencia ´e finita. I Primeira pergunta: demonstra¸c˜ao do algoritmo euclideano . o n´ umero de divis˜ oes efetuadas ´e no m´aximo b (por que?). . Mais ainda.

Prova Sejam d1 = mdc(a. ent˜ao mdc(a. Se existem inteiros g e s tais que a = bg + s. s). s). De fato. Afirmamos que d1 ≤ d2 . . existem inteiros positivos u e v tais que: a = d1 u e b = d1 v Substituindo a e b na equa¸c˜ao a = bg + s obtemos s = d1 u − d1 vg = d1 (u − vg ).Demonstra¸c˜ao do algoritmo euclideano Lema Sejam a e b n´ umeros inteiros positivos. b) e d2 = mdc(b. b) = mdc(b.

ou seja. d2 ≤ d1 . d1 = d2 . d1 ´e um divisor comum de b e s.Demonstra¸c˜ao do algoritmo euclideano Ou seja. Mas d2 ´e o maior divisor de b e s e portanto (por defini¸c˜ao) d1 ≤ d2 como quer´ıamos. Seguindo um argumento semelhante. podemos provar o inverso. Em outras palavras.

rn−2 ) = rn−1 .. e rn = 0 Da u ´ltima linha. rn−2 = rn−1 qn e e e e 0 ≤ r1 < b 0 ≤ r2 < r1 0 ≤ r3 < r2 0 ≤ r4 < r3 . Aplicando sucessivamente o lema 1. temos que rn−1 divide rn−2 e portanto mdc(rn−1 . o u ´ltimo resto diferente de zero da sequˆencia de divis˜oes dada pelo algoritmo euclideano para a e b ´e o m´aximo divisor comum entre a e b. . .. b) = rn−1 . Prova a b r1 r2 = = = = bq1 + r1 r1 q2 + r2 r2 q3 + r3 r3 q4 + r4 .Demonstra¸c˜ao do algoritmo euclideano Teorema Dados a e b inteiros positivos. . temos que mdc(a.

1 Logo.1 = 54 − (1234 − 54.22 54 = 46. Existem inteiros α e β tais que αa + βb = d.1 = 54(1 + 22. 8 = 54 − 46. 8 = 54 − 46. Temos que: 1234 = 54.(−1) = 54.(−1) .22 + 46 ou seja.Algoritmo euclideano estendido Teorema Sejam a e b inteiros positivos e seja d o m´aximo divisor comum entre a e b. Exemplo: Sejam a = 1234 e b = 54.1 + 8 ou seja.1) + 1234. 46 = 1234 − 54.(23) + 1234.22).

(−1)).(−22 − (23). 46 = 8.22) − (54.(23) + 1234. .Algoritmo euclideano estendido Logo.(−137) 8 = 6.5 + 6 → 6 = 46 − 8.(−137) = 1234(−1 − 6) + 54(23 + 137) = 1234(−7) + 54(160) E portanto. α = −7 e β = 160.(−1)) − (1234.5) = 1234.5 = 1234.(23) + 1234.5 = (1234 − 54.(6) + 54.1 + 2 → 2 = 8−6 = (54.(6) + 54.(6) + 54.

Algoritmo euclideano estendido Obs. I RSA depende de um m´etodo eficiente de c´alculo de α e β. Pergunta: para que serve calcular α e β? Resposta: I unicidade de fatora¸c˜ao de um inteiro. . α e β n˜ao s˜ao u ´nicos.

Cap´ıtulo 1 1. Livro texto: 2 a 7. .Exerc´ıcios propostos .