Вы находитесь на странице: 1из 16

Notas sobre Criptografa

Miguel Morales Sandoval


INAOE, 2003.

mmorales@inaoep.mx
En este documento se presentan notas bsicas sobre criptografa haciendo nfasis en criptografa de curvas elpticas. Se provee la bibliografa en la cual el lector puede profundizarsobrelostemasdesuinters. Seguridaddelainformacin La seguridad de la informacin describe todas las medidas tomadas para prevenir el uso no autorizado (alteracin, sustitucin o destruccin) de datos disponibles en forma electrnica [1]. La seguridad de informacintienecomoobjetivoestablecerlossiguientesservicios: ConfidencialidadLainformacinesdisponiblesoloparaaquellaspartesqueestnautorizadas. Integridad:Lainformacinesmodificadasoloporaquellaspartesqueestnautorizadas. Disponibilidad: La informacin es accesible solo por aquellas partes que la necesiten y solo cuando ellas la necesiten.Unamedidaparaproveerestosservicioseslacriptografa. Criptografa Lapalabracriptografavienedel griegokryptusque significaescondidoydela palabragraphosque significa escritura, por tanto, cuando se habla de criptografa, se refiere a esconder, ocultar, hacer ininteligible cierta informacin. Durante siglos, el principal uso de la criptografa se redujo principalmente a sus aplicaciones en la diplomacia, particularmente en tiempos de guerra. Los primeros sistemas criptogrficos realizaban la ocultacin de la informacin mediante tcnicas de transposicin y sustitucin. Algunos ejemplos de estos sistemas sonel Cifrado de Cesar,laEscitalay lamquinaEnigma[2]. Sinembargo,enaosrecientessehan dadograndesavancesenlastecnologasparacomunicacindigitalymvil;talescomotelefonainalmbrica y celular, sistemas de comunicacin personal, expansin exponencial de Internet, etc. La transmisin y almacenamiento seguro de la gran cantidad de informacin digital utilizada en estas aplicaciones tiene una importancia crucial, muy especialmente, en el caso del comercio electrnico y mvil. En este escenario, la investigacinencriptografahaemigradohaciaunanuevagamadeproblemasprcticosmsavanzados,los cuales van desde cmo establecer reglas seguras para autorizar el acceso de usuarios a redes de cmputo, hasta implementaciones del llamado dinero electrnico, las cuales deben ser hechas sin dejar rastro de dnde,cmoyatravsdequentidadseoriginlatransaccinelectrnica. Los sistemas de seguridad se componen de varias partes, una de estas partes es la criptografa. La criptografa es crucial de un sistema de seguridad [3]. Los sistemas criptogrficos (criptosistemas) son controlados por el uso de una llave, con la cual realizan la transformacin de la informacin. La llave debe ser salvaguardada y es responsabilidad de quien la utiliza. Los criptosistemas realizan los tres objetivos de laseguridaddelainformacin.Laconfidencialidadeintegridadsesubdividenen5servicios: ConfidencialidadElaccesoalainformacinesrestringidoaentidadesautorizadas. AutenticacindeusuarioLaspartesinvolucradasenunatransaccinsegurasonquienesdicenser. AutenticacindedatosdeorigenSeaseguraelorigendelosdatos. IntegridaddelosdatosLosdatosnohansidomodificadosporpartesnoautorizadasdurantesutransmisin. NorepudioQuienharealizadounatransaccin,nopuedenegardespusquenofuequienlarealizo.

Histricamente, los criptosistemas han proporcionado nicamente el servicio de confidencialidad [1]. La confidencialidad se logra a travs del cifradode los datos. El cifrado transforma datos legibles (plaintext) en datos totalmente ininteligibles (ciphertext) mediante la aplicacin de un algoritmo cuya entrada es una cadena de bits conocida como llave. El proceso inverso de convertir ciphertext en plaintext es llamado descifrado y se requiere nuevamente de una llave para realizarlo. Un criptosistema consiste de una 5tupla (M,C,K,E,D),donde: Mrepresentaelconjuntodetodoslosmensajessincifrar(plaintext) Crepresentaelconjuntodetodoslosposiblesmensajescifrados. Krepresentaelconjuntodeclavesquesepuedenemplearenelcriptosistema. E es el conjunto de transformaciones de cifrado o familia de funciones que se aplica a cada elemento de M paraobtenerunelementodeC. Deselconjuntodetransformacionesdedescifrado,anlogoaE. Los criptosistemas pueden dividirse en dos clases: criptosistemas simtricos y criptosistemas asimtricos (tambinconocidoscomocriptosistemasdellavepblica)[4]. Criptografadellavesimtrica Los criptosistemas de llave simtrica solamente ofrecen el servicio de confidencialidad. En estos sistemas se emplea una misma llave k tanto para cifrar como para descifrar la informacin. Esta llave solo es conocida tnto por el emisor como el receptor y ambos deben salvaguardarla. La desventaja de los criptosistemas de llave privada es que la llave para cifrar y descifrar debe estar tanto en el emisor como en el receptor, por lo que la llave debe transmitirse de forma segura previamente a realizar las operaciones de cifrado y descifrado. Bajo este esquema, al transmitir la llave por un canal inseguro, la llave puede interceptarse y ponerenriesgolaintegridaddelosdatos. Emisor Receptor Fig.Esquemadeoperacindelcifradoencriptografadellaveprivada. Se han propuestovarios criptosistemas dellavesimtrica, entre los cuales destacan AES, FEAL, IDEA,DES, 3DES[4],[5].Estoscriptosistemasaunseutilizandebidoaqueprocesanlosdatosmuchomsrpidoquelos criptosistemasasimtricos. Criptografadellaveasimtrica La criptografa de llave asimtrica fue propuesta por Whit Diffie y Martin Hellman en 1976 [6]. Bajo este esquema, se emplean dos llaves, una de carcter privado y una de carcter pblico. La llave pblica se utilizaparacifrarlainformacinysolamentelallaveprivadapodrdescifrarla.Lallavepblicadelreceptor esdelconocimientodecualquierentidademisoraquequieraenviarinformacincifrada.Lallaveprivadaes conocida y salvaguardada nicamente por el receptor. En los criptosistemas de llave pblica, se debe asegurarqueelconocimientodelallavepblicanopermitirobtenerlallaveprivada.Loscriptosistemasde llave asimtrica ofrecen mayores niveles de seguridad que los criptosistemas simtricos, a dems, tienen la ventaja de que la llave pblica es la nica que se transmite por el canal inseguro. La desventaja que presentanesquesonmslentoscomparadosconloscriptosistemassimtricos.

