desafio elgamal resposta

3
Enunciado: Não sei se você ainda estava no Cesupa quando ministrei umas aulas sobre o método de encriptação de ElGamal. Bons tempos... Encriptar a mensagem HAPPY BIRTHDAY usando a cifragem de ElGamal com a chave pública (p,r,b)=(251,6,33). Mostre que o texto cifrado pode ser descriptado usando a chave privada a=13. Observações: -A tabela: A=0, B=1, ..., K=10, ..., W=22, ..., Y=24, Z=25 - Perdoe o encriptar e o descriptar...é que acho bonitinho Solução: Bom dia, professor. Na minha época, o senhor não ministrou aulas sobre El Gamal. De qualquer forma, já conhecia o algoritmo criptográfico de El Gamal pelo estudo paralelo com RSA. O método de encriptação de El Gamal proposto no artigo que o senhor me enviou (anexo ao email) utiliza uma nomenclatura diferente de variáveis em relação ao seu enunciado. Pelo artigo, a chave pública é da forma , , ! e a chave secreta é apenas . Se o senhor estiver utilizando esse mesmo padrão, então algo está errado. A chave secreta não pode ser = 13. Pois, 6 !" 33 251 Para que 251, 6, 33 seja considerada chave pública pelo padrão do artigo, então a chave secreta deveria ser, pelos meus cálculos de logaritmo discreto, = 227. 6 ! 33 251 log ! 33 251 227 251 Justamente na dificuldade de se encontrar esse logaritmo discreto que está a robustez do El Gamal. Em outras palavras, encontrar a chave privada de posse apenas da chave pública , , ! . Para números primos pequenos, essa é uma tarefa razoavelmente fácil no computador. Porém, conforme os valores da chave aumentam, as coisas ficam complicadas. Encontrar o logaritmo discreto não é algo trivial, veja meu seguinte exemplo: Encontrar um inteiro positivo , tal que 101 ! 3840 ( 10007) Eu não sei resolver isso utilizando apenas uma calculadora científica, o senhor consegue? Só consigo calcular isso utilizando o computador, inspecionando todos valores de 0 < < 10007 e comparando a potência 101 ! 10007 com o valor 3840. Aliás, = 1009. Confira. Volto a dizer que na dificuldade de encontrar essa chave secreta que reside a força do El Gamal!

Upload: vilhena-fonseca

Post on 24-Oct-2015

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desafio ElGamal Resposta

Enunciado: Não sei se você ainda estava no Cesupa quando ministrei umas aulas sobre o método de encriptação de ElGamal. Bons tempos... Encriptar a mensagem HAPPY BIRTHDAY usando a cifragem de ElGamal com a chave pública (p,r,b)=(251,6,33). Mostre que o texto cifrado pode ser descriptado usando a chave privada a=13. Observações: -A tabela: A=0, B=1, ..., K=10, ..., W=22, ..., Y=24, Z=25 - Perdoe o encriptar e o descriptar...é que acho bonitinho Solução: Bom dia, professor. Na minha época, o senhor não ministrou aulas sobre El Gamal. De qualquer forma, já conhecia o algoritmo criptográfico de El Gamal pelo estudo paralelo com RSA. O método de encriptação de El Gamal proposto no artigo que o senhor me enviou (anexo ao email) utiliza uma nomenclatura diferente de variáveis em relação ao seu enunciado. Pelo artigo, a chave pública é da forma 𝑝,𝛼,𝛼! e a chave secreta é apenas 𝑎. Se o senhor estiver utilizando esse mesmo padrão, então algo está errado. A chave secreta não pode ser 𝑎 = 13. Pois,

6!" ≢ 33   𝑚𝑜𝑑  251 Para que 251, 6, 33 seja considerada chave pública pelo padrão do artigo, então a chave secreta deveria ser, pelos meus cálculos de logaritmo discreto, 𝑎 = 227.

6! ≡ 33   𝑚𝑜𝑑  251 𝑎 ≡ log! 33   𝑚𝑜𝑑  251 𝑎 ≡ 227   𝑚𝑜𝑑  251

