• No results found

General Remarks on Time and Its Scale Done from the Point of View of the Present Method

Para realizar el cifrado, los valores que toma la ecuación (2.8) (en especial el valor p) deben ser números grandes, puesto que si se desea encriptar por el método de ElGamal uno o más caracteres de 8 bits con el código ASCII de 128 bits el cual tiene contiene 96 caracteres (véase Apéndice G) se realiza lo descrito en el Capítulo II (pág. 37), donde la codificación se realiza dividiendo el mensaje en bloques, por ejemplo de dos caracteres por bloque. Entonces la ecuación (2.19) resulta . Éste valor es el máximo que se puede tener para dos letras, por lo que p debe ser mayor o igual a éste número. Para determinar el punto de la curva elíptica que se va a asociar al bloque (de dos caracteres) se considera Para un valor de y de

j = 1 entonces x1=5 x 12222+1=61111, éste es el valor mínimo x para representar el bloque con dos caracteres. Para obtener un punto sobre la curva cuya coordenada x esté por encima del valor 61111 seleccionamos una curva elíptica con valor de p no menor a 61111.

Para realizar la encriptación de un mensaje de dos bloques, conociendo ya el valor máximo necesario, las variables de la ecuación (2.8) a, b y p valdrán 7, 29 y 65521 respectivamente, estos valores pueden ser propuestos pero se optó por utilizar los valores definidos en la referencia [16]. El mensaje a encriptar por ejemplo es: examen de grado, la longitud del mensaje es 15 caracteres, se agrega un término más (un espacio) al mensaje para que se pueda agrupar en bloques de dos y así realizar la codificación de éste explicado en el Capítulo II (pág. 37) y posteriormente se procede encontrar el valor de x; éste valor será la coordenada de un punto de la curva elíptica y para localizarlo se tomará el valor de la y correspondiente que aparece en la tabla construida con los puntos de la curva. Éste punto (x, y) relaciona un bloque de dos caracteres del mensaje a encriptar. El proceso anterior se realiza con cada uno de los bloques en que se ha dividido el mensaje. Como se explicó en el Capítulo III (pág. 44), a los puntos (x, y) de la curva elíptica que asocian duplas del mensaje se les denomina . Para obtener el mensaje original se sigue el proceso del Capítulo III (pág. 44).

El proceso de cifrado se realizó en MATLAB R2008a el cual se muestra a continuación:

Fig 4.1.

La Fig. 4.1. muestra la curva elíptica utilizada para generar los 65437 puntos que pertenecerán a ella (véase en el Apéndice H).

Para el sistema criptográfico propuesto en la tesis se muestran el diagrama a bloques de cómo está conformado el sistema (véase Apéndice I).

En EL Apéndice J se encuentra los diagramas de flujo para la construcción del sistema criptográfico y en el Apéndice K se tiene el código fuente que se desarrollo para éste sistema.

y

Los puntos OMEGA que viajan en éste último mensaje se utilizaron para hacer una detección y corrección de error [18]de forma general se explica en el Apéndice L puesto que la tesis no está orientada sobre éste tema.

Un ejemplo para el envío de un mensaje dividido en bloques de un carácter, con valores diferentes para la curva elíptica.

La diferencia que existe entre la lista de puntos encriptados con la lista de puntos OMEGA es que en la primer lista el mensaje esta encriptado la cual es denotado como y en la segunda lista , esta operación nos indica una variación de los valores de los puntos sino se realiza no se garantizará que el mensaje llegue al usuario correcto, esto porque nos indica con que usuario se realiza la conversación.

En la Fig. 4.2 se tienen todos los puntos que pertenecen a la curva elíptica. Esta gráfica tiene un eje de simetría, el cual es y=1000 y esto significa que cada punto encontrado tendrá un punto –P.

Fig. 4.2. Gráfica de puntos de la curva elíptica a= 9, b = 7 y p =2011.

x y

CONCLUSIONES