Concriptografadellavepblicaesposible ofrecerelserviciodeconfidencialidad,autenticacin,integridad y no repudio. El servicio de confidencialidad se logra con el cifrado, ya que nicamente el receptor puede descifrar la informacin con su llave privada. Debido a que cualquiera puede tener acceso a la llave pblica del receptor, no se asegura que el emisor sea quien dice ser. Con el algoritmo de firma digital, se logran los serviciosdeautenticacin,integridadynorepudio. Emisor Receptor Fig.Esquemadeoperacindelcifradoencriptografadellavepblica La firma digital es una operacin anloga a la firma escrita. El esquema de operacin es similar al proceso de cifrado solo que las llaves pblica y privada son invertidas, es decir, la llave privada se emplea para generar la firma del mensaje y la llave pblica se utiliza para verificar dicha firma. La autenticacin y el no repudioseconsigueporquenicamenteelemisorpudofirmarelmensajeyaqueeleselnicoqueposeesu llaveprivada. Emisor Receptor Informacincifrada Informacinoriginal Cifrado Descifrado Informacinoriginal 11000101100 ???????????????? 11000101100 LlaveKpriv LlaveKpub Mediode transmisin Fig.Esquemadefirmadigital Ellaintegridaddelosdatosseconsigueaplicandounafuncinhash[3]alosdatosquesevanatransmitir.La salida de la funcin hash se conoce como el resumen del mensaje y puede verse como la huella digital del mensaje a transferirse. El resumen del mensaje es el que se cifra con la llave privada del emisor y se transmite junto con el mensaje original. El receptor aplica la misma funcin hash a el mensaje original y descifra el mensaje mediantela llave publicadelemisor.Entoncescomparalainformacindescifradacon la salida de la funcin hash, si ambas son iguales, los datos no fueron modificados y se sabe que el emisor es realmente quien dice ser. Si son diferentes, los datos han sufrido alteracin durante la transferencia y la firmanoesvlida. Emisor Receptor Mediode Verificacindela transmisin Informacinoriginal FuncinHash firmadigital 11000101100 Mediode transmisin Informacincifrada Informacinoriginal Cifrado Descifrado FuncinHash ?????? 11000101100 LlaveKpriv LlaveKpub Fig.Esquemadefirmadigital juntoparaautenticacineintegridadenlosdatos Aunque el concepto de criptografa de llave pblica fue propuesto en 1976, el primer criptosistema de llave pblica surgi el 1978, el criptosistema RSA [7]. Se trata de una propuesta por tres profesores del MIT y

actualmente es el algoritmo con ms aceptacin en el mercado de criptografa de llave pblica. Otros algoritmossonDiffieHellman,ElGamal,DSA,RabinyECC[4],[5],[8]. Seguridaddeloscriptosistemas Un criptosistema es solo una parte de un sistema de seguridad. A menudo, es la parte del sistema que se intenta vulnerar para as, poder tener acceso al sistema por parte de entidades no autorizadas. Un criptosistema es vulnerado o roto si es posible hallar la llave necesaria para descifrar la informacin. La seguridaddeloscriptosistemasdellavepblicasebasaenladificultadderesolverunproblemamatemtico [9].Ladificultaddeunproblemaseexpresaentrminosdeunalgoritmo.Unalgoritmoesunasecuenciade pasos que describen como resolver un problema. Se dice que un problema es difcil si el algoritmo ms rpido conocido para resolver el problema toma una gran cantidad de tiempo relativo al tamao de la entrada. Los algoritmos pueden clasificarse de acuerdo a su complejidad. As, se tienen algoritmos en tiempopolinomialyalgoritmosentiempoexponencial. La complejidad de un algoritmo est determinada por el poder computacional necesario para ejecutarlo. La complejidadcomputacionaldeunalgoritmoesmedidapordosvariables:Tparalacomplejidadentiempoy Sparalacomplejidadenespacio(requerimientodememoria).TantoTcomoSsonexpresadasenfuncinde n, donde n es el tamao de la entrada [5]. Rigurosamente hablando, un algoritmo se ejecuta rpidamente relativo al tamao de la entrada si el algoritmo es de complejidad polinomial y lentamente si es de complejidad exponencial. Cuando se busca un problema matemtico que sea la base de un criptosistema de llave pblica, se busca uno que sea un problema difcil, es decir, un problema para el cual, el mejor algoritmoconocidopararesolverloseadecomplejidadexponencial. Entremstiempotomeresolverelproblemaenelquesebaseuncriptosistemadellavepblica,msseguro es ste. Solo tres tipos de problemas han mostrado ser aplicables a criptosistemas con altos niveles de seguridad [9]: la factorizacin de enteros, el clculo de logaritmos discretos y el clculo de logaritmos discretos para curvas elpticas. Sin que exista una certidumbre absoluta, se cree que estos problemas son extremadamente difciles de resolver. En la prctica sin embargo, slo un reducido nmero de estructuras matemticas ha podido ser aplicado hasta ahora para construir los mecanismos de los sistemas criptogrficos.Lamayoradeestasestructurasprovienendelateoraelementaldenmeros. En particular, la estructura ms utilizada en los criptosistemas modernos, es el grupo multiplicativo de los enteros mdulo un nmero grande, el cual frecuentemente se escoge como un nmero primo. Consecuentemente, la complejidad de la teora elemental de nmeros, ha jugado un papel relevante en el diseodesistemascriptogrficos. Criptoanlisis Elcriptoanlisisesunconjuntodetcnicasquepermitendescifrarlainformacinsinconocerpreviamentela llave que se utiliz para cifrarla. El mtodo ms conocido prueba todas las claves posibles (mtodo por fuerza bruta). El criptoanlisis es un tema de investigacin en el que continuamente se intenta mejorar los algoritmosparapoderromperloscriptosistemasqueannohansidovulnerados.Estosalgoritmosintentan obtenerlasllavesdecifradoapartirdelainformacincifrada. CriptografaconCurvasElpticas Fundamentoterico Camposfinitosygruposabelianos Grupos y campos son elementos principales del lgebra abstracta (lgebra moderna), una rama de las matemticas. Los campos finitos tienen gran importancia en criptografa ya que varios algoritmos criptogrficosbasansuoperacinsobrearitmticarealizadaenestoscampos[4].