Justamente na dificuldade de se encontrar esse logaritmo discreto que está a robustez do El Gamal. Em outras palavras, encontrar a chave privada 𝑎 de posse apenas da chave pública 𝑝,𝛼,𝛼! . Para números primos pequenos, essa é uma tarefa razoavelmente fácil no computador. Porém, conforme os valores da chave aumentam, as coisas ficam complicadas. Encontrar o logaritmo discreto não é algo trivial, veja meu seguinte exemplo: Encontrar um inteiro positivo 𝑎, tal que

101! ≡ 3840  (𝑚𝑜𝑑  10007) Eu não sei resolver isso utilizando apenas uma calculadora científica, o senhor consegue? Só consigo calcular isso utilizando o computador, inspecionando todos valores de 0 < 𝑎 < 10007 e comparando a potência 101!   𝑚𝑜𝑑  10007  com o valor 3840. Aliás, 𝑎 = 1009. Confira. Volto a dizer que na dificuldade de encontrar essa chave secreta 𝑎 que reside a força do El Gamal!

Page 2: Desafio ElGamal Resposta

De volta ao exemplo inicial, que consiste em criptografar a mensagem:

H A P P Y _ B I R T H D A Y 7 0 15 15 24 26 1 8 17 19 7 3 0 24

Utilizarei a chave pública 251, 6, 33 conforme a notação do artigo. Onde 𝑝 = 251, 𝛼 = 6, 𝛼! = 33. A chave secreta é 𝑎 = 227, conforme mencionado acima. Mostrarei apenas os cálculos de ciframento/deciframento da primeira letra, as outras letras ficam como exercício. No entanto, mostrarei a mensagem inteira cifrada. Etapa de ciframento Para cifrar a primeira letra da mensagem 𝐻 = 7, devemos escolher um inteiro arbitrário 𝑏 < 𝑝 − 1 (vide artigo). Esse inteiro arbitrário 𝑏 não tem nada a ver com os inteiros da chave pública. Tanto que para fins de exemplo, escolherei 𝑏 = 10. Em seguida, calcular

𝛽 ≡ 𝛼! 𝑚𝑜𝑑  𝑝 𝛽 ≡ 6!" 𝑚𝑜𝑑  251 𝛽 ≡ 25   𝑚𝑜𝑑  251

Calcular também

𝛾 ≡ 𝑚 ∙ 𝛼! !   𝑚𝑜𝑑  𝑝 onde 𝑚 é a letra da mensagem; inicialmente 𝑚 = 7, corresponde à letra 𝐻. Assim:

𝛾 ≡ 7 ∙ 33!" 𝑚𝑜𝑑  251 𝛾 ≡ 7 ∙ 123 𝑚𝑜𝑑  251 𝛾 ≡ 108   𝑚𝑜𝑑  𝑝

Enviar a cifra 𝑐 = 𝛽, 𝛾 = 25,108 para o destinatário. Etapa de deciframento Para decifrar a mensagem 𝑐 = 𝛽, 𝛾 = 25,108 , o destinatário deve primeiro calcular:

𝛽!! ≡ 𝛽!!!!!   𝑚𝑜𝑑  𝑝 𝛽!! ≡ 25!"#!!!!!"   𝑚𝑜𝑑  𝑝

𝛽!! ≡ 25!"   𝑚𝑜𝑑  𝑝 𝛽!! ≡ 100   𝑚𝑜𝑑  𝑝

Decifrar a mensagem 𝑚 calculando:

𝑚 ≡ 𝛾 ∙ 𝛽!!   𝑚𝑜𝑑  𝑝 𝑚 ≡ 108 ∙ 100   𝑚𝑜𝑑  251

𝑚 ≡ 7   𝑚𝑜𝑑  251

Page 3: Desafio ElGamal Resposta

Repetindo o processo para todas as letras da mensagem temos que:

mensagem H A P P Y _ B I R T H D A Y código 7 0 15 15 24 26 1 8 17 19 7 3 0 24

criptografado 𝛾 108 0 88 88 191 186 123 231 83 78 108 118 0 191 O valor de 𝛽 = 25 é o mesmo para todas as letras. O que muda é a letra cifrada 𝛾 .