Escolar Documentos
Profissional Documentos
Cultura Documentos
A - Aula 01
Algoritmo da divisao de Euclides e Algoritmo
Euclideano estendido
Elaine Pimentel
Departamento de Matem
atica, UFMG, Brazil
2o Semestre - 2010
Introducao
Criptografia
Criptografia
Chave p
ublica: saber codificar nao implica saber decodificar!
Criptografia RSA
I
Teoria de n
umeros: parte da matematica que estuda n
umeros
inteiros.
Computacao algebrica
Chave p
ublica do RSA: multiplica-se dois primos muito
grandes.
Algoritmos
Algoritmo da divisao
0 r < b.
Algoritmo da divis
ao:
Etapa 1: q = 0; r = a
Etapa 2: Se r < b, pare. Nesse caso, o quociente e q e o
resto r .
Etapa 3: Se r b, faca r := r b, q := q + 1 e volte `a
Etapa 2.
Algoritmo da divisao
Observacoes:
1. O algoritmo sempre para: sequencia decrescente de n
umeros
inteiros positivos.
2. O resultado da aplicacao do algoritmo corresponde `as
especificac
oes da sada (trivialmente).
3. O algoritmo e extremamente ineficiente, em especial se
a >> b.
Teorema da Divisao
Teorema de divis
ao: Sejam a e b inteiros positivos. Existem
n
umeros inteiros q e r tais que
0r <b
a = bq + r
0r <b
a = bq 0 + r 0
0 r0 < b
(1)
(2)
Algoritmo Euclideano
I
I
Algoritmo Euclideano
Dados dois n
umeros inteiros positivos a e b tais que a b,
divide-se a por b, encontrando resto r1 . Se r1 6= 0, dividimos
b por r1 , obtendo resto r2 . Se r2 6= 0, dividimos r1 por r2 e
assim por diante.
Ou
ltimo resto diferente de zero dessa sequencia de divisoes e
o mdc(a, b).
Exemplo:
1234 54 46 8 6 2
46
8
6 2 0
Ou seja, mdc(1234, 54) = 2.
Algoritmo euclideano
Perguntas:
1. Por que o u
ltimo resto nao nulo e o mdc?
2. Por que o algoritmo para?
a
b
r1
r2
=
=
=
=
bq1 + r1
r1 q2 + r2
r2 q3 + r3
r3 q4 + r4
..
.
e
e
e
e
0 r1 < b
0 r2 < r1
0 r3 < r2
0 r4 < r3
..
.
Algoritmo euclideano
Respostas:
I
d2 = mdc(b, s).
=
=
=
=
bq1 + r1
r1 q2 + r2
r2 q3 + r3
r3 q4 + r4
..
.
rn2 = rn1 qn
e
e
e
e
0 r1 < b
0 r2 < r1
0 r3 < r2
0 r4 < r3
..
.
rn = 0
Da u
ltima linha, temos que rn1 divide rn2 e portanto
mdc(rn1 , rn2 ) = rn1 . Aplicando sucessivamente o lema 1,
temos que mdc(a, b) = rn1 .
ou seja,
46 = 1234 54.22
54 = 46.1 + 8
ou seja,
8 = 54 46.1
Logo,
8 = 54 46.1 = 54 (1234 54.22).1
= 54(1 + 22.1) + 1234.(1)
= 54.(23) + 1234.(1)
Logo,
46
8.5 + 6
= 46 8.5
= (1234 54.22) (54.(23) + 1234.(1)).5
= 1234.(6) + 54.(22 (23).5)
= 1234.(6) + 54.(137)
6.1 + 2
= 86
= (54.(23) + 1234.(1)) (1234.(6) + 54.(137)
= 1234(1 6) + 54(23 + 137)
= 1234(7) + 54(160)
E portanto, = 7 e = 160.
1. Livro texto: 2 a 7.