Un grupo es un sistema algebraico que consiste de un conjunto de elementos G junto con una operacin binariadefinidasobreGyquesatisfacelossiguientesaxiomas: 1.Cerradura:Paratodox,yenG,xyesunelementodeG. 2.Asociatividad:paratodox,yyzenG,(xy)z=x(yz). 3.Identidad:ExisteunelementoenGtalquex=x=x. 4.Inverso:ParatodoxenG,existeyenGtalquexy=yx=. Siadems,paracualquierx,yenG,sesatisfacequexy=yx,entonceselgruposedenominaabeliano. Un campo finito es un sistema algebraico que consiste de un conjunto finito F junto con 2 operaciones binarias,+y*,sobreloselementosdeFyquesatisfacelossiguientesaxiomas: 1.Loselementos0y1seencuentranenF. 2.Fesungrupoabelianorespectoalaoperacin+. 3.F\{0}esungrupoabelianorespectoalaoperacin*. 4.Paratodox,yyzenF,x*(y+z)=(x*y)+(x*z)yx+(y*z)=(x+y)*(x+z). El orden de un campo finito es el nmero de elementos en el campo. Un resultado fundamental en [11] estableceque elcampo finitode orden q existe si y solosiqespotenciadeunnmero primo (q= pm,donde p es primo y m es un entero positivo), adems, el orden del campo es nico. El campo se denota como Fq o GF(q) (la notacin GF son las siglas de Galois Field, en honor al matemtico que fue el primero en estudiar loscamposfinitos).Siendoq=pm,psedenominalacaractersticadeFqymsedenominalaextensindeFq. CampofinitoFp Param=1,Fq=Fpesllamadoelcampoprimoyconsistedelconjuntodeenteros {0,1,2,...,p1} juntoconlaoperacinmodulop. Lasoperacionesaritmticasdefinidassobreestospuntosson: 1. Adicin: Si a, b Fp entonces a+b = r, donde r es el residuo de la divisin de (a+b) /p. Esta operacin es llamadaadicinmodulop. 2. Multiplicacin: Si a,bFp entonces ab = s, donde s es el residuo de la divisin (ab)/p. Esta operacin es llamadamultiplicacinmdulop. 3. Inversin:SiaesunelementoenFpdiferentede0,elinversodeaeselnicoenterocFptalqueac=1. CampofinitoF2m El campo finito F2m, llamado campo finito binario o de caracterstica 2, puede verse como un espacio de vectores de dimensin m sobre {0,1}. Para cada a F2m, existen m elementos {0, 1, 2, . . . , m1} en F2m tal queapuedeescribirsedeformanicadadaporlarelacin: m1 = dondeai{0,1} a aii i=0 El conjunto {0, 1, 2, . . . , m1} se denomina base de F2m sobre {0, 1}. Cada elemento a de F2m puede representarse por el vector binario (a0, a1, a2, . . . , am1). Existen diferentes bases de F2m sobre F2. Tres de las bases ms comunes para F2m son: base polinomial, base normal y base dual. Cada una de estas bases presenta

ventajas y desventajas cuando se realiza la implementacin de la aritmtica sobre los elementos del campo finito(multiplicacin,divisineinversinprincipalmente). Enbasepolinomial,sea m1 f(x)=xm+fixi i=0 dondefi {0,1},f(x) es unpolinomioirreduciblede gradomsobre{0, 1}llamado polinomiodereduccin.Para cada polinomio de reduccin, existe una representacin en base polinomial, en tal representacin, cada elementodeF2mcorrespondeaunpolinomiobinariodegradomenorquemconcoeficientesenF2={0,1}.Si aF2m,existenmnmerosai{0,1}talque a=am1xm1++a1x+a0 El elemento a se denota por la cadena de bits (am1, , a1a0) de longitud m. Las siguientes operaciones se definen sobre los elementos de F2m cuando se usa una representacin polinomial con polinomio de reduccinf(x). 1.Adicin:Sean a, b F2mcona =(am1a1a0),b=(bm1b1b0),a+b =c=(cm1c1c0),donde ci=aiXORbi, i=1..m 1. 2.Multiplicacin:Seana,bF2mcona=(am1a1a0),b=(bm1b1b0),ab=c=(cm1c1c0),donde m1 m1 m1 c(x)= es el residuo de la divisin del polinomio cixi aixi bixi i=0 i=0 i=0 entreelpolinomiof(x). Los polinomios irreducibles f(x) pueden ser un trinomio de la forma xm+xk+1 o un pentanomio de la forma xm+ta+tb+tc+1 dondem, k,a, by cson enteros positivos.Cuando f(x)esuntrinomio,lareduccinmodulo f(x)serealizaeficientementetantoensoftwarecomoenhardware[15]. Una basenormal para F2m sobre {0, 1} es unabase de la forma {, 2,..., 2m1},donde F2m. Para unm dado, labasenormalsiempreexiste[11].CadaelementoadeF2mpuedeescribirsecomo m1 a= ai2i dondeai{0,1} i=0 El elemento a se denota por la cadena de bits (a0a1am1) de longitud m. Una representacin en base normal del campo finito F2m tiene la ventaja de que la operacin de elevacin al cuadrado y la raz cuadrada de un elemento se implementan eficientemente. La elevacin al cuadrado se implementa fcilmente en hardware [15], ya que solo consiste de un corrimiento cclico sobre el vector de representacin. Por el contrario, la operacin de multiplicacin es ms complicada. La aritmtica sobre los elementos del campo F2m puede efectuarse eficientemente sobre clases particulares de bases normales llamadas bases normales Gausianas, estabaseexistesiemprequemnoesdivisiblepor8[12]. Curvaselpticas Unacurvaelpticaesunconjuntodeparesordenadosquecumplenunarelacin.Estarelacinsedefinesobre elementos de un campo finito. En cuestiones de criptografa, los campos finitos sobre los que se definen las curvas elpticas son dos: el campo de los nmeros primos Fp y el campo de las cadenas de m bits F2m. En