Una de las técnicas más modernas y que está en pleno desarrollo para fortalecer la seguridad en las redes de comunicaciones es la criptografía basada en curvas elípticas. En este trabajo se utilizaron valores pequeños como ejemplo para analizar el funcionamiento del algoritmo y como se aprecia en el capítulo IV el algoritmo trabajó satisfactoriamente utilizando diferentes valores, se logró identificar a los usuarios lo cual es indispensable para tener una comunicación y se cifraron los mensajes que se intercambian entre ellos. Si se lleva a la práctica éste algoritmo, una buena alternativa es emplear los valores recomendados por la NIST (véase Apéndice D) para la ecuación de Weierstrass, lo que lleva solamente a un aumento en los tiempos de procesamiento.

TRABAJOS FUTUROS

 Realizar un criptoanálisis del sistema criptográfico.

 Construir la matriz M con polinomios irreducibles para trabajar con campos binarios.

 Desarrollar un programa específico para optimizar el tiempo de procesamiento del algoritmo.

 Trabajar con cuaterniones en la construcción de la matriz M, utilizar matriz de rotación de cuaterniones para construir las llaves privadas y así plantear el sistema criptográfico a utilizar.

 Comparar el sistema planteado en la tesis con el sistema criptográfico construido por cuaterniones.

TRABAJOS DERIVADOS DE LA TESIS

Héctor Oviedo Galdeano, José Antonio López Toledo. “Implementación de matrices en sistemas criptográficos de ECC”. XII Congreso Nacional de Ingeniería Electromecánica y de Sistemas CNIES, México, D.F, Noviembre 2010.

Héctor Oviedo Galdeano, José Antonio López Toledo. “Curiosidades sobre la Criptografía en hechos que dejaron marca en el mundo”. RISCE Revista Internacional de Sistemas Computacionales y Electrónicos. Noviembre 2010, Número 6, Volumen 2, Año 2, pp. 72- 81.

Resumen ––El presente trabajo trata sobre las curvas elípticas, una de las técnicas utilizados para los sistemas criptográficos, estás tienen una mejor eficiencia con respecto a la aritmética módulo, en donde se empleará matrices para construir un sistema criptográfico en donde desde luego se aumenta la seguridad con un mínimo de requerimientos ya que los puntos a transmitir se hace aprovechando la información obtenida de los puntos ya calculados para reducir la complejidad del siguiente punto, el cálculo de estos se plantea sin conocer ningún punto y conociendo un punto que pertenezca a la curva elíptica.

Palabras Clave –curvas elípticas, criptografía.

Abstract –– This paper deals with elliptic curves, one of the techniques used for cryptographic systems, this have a better efficiency with respect to arithmetic module, where matrices used to build a cryptographic system where of course the security is increased minimum requirements and that points to convey is using the information obtained from the points already calculated to reduce the complexity of the next point, the calculation of these arises without knowing any point and knowing a point that belongs to the elliptic curve.

Keywords –– elliptic curve, cryptography.

I. INTRODUCCIÓN

Un concepto importante que ha ido crecido de una manera extraordinaria es la seguridad en la transmisión de los datos, hay técnicas que se encargan de cifrar y descifrar la información para poder garantizar una protección adecuada de los datos, estas se conocen como criptografía. El vocablo proviene del griego kryptós, “oculto”, y

graphos, “escritura”, es decir: “La criptografía es el arte de escribir en clave secreta”, donde la criptografía estudia las técnicas matemáticas relacionadas con aspectos de la información tales como la confidencialidad, la integridad de datos, autentificación y no repudio [1],[2].

II. CRIPTOSISTEMA

Todo sistema que toma información legible, para convertirlo en información no legible, se puede definir como una quíntupla (M; C; K; E; D) llamado criptosistema, el cuál debe de satisfacer la siguiente ecuación

( ( )) Dk Ek m m

(1) La ecuación (1) nos dice que un mensaje m, lo ciframos empleando una clave k y luego procedemos a descifrarlo empleando la misma clave, con lo que se obtendrá de nuevo el mensaje original m [1],[3].

M representa el conjunto de todos los mensajes sin cifrar (lo que se denomina texto claro, o plaintext).

C representa el conjunto de todos los posibles mensajes cifrados, o criptogramas.

