Professional Documents
Culture Documents
Resumen
En el presente articulo se describen los conceptos importantes para el desarrollo de una
aplicacin en lenguaje C++ para realizar firmas digitales utilizando curvas elpticas. El
procedimiento de firmas utiliza los siguientes algoritmos: la funcin SHA1 doble barra
para asegurar la integridad del archivo y el esquema de firma Nyber-Rueppel para
asegurar autenticidad. Tambin se utilizaron otras herramientas como algoritmos de
compresin de datos. La fortaleza de las firmas digitales utilizando curvas elpticas se
basa en el problema del logaritmo discreto. Los mejores algoritmos conocidos para
solucionar este problema corren en tiempo exponencial.
Abstract
In this work it is described important concepts needd for develop an application in C++
language to sign and check digital signatures using elliptic curves, In the signature
procedure the following algorithms were used: the function SHA-1 double barrel to
assure the file integrity and the signature algorithm Nyberg-Rueppel to assure
authenticity. Other tools were also used like compression of data algorithms. The
strength of digital signatures using elliptic curves is based in the discreet algorithm
problem. The best known algorithms to solve this problem runs in exponential time.
1.0 Introduccin
Las facilidades de comunicacin de informacin que suministra una red LAN pueden
ser usadas, en el entorno de cualquier organizacin, para disminuir en forma
significativa, el consumo de papel y la mensajera tradicional interna, con las
consiguientes ventajas de oportunidad y precisin de la informacin, pero se presenta la
dificultad de asociar en forma efectiva la identidad del usuario al mensaje. Este
inconveniente se soluciona a travs de la introduccin de las firmas digitales. El
presente trabajo tiene como objetivo construir una aplicacin que permita la firma y
verificacin de cualquier archivo de datos que se pueda ubicar dentro del ambiente de
trabajo de un computador que tenga instalado el sistema operacional Windows 95/98.
Para lograr el objetivo propuesto se utilizar tecnologa basada en curvas elpticas, la
cual tiene como ventaja el que se encuentra libre de patentes y se ha considerado como
la tecnologa del futuro para desarrollos de sistemas criptogrficos.
Las firmas digitales se construyen utilizando criptografa de clave publica, la cual utiliza
dos claves, privada y publica. La clave privada se mantiene en secreto y la clave publica
se divulga libremente. Para firmar se utiliza la clave privada y para verificar la firma se
utiliza la clave publica. Las firmas digitales permiten garantizar los servicios de
Integridad y Autenticidad al tiempo.
Las curvas elpticas se pueden utilizar par formular el problema del logaritmo discreto,
una vez formulado este problema es posible construir un esquema de firma digital como
el DSS o el esquema Nyberg-Rueppel.
Este trabajo esta organizado como sigue: en la primera seccin se presenta una breve
introduccin sobre el tema de las curvas elpticas; este es un tema del cual se ha escrito
en forma muy extensa durante los ltimos ciento cincuenta aos y abarca reas que no
son de inters de la criptografa, como un ejemplo de ello se tiene su reciente
participacin como pilar fundamental en la demostracin del ultimo teorema de Fermat.
Por ejemplo, Los nmeros racionales , los nmeros reales y los nmeros complejos
forman cuerpos con las operaciones de suma y multiplicacin.
El conjunto de los enteros con las operaciones usuales de suma y multiplicacin no
forma un cuerpo, ya que los nicos elementos con inverso multiplicativo son el 1 y el
-1. Un cuerpo es finito si consta de un numero finito de elementos.
El cuerpo F2m es un cuerpo finito compuesto por 2m sartas de unos y ceros de longitud
m, al cual tambin se le denomina cuerpo de Galois. Estas estructuras son
particularmente propicias para su utilizacin en aplicaciones computacionales ya que
corresponden muy bien con la representacin interna que los computadores hacen de los
nmeros.
Como un requisito indispensable para que estas curvas sean criptograficamente fuertes
[KOBLITZ1, pag 168] se requiere que la curva cumpla la siguiente condicin.
3 2
4a + 27b 0 (2. 2)
Ejemplo.
Tomando la curva elptica: y2 = x3 + 9x + 17 definida en el cuerpo F 23 cual es el
logaritmo discreto k de Q = (4,5) en la base P = (16,5).
Una forma de solucionar este problema es realizando una aproximacin por fuerza
bruta, es decir probar todos los posibles K .
K=1 P = (16,5)
K=2 2P = (20,20)
K=3 3P = (14,14)
K=4 4P = (19,20)
K=5 5P = (13,10)
K=6 6P = (7,3)
K=7 7P = (8,7)
K=8 8P = (12,17)
K=9 9P = (4,5); Se ha encontrado el valor de Q, por lo tanto k = 9 es
logaritmo discreto de Q (4,5) en base P(16,5).
Los mejores algoritmos para solucionar este problema corren en tiempo exponencial
[ELIPCUR, pagina 8] en funcin del tamao del cuerpo, por tal motivo este problema al
igual que otros, con las mismas caractersticas, se denominan problemas duros.
M || M H
Comparacin
H E D
EKRa[H(M)]
KPuba
KRa
Figura #2.
Q = sP (3.1)
Para realizar la firma se debe escoger una secuencia aleatoria de bits k y calcular
R = kP (3.2)
d = k sc mod n (3.4)
La pareja (c,d) es la firma digital del documento m representado por su valor hash e .
R = dP + cQ (3.5)
e = c x mod n (3.6)
Como paso final el destinatario calcula el valor hash e=Hash(M) del mensaje recibido y
lo compara con e . Si los valores son iguales la firma es correcta. Si los valores son
diferentes, entonces el mensaje fue alterado y la firma debe ser rechazada.
Las aplicacin principal permite generar una parejas de claves y almacenar la clave
publica en un servidor Oracle, junto con los datos de identificacin del usuario. Una
vez realizado esto se puede:
a. Elegir un archivo dentro del entorno de Windows 95/98 y
firmarlo. Este proceso produce un archivo comprimido con extensin .fdi el cual
puede ser enviado por correo utilizando un navegador o cualquier otra herramienta.
b. Elegir un archivo firmado, descomprimirlo y verificar la firma
anexa.
5.0 Conclusiones
La teora referente a la utilizacin de curvas elpticas para aplicaciones criptogrficas
y los desarrollos de software de dominio publico, permiten la construccin de
aplicaciones para ofrecer los servicios de autenticidad e integridad en una red LAN con
un buen nivel de seguridad. Con la conveniencia de que las tecnologas utilizadas estn
libres de patentes. Tambin se puede implementar los servicios de secreto para la
transmisin segura de informacin en medios inseguros. Esto abre las puertas al
desarrollo de productos comerciales que puedan ofrecer buenos servicios de seguridad
para transmisin de informacin entre usuarios de una red LAN y en otros tipos de
aplicaciones como productos de workflow etc.
El trabajo desarrollado requiere avances en otras reas como mtodos para generar
curvas criptogrficamente fuertes (finitas, con un gran numero de puntos y que
cumplan la condicin 2.2) para que los productos puedan ser configurados por los
usuarios. Tambin se requiere del desarrollo de tcnicas de programacin segura, que no
permitan los ataques del tipo desbordamiento de pila o que expongan informacin
critica en memoria.