amboscasos,lasoperacionesdeadicinymultiplicacinterminansiempreconreduccinmdulop(Fp)om (F2m). La caracterstica importante de las curvas elpticas es que cuando se definen sobre los campos Fp o F2m, el conjunto de puntos que conforman a tal curva elptica forman un grupo abeliano sobre la operacin de suma. Con esto, cualquier operacin que se realice entre los puntos de la curva, siempre resultar en otro punto de la curva elptica. Otra caracterstica importante de las curvas elpticas es que el problema del logaritmo discreto definido sobre los puntos de la curva elptica es intratable, es decir, el mejor algoritmo conocido para resolver el problema del logaritmo discreto de curva elptica es de complejidad exponencial. El problema del logaritmo discreto de curva elptica consiste en encontrar el valor del nmero entero k tal que dadosdospuntoscualquieraP,Qdelacurvaelptica,larelacinP=kQsecumplesiemprequekexiste(ky el orden de Q son nmeros suficientemente grandes). En este problema se basa la seguridad de los criptosistemasdecurvaelptica. Fig.CurvaelpticasobreFp Los puntos de una curva elptica pueden representarse en varios tipos de coordenadas, las que ms se utilizanenaplicacionesdecriptografasonlascoordenadasaffineyproyectivas. CurvaselpticassobreelcampoFp Sea p > 3 un nmero primo impar. Sean a, b Fp tales que 4a3 + 27b2 0 (garantiza que la ecuacin N no tengamltiplesraces).LacurvaelpticaE(Fp)sobreFpdefinidaporlosparmetrosa,bconsistedelconjunto desoluciones(x,y)delaecuacin: y2=x3+ax+b juntoconunpuntoespecialllamadopuntoalinfinito. La operacin + puede definirse sobre el conjunto E(Fp) tal que (E(Fp), +) forme un grupo abeliano donde el puntoespecialactacomoelelementoidentidad.Estegrupoalgebraicoeselqueseempleaparaconstruir criptosistemas de curva elptica. La operacin de adicin, en coordenadas affine, se define de la siguiente forma: P+=+P=PparatodoPE(Fp) Si P=(x,y) E(Fp),entonces(x,y)+(x,y)=.Elpunto(x,y)sedenota comoPysedenominaelnegativo deP. SeanP=(x1,y1)yQ=(x2,y2)elementosdeE(Fp),dondePQ.P+Q=(x3,y3)donde x3=2x1x2 y3=(x1x3)y1 =(y2y1)/(x2x1)

SeaP=(x1,y1)E(Fp),P+P=2P=(x3,y3),donde x3=22x1 y3=(x1x3)y1 =(3x12+a)/2y1 La suma de 2 puntos diferentes en E(Fp) requiere de las siguientes operaciones en Fp: una inversin, dos multiplicaciones, una elevacin al cuadrado y seis sumas. La suma de dos puntos iguales de E(Fp)requiere deunainversin,dosmultiplicaciones,doselevacionesalcuadradoyochosumas. Coordenadasaffine Operacin 2P=P+P P+Q #Inversion 1 1 #Multiplicacin 2 2 #Squares 1 2 #Suma 6 8 El orden (o nmero de elementos) de E(Fp), por el teorema de Hasse, se encuentra en el intervalo (p+1 2raiz(p),p+1+2raiz(p)).ElordendeunpuntodeE(Fp),eselenteropositivonmspequeotalquenP=.El teorema de Lagrange establece que la exponenciacin de un elemento de un grupo a la potencia del orden del grupo resulta en el elemento identidad. Aplicando este teorema a E(Fp), mP = para cualquier P en E(Fp),loqueimplicaqueelordendeunelementoennopuedeexcederelordendelgrupo. CurvaselpticassobreF2m La curva elptica E(F2m) sobre F2m definida por los parmetros a, b F2m, b 0, consiste del conjunto de soluciones(x,y)alaecuacin: y2+xy=x3+ax2+b juntoconunpuntoespecialllamadopuntoalinfinito. ElordenE(F2m),porelteoremadeHasse,seencuentraenelintervalo(2m+12raiz(2m),2m+1+2raiz(2m)). Al igual que en el caso del campo Fp, el conjunto E(F2m) forma un grupo abeliano aditivo. La suma de los puntosdeE(F2m),encoordenadasaffine,sedefinedelasiguienteforma: P+=+P=P,paratodoPE(F2m) Si P = (x, y) E(F2m), entonces (x, y) + (x, y) = . El punto (x, y) se denota como P y se denomina el negativodeP. SeanP=(x1,y1)yQ=(x2,y2)elementosdeE(F2m),dondePQ.P+Q=(x3,y3)donde x3=2++x1+x2+a y3=(x1+x3)+x3+y1 =(y2+y1)/(x2+x1) SeaP=(x1,y1)E(F2m),P+P=2P=(x3,y3),donde x3=2++a y3=(x1+x3)+x3+y1 =x1+(x1/y1)