K representa el conjunto de claves que se pueden emplear en el criptosistema.

E es el conjunto de transformaciones de cifrado que se aplica a cada elemento de M para obtener un elemento de C.

D es el conjunto de transformaciones de descifrado, análogo a E.

Tenemos dos tipos de criptosistemas los simétricos ó de clave privada y los asimétricos ó de llave pública, el primero emplea la misma clave k tanto para cifrar como para descifrar y el criptosistema asimétrico, emplea una doble clave (kp; kP) en donde kp se es la clave privada y kP se

conoce como clave pública las cuales una de ellas sirve para la transformación E de cifrado y la otra para la transformación D de descifrado.

Una de las mejores técnicas en el campo de los cifradores asimétricos es la criptografia de curvas elípticas (ECC)

planteado por Koblitz y Miller [3], [4] la implementación de estas curvas resulta más eficiente que la aritmética módulo.

Implementación de matrices en sistemas criptográficos de ECC.

Héctor Oviedo Galdeano1, José Antonio López Toledo2

1,2Departamento de Telecomunicaciones, SEPI-ESIME, IPN, México D.F., México Teléfono (55) 57296000 Ext.54782 E-mail: [email protected], [email protected]

III. CURVA ELÍPTICA

Una curva elíptica se puede definir como:

2 3 2

y x ax b (2)

En donde (2) es llamada ecuación de Weierstrass. Para que las curvas elípticas presenten una mayor seguridad tiene que cumplir con la condición discriminante:

3 2

4a 2 7b 0 (3)

Fig. 1 Curva Elíptica

Para graficar la Fig. 1 se utilizo (2) y (3), los valores que se asignaron en (2) fueron:

1; 1

a b

Donde (2) se evaluó los valores y resulto

2 3 2

1 sobre

y x x (4)

La Fig. 1 corresponde a la evaluación de (4) en donde la condición (3) si se cumple en (4) por lo tanto en la Fig. 1 no tiene raíces múltiple, existe un punto especial O, llamado

punto al infinito, es decir, es un punto imaginario situado por encima del eje x a una distancia infinita por lo que no tiene un valor en concreto, con el punto especial más la operación suma, es lo que se denomina grupo de curva

Las curvas elípticas en un cuerpo de Galois Gf( n), es un

grupo finito generado por n, siendo n un número primo impar [3], los pares de puntos que se obtendrán estarán definidos sobre este campo, cumpliendo con la restricción

0,1, ..., 1

p p donde p es un número primo impar[5], por lo tanto la curva elíptica definida en p como:

2 3 m o d ( )

y x a x b p (5) En donde para formar las parejas de puntos

( , ) | ,x y x y pde la curva Elíptica E( p) se utilizará (5) siempre y cuando se cumpla la condición.

3 2

4a 2 7b 0 (m o d p) (6)

Al conjunto de los pares de puntos de E( p) se agrega

el punto al infinito.

Para generar los pares de puntos de la curva E( p)

hay dos formas:

Sin conocer ningún punto de la curva Conociendo un par de puntos de la curva

En la ecuación (5) se asignan valores a las variables y se comprueba que el valor del discriminante sea diferente de cero, por ejemplo

1, 1 23

a b y p

Al sustituir los valores en (5) se obtiene

2 3 1 m o d ( 2 3)

y x x (7)

Al sustituir los valores de (7) en la condición (6) esta se cumple por lo tanto (7) tendrá un grado de seguridad.

Una vez que se tiene la ecuación de Weierstrass (7) definida en un campo cuyos valores en nuestro caso serán menores a 23, lo que prosigue es calcular las parejas de puntos que pertenezcan a E( p)

Primero se hará el cálculo de los pares de puntos en la curva sin conocer ningún punto de ella y después se hará a partir de un punto.

Sea

2 3 1 m o d ( 2 3)

IV.LA LEY DE RECIPROCIDAD CUADRÁTICA

Esta ley relaciona la solubilidad de congruencias de segundo grado mediante el teorema:

Teorema.- Sea p un primo impar. Un entero h, coprimo o primo relativo con p, es un residuo cuadrático módulo p, si existe una x tal que 2

