Your SlideShare is downloading. ×
Criptografia
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Criptografia

841
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
841
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Autor: Guillermo Caracuel Ruiz 1
  • 2. Índice1. Introducción ..................................página 3. 1.1 Un poco de historia ...................página 3. 1.2 Actualidad ................................página 4.2. Criptosistemas: Tipos.....................página 4. 2.1 Criptosistemas simétricos ..........página 6. 2.2 Criptosistemas asimétricos .......página 11.3. Criptosistemas: Construcción........página 17.4. Usos de la Criptografía .................página 19.5. Conclusiones ..................................página 22.6.Bibliografía .......................................página 22. 2
  • 3. 1. INTRODUCCION -1.1 Un poco de historia Criptografía, según el diccionario de la real Academia de la Lengua Española: -Arte de escribir con clave secreta o de un modo enigmático. Del griego kryptos, que significa oculto y gráphein que quiere decir escritura, este antiguo “arte” (actualmente definido como una técnica) data del principio de las civilizaciones humanas, desde entonces la llamada Criptografía Clásica ha sido usada para esconder secretos políticos y militares en su mayoría para evitar que estos fueran comprendidos por quien no debía. Basada en algoritmos y cálculos matemáticos a veces complejos y otras veces no tanto, como por ejemplo el mismísimo Julio Cesar usaba una clave para encriptar sus mensajes y así mandarlos sin peligro a sus generales, su método (su algoritmo de encriptación) consistía simplemente en sustituir cada una de las letras de su mensaje por la letra latina situada tres posiciones delante. Con el tiempo los sistemas criptográficos (a partir de ahora criptosistemas) fueron pasando a ser cálculos matemáticos mas y mas complejos siendo estos sistemas cada vez mas necesarios para los estados, empresas y ejércitos del mundo, quizás el caso mas notorio y trascendental del uso de la criptografía sea un caso considerablemente reciente: la maquina Enigma alemana, usada por los nazis para encriptar sus mensajes, especialmente los mensajes transmitidos a los submarinos, según muchos historiadores fue cuando los aliados consiguieron desencriptar los mensajes Enigma del eje cuando empezaron a encaminarse hacia la victoria en la Segunda Guerra Mundial. No solo los ejércitos han usado la criptografía clásica en la historia sino que grandes pensadores como Leonardo Da Vinci que encriptaba sus apuntes con un sencillo algoritmo (escribía con la mano izquierda y en sentido contrario) para evitar los espionajes de sus competidores, y el uso experimentado por muchas de las empresas para transmitir y cifrar sus documentos industriales. 3
  • 4. -1.2 ActualidadFue con la llegada de las primeras computadoras desde un principiousadas para descifrar las claves usadas en su tiempo cuando podemosdefinir la Criptografía Moderna como la usada computacionalmente.Con la llegada de estas máquinas con una capacidad de cálculoimpensable en la época rompieron (romper: termino comúnmente usadopara indicar la desencriptación de la clave y con ello la resolución delsistema) todos o casi todos los sistemas criptográficos existentes hasta lafecha fueron cayendo bajo la potencia de las computadoras, con lo quela antigua metodología usada para la obtención de las claves deencriptación quedo obsoleta pasando a ser los nuevos sistemas cálculosmatemáticos de muy difícil solución y por tanto debiendo utilizar lascomputadoras para poder encriptar mensajes, es aquí donde empieza aencaminarse el uso conjunto de la criptografía y la informática hasta elpunto de ser su uso conjunto una necesidad para ambas técnicas comoya explicaremos en mayor profundidad en los apartados siguientes deeste trabajo en los que se explicaran los tipos y métodos para el uso yobtención de los sistemas criptográficos y sobre todo su necesidad y usotanto actual como el dado hasta ahora a la criptografía en los mediosinformáticos para garantizar la seguridad en éstos.2. Criptosistemas: Tipos.Los sistemas criptográficos actuales pueden definirse de múltiplesformas, por ejemplo según el método usado: pueden ser criptosistemasalgebraicos, por sustitución, etc. O la división más interesanteactualmente que divide los criptosistemas en 2 tipos fundamentales: ·Criptosistemas simétricos o de clave privada ·Criptosistemas asimétricos o de clave públicaAmbos sistemas en la práctica se suelen usar conjuntamente paraalcanzar niveles de rápida ejecución pues los simétricos podemosadelantar que son bastante más rápidos en ejecución y los asimétricosson mas seguros consiguiendo con su uso conjunto el nivel necesariopara su uso en la seguridad informática.A continuación pasaremos a explicar ambos tipos con más detalle. 4
  • 5. -2.1 Criptosistemas simétricosSon conocidos como criptosistemas de clave privada pues sucaracterística mas notable es que usa una sola clave que es la mismapara codificar y descodificar (en el último apartado serán explicados losinconvenientes de cada sistema).Los algoritmos de clave privada son altamente eficientes (siemprehablando en relación al tamaño de la clave) y robustos, pero insegurospara los usos actuales y los posibles usos futuros de la criptografía deseguridad informática. La criptografía simétrica era suficientemente“difícil” de desencriptar para la criptografía clásica (todos los sistemashistóricos hasta la llegada de las computadoras eran criptosistemassimétricos como ejemplo cualquiera de los casos anteriormenteexplicados: máquina Enigma o criptografía de Cesar) pues eransuficientemente complejos para la capacidad de resolución de la época,otra de las razones de su desuso actual es la necesidad de transmisión dela clave al receptor deseado (ejemplo las máquinas Enigma eranenviadas en tren, en cualquier momento podían ser interceptadas y portanto muy probablemente decodificadas) por un canal mas o menosseguro según el caso. En la actualidad en uno de los campos de mas usode la criptografía como seguridad informática este canal son las redes ola misma Internet y por lo tanto no es canal nada seguro para transmitirnuestra clave, por ejemplo si queremos enviar una clave simétrica a unode nuestros clientes para intercambiar cuentas bancarias esta clavepodría ser interceptada por alguien y pondríamos en bandeja tanto lacodificación como la descodificación (es importante recordar que lamisma clave sirve para ambas funciones) de nuestros mensajes a manosajenas descubriendo así los datos confidenciales que pretendíamosevitar, de aquí el desuso (luego veremos que no existe tal desuso) de loscriptosistemas simétricos en la informática.Por la existencia de esta posibilidad de “hackeo” de estos sistemas naceel segundo gran tipo de sistemas criptográficos actuales: loscriptosistemas asimétricos.Introduciéndonos de lleno en la criptografía informática podemosencontrar que dentro de los criptosistemas simétricos existe unasubdivisión según la manera de cifrar y descifrar un mensaje: cifradoressimétricos en flujo, cifradores simétricos por bloques y los cifradores enresumen.A continuación pasamos a explicarlos en mayor detalle: 5
  • 6. -2.1.1 Cifrado en flujo (Block cipher)Se define como aquel cifrado con características simétricas (clavepública, de pequeño tamaño y con algoritmos rápidos) que cifra elmensaje bit a bit.A continuación se explican algunos de los subtipos mas usuales.Cifrado síncrono y autosincronizanteEn el cifrado síncrono la secuencia pseudo aleatoria (clave) generadapara cifrar y descifrar un mensaje es independiente de éste, mientras queen los cifradores de flujo autosincronizantes la secuencia de cifrado sí esfunción del mensaje. Así, en el cifrado síncrono, el emisor y el receptordeben usar la misma clave (que, además, debe estar sincronizada) parapoder establecer la comunicación; por este motivo utilizan señales desincronización, que no son necesarias en el cifrado autosincronizante, yaque al tener una realimentación, en caso de pérdida de sincronismo, éstepuede recuperarse transcurrido un tiempo.Cifrado VernamEl cifrado Vernam fue desarrollado en los Estados Unidos y recibe elnombre del que fuera su creador en1917. Originalmente se usó en circuitos teletipo, siendo su diseño parael cifrado en tiempo real y el descifrado de señales teletipo.El cifrado Vernam hace uso de la función OR- exclusiva (XOR) paracifrar un mensaje dado con una clave determinada. Es un procesosimétrico, pues usa la misma clave para el proceso de cifrado y el dedescifrado.Las versiones más recientes de cifradores Vernam usan clavesgeneradas electrónicamente, que son infinitamente largas y denaturaleza aleatoria, en principio, aunque por supuesto cada usuario delsistema debe ser capaz de generar la misma secuencia usada comoclave. Sin embargo, no existen secuencias completamente aleatorias,sino secuencias periódicas con periodo muy elevado, conocidas comosecuencias pseudo aleatorias o, en inglés, Pseudo Random BinarySequence (PRBS). Existen diferentes métodos de generar estassecuencias, pero el más habitual es el que usa registros dedesplazamiento (shift registers).Es un sistema incondicionalmente seguro siempre que la clave searealmente aleatoria, lo cual es imposible en la práctica. Actualmente un 6
  • 7. área de investigación importante se centra en encontrar funcionesgeneradoras de secuencias pseudo aleatorias que seancriptográficamente seguras.El cifrador lineal perfectoEste cifrador fue introducido por Massey y Rueppel y es semejante alestándar utilizado para el cifrado de la televisión en la EuropeanBroadcasting Universe.-2.1.2 Cifrado en bloques (Block cipher)Este tipo de cifradores simétrico toma un numero determinado de bitscomo elemento base y los cifra en bloques iguales (normalmente de 64bits).Existen numerosos ejemplo de cifradores en bloque por ejemplo:DESPara la transmisión de datos confidenciales entre ordenadores sedesarrolló a principios de la década de 1970 LUCIFER, un sistema decifrado basado tanto en la sustitución como en la transposición, y en1976 se elaboró la norma de cifrado de datos o DES (Data EncryptionStandard) sobre la base del primero. Fue, y todavía es, ampliamenteusado, sobre todo, en el campo financiero. El DES transformasegmentos de mensaje de 64 bits en otros equivalentes de texto cifrado,empleando una clave de 56 bits. Cada usuario elige una clave al azar,que sólo comunica a aquellas personas autorizadas a conocer los datosprotegidos. El mensaje real se codifica y descodifica automáticamentemediante equipos electrónicos incorporados a las computadorasemisoras y receptoras. Como existen más de 70.000 billones decombinaciones de 56 bits, la probabilidad de descubrir la clave aleatoriaparece mínima. Así, es un método de cifrado altamente resistente frentea ataques criptoanalíticos diferenciales. Sin embargo, algunos expertoshan criticado la técnica DES por su vulnerabilidad frente a los potentesmétodos de descodificación posibles para los grandes ordenadores y nolo han considerado apropiado para las aplicaciones recientementerealizadas. Y es que, por desgracia, el tamaño de su clave (56 bits) lohace vulnerable a ataques de fuerza bruta. Un reciente ataque contra unmensaje con cifrado DES requirió el uso de cientos de ordenadoresdurante 140 días. Pero hay diseños de máquinas que, con un costo de unmillón de dólares, podrían descifrar mensajes DES en cuestión deminutos. 7
  • 8. Quizá por eso el gobierno de EEUU lo utiliza solamente para cifrardatos no clasificados. En la actualidad ofrece protección contra el piratainformático habitual, pero no contra un esfuerzo masivo por parte de unusuario con grandes recursos.Una variantes de DES, Triple- DES (3DES), basado en el uso de DEStres veces (normalmente en una secuencia decifrado- descifrado- cifrado con tres claves diferentes y no relacionadasentre sí). El sistema3DES es bastante más seguro que el Des (simple), aunque presenta elinconveniente de ser considerablemente más lento que los modernossistemas de cifrado en bloque.A pesar de que DES parece ser de escaso interés para aplicaciones dehoy en día existen numerosas razones para considerarlo todavíaimportante. Fue el primer sistema de cifrado en bloque que se extendióal sector público, por lo que ha desempeñado un importante papel enhacer asequible la criptografía segura al gran público.Además, su diseño era excepcionalmente bueno para un sistema decifrado pensado para tener un uso de tan sólo unos años. Demostró serun sistema fuerte y soportó una década de ataques, hasta que llegaronlos procedimientos más potentes de criptoanálisis diferencial y lineal(ataques a partir del texto en claro escogido). En la etapa deintroducción del DES su filosofía de diseño se mantuvo en secreto, peroactualmente ya se conoce gran cantidad de información sobre su diseño,y uno de sus diseñadores, Don Coppersmith, ha comentado que ya sedescubrieron ideas similares a las del criptoanálisis diferencial cuandoestaban diseñando DES allá en 1974; así pues, sólo era cuestión detiempo el que estas ideas fundamental fueran `redescubiertas.Aún actualmente, cuando DES ya no se considera una solución práctica,es usado a menudo para describir nuevas técnicas de criptoanálisis. Esimportante destacar que incluso hoy, no existe ninguna técnica decriptoanálisis que pueda vulnerar completamente DES de un modoestructural; de hecho, la única debilidad de DES es el pequeño tamañode la clave (y quizá el pequeño tamaño del bloque)Claves: Para todos los cifradores en bloque existen claves que se debenevitar debido a la escasa complejidad del cifrado al que dan lugar. Estasclaves son aquellas para las que la misma sub- clave es generada en másde una iteración e incluyen: Claves débiles: La misma sub- clave esgenerada en cada iteración. DES tiene 4 claves débiles.·Claves semi- débiles: Sólo dos sub- claves se generan en iteracionesalternadas. DES tiene 12 claves de estas (en 6 pares).Modos de cifrado de DES: DES cifra bloques de datos de 64 bits usandouna clave de 56 bits. Normalmente tenemos una cantidad deinformación arbitraria para cifrar y necesitamos una forma de 8
  • 9. especificar cómo realizamos ese cifrado. La manera en que usamos uncifrador en bloque se denomina modo de uso y paraDES se han definido cuatro por el estándar ANSI.·En bloque:·Electronic Codebook Book (ECB): El mensaje se divide en bloquesindependientes de 64 bits y el cifrado se efectúa bloque a bloque.C(i) = DES(K1) (P(i))·Cipher Block Chaining (CBC): De nuevo el mensaje se divide enbloques de 64 bits, pero estos se unen en el cifrado mediante un vectorde inicialización IV.C(i) = DES(K1) (P(i)(+)C(i- 1)), con C(- 1)=IV·En flujo:·Cipher FeedBack (CFB): Los bits del mensaje son añadidos a la salidadel DES, y el resultado se lleva al siguiente bloque. Requiere tambiénde un vector de inicialización.C(i) = P(i)(+) DES(K1) (C_(i- 1)), con C_(- 1)=IV·Output FeedBack (OFB): Es igual que el anterior pero sinrealimentación.C(i) = P(i)(+) O(i) O(i) = DES(K1)(O(i- 1)), con O(- 1)=IVCada modo presenta sus ventajas y sus desventajas.RijndaelActualmente el algoritmo DES está obsoleto y, para sustituirlo, el NIST(National Institute of Standards and Technology) propuso unacompetición para desarrollar el estándar AES, hasta cuya resolución haadoptado el sistema Triple- DES como una solución temporal.Los cinco algoritmos finalistas para AES, elegidos entre un total dequince, fueron MARS, RC6, Rijndael, Serpent y Twofish. Así, Rijndaeles un cifrador en bloque diseñado por John Daemen y Vincent Rijmencomo algoritmo candidato al AES (Advanced Encryption Standard). Sudiseño estuvo fuertemente influenciado por el de un cifrador (blockcipher Square), que también fue creado por John Daemen y VincentRijmen y se centraba en el estudio de la resistencia al criptoanálisisdiferencial y lineal. El nombre del algoritmo es una combinación de losnombres de sus dos creadoresEl cifrador tiene longitudes de bloque y de clave variables y puede serimplementado de forma muy eficiente en una amplia gama deprocesadores y mediante hardware. Como todos los candidatos del AESes muy seguro y hasta la fecha no se le han encontrado puntos débiles.La longitud de la clave de Rijndael, si bien es variable, debe ser de 128,192 o 256 bits, según los requisitos establecidos para el AES.Asimismo, la longitud del bloque puede variar entre 128, 192 o 256 bits. 9
  • 10. Todas las posibles combinaciones (nueve en total) entre longitudes declave y bloque son válidas, aunque la longitud oficial de bloque paraAES es de 128 bits. Las longitudes de la clave y el bloque pueden serfácilmente ampliadas a múltiplos de 32 bits. El número de iteracionesdel algoritmo principal puede variar de 10 a 14 y depende del tamañodel bloque y de la longitud de la clave. Una de las críticas máshabituales de Rijndael es el escaso número de iteraciones, pero esto nosupone un problema, pues el coste operacional puede aumentarse sinmás que incrementar el tamaño del bloque y la longitud de la clave.La implementación Stealth de Rijndael usa una clave de 256 bits y unbloque de 128 bits de tamaño.Usando la mayor longitud posible de clave conseguimos la máximaseguridad para el usuario. La filosofía de este diseño concedería puesmayor importancia a la seguridad que a la velocidad. Si el usuarioproporciona una clave de menor longitud Stealth la transforma de unaforma especial, casi aleatoriamente, para hacerla de 256 bits. Y aunqueacepta tamaños de bloque mayores que 128 bits, n existe ninguna razónpara usarlos siendo que este número de bits ha sido elegido comotamaño estándar.-2.1.3 Cifrado en resumen, funciones hash (hash functions)Estas funciones son básicas en la programación y en la seguridadinformática actual por su alta eficiencia y su gran rapidez de ejecución.El funcionamiento de estas funciones es sencillo, mediante una clavecrean un “resumen” del mensaje que es único para cada mensaje y de untamaño relativamente pequeño, siendo este resumen complementedistinto al resumen de otro mensaje distinto.Como luego se pasará a explicar con mayor detalle son esenciales parala codificación en las redes que es la más importante en cuanto a usoactualmente.Como ejemplos de algoritmos hash podemos poner:MD2 (Message Digest 2).Se diseñó para ordenadores con procesador de 8 bits, y hoy apenas seutiliza. Se conocen ataques a versiones parciales de MD2.MD4 (Message Digest 4).Fue desarrollado por Ron Rivest, de RSA Data Security. Su diseño es labase de otros hash, aunque se le considera inseguro. Un ataquedesarrollado por Hans Dobbertin permite generar colisiones (mensajes 10
  • 11. aleatorios con los mismos valores de hash) en cuestión de minutos paracualquier PC. Por ese motivo, está en desuso.SHA-1 (Secure Hash Algorithm)Fue desarrollado como parte del estándar hash seguro (Secure HashStandard, SHS) y el estándar de cifrado digital (Digital SignatureStandard, DSS) por la Agencia de Seguridad Nacional norteamericana(NSA). Aparentemente se trata de un algoritmo seguro y sin fisuras, almenos por ahora. La primera versión, conocida como SHA, fuemejorada como protección ante un tipo de ataque que nunca fuerevelado. El documento FIPS (Federal Information ProcessingStandard) que oficialmente lo describe afirma que los principiossubyacentes al SHA- 1 son similares a los del MD4 de Rivest. Suimplementación puede estar cubierta por patentes en Estados Unidos yfuera de ellos. A falta de ataques ulteriores, se le puede considerarseguro. Es el algoritmo de firmado utilizado por el programa PGP (unconocido programa comercial de cifrado usado casi siempre encodificación de correo electrónico) en sus nuevas claves DH/DSS (quesignifica: cifrado mediante clave Diffie- Hellman y firmado mediantefunción hash/ Digital Signatura Standard).Para la generación de otro tipo de firmas digitales suelen usarsealgoritmos basados en criptografía de clave pública, sobre todo RSA yDSS.-2.2 Criptosistemas asimétricosA diferencia de los criptosistemas simétricos la clave pública es lacaracterística más importante de los sistemas criptográficos asimétricosy que da nombre a este tipo de sistemas.Los criptosistemas asimétricos tienen siempre 2 tipos de claves distintassiempre existentes, una de ellas la “pública” que se utiliza para codificarel mensaje en cuestión, ésta clave puede ser mas o menos pública en susignificado habitual según el campo en el que se vaya a usar, porejemplo si la usamos para enviar mensajes a una sola persona solodeberían poseer esa clave 1 o las 2 personas que van a enviarse losmensajes pero existen otros usos como el correo electrónico que“obligan” a que esta clave pública este en el mayor numero de maquinasposibles para facilitar así nuestras ventas en la red por lo tanto se sueledistribuir como un estándar. 11
  • 12. Y el segundo tipo de clave, la clave “privada” se usará para descodificarel mensaje ( en algunos casos estas claves son intercambiables, si conuna codificamos con la otra podremos descodificar sin importar el ordende uso).Estos criptosistemas fueron desarrollados para resolver losinconvenientes de los sistemas simétricos por los matemáticos del MIT(Massachussets Institute of Technology) en la década de los sesentausando para su creación funciones matemáticas basadas sobretodo en laimportancia de los números primos para crear funciones de cálculoconsiderablemente sencillo (funciones de dirección única) para codificarnuestros mensajes pero con una función inversa de muy difícilresolución o incluso prácticamente imposible de calcular para descifrarlos mensajes.En estos criptosistemas es mucho mas difícil calcular la clave (seentiende que la privada) a partir mensajes o de la misma clave públicapor cualquier medio ya sea el de los cálculos computacionales ocualquier otro, por tanto se los considera sistemas criptográficos muchomas seguros que los simétricos pero siempre dentro de la afirmaciónsiempre cierta de que no existe el criptosistema perfecto y irresoluble.Como anteriormente hicimos pasaremos a explicar algunos ejemplos desistemas criptográficos asimétricos, importante indicar que sonconsiderados cifradores en bloque todo los que explicaremos en detalle.-2.2.1 Ejemplos de sistemas asimétricosRSASe han propuesto diferentes alternativas, como el criptosistema de clavepública (PKC), que utiliza una clave pública y otra secreta. El PKC,basado en un enfoque matemático, elimina el problema de ladistribución de claves pero no resulta tan eficaz, desde el punto de vistainformático, como el DES. En 1978 apareció el denominado algoritmoRSA, ideado por Rivest, Shamir y Adleman, que utiliza números primosy la aritmética modular, que trabaja con subconjuntos finitos denúmeros enteros: los conjuntos de todos los números enteros que tienenel mismo resto al dividirlos entre n. Por ejemplo, la aritmética módulo 7viene dada por el conjunto {0,1,2,3,4,5,6}, y para representar cualquiernúmero entero en este conjunto, bastará con tomar su resto después dedividirlo por 7. Así, por ejemplo, el número 64 corresponderá al 1módulo 7, ya que si dividimos 64 entre 7, nos queda como resto 1. Enotras palabras, podemos poner 64=k*7+1, donde k será un númeroentero cuyo valor no nos va a importar. Análogamente, 17=k*7+3 12
  • 13. (luego 17 corresponde a 3 módulo 7), 57=k*7+1 (57, al igual que 64,corresponde a 1 módulo 7), etc.Pues bien, dentro de estos conjuntos se pueden definir fácilmente lasoperaciones aritméticas suma, resta y multiplicación: bastará con sumar,restar o multiplicar y luego tomar el módulo correspondiente. Siguiendocon nuestro ejemplo, el producto de 3 por 5 módulo 7 es precisamente 1(ya que 3*5 = 15, y al dividir por 7 nos queda como resto 1). Al igualque con los números reales, si el producto de dos números vale 1,diremos que uno es la inversa de otro, por lo que 3 es la inversa de 5módulo 7. Una vez que tenemos la noción de inversa de un número enaritmética modular, podemos definir la operación división a/b como elproducto de a por la inversa de b. Por ejemplo, 4/3 será igual a 4*5 = 20= 6 módulo 7.Existe una propiedad muy interesante, y es que un número a tieneinversa módulo n siempre y cuando no exista ningún número menor quea y n que los divida de forma exacta a los dos, es decir, a y n seanprimos relativos. Fijándose un poco, en el ejemplo anterior, el móduloempleado es un número primo, por lo que podemos concluir que todoslos números (excepto el cero) tienen inversa módulo 7. En general, sedefine la función (n) (Totient de Euler) como la cantidad de númerosque tienen inversa módulo n. En particular, si n puede descomponerseen dos números primos p y q, (n)= (p- 1)*(q- 1).La última propiedad que nos interesa es que si multiplicamos un númeroa (distinto de cero) por sí mismo (n) veces, obtenemos 1 módulo n, y enesto es precisamente en lo que se apoya RSA.Para poder emplear el algoritmo RSA tenemos que escoger un númeroentero n que sea producto de dos números primos p y q muy grandes.Escogemos luego un número e aleatoriamente, que sea primo relativocon (n), y calculamos su inversa módulo (n), que denominaremos d. Elpar (n,e) será nuestra clave pública, y d será la clave privada. Para cifrarun número m calcularemos me módulo n (m elevado a e módulo n, obien m multiplicado por sí mismo e veces).La parte más complicada viene al intentar descifrar un número: hay queelevarlo a d. Como d*e = 1 modulo (n), elevar m a e y luego a d seráequivalente a multiplicar m por sí mismo d*e(o sea, k*(n)+1) veces.Esto es equivalente a calcular m elevado a (n), multiplicarlo por símismo k veces, y luego multiplicar por m una vez más. Como m elevadoa (n) es igual a 1, será como multiplicar 1 por sí mismo k veces y luegomultiplicar por m, con lo que nos queda de nuevo m.Para ayudar a comprenderlo, vamos a poner un ejemplo: supongamosque n=5*11=55, entonces (n)=4*10=40. Sea e=7, cuya inversa módulo40 es 23, ya que 7*23=161=1 módulo 40. Nuestra clave pública será(55,7), y nuestra clave privada será 23. Para cifrar ahora el número 2 13
  • 14. bastará con calcular 27=128=18 módulo 55. Si luego elevamos 18 a 23módulo 55 nos queda de nuevo 2.El `truco de RSA está precisamente en que si conocemos los factores den podemos calcular fácilmente el valor de (n), por lo que un atacantetendrá que factorizar n si quiere calcular nuestra clave privada d, lo cualresulta prácticamente imposible si n es lo suficientemente grande. En lapráctica, encontrar esta factorización para números grandes requieremucho tiempo de trabajo de un potente ordenador. La factorización deun número en producto de primos esconde en sí misma dos problemasmatemáticos: reconocer si un número es primo o no y encontrar lafactorización. Si queremos factorizar un número de 300 dígitos que esproducto de dos primos de gran tamaño, con los métodos actualesnecesitaríamos alrededor de un siglo. Por ello este tipo de sistemas sonútiles y poco menos que invulnerables ya que, dentro de un siglo, ¿quépuede importarnos ya que alguien descubra el contenido de un mensajenuestro?Un detalle, no obstante, debe tenerse en cuenta. La dificultad intrínsecade factorizar grandes números es un tema abierto. Actualmente elmétodo de factorización más rápido conocido es la Criba NuméricaEspecial de Campo (Special Number Field Sieve), pero no estádemostrado que no haya otro mejor. Si se descubre un método detiempo polinómico (esto es, cuyo tiempo de ejecución dependa delnúmero N de cifras como Na), cualquier producto de números primospodrá factorizarse con relativa facilidad. No obstante, desde1978 se hanestudiado muchas variantes de este tipo de claves y parece ser que RSAcontinúa siendo el sistema más eficaz y seguro.ElGamalPropuesto por T. ElGamal, este sistema de clave pública está basado enun procedimiento de cifrado que usa dos valores públicos: un númeroprimo p de aproximadamente 200 dígitos y un entero g tal que suspotencias generan todos los elementos del grupo. Así, la clave secretadel firmante es un entero aleatorio x elegido por el mismo tal que 1 < x< p- 1, y la clave pública asociada y se obtiene como sigue: y = gx (modp) El cifrado de un mensaje en claro M tal que 1 < M < p, se lleva acabo eligiendo un valor entero aleatorio k con 1 < k < p- 1 y krelativamente primo con p. Si los valores de k elegidos para lacomputación de un mismo mensaje en claro son distintos los cifradosresultantes también lo serán.Un inconveniente importante de este sistema de cifrado es la capacidadde almacenamiento necesaria, al ser la longitud del mensaje cifrado eldoble que la del mensaje en claro. 14
  • 15. La ruptura de este sistema pasa por la resolución de un problema delogaritmo discreto, lo cual resulta complicado cuando se trabaja connúmeros suficientemente grandes. Sin embargo, en ocasiones el cálculodel logaritmo discreto resulta viable incluso para valores de p de grantamaño, lo cual se debe a la existencia de números primos concaracterísticas debilitantes para el sistema, esto es, números a partir delos que resulta posible obtener la clave secreta x a partir de la pública y,que deberemos evitar.Es el predecesor del DSS (Digital Signature Standard) y su uso estábastante extendido a pesar de que no se ha creado ningún estándarconocido para ello.Criptografía con curvas elípticasSon los criptosistemas más recientes dentro del campo de los sistemasde clave pública y representan sólo otra forma de implementar métodosde logaritmo discreto(aparte de la mas usual: los números primos y susoperaciones que se explicará en las páginas siguientes) . Las curvaselípticas en criptografía son básicamente un conjunto de puntos quecumplen la y2 = x3 + ax + b siempre que sean considerados en uncuerpo finito de característica p (con p > 3). Para características delcuerpo p = 2 y p = 3 se requiere una ecuación ligeramente diferente.Los puntos de una curva elíptica forman una estructura llamada grupo(concretamente son un grupo abeliano). Esto significa que podemosrealizar las operaciones aritméticas de suma y resta con ellos del mismomodo que lo hacemos con los enteros.Además de presentar algunas ventajas teóricas son muy prácticas. Noexiste ningún algoritmo rápido de cálculo de un logaritmo, lo cualsupone que el tamaño de la clave, así como las firmas digitales ymensajes cifrados obtenidos son pequeños. De hecho, los criptosistemasbasados en curvas elípticas proporcionan la misma seguridad que losbasados en factorización o logaritmo discreto reduciendoconsiderablemente el número de dígitos. Las curvas elípticas pueden serimplementadas con gran eficiencia en hardware y software, y soncapaces de competir en velocidad con sistemas como RSA y DSS. Engeneral se cree que son bastante seguros, pero no ha sido demostrado. Síse sabe que existe un tipo de curvas que recientemente se ha reveladoextremadamente vulnerable, por lo que éstas no deben usarse encriptografía. Y de entre los demás tipos de curvas se deberá examinarcuidadosamente antes de elegir uno concreto para comprobar suidoneidad como base para un código de cifrado de datos.La seguridad de los sistemas de criptografía con curvas elípticas esbuena a priori y, pese al esfuerzo realizado para intentar atacarlos, hastael momento no ha habido ninguna sorpresa. 15
  • 16. El algoritmo XTR introducido recientemente por Lenstra y Verheulpodría convertirse en una competencia importante para las curvaselípticas. Sin embargo, las curvas elípticas parecen funcionarligeramente mejor en la práctica y presentan una ventaja definitiva encuanto al tamaño de la clave.Hay varios intentos de estandarización para los criptosistemas de curvaselípticas (como por ejemplo ECDSA por ANSI). Actualmente las curvaselípticas son sobradamente conocidas, pero no su uso en la práctica noestá muy extendido.Para que quede comprobado el potencial(en cuanto a eficiencia yseguridad) de este sistema lo compararemos con el RSA mediante unatabla:Podemos observar que las diferencias son significativas, siempre muy afavor de las curvas elípticas. Esto es así porque el logaritmo elípticopuede ser una función mucho más segura que el logaritmo discreto o lafactorización cuando se trabaja con números enteros de una determinadadimensión.Todas estas cuestiones de factorización serán mas tarde explicadas. 16
  • 17. - 2. Criptosistemas: ConstrucciónUna de las mejores definiciones para la palabra Criptografía, viene adecir que es el conjunto de técnicas que permiten transformar un trozode información, de tal forma que quienes deseen recuperarlo sin estar enposesión de otra pieza de información (clave), se enfrentarán a unproblema intratable. Conviene recordar que"intratable" no significa lo mismo que "irresoluble"; puesto que elnúmero de posibles claves ha de ser finito, la fuerza bruta siempre nospermitirá recuperar el mensaje original, al margen de que seamos luegoincapaces de reconocerlo. En cualquier caso, desde un punto de vistapráctico la casualidad debe ser descartada, ya que las probabilidades deque se descifre por la fuerza bruta un mensaje en tiempo razonable esínfima. Solo nos quedaría explicar ¿que entendemos como problemaintratable que podamos adaptar al uso de computadoras?, la respuestaparece sencilla: complejos cálculos matemáticos que superen lacapacidad de resolución o cálculo de un posible atacante y que noexisten lo que se conoce como “atajaos” para la resolución del problemaque pueda encontrar un atacante y le sirve para descifrar nuestrosmensajes.Para introducir el principio fundamental de la criptografía modernasupongamos dos números enteros cualesquiera a y b. Recordemos queel número de operaciones elementales que requiere un algoritmosencillo para obtener su producto no depende directamente del valor dea y b, sino del número de dígitos que éstos posean (o sea, de sulogaritmo). Esta propiedad permite que podamos multiplicar númerosmuy grandes en un número de pasos razonablemente pequeño. Porejemplo, dos números de siete cifras (del orden del millón) requierenmenos de sesenta operaciones elementales para ser multiplicados.Ya explicamos anteriormente la importancia de las operaciones inversasen los criptosistemas asimétricos por lo que si suponemos que tenemosun número n y queremos conocer sus dos factores a y b. En la actualidadexisten algoritmos relativamente eficientes para llevar a cabo estaoperación, pero siguen requiriendo un número de operaciones que sevuelve astronómico cuando a y b son lo suficientemente grandes.Normalmente el caso más desfavorable se da cuando a y b son númerosprimos, puesto que entonces son los únicos factores de n.Esta dificultad es aprovechada por muchos algoritmos de clave privada,como es RSA, que en principio basa su fuerza en el problema de lafactorización. Sin embargo, aunque es conocido que si dicho problema 17
  • 18. fuera resuelto el algoritmo caería, nadie ha demostrado que no exista unmétodo para descifrar un mensaje RSA sin factorizar el módulo.En fin, parece bastante claro que la investigación dentro de estosámbitos matemáticos es fundamental, ya que permitirá constatar (orefutar en su caso) la capacidad que tienen muchos algoritmos deproteger nuestros datos.Una vez conocida la importancia de los números primos, hay que buscarun método para identificarlos. Y aquí es donde surge la primeraparadoja aparente: un número es primo si no se puede factorizar, perointentar factorizarlo es una tarea impracticable si el número es losuficientemente grande. Por suerte, existen técnicas probabilísticas paratener un grado de certeza aceptable acerca de la primalidad de unnúmero concreto.Las técnicas arriba mencionadas se basan en escoger un númeroaleatorio x y efectuar una serie de operaciones entre x y n. Si secumplen ciertas propiedades, sabremos con un grado de certezadeterminado que n puede ser primo. Repitiendo este test muchas vecescon diferentes valores de x, podemos aumentar nuestra confianza en laprimalidad de n tanto como queramos.Los números primos que conocemos actualmente no son númerosgrandísimos computacionalmente hablando (el mas grande en laactualidad es 26972593 descubierto por Nayan Hajratwala)Y sabemos que los sistemas no son perfectos (teóricamente nunca loserán) y al ritmo que avanza el hardware los sistemas actuales prontoquedaran obsoletos es por ello que se tiene la vista fijada en la muyposiblemente computación del futuro, la computación cuántica, capazteóricamente de alcanzar niveles de cálculo en los que el uso de losnúmeros primos como sistema para construir claves quede aplastado porla futura criptografía cuántica que base sus principios en losfísico-cuánticos para obtener sistemas indescifrables por esas “futuras”máquinas de las que aún solo se han producido prototipos simples,quizás aun nos quede mucho que esperar pero la criptografía debeavanzar paralelamente a estas nuevas máquinas para garantizar laseguridad informática.Otro de los grandes problemas de la criptografía y que afectan sobretodoa la creación de nuevos sistemas es la imposibilidad de poder medir laseguridad de un sistema, como nunca podemos afirmar que el sistemasea seguro debemos probar ataques contra él y esto es algo nodemasiado sencillo y aun así podría resultar seguro hasta que alguienconsiga descifrarlo, por ello la dificultad de crear nuevos sistemas y deimplantar los mas recientes (este es el caso de las curvas elípticas queaun no se consideran fiables) con los posibles fallos de seguridad queello podría llevar. 18
  • 19. - 4. Usos de la criptografía actualesAhora que conocemos los tipos de criptosistemas que se usan en lainformática explicaremos como se suelen usar, que como ya dijimos esun uso conjunto entre sistemas, es decir, con criptosistemas asimétricosciframos lo que será nuestra clave simétrica con la que cifraremosnuestro mensaje a transmitir.Este es el esquema de algoritmo criptográfico más habitual en losmúltiples usos a los que la criptografía se dedica actualmente.Con la llegada de Internet esa utilidad fonológica de la criptografía pasóa ser un uso continuo del que el usuario no se percata pero que esesencial para salvaguardar los datos (ya sean contraseñas, cuentasbancarias, datos personales o cualquier otro tipo de informaciónconfidencial) que con frecuencia se deben enviar a través de redes o poralgún otro medio.En la red de redes se plantea otro gran problema, esto es, ¿Cómosabemos que nuestro destinatario es quien dice ser? o ¿Cómo sabemos siel mensaje que estamos recibiendo no es un mensaje parcial, es decir sino se han perdido datos por alguna razón? Todos estos problemasactualmente se resuelven con la Firma Digital.La firma digital forma parte de los mensajes que enviamos acreditandoasí nuestra autoría y la misma integridad del mensaje.La firma digital es la base de las compras en Internet y de la llamadaciberdemocrácia.Una buena firma digital debe ser: Única e infalsificable, o lo que es lomismo, computacionalmente segura.Verificable por el receptor de la misma.Viable, es decir, fácil de generar.Para firmar un documento digital, su autor utiliza su propia clavesecreta, a la que sólo él tiene acceso, lo que impide que pueda despuésnegar su autoría (no revocación). De esta forma, el autor quedavinculado al documento que firma.Una firma digital ofrece una forma de asociar un mensaje con la entidadque lo envía, y es la forma en la que podemos "firmar" (de forma similara la que firmamos tradicionalmente sobre un papel) al efectuar unacompra en el ciberespacio. De esta manera se evitan fraudes yfalsificaciones, ya que, por ejemplo, sólo nosotros podremos utilizarnuestra cuenta de tarjeta Visa en la Red de Internet.Cualquier persona puede verificar la validez de una firma si dispone dela clave pública del autor.Para realizar una firma digital el software del firmante aplica de formatransparente al usuario un algoritmo hash, (los más usados son MD5 oSHA- 1, que resume el mensaje o parte de él), sobre el texto a firmar, 19
  • 20. obteniendo un extracto de longitud fija, y absolutamente específico paraese mensaje (un mínimo cambio en el mensaje produce un extractocompletamente diferente). Este extracto, cuya longitud oscila entre 128y 160 bits (en función del algoritmo utilizado), se somete a continuacióna cifrado mediante la clave secreta del autor, previa petición decontraseña.El algoritmo utilizado para cifrar el extracto puede ser el mismo RSA ouna clave específica para firmar tipo DSS. El extracto cifrado constituyela firma y se añade al final del mensaje o en un fichero adherido a él.Para comprobar la validez de una firma digital se necesita disponer de laclave pública del firmante para poder verificar su firma.El software del receptor descifra el extracto cifrado que constituye lafirma digital (de forma transparente al usuario), utilizando para ello laclave pública del remitente y obtiene como resultado un bloque decaracteres.A continuación, calcula el extracto hash que corresponde al texto delmensaje. Si el resultado coincide exactamente con el bloque decaracteres obtenido en la operación anterior, la firma se consideraválida. Si existe la menor diferencia, la firma se considera no válida.Para que este esquema tenga éxito, es preciso una función hash que elijafragmentos adecuados del texto a cifrar. Evidentemente, no sirve cifrarlas cuatro primeras palabras del mensaje, ya que podría usarse esa firmaen otro mensaje cuyas tres primeras palabras sean iguales. Por otro lado,puede cifrarse todo el mensaje, pero este procedimiento podría doblarfácilmente el tamaño del mismo, lo cual no resulta conveniente niaconsejable: el ataque principal contra el sistema de cifrado RSAconsiste en firmar un mensaje cuidadosamente escrito por el atacante;eso puede permitirle averiguar la clave secreta del firmante.Lo que se ha de firmar es un "resumen" o "revoltillo" en Sudamérica(hash) representativo del mensaje particular, que solamente puedagenerarse mediante la clave secreta del firmante y mediante el mensaje,y que no sea de longitud excesiva. Así que no sirven sistemas quepuedan generar firmas iguales para mensajes distintos.Tampoco puede admitirse un hash que filtre información sobre elmensaje; si se puede reconstruir el mensaje a partir del hash se podríaobtener un segundo mensaje con el mismo hash.El sistema tiene un punto débil, que es consustancial a loscriptosistemas de clave pública.Efectivamente, la firma digital nos permite comprobar la relación entreun mensaje y la clave utilizada pero no podemos estar seguros de queesa clave corresponde realmente a la persona o entidad que diceposeerla.Este problema requiere la intervención de una tercera parte fiable, en laque confíen las dos partes implicadas. 20
  • 21. Es lo que se llama Autoridad de Certificación. Y es esa tercera partefiable la que acredita, actuando como una especie de notario queextiende un certificado de claves (firmado con su propia clave), laligazón entre una determinada clave y su propietario real.Algunos programas, como PGP, no utilizan autoridades de certificaciónexternas, sino que delegan en el propio usuario la responsabilidad decertificar claves conforma a su criterio, estableciendo lo que sedenomina una red de confianza (Web of Trust) totalmentedescentralizada, pero con el apoyo de una red de servidores de claves.Los servidores de certificados son aplicaciones destinadas a crear,firmar y administrar certificados de claves, y que permiten a unaempresa u organización constituirse en autoridad de certificación parasubvenir sus propias necesidades.La relevancia del firmado digital, pese a que no se suele pensar muchoen él cuando se estudia la seguridad global de un protocolocriptográfico, es grande: si bien pocas veces nos vemos en la necesidadde cifrar nuestros datos, sí es importante autentificarlos.Al hacer un pedido a una cibertienda por correo electrónico, importarelativamente poco que los datos vayan cifrados (a no ser queincluyamos información sensible como números de cuenta corriente);pero es imprescindible tener un medio de certificar que ese mensaje hasido enviado. Si compro la tostadora de 30 € y el vendedor se empeñaen que mi mensaje pedía el televisor de 300€, ¿cómo puedo demostrarlo contrario? Y al revés, si yo soy el vendedor, ¿cómo sé que elcomprador no se va a echar atrás alegando que jamás envió esemensaje? Las cabeceras de los mensajes son demasiado fáciles defalsificar o alterar, por lo que no constituyen ninguna prueba.En algunos estados norteamericanos, la firma digital se acepta comoelemento de prueba en iguales términos que la firma autografiada enpapel. En España se acepta un fax como documento vinculante, a pesarde que resulta un juego de niños digitalizar una firma (o fotocopiarla) yadosarla a otro documento, de manera que ¿por qué no aceptar firmasdigitales sin están convenientemente construidas? Por desgracia, nopodremos efectuar tal cosa hasta que dispongamos de un procedimientoseguro de creación de firmas digitales. 21
  • 22. - 5. Conclusiones Quizás lo mas repetido en este trabajo haya sido la importancia de la criptografía en la informática pues de ello se trataba y creo ha quedado bastante claro lo mas básico de la criptografía computacional, sus tipos ejemplos actuales y usos en este tiempo considerada una parte imprescindible en cualquier sistema y creo lo será aun mas si cabe en el futuro cuando según se prevé todo fluya en la red incluso lo mas confidencial he aquí la importancia del cifrado, la autentificación, la comprobación de integridad y los posibles usos que de la criptografía se pueda sacar en un futuro. Con la mirada atenta en el futuro de la criptografía (como ya dijimos la muy posiblemente futura criptografía cuántica) y confiando en la seguridad que nos proporcionan los sistemas actuales que esperemos nunca caiga (aunque no parece muy probable con el ritmo actual de avance tecnológico alcanzado) y pueda cumplir los principios con los que la informática nació: tratamiento seguro de información. - 6. Bibliografía·PASTOR FRANCO, J.; SARASA LÓPEZ, M.A. Criptografía digital·Libro electrónico de seguridad informática y criptografía.Jorge Ramiro Aguirre UPM (http://www.criptored.upm.es/descarga/CriptoClasica.zip)Criptografía clásica. Jorge Ramiro Aguirre·http://www.pgpi.org·http://www.redsegura.com·http://www.htmlweb.net/seguridad/cripto/cripto_1.html 22