En este caso, la suma de 2 puntos diferentes en E(F2m) requiere de las siguientes operaciones en F2m: una inversin,dosmultiplicaciones,unaelevacinalcuadradoyochosumas.Lasumadedospuntosigualesde E(F2m)requieredeunainversin,dosmultiplicaciones,unaelevacinalcuadradoyseissumas. Coordenadasaffine Operacin 2P=P+P P+Q #Inversion 1 1 #Multiplicacin 2 2 #Square 1 1 #Suma 8 6 Curvaselpticasencriptografa Las curvas elpticas, como entidades geomtricas/algebraicas han sido estudiadas al menos desde la segunda mitad del siglo XIX, mucho antes de que las computadoras digitales fueran inventadas. Originalmente, el estudio de estas curvas fue desarrollado por matemticos interesados en el problema por razones puramente estticas. Fue hasta 1985 que la aplicacin de curvas elpticas a criptografa fue propuestoindependientementeporNealsKoblitz[13]yVictorMiller[14]. El mrito que tienen los criptosistemas de curvas elpticas (Elliptic Curve Cryptosystems ECC) es que, comparado con el criptosistema de llave pblica ms usado, el RSA, ECC puede proveer el mismo nivel de seguridad con una longitud de llave ms pequea, con una reduccin en el tamao de la llave de 7:1. Con una llave pequea,las operaciones criptogrficas, como lafirmadigital,puederealizarsemsrpido. El uso de llaves pequeas implica mayor velocidad, y menores necesidades de memoria y de poder de cmputo para la implementacin de los algoritmos correspondientes a este esquema. El tiempo para la transmisin y el espacio para almacenamiento de las llaves tambin se reduce en un factor de 7. Estas caractersticas son atractivasespecialmenteparaaplicacionesendispositivosmviles,loscualescuentasconmodestosrecursos computacionales. Un algoritmo criptogrfico que opere sobre puntos de una curva elptica (p.j ECDSA) puede tener el mismo nivel de seguridad que un algoritmo criptogrfico que opere sobre enteros grandes (p.j. DSA) usando mucho menos bits. En la tabla es muestra la comparaciones de ECDSA y ECC ofreciendo elmismoniveldeseguridad. Algoritmoconenteros Algoritmoconpuntosdeunacurva grandes(DSA) eliptica(ECDSA) 512 106 768 132 1024 160 2048 210 21000 600 ECC basa su seguridad en el problema del logaritmo discreto (PLD) para curvas elpticas. Desde la introduccin de la criptografa de llave pblica, la aparente intratabilidad del problema del logaritmo discreto se ha reconocido. El PLD fue definido [6] como el problema de encontrar logaritmos con respecto a un generador en el grupo multiplicativo de los enteros modulo un nmero primo. Esta idea puede extenderse a grupos arbitrarios [15]. As, el PLD se puede extender al grupo que forman los puntos de una curva elptica respecto a la operacin de suma, cuando la curva elptica se define sobre un campo finito. El PLD en este grupo aditivo se conoce como el problema del logaritmo discreto de curva elptica (PLDCE) y consiste endadosdospuntos Py Q en G, hallarelenteroktal quekP=Q (Qeslasuma dePaelmismok1 veces). Para el PLDCE, el mejor algoritmo conocido para resolverlo es de complejidad exponencial. Se trata

del mtodo Pollard [16], el cual toma RAIZ(n)/2 pasos, donde n es el tamao de la llave en bits y cada pasoconsisteenunasumadepuntosdelacurvaelptica. No todas las curvas elpticas definidas sobre algn campo finito son prcticas en criptografa [12]. Para ciertascurvaselpticas,lasolucin delPLDCE puederealizarse en uncorto tiempo.Lascurvaselpticasque deben evitarse son las llamadas curvas supersingulares, curvas con nmero de puntos igual al orden del campo finito sobre el que la curva elptica se define y curvas definidas sobre F2m donde m no es un nmero primo. El NIST (NationalInstituteofStandardsandTechnology) ha emitido varias recomendaciones en cuanto altipodecurvasquedebenemplearseascomoloscamposfinitossobrelosqueesascurvasdebendefinirse. La seguridad de ECC no depende nicamente de la longitud de la llave como ocurre con otros criptosistemas, sino tambin de los parmetros de la curva elptica. En general, toma gran tiempo generar los parmetros adecuados que conllevarn a una alta seguridad. La generacin rpida de estos parmetros esimportanteparaimplementacionesprcticasdeECC. AlgoritmoscriptogrficosenECC Los criptosistemas de curva elptica (ECC) incluyen intercambio de llaves para compartir un valor secreto (ECDH),cifrado/descifrado(ECIES)yfirmadigital(ECDSA).Elalgoritmodedistribucindellavesesusado paracompartiruna llavesecreta entredospartes, elalgoritmodecifradoposibilitalaconfidencialidadde la comunicacin y la firma digital se emplea para la autentificacin y validacin de la integridad de la informacin.Acontinuacin,sepresentaunadescripcindeestosalgoritmos. LosparmetrosdedominiodelascurvaselpticassobreelcampoelcampoFqsonlasptupla T=(q,FR,a,b,G,n,h) donde qrepresentaelcampofinitoquevaaemplearse(q=poq=2m). FResunindicadordelosmtodosusadospararepresentarloselementosdelcampoFq. a,bFqdeterminanlaecuacindelacurvaelpticasobreFq. Gesunpuntosobrelacurvaelpticadeordenprimo. neselordendeG(nestalquenG=,eselpuntoalinfinito). h es un nmero entero que representa el valor |E(Fq)|/n, |E(Fq)| indica el orden (nmero de elementos) de E(Fq). Intercambiodellaves Lageneracindelallavepblicayprivadaserealizasiguiendolospasossiguientes: 1.Seleccionarunnmeroaleatoriodenelintervalo[1,n1]. 2.CalcularQ=dG. 3.LallavepblicaesQ,lallaveprivadaesd. Despusdegenerarlasllavespblicayprivada,stasdebenvalidarseefectuandolospasossiguientes: 1.VerificarqueQ(eselpuntoalinfinito) 2.VerificarquelascoordenadasdeQsonelementosdeFq 3.VerificarqueQesunelementodeE(Fq) 4.VerificarquenQ= El algoritmo ECDH se emplea para generar un valor secreto compartido entre dos entidades A y B. Supngase que las entidades A y B tiene los parmetros de dominio T = (q, FR, a, b, G, n, h). Supngase tambin que dA es la llave privada de A y QB la llave pblica de B. Las acciones que A sigue para establecer unsecretocompartidoconyBson(segnelestndarANSIX9.62[19]):

10