x hmod (p), En caso contrario h es

un no-residuo cuadrático modulo p.

Dados un primo impar p y un entero cualquiera h, el símbolo de Legendre está definido como:

1 si a es u n resid u o cu ad rático m o d (p ) 1 si a n o es u n resid u o cu ad rático m o d (p ) 0 si h es m u ltip lo d e p

h

p (9)

El criterio de Euler está dado por

1 2 m o d ( ) p h h p p (10)

Tabla 1.Construccion de valores de la ECC utilizando la ley de la Reciprocidad cuadrática.

Para realizar el cálculo de los puntos se utiliza la tabla. 1 en donde se explicará cómo es que se obtuvieron esos datos que aparecen en ella.

El procedimiento es el siguiente:

En la columna 1 se escriben los valores de x

con x p dado que se está trabajando con

aritmética modulo 23.

Se evalúa (8) con los valores de x, el resultado se asigna a la variable z.

Se obtienen los residuos cuadráticos y no cuadráticos, para ello se utiliza el criterio de Euler y el símbolo de Legendre en donde la variable h

será sustituida por la variable z.

Para formar las parejas de punto los residuos no cuadráticos no se utilizan solamente los cuadráticos.

Se puede observar en la tabla 1 en la columna de residuos que hay trece valores de unos (+) y por lo tanto, el conjunto de pares de puntos de la curva elíptica será el doble de unos esto es 26 debido a que (7) es una ecuación cuadrática. Se agrega la pareja con residuo cuadrático con valor cero y el punto al infinito O.

Para poder formar la pareja de puntos de la curva

( , ) | ,x y x y p, en la tabla 2 se puede observar que solo se tiene los residuos cuadráticos, por lo tanto ya se conoce los valores de que tomara x p, ahora solamente nos falta conocer los valores de y p, donde para encontrar y se utiliza la ley de la reciprocidad cuadrática con la siguiente modificación:

2

m o d ( )

p y h p (11)

En la ecuación (11) lo valores que tomará y p los resultados de evaluar (11) se muestran en la tabla 3, para sintetizar estos resultados solamente se colocaron en la tabla los que se utilizará para encontrar los valores de la ordenada y así ya poder formar la pareja de puntos de la curva elíptica. x z Residuos x z Residuos 0 1 1 12 16 1 1 3 1 13 3 1 2 11 -1 14 22 -1 3 8 1 15 10 -1 4 0 0 16 19 -1 5 16 1 17 9 1 6 16 1 18 9 1 7 6 1 19 2 1 8 15 -1 20 17 -1 9 3 1 21 14 -1 10 22 -1 22 22 -1 11 9 1

Tabla 2.Residuos Cuadráticos

La interpretación de la Tabla 3 para conseguir los valores respectivos de las ordenadas es el siguiente:

Donde se considera h de la tabla 3 y x, z de la tabla 2 p=23

for i = 1 to length (x) if h i( ) z i( ) then

