Está en la página 1de 4

Emmanuel de Atocha Zamora Hoil

Algoritmos más eficientes para calcular exponenciaciones en


grupos multiplicativos.

Para comenzar este reporte, me gustaría repasar el concepto de


logaritmo discreto:
Sea G un grupo abeliano finito (multiplicativo) y sea g un elemento
de orden n de G. Dado un elemento a perteneciente al subgrupo
generado por g, se define el logaritmo discreto de a en base g como el
entero k, 0 ≤ k ≤ n - 1, tal que

g^k = a

Aunque el logaritmo discreto se ha definido en un grupo


multiplicativo, tambien es posible definir el logaritmo discreto en grupos
aditivos como el conjunto de puntos de una curva eliptica. En este caso
se habla de un logaritmo discreto eliptico.

La importancia del estudio del problema del logaritmo discreto


radica en la operacion inversa a la exponenciacion en un grupo. La
exponenciacion modular es una operacion sencilla y se conocen métodos
eficientes, pero el cálculo del logaritmo módulo un entero cualquiera no
siempre puede realizarse de forma eficiente. Todo radica en la
exponenciación. Este es el motivo por el que algunos criptosistemas y
sistemas de autentificación de mensajes e intercambio de claves se basan
su seguridad en el Problema del Logaritmo Discreto.

¿Cuáles son los algoritmos más eficientes para calcular


exponenciaciones?

1. Intercambio de claves de Diffie-Hellman (DH)

En 1976, Whitfield Diffie y Martin Hellman propusieron el primer


protocolo de intercambio de clave basado en la exponeicacion en cuerpo
finitos.

2. Criptosistema de Massey-Omura

En este protocolo se utiliza la conmutatividad de ciertas funciones


para conseguir , en tres pasos , que dos personas intercambien un
mensaje de forma segura sin compartir ninguna clave.

3. Criptosistema de ElGamal

Este criptosistema fue propuesto por Taher ElGamal en 1985. Esta


basado en la idea de diffie-Hellman y funciona de una forma parecida a
este algoritmo discreto. Puede ser utilizado tanto para generar firmas
digitales como para cifrar o descifrar. La seguridad del algoritmo se basa
en la suposicion que la función utilizada es de un solo sentido debido a la
dificultad de calcular un logaritmo discreto. El procedimiento de cifrado
y descifrado esta basado en cálculos sobre un grupo cíclico cualquiera G
lo que lleva a que la seguridad del mismo dependa de la dificultad de
calcuar logaritmos discretos en G.

4. Alforitmo de firma de ElGamal.

Basado en la exponenciación en cuerpos finitos Fp con p primo.

5. Algoritmo de firma digital (DSA)

DSA es un estándar del Gobierno Federal de los Estados Un idos de


América para firmas digitales. Fue propuesto por el NIST (National
Institute of Standards and Technology) en 1994 y el esquema de pasos a
seguir para firmar un mensaje es similar al del algoritmo de firma
ElGamal.

Con este algoritmo , si un usuario A quiere firmar un mensaje lo


primero que debe hacer es establecer la clave pública y la privada x.

6. Algoritmo de Blum-Micali

Es un generador de números pseudoaleatorios que basa su


seguridad en la dificultad de calcular logaritmos discretos. Las
secuencias de números presudoaleatorios tienen aplicación en múltiples
campos tales como la Criptografía, la simulación y la Estadística.

7. Criptosistema de Ciss-Cheikh-Sow.

Ciss, Cheikh y Sow proponen un criptosistema de clave pública


cuya seguridad se basa en los problemas de factorización y logaritmo
discreto.

Estas son algunas de las aplicaciones del logaritmo discreto. Un


método eficaz para resolver el PLD pondría en jaque la seguridad de
todos los sistemas basados en él que son utilizados hoy en día. Hay
algunos algoritmos existentes para el cálculo del logaritmo discreto.
Dichos algoritmos pueden clasificarse en tre tipos:

1. Algoritmos genéricos, esto es, algoritmos válidos en cualquier


grupo
2. Algoritmos para grupos cuyo cardinal tiene todos sus factores
primos pequeños.
3. Algoritmos que utilizan propiedades particulares del grupo (en
cuanto a su estructura)

Los algoritmos Genéricos:


• Fuerza Bruta. Es la manera más obvia de calcular el logaritmo
discreto de un elemento a en base g es calcular las diferentes
potencias de g, almacenarlas en una tabla y buscar el elemento k
en dicha tabla. Este método no es eficaz cuando el orden del grupo
es grande.
• Algoritmo de Shanks: «Baby step-Giant step». Es un método para
calcular el logaritmo de un elemento en un grupo. Es genérico, es
decir, que funciona para cualquier grupo, siempre que conozcamos
el orden del mismo (o buena cota para él)
• Algoritmo ρ de Pollard. Consiste en construir una secuencia
preudoaleatoria de elementos de G en la que existan dos términos
iguales y, a partir de esos términos, calcular el logaritmo discreto.
Se trata del algoritmo genérico más eficaz.
• Algoritmo del Canguro de Pollard. También conocido como
algoritmo λ busca el logaritmo discreto, k, en un itnervalo [c, d] ⊆
Ζ n. En caso de no conocer el intervalo al que pertenece el
logaritmo discreto, se pueden establecer c = 0 y d= n-1, pero en tal
caso es mas eficiente el algoritmo ρ.
• Index - Calculus. Este método sólo puede utilizarse en ciertos
grupos entre los que se encuentran los grupos multiplicativos de
los cuerpos finitos.La pérdida de generalidad de este método se
compensa con una mayor eficiencia que surge de sacar provecho
de las propiedades particulares del grupo. La idea de este
algoritmo consiste en explotar la representación de los elementos
del grupo como producto de elementos de un subconjunto pequeño,
la base de factores. Dago G de orden n, tomamos B ={p1,p2,...,pr}
⊆ G.

Index- Calculos comprende:


• Factorización de polinomios en cuerpos finitos.
• Algoritmos Libre de Cuadrados
• Factorización distinto grado.
• Algoritmo de Berlekamp - Para factorizar polinomios libres de
cuadrados.
• Algoritmo de Cantor-Zassenhaus. Es un algoritmo para factorizar
polinomios cuyos factores irreducibles son todos del mismo grado.
Sin embargo, se puede utilizar para hallar la factorización canónica
de un polinomio f(x) cualquiera.

¿Cuál es el tamaño de p en bits para el que se ha logrado calcular


un algoritmo discreto?

Hay diferentes campos numéricos para definir la operación del


logaritmo discreto. Los más utilizados son «enteros módulo a primo» y
«Curvas elípticas sobre enteros módulo a primo».

El cálculo de un logaritmo discreto en ciertos campos numéricos se


hace exponencialmente más difícil a medida que el antilogartimo crece.
El mayor módulo RSA factorizado públicamente (2009) a la fecha
(2020) tenpía una longitud de 798 bits y requería un esfuerzo equivalente
a 1500 años en un procesador AMD Opteron a 2.2 GHz de un sólo núcleo.
Los autores de este logro afriman que factorizar un módulo RSA de 1024
bits requería un esfuerzo 1000 veces mayor.

El esfuerzo estimado para factorizar un módulo de 2048 bit RSA es


2³² más difícil que un módulo de 1024 bits.

También podría gustarte