1.LaentidadAcalculaP1=dAQB=(x,y). 2.z=x. 3.Elvalorsecretocompartidoesz=x Cifrado/descifrado El algoritmo ECIES [20] se emplea para cifrar/descifrar informacin. En este algoritmo se emplean dos algoritmos ms: un algoritmo C para cifrado simtrico del mensaje y un algoritmo MAC para autenticacin del mensaje. Sea A la entidad emisora y B la entidad receptora, ambos, con parmetros de dominio T = (q, FR, a, b, G, n, h). Sea QB la llave pblica de B. El emisor A lleva a cabo los siguientes pasos para enviar el mensajemenformacifradaaB: 1.Seleccionarunnmeroaleatorio[0,n1],eslallaveprivadadeA. 3.CalcularelpuntoG=(x1,y1)=R.ReslallavepblicadeA. 4.CalcularelpuntoQB=(x2,y2)=Z 5.Sederivandosllavesk1yk2deRyZmediantealgnalgoritmo 6.Secalculac=Ck1(m)yt=MACk2(c). 7.Setransmiteelmensajeme=(R,c,t)alreceptorB. ElreceptorBllevaacabolospasossiguientesparadescifrarelmensaje: 1.CalcularelpuntoZ=dBR,dBeslallaveprivadadeB 2.Sederivandosllavesk1yk2deRyZmediantealgnalgoritmo(delamismaformaqueAlohizo) 3.Secalculat=MACk2(c).Elmensajecifradoserechazasitt. 4.Calcularm=Ek11(c). El algoritmo E puede ser cualquier cifrador simtrico, en el caso ms simple, Ek(c) = k XOR c. El algoritmo MACpuedesercualquieradelosalgoritmosdeautenticacin(SHA1,RIPEMD,MD5oHMAC). Firmadigital LageneracinyverificacindefirmasdigitalessellevaacaboaplicandoelalgoritmoECDSA.SeaT=(q,FR, a,b,G,n,h) la sptupla con los parmetros de dominio de una entidad A, las llaves pblica y privada de A son QAy dA respectivamente.UnaentidadBdebeteneruna copiadeTyQA.La entidadA firmaunmensaje maplicandolospasossiguientes(SegnelestndarANSIX9.62): 1.Seleccionarunnmeroaleatoriodelintervalo[1,n1]. 2.CalcularkG=(x1,y1)yr=x1modn.Sir=0,regresaralpaso1. 3.Calculars=k1{h(m)+dAr},heselAlgoritmoHash(SHA1) 4.Sis=0,regresaralpaso1. 5.Lafirmadigitaleselpar(r,s). ParaverificarlafirmadeAsobreelmensajem,laentidadBllevaacabolospasossiguientes: 1. Verificar que r, s sean valores en el intervalo [1, n1], si alguno de estos valores no se encuentra en el intervalo,lafirmaesinvlidayterminaelalgoritmo. 2.Calcularw=s1modnyh(m).heselAlgoritmoHash(SHA1) 3.Calcularu1=h(m)wmodnyu2=rwmodn. 4. Calcular R = u1P + u2Q = (x0, y0) y v = x0 mod n. Si R = ( es el punto al infinito), la firma, la firma se rechaza.

11

5. Aceptar la firma si y solo si v = r. Si v r entonces el mensaje pudo haber sido modificado, el mensaje pudo haber sido firmado incorrectamente o el mensaje pudo haber sido firmado por un impostor. La firma seconsiderainvlida. ImplementacindeECC. ParmetrosdelDominiodeCurvasElpticas Los parmetros que definen el dominio de las curvas elpticas sobre el campo finito Fq son una sptupla T= (q,FR,a,b,G,n,h)donde: qrepresentaelcampofinitoquevaaemplearse(q=poq=2m). FResunindicadordelosmtodosusadospararepresentarloselementosdelcampoFq. a,bFqdeterminanlaecuacindelacurvaelpticasobreFq. G es un punto generador (G es tal que para todo punto P de la curva elptica, existe un entero k tal que P= kG). nesunnmeroprimoquerepresentaelordendeG(nestalquenG=,eselpuntoalinfinito). hesunnmeroenteroquerepresentaelvalor|E(Fq)|/n,|E(Fq)|indicaelnmerodeelementosdeE(Fq). Antes de implementar un criptosistema de curva elptica, se debe realizar la seleccin de varios elementos. Entreestos,seencuentran:

Seleccin de los parmetros de dominio de de la curva elptica (incluyendo campo finito, representacindeloselementosdelcampo,curvaelptica,etc.). Algoritmosparalaaritmticaenelcampofinitoseleccionado. Algoritmosparaaritmticasobrelospuntosdelacurvaelptica.

La seleccin de estos elementos se ve influenciada por varios aspectos. Los aspectos ms relevantes a considerarse son: el nivel de seguridad que se espera del criptosistema, la plataforma de implementacin (software, hardware, firmware) y las restricciones (si las hay) en recursos computacionales (velocidad, memoria,consumodepotencia,nmerodecompuertas,etc.). Seleccindelosparmetrosdeldominiodecurvaselpticas El campo finito q y la representacin para sus elementos FR se seleccionan de forma que la aritmtica en el campo (adicin, multiplicacin e inversin) sea realizada eficientemente. Los campos finitos a utilizarse son el de los nmeros primos Fp o el campo de caracterstica 2 F2m. Se cree que el nivel de seguridad ofrecido por criptosistemas definidos sobre Fp y F2m es similar si p 2m [15]. Debido a que la aritmtica en F2m se implementamejorquelaaritmticaenFptantoensoftwarecomoenhardware,lascurvaselpticassobreF2m hansidoampliamenteusadasencomerciales[15]. La representacin usada para un campo particular Fq no afecta la seguridad del sistema, sin embargo, si tieneunimpactoenlaviabilidad,costoyvelocidaddelcriptosistema. CuandolacurvaelpticasedefinesobreelcampoprimoFp,elnmeroprimopdebeserdelaformap=2k1, enestecaso,psedenominaprimoMersenne). Existen dos formas de representar a los elementos en F2m: en base polinomial o en base normal. La representacin en base polinomial tiene la ventaja de poder realizar las operaciones de multiplicacin con reduccin mdulo un polinomio de forma eficiente tanto en software como en hardware. La representacin en base normal tiene la ventaja de poder realizar la operacin de elevacin al cuadrado como una simple rotacin del vector de representacin, adems de calcular la raz cuadrada de algn elemento en el campo de forma eficiente. Por el contrario, la operacin de multiplicacin es ms complicad que en la representacinenbasepolinomial.Lasbasesptimasnormalesparecendarlamseficienteimplementacin dearitmticaenelcampoconrespectoavelocidadycomplejidaddearquitecturahardware[15]. La seleccin de la curva elptica que va a utilizar el criptosistema es un punto clave en la determinacin del nivel de seguridad del mismo. Una curva elptica se dice que es apropiada para utilizarse en un criptosistemasisatisfacelascondiciones[15]:

12

a) b) c) La curva elptica resiste el ataque Pollar. En este caso, el parmetro h del criptosistema debe ser divisibleporunnmeroprimongrande(n>2160). Elparmetrohnodebeserigualaq. Elparmetronnodebedividiraqk1para1K20

En la literatura, se han propuesto varias tcnicas paraseleccionar la curva elptica apropiada. De entre estas tcnicas [15] destacan el Teorema de Hasse, el mtodo global, el mtodo de multiplicacin compleja y la eleccin aleatoria. Tambin existen recomendaciones por estndares internacionales como el FIPS 1862 del NIST [21] que recomienda 10 curvas para campos de caracterstica 2. Los campos compuestos GF(2mn) deben ser evitados por razones de seguridad. La seguridad de un criptosistema de curva elptica depende principalmente del orden de la curva elptica empleada [17]. Para obtener el orden de una curva elptica, el algoritmodeSchoof[18]eselmsutilizado. Seleccindelosalgoritmosaritmticosenelcampo La parte medular en una implementacin de ECC es la parte que realiza la aritmtica en el campo finito seleccionado. La eficiente implementacin de las operaciones bsicas sobre los elementos del campo finito (suma,multiplicacineinversin)determinaengranparteelrendimientodetodoelcriptosistema. Los algoritmos que realizan la aritmtica sobre el campo finito subyacente varan dependiendo de la representacindeloselementosdelcampoascomolaplataformadeaplicacin. Coordenadasderepresentacin Unaparteimportante pararealizarlaaritmticaenel campofinitoeseltipo decoordenadasutilizadas para representar los puntos de la curva elptica. Los puntos de la curva elptica pueden representarse con coordenadas affine o proyectivas. Las coordenadas affine se basan en dos coordenadas (x,y). Las coordenadas proyectivas usan tres coordenadas (X, Y, Z). La transformacin de coordenadas affine a proyectivas es trivial pera la conversin inversa es ms complicada debido a que involucra operaciones de inversinymultiplicacin. Las coordenadas proyectivas se emplean para evitar realizar la operacin de inversin cuando se realiza la suma de dos puntos de la curva elptica. La inversin y la multiplicacin son las operaciones aritmticas en el campo finito que mayor tiempo requiere para su ejecucin tanto en software como en hardware. Gran partedelainvestigacinenECCseenfocaenrealizareficientementeestasoperaciones. Laoperacinquemayortiempoconsumeenlaejecucindelosalgoritmoscriptogrficosdecurvaselpticas es la multiplicacin escalar o multiplicacin punto KP. Esta operacin involucra la ejecucin de multiplicaciones e inversiones en el campo finito, el tipo de coordenadas que se elija para representar los puntos de la curva puede impactar en el tiempo de ejecucin de KP. Si se supone que la representacin binaria de k, de longitud m, consta de m/2 unos y m/2 ceros, se sabe que se deben realizar m/2 operaciones double y m/2 operaciones de suma. En coordenadas affine se tendran que realizar m/2 inversiones + m multiplicaciones para la operacin double. Para la operacin de suma se tendran que realizar el mismo numerodeoperaciones.As,elclculodeKPrequieredeminversiones+2mmultiplicaciones. Coordenadasproyectivas Operacin 2P=P+P P+Q #Inversion 1 1 #Multiplicacin 2 2 #Squares 1 2 #Suma 6 8 ElclculoKPserealizaentresnivelesdeabstraccin: Nivelalgortmico:SeleccindelosalgoritmospararealizarKP

13