puntos (x(i),mod(y(i),p)) and puntos (x(i),mod(y(p-y(i)) end

end

Con este algoritmo se explica cómo se formaron los puntos que pertenecen a la curva elíptica.

Tabla 3. Valores de y para el par de puntos de ECC

y h y h 0 0 10 8 1 1 11 6 2 4 15 18 3 9 16 3 5 2 17 13 6 13 19 16 8 18 22 1

Tabla 4. Pares de puntos de (8)

En la tabla 4. Se encuentran las parejas de puntos que pertenecen ECC (8) los cuales se obtuvieron como se mencionó anteriormente, en (8) se puede ver que los resultados obtenidos tendrán dos valores debido a que la función es cuadrática, esto se refleja en la tabla 4. Donde un punto P tiene un punto –P que son simétricos a la curva elíptica, no habrá simetría cuando aparezca en los residuos cuadráticos el valor cero.

. En la segunda columna de la tabla 4 nos indica el orden, los cuales a partir de un punto se genera un máximo número de puntos, por ejemplo el punto (1, 7 ) 23 es capaz de generar a partir de este, 27 puntos más el punto al infinito

V. OPERACIONES DE LAS ECC.

Para poder realizar operaciones de adición entre los puntos de la curva elíptica debemos de considerar las siguientes condiciones.

1.- Identidad

P P P para toda P E( ) 2.- Negativos

S i ( , ) ( ), entonces ( , ) ( , ) E l punto ( , ) es denotado por

P x y E x y x y

x y P

x z Residuos Cuadráticos x z Residuos Cuadráticos

0 1 1 17 9 1 1 3 1 18 9 1 3 8 1 19 2 1 4 0 0 5 16 1 6 16 1 7 6 1 9 3 1 11 9 1 12 16 1 13 3 1

3.- Adición de puntos 1 1 2 2 3 3 C onsiderando ( , ) ( ) ( , ) ( ) donde P Q . C uando P + Q = ( , ) P x y E y Q x y E x y 2 2 1 2 1 3 1 2 3 1 3 1 2 1 2 1 ( ) y y y y x x x y y x x y x x x x

4.- Suma de puntos consigo mismo

2 2 2 1 1 3 1 3 1 3 1 1 1 3 3 2 ( ) 2 2 x a x a x x y y x x y y y

Para generar una serie de puntos dado un punto conocido, lo que se hace es utilizar la condición de la suma de puntos consigo mismo y después la condición de la adición de puntos, una de las herramientas utilizadas aquí es el algoritmo de Euclides extendido. Dado el punto

23

(1, 7 ) de (8) ver resultados en la Tabla 5 Tabla 5. Generar puntos dado un punto de ECC

Para que se tenga una mayor seguridad en los sistemas criptográficos, se puede realizar las siguientes consideraciones:

Aumentar el tamaño de la curva elíptica, pero se requiere de un esfuerzo computacional elevado para calcular el número de puntos de la curva. La otra opción es transmitir varios puntos de la misma curva en forma independiente, el

esfuerzo computacional es diferente, ya que se aprovecha la información obtenida de los puntos ya calculados para reducir la complejidad del siguiente.

VI.DESCRIPCIÓN DEL SISTEMA

Considerando una curva elíptica p= #E(Fq), sea n un

entero positivo

Donde es el conjunto de todas las matrices de tamaño n x n con elementos en Fp y es el conjunto de n-

tuplas de puntos.

Fp: Campo finito que contiene elementos q=p donde p es un

valor primo

Fq: Campo finito que contiene q elementos. Para la ANSI

X9.62, nos dice que (q = p, p > 3) o de una potencia de 2 (q = 2m).donde m es un entero positivo.

Se trabaja con las siguientes consideraciones para construir el sistema

(12)

En la ecuación (12) los valores P0, P1, …,Pn-1 son

conocidos.

Se realiza un ejemplo de la construcción de este sistema.

2 2 6 1 5 0 a a a La construcción de A es la siguiente: ( ) ( )n ( )n M atn Fp xE Fq E Fq ( ) M atn Fp S i A = [a , ] p ara 0 i,j n -1 y 0 0 1 1 = 1 1 i j P Q P Q A Pn Qn 1 , 0 n Qi ai j jP j 1 5 8 1 0 9 6 m o d 2 3 3 2 4

E n fo rm a aleato ria esco g em o s elem en to s q u e in teg raran a A , esto s serán elem eto s d e la llave p rivad a

2 ( 2 1 0 ) (1 3 ) (1 4 ) A a M a M a I A su stitu yen d o en (1 3 ) 7 5 6 6 7 0 1 5 8 1 0 0 2 1 1 8 1 4 3 1 5 8 6 1 0 9 6 5 0 1 0 3 5 4 1 5 2 3 2 4 0 0 1

La matriz M es de 3 x 3 por lo tanto

En la tabla 5. Se observa que a partir del punto (1, 7 ) 23 generamos un conjunto de puntos, para hacer de una manera amigable el ejemplo se tomaron los primeros tres valores k de la tabla 5 ( 4 , 0 ) 1 1 (3, 1 0 ) 2 1 (1 1, 2 0 ) 3 1

Ahora bien, partiendo de (15) para encontrar los valores de las llaves privadas de (13) se construirá un sistema de ecuaciones lineales para encontrar los valores a2, a1, a0 ya

que estos el destinatario no los conoce, teniendo esto ya podremos intercambiar la llave para poder descifrar los datos que se envíen, los cuales deben de estar codificados en ECC.

VII.CONCLUSIONES

La criptografía a tomado gran importancia, al utilizar matrices lineales, se puede transmitir varios puntos, ahora bien para aumentar la complejidad del sistema criptográfico se pretende utilizar el NIST (Instituto Nacional de Estándares y Tecnología) aplicado sobre campos primos donde los valores de a, b, p ya se encuentran definidos, en donde por ser números grandes se tendrá mayor seguridad, en comparación con sistemas criptográficos que utilizan la aritmética módulo.

REFERENCIAS

[1] John Talbot “Complexity and Cryptography An Introduction”

Cambridge University

[2] Alfred J. Menezes “Handbook of Applied Cryptography”

[3] Darrel Hankerson, Alfred Menezes, Scott Vanstone “Guide to Elliptic Curve Cryptography” Springer

[4] Daniel R. L. Brown “ Elliptic Curve Cryptography”, May 21, 2009 [5] Daniel R. L. Brown “Recommended Elliptic Curve Domain

Parameters”, January 27, 2010 { , 2 , 3 } (1, 7 ) P P P P lo s valo res d e (1 4 ) 0 1 4 (1, 7 ) 2 0 0 7 ( 7 , 1 1) 1 9 2 1 8 (1 8, 2 0 )

S e resu elve la m atriz an terio r

0 * (1, 7 ) 1 * ( 7 , 1 1) 4 * (1 8, 2 0 ) 2 0 * (1, 7 ) 0 * ( 7 , 1 1) 7 * (1 8, 2 0 ) 1 9 * (1, 7 ) 2 * ( 7 , 1 1) 1 8 * (1 8, 2 0 ) S e su stitu ye en

A p lican d o p ro p ied ad es d e la su m a d e p u n to s

E C C , el resu ltad o es el sig u ien te:

0 ( 7 , 1 1) (5, 1 9 ) (1 3, 1 6 ) 0 (1 1, 2 0 )

(9 , 7 ) (1 7 , 2 0 ) ( 7 , 1 2 )

resu ltad o fin al d e la m atriz es: E l

1 5

0 1 4 (1, 7 ) ( 4 , 0 )

2 0 0 7 (7 , 1 1) (3, 1 0 ) 1 9 2 1 8 (1 8, 2 0 ) (1 1, 2 0 )

[

A

ñ

A l e j a n d r o

NOVIEMBRE 2010

Número 6, Volumen 2, Año 2

RISCE Revi sta Internac i onal de

Si stemas Computaci onal es y

El ectr óni cos

Curiosidades sobre la Criptografía en hechos que dejaron marca

en el mundo.

Héctor Oviedo Galdeano, José Antonio López Toledo

Instituto Politécnico Nacional. Unidad Profesional Adolfo López Mateos. Av. Instituto Politécnico Nacional s/n. Edificio 1, 2do. Piso. 57296000 Ext. 54782

RESUMEN. En el presente artículo de divulgación se hace una semblanza de cómo la criptografía ha ido

evolucionando a través del tiempo para ofrecer cada vez una mayor seguridad. Grandes personajes que intervinieron en la revolución mexicana cifraban sus mensajes empleando cada uno de ellos su propio código, entre estos están Porfirio Díaz y Carranza, anterior a ellos, en el siglo XIX, por ejemplo, José Mariano Michelena también recurría a esta técnica. Un caso interesante fue la aparición de la máquina Enigma, que durante la segunda guerra mundial fue usada por los alemanes para cifrar sus mensajes. También se recurrió al cifrado oral, como en el caso de los indios navajos utilizados por el ejército americano en la guerra del pacífico.

PALABRAS CLAVES. Criptografía, criptografía clásica, telegrama Zimmerman,Máquina Enigma

Related documents