Professional Documents
Culture Documents
Descrio
Antes de 1975 se algum falasse que seria possvel a troca de informaes criptografadas entre
duas partes sem que houvesse uma troca de chaves secretas entre ambas as partes provavelmente
muitos matemticos diriam ser impossvel. Mas em 1976 o algoritmo Diffie-Hellman foi inventado. O
maior problema para que isso acontecesse foi a dificuldade de clculos de logaritmos discretos em
um campo infinito.
Diffie-Hellman estabelece um compartilhamento de chaves secreto que pode ser usado para troca
de mensagens secretas dentro de um canal de comunicao pblico. O diagrama a seguir ilustra a
idia geral de troca de chaves usando cores ao invs de um nmero muito grande. O passo chave
do processo que Alice e Bob trocam suas cores secretas apenas atravs de uma mistura. Isso
gera uma chave idntica que praticamente impossvel de ser revertida por qualquer outra parte
que esteja escutando o canal. Alice e Bobo usam sua chave comum encriptar e descriptar de modo
secreto suas mensagens. Note que a cor amarela j foi previamente acordada por Alice e Bob.
Alice
Secreto
Pblico
p, g
p, g, A
p, g, A
a, s
Bob
Calcula
Envia
Calcula
Pblico
p,g
ga mod p = A A
p, g, A, B Ba mod p = s
Secreto
p, g
B gb mod p = B p, g, A, B
Ab mod p = s p, g, A, B
b, s
1. Alice e Bob entram em acordo para usar um nmero primo p=23 e como base g=5.
A = 56 mod 23
A = 15,625 mod 23
A=8
B = 515 mod 23
B = 30,517,578,125 mod 23
B = 19
s = 196 mod 23
s = 47,045,881 mod 23
s=2
s = 815 mod 23
s = 35,184,372,088,832 mod 23
s=2
6. Alice e Bob compartilham agora uma chave secreta: s = 2. Isto possvel porque 6*15 o
mesmo que 15*6. Algum que tenha descoberto estes dois inteiros privados tambm ser
capaz de calcular s da seguinte maneira:
s = 56*15 mod 23
s = 515*6 mod 23
s = 590 mod 23
s = 807,793,566,946,316,088,741,610,050,849,573,099,185,363,389,551,639,556,
884,765,625 mod 23
s=2
Tanto Alice quanto Bob chegaram no mesmo valor pois (ga)b e (gb)a so iguais mod p. Note que
apenas a, b e gab = gba mod p so mantidos em segredo. Todos os demais valores p, g, ga mod p,
and gb mod p so enviados limpos no canal pblico. Uma vez que Alice e Bob calculam a chave
secreta, eles podem ento us-la como chave de encriptao, conhecida apenas por eles, para
enviar e receber mensagens ao longo do mesmo canal de comunicao. claro que valores bem
maiores de a, b, e p seriam necessrios para tornar este exemplo seguro, uma vez que fcil tentar
todos os possveis valores de gab mod 23. Existem apenas 23 possveis inteiros que possuem os
resultados observados para mod 23. Por outro lado, se p for um primo de ao menos 300 dgitos
e a e b tenham ao menos 100 dgitos, ento at os melhores algoritmos conhecidos atualmente no
poderiam encontrar a dado apenas g, p, gb mod p e ga mod p, mesmo usando todo o poder
computacional existente na humanidade. Tal problema conhecido como problema do logaritmo
discreto. Note que g no precisa ser necessariamente grande, e na prtica seus valores so
usualmente 2 ou 5.
Logaritmo discreto
Origem: Wikipdia, a enciclopdia livre.
[editar]Exemplo
Logaritmos discretos so talvez mais simples de entender no grupo (Zp). Este o conjunto
{1, , p 1} de classes de equivalncias sob a multiplicao mdulo o primo p.
Se queremos encontrar o k-simo potncia de um dos nmeros neste grupo, podemos fazer isso
encontrando k-esimas potncias como um inteiro e ento encontrando o resto da diviso por p. Este
processo chamado exponenciao discreta. Por exemplo, considere (Z17). Para calcular 34 neste
grupo, primeiro calculamos 34 = 81, e ento dividimos 81 por 17, obtendo o resto 13. Logo 3 4 = 13 no
grupo (Z17).
Logaritmo discreto apenas a operao inversa. Por exemplo, pegue a equao 3 k 13 (mod 17)
para k. Como mostrado acima k=4 uma soluo, mas no a nica. Desde que 3 16 1 (mod 17)
segue que se n um inteiro ento 34+16 n 13 1n 13 (mod 17). Assim a equao tem infinitas
solues da forma 4 + 16n. Alm disso, desde que 16 o menor inteiro positivo m que satisfaz 3m
1 (mod 17), i.e. 16 a ordem multiplicativa de 3 em (Z17), estas so as nicas solues. De maneira
equivalente, a soluo pode ser expressa da forma k 4 (mod 16).
[editar]Definio
De maneira geral, seja G um grupo cclico finito com n elementos. Assumimos que este grupo est
escrito multiplicativamente. Seja b um gerador de G; ento todo elemento g deG pode ser escrito na
forma g = bk para algum inteiro k. Alm disso, quaisquer dois
inteiros k1 and k2 representando g sero congruentes mdulo n. Podemos ento definir uma funo
[editar]Algoritmos
Nenhum algoritmo clssico eficiente para computar logaritmo discreto de nameira geral
logb g conhecido. O algoritmo ingnuo elevar b a maiores e maiores potncias k at que
o g desejado seja encontrado. Este algoritmo requer um tempo de execuo linear no
tamanho do grupo G e logo exponencial no nmero de dgitos do tamanho do grupo. Existe
um algoritmo quntico eficiente de acordo com Peter Shor.[1]
Existem algoritmos mais sofisticados, geralmente inspirados em algortimos similares
para sfatorao de inteiros. Estes algoritmos executam mais rpido do que o algoritmo
ingnuo, mas nenhum deles roda em tempo polinomial (no nmero de dgitos do tamanho
do grupo).
Baby-step giant-step
Pohlig-Hellman algorithm
[editar]Comparao
[editar]Criptografia
Computar logaritmos discretos aparentemente difcil. No apenas no se conhece
algoritmo eficiente para os piores casos, mas a complexidade para os casos mdios
demonstradamente quase to difcil quanto o pior caso, demonstrao esta que pode ser
feita utilizando-se random self-reducibility.
Ao mesmo tempo, o problema inverso da exponenciao discreta no to difcil (pode ser
computado eficientemente utilizando exponenciao por quadrados, por exemplo). Esta