Niveldearitmticaparalacurva:Seleccindelarepresentacindelospuntosdelacurva Niveldearitmticaparaelcampo:Seleccindelabase,multiplicadoreseinversores NiveljerrquicodeKP MultiplicacinescalarKP MtodoDoubleandAdd Adicindepuntosydoubling Seleccindellascoordenadasde representacin Aritmticaenelcampofinito Seleccindelabase,multiplicadores, divisores,inversores Multiplicadorenelcampo La multiplicacin en el campo finito es de las operaciones que ms recursos consumen y que se requiere para calcular KP. En implementaciones hardware, la multiplicacin puede realizarse de forma serial o en paralelo. Un multiplicador paralelo realiza la multiplicacin en un solo ciclo de reloj pero requiere mayor rea. Por el contrario, los multiplicadores seriales requieren menor rea pero generan algunos bits como resultado en varios ciclos de reloj. Los multiplicadores tambin varan dependiendo de la base de representacin que tengan los elementos del campo. Es comn emplear el multiplicador MasseyOmura cuandolarepresentacinesenbasenormal.ElmultiplicadorLFSRseempleacuandolabaseespolinomial. Elevacinalcuadradoenelcampo Laelevacinalcuadradoesunsimplecorrimientosobreelvectorderepresentacindelelementoaoperarse cuandoseempleaunabasenormal. Inversinenelcampo Sumaenelcampo Encualquierbase,esunaXORsobrelosvectoresderepresentacindeloselementos Inversin Existen dos formas para realizar la inversin en un campo finito: por el algoritmo extendido de Euclides o porelteoremadeFermat.EnGF(2m)serequierenO(n2)operaciones AlgoritmospararealizarKP LosalgoritmosparaejecutarlaoperacinkPasumenquesesabecomorealizarlasumaydobledeunpunto en la curva elptica. El mtodo add and double es el estndar para multiplicacin punto, emplenado la representacin binaria de K. En este mtodo, todos los bits de la representacin binaria de K se recorren de izquierda a derecha, excepto el primero. Para cada 0 se realiza un doubling y para cada 1 se realiza un doubling y un add con el punto original. Para un numero aleatorio K, en el campo GF(2m) (o GF(p) con

14

representacin binaria de p de m bits) en promedio se tienen m/2 bits iguales a 1. Por tanto, para una operacinKP,serealizanenpromediomdoublingym/2adds. ComparacindeECCconotrosCriptosistemasdellavepblica LacomparacinserealizaentreRSA,DSAyECC.Lacomparacinsebasaendoscaractersticasprincipales en los criptosistemas: seguridad y eficiencia [9]. La seguridad de un criptosistema es terica. En los criptosistemas asimtricos, romper el criptosistema (encontrar la llave empelada en el cifrado) requiere resolverelproblemamatemticoenelquedichosistemabasasuseguridad.As,laseguridadsecomparade acuerdoalosmejoresalgoritmosconocidosalafechapararesolverestosproblemas.LoscriptosistemasRSA y DSA basan su seguridad en los problemas de la factorizacin de enteros y el clculo de logaritmos discretos respectivamente. Para ambos problemas existen algoritmos que corren en tiempo subexponencial [9]. Un algoritmo en tiempo subexponencial es aquel que aun se considera difcil pero no tanto como aquel que es completamente de complejidad exponencial. Formalmente, el tiempo de ejecucin del mejor algoritmoparaestosproblemases O(exp(c+o(1)))(lnn)1/3(lnlnn)2/3) Paraalgunaconstantec. Por otra parte, el mejor algoritmo para resolver el problema en el que ECC basa su seguridad es de tiempo totalmenteexponencial.Eltiempodeejecucines O(raiz(p)) Esto significa que romper ECC es ms difcil que romper RSA o DSA. La figura siguiente muestra la comparacinentiemponecesariopararomperloscriptosistemasRSA,DSAyECCdeacuerdoaltamaode la llave que se emplee. La figura fue tomada de [9], los tiempos se expresan en aos MIPS, donde un ao MIPSeseltiempodecomputodeunaoporunacomputadoracapazdeejecutarunmillndeinstrucciones por segundo. En base a [9], un criptosistema se considera seguro si por lo menos se requiere de 1012 aos MIPSpararomperlos. Los factores a tomar en cuenta para evaluar la eficiencia de los criptosistemas son: cuanto cmputo es requeridopararealizarlasoperacionescriptogrficas,cuantosbitsserequiereelalmacenamientodellavesy parmetros del criptosistema y cuantos bits es la salida de las operaciones de cifrado. Estas mtricas se realizanparacriptosistemasqueofrecensimilaresnivelesdeseguridad.Elestadodelarteactual[9]muestra queECCesdelordende10vecesmsrpidoqueRSAyDSA. Comentariosfinales Lamayoradelosproductosyestndaresqueusancriptografadeasimtricaparacifradoyfirmasdigitales usan RSA. Aun existen escepticismo de matemticos y cientficos alrededor de la aplicacin de ECC, el consenso es que aun existe incredibilidad del nivel de seguridad que ECC ofrece con longitudes de llave pequeas,muchaspruebasdeberanrealizarseantesdeemplearECCenaplicacionesgrandes.Sinembargo, varias organizaciones para estndares internacionales como IEEE, ANSI e ISO estn realizando trabajo para hacer de ECC una alternativa viable comercialmente a las necesidades de criptografa asimtrica. Actualmente se esta realizando investigacin alrededor de ECC, principalmente orientndose a la implementacin de servicios de seguridad en dispositivos mviles, ya que es en estos ambientes donde la aplicacin de operaciones criptogrficas es complicada debido a los bajos recursos computacionales con los quesecuentan.

15

Referencias
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] Certicom Corp., An Introduction to Information Security, a Certicom whitepaper, July 2000. Disponible en www.certicom.com/research/wecc1.html. Lucena Lpez, M.J., Criptografa y Seguridad en Ordenadores, Libro electrnico, Tercera edicin, Mayo 2003. Disponibleenhttp://iie.fing.edu.uy/ense/asign/seguro/Criptografia.pdf Ferguson, N., and Schneier, B., Practical Cryptography, Wiley, Indiana 2003. Stallings, W., Cryptography and Network Security, Prentice Hall, NJ, 2003. Schneier,B.AppliedCryptography,JohnWiley&Sons,NY,1996. Diffie,W.,andHellman,M.,Newdirectionsincryptography,IEEETransactionsonInformationTheory,VolIT22, pp.644654,November1976. Rivest, R., Shamir, A., and Adleman, L., A Method for Obtaining Digital Signatures and Public Key Cryptosystems, CommunicationsoftheACM,February1978. Jurisic,A.,andMenezes,A.,EllipticCurvesinCryptography,DrDobbsJournal,pp.2635,July2000. Certicom Corp., Current PublicKey Cryptographic Systems, a Certicom whitepaper, April 1997. Disponible en http://www.certicom.com/research/wecc2.html. Rosing,M.,ImplementingEllipticCurveCryptography,ManningPublications,Greenwich,1999. McEliece.R.J.,FiniteFieldsforComputerScientistandEngineers,KluwerAcademicPublishers,1987. Dahab, R., and Lpez, J., An Overview of Elliptic Curve Criptography. Technical Report, IC0010, May 2000. Disponibleenhttp://citeseer.nj.nec.com/333066.html Koblitz,N.,EllipticCurvecryptosystems,MathematicsofComputation,Vol.48No.177,pp.203209,1987 Miller, V., Use of Elliptic Curve in Cryptography, Advances in CryptologyCRYPTO85 Proceedings, LNCS 218, SpringerVerlag,pp.417426,1986. Koblitz, N., Menezes, A., and Vastone, Scott., The State of Elliptic Curve Cryptography, Designs, Codes and Cryptography,Vol.19,No.2/3,pp.173193,March2000. Pollar, J., Monte Carlo Methods for index computation mod p, Mathematics of Computation, Vol. 32, pp. 918924, 1978. Torii, N., and Yokoyama, K., EllipticCurveCryptosystem, Fujitsu Scientific and Technical Journal, Vol. 36, No. 2, pp.140146,December2000. Schoff, R., Elliptic Curves over Finite Fields and the Computation of square Roots mod p, Mathematics of Computation,Vol.44,pp.483494,1998. American National Standards Institute, Public Key Cryptography for the Financial Services Industry: The Elliptic CurveDigitalSignatureAlgorithm,ANSIX9.621998,January1999. Abdalla, M., Bellare, M., and Rogaway, P., TheoracleDiffieHellmnassumptionsandananalysisofDHIES, Topic in cryptologyCTRSA2001,LNCS2020,SpringerVerlag,pp.143158,2001. NIST, Recommended Elliptic Curves for Federal Government Use, July 1999, Ver http://csrc.nist.gov/csrc/fedstandards.html.

16