English
 Criptografía de Clave Pública


Cronología.

La Criptografía de Clave Pública (CCP) fue inventada en el año de 1976 por W. Diffie y M. Hellman, y ha sido uno de los puntos de partida mas importantes de la seguridad en la información de los últimos años, aunque algunos actores dan el crédito de la invención al Ingles J. Ellis en 1969, se dice que el concepto de función de un solo sentido (de la cual se basa la CCP) había sido ya propuesto en 1968 por M. Wilkes, y manejado en 1974 por G. Purdy, dando como función de un solo sentido a un polinomio en un esquema de passwords.

Sin embargo no fue sino hasta 1978 cuando los R. Rivest, E. Shamir, y L. Adleman propusieron el primer sistema criptográfico de clave pública completo (RSA), (hay también quienes afirman que éste había sido inventado ya en 1973 por C. Cocks).

Para qué sirve.

La CCP esencialmente resuelve el problema de distribución de claves simétricas, que hasta esos años era uno de los principales problemas en la criptografía. De manera creativa es también inventado el concepto de firma digital, que resuelve el problema de autenticidad de una entidad. En la actualidad se cuenta con esquemas: de cifrado, de firma digital y de intercambio de claves, entre sus principales usos.

En qué esta basada.

La CCP esta basada en un problema matemático que por un lado es muy fácil de evaluar, y el proceso inverso es computacionalmente imposible de realizarlo, los problemas más usados son: el Problema del Logaritmo Discreto (PLD) definido en algún grupo cíclico, y el Problema de la Factorización Entera (PFE).

Tanto en el diseño de la CCP, como en los ataques, se trabaja en tres niveles diferentes, las funciones básicas (primitivas), los esquemas, y los protocolos o aplicaciones. Por ejemplo, la primitiva RSA de cifrado, es la fórmula c=me mod n. Esta primitiva es usada en el esquema de cifrado RSA que es descrito completamente en el estándar PKCS #1. El esquema de cifrado PKCS #1, es usado por ejemplo en el protocolo SSL para el intercambio de claves de sesión.

Han sido muchas las funciones de un solo sentido que se han propuesto a lo largo de la existencia de la CCP, sin embargo solo pocas has prevalecido, algunas han sido muy creativas, finalmente muchas variantes son las que determinan su permanencia.

Dónde se puede consultar.

La mejor referencia de primitivas y esquemas más usados en la actualidad es el documento P1363 de IEEE , donde se detalla de manera muy clara desde su definición hasta su implementación. Principalmente las primitivas basadas en el PLD, sobre p, y sobre el grupo de puntos racionales de una curva elíptica definidas tanto en p (campos de característica p), como en GF(2n)(campos de característica 2), también están las primitivas basadas en el PFE.

Los esquemas descritos en éste importante documento son: los esquemas de intercambio de claves DH1(Diffie-Hellman 1), DH2 (Diffie-Hellman 2), y MQV (Menezes-Qu-Vanstone), tanto en su versión sobre p, como sobre el grupo de puntos racionales de una curva elíptica definida en un campo finito de característica p, ó de característica 2. Esquemas de firma digital como SSA(Signature Scheme with Appendix), por necesitar al documento en claro en el procese de verificación de la firma, de los cuales están DSA(Digital Signature Algorithm), NR(Nyber-Rueppel), de igual manera en sus dos versiones sobre un p, o el caso elíptico, y IFSSA(RSA), firma digital basada en el PFE, finalmente el esquema de cifrado y descifrado IFES(RSA).

Existe también otro grupo en Europa (NESSIE New European Schemes for Signature Integrity and Encryption), que ha analizado varios de los algoritmos y en la parte de la criptografía asimétrica a propuesto algunos algoritmos como aptos para ser usados en las diferentes aplicaciones:

de cifrado: ACE Encrypt, PSEC-KEM, RSA-KEM.
de firma digital: ECDSA, RSA-PSS, SFLASH.

En qué otros problemas matemáticos se basa la CCP.

Realmente existen otras muy buenas primitivas y esquemas basados en otros problemas matemáticos, por ejemplo:

1) El PLD definido sobre e Jacobiano de una curva hiperelíptica .
2) El PLD definido en subgrupos (de orden p2-p+1)dentro del grupo multiplicativo GF(p6)* llamado XTR que se pronuncia como ECSTR y significa Efficient and Compact Subgoup Trace Representation.
3) Problema definidos en Lattices (retículas), como: "The Shortest Vector Problem" (SVP).
4) Problema bilineal del logaritmo discreto, definido por el mapeo de Weil o de Tate.

El último grito en la CCP.

En el año de 1993, Menezes, Okamoto y Vanstone proponen usar el mapeo de Weil para reducir el PLD definido en curvas elípticas supersingulares a el PLD del grupo multiplicativo del campo de definición. En el año 2000 Sakai, Ohgishi, y Kasahara, así como también Joux y Verheul dieron otro papel a los mapeos bilineales (el de Weil uno de ellos), varios esquemas criptográficos fueron planteados usando mapeos bilineales. En el 2001, Boneh y Franklin usan las anteriores ideas conjuntamente con el concepto "Identity Based Encryption(IBE)" propuesto por Shamir desde 1984, para dar a conocer el primer esquema de cifrado basado en la identidad usando mapeos bilineales realizable.

El concepto innovador de la IBE, es que ahora la clave pública de la CCP no es un número de origen aleatorio, si no que la clave pública puede ser cualquier cadena de caractéres, particularmente puede ser una cadena de caracteres que identifique al usuario, como su dirección de email, su número de identidad, su matrícula, etc.

Aunque aún la criptografía que usa mapeos bilineales está en investigación y desarrollo, ésta ha dado un paso más dentro del desarrollo de la CCP. Ahora pueden evitarse los pasos del "handshake" en los protocolos que usan la CCP, como SSL, IPsec, S/MIME, etc.

Qué otras aplicaciones tiene.

En el vocabulario de los esquemas de seguridad la CCP ha tenido enormes aplicaciones, por ejemplo:

Esquema de firma-corta, es una firma digital de longitud mínima que es usada por ejemplo en servicios postales, dónde se requiere mínimo espacio.
Esquema de firma-infalsificable, donde la firma no se puede falsificar.
Esquema de identificación, donde una parte convence de su identidad a otra parte verificadora.
Esquema de firma-cifrado, donde se firma y cifra con la misma primitiva.
Esquemas multi-firmas, dónde múltiples usuarios firman un solo documento.
etc..

Dónde se puede ver su estado actual.

El estado actual de la CCP se puede revisar en la gran cantidad y direcciones de investigación, así como en los congresos dedicados a estos temas, toda esta información puede encontrarse en el sitio de la International Association for Cryptologic Research (IACR).

La seguridad de un sistema de la CCP

La seguridad de un sistema criptográfico de clave pública es sin duda la primera preocupación, realmente no es un asunto simple, después de considerar un sistema criptográfico en la CCP, los elementos que la componen deben de ser elegidos de la manera más cuidadosa posible ya que de ello depende su "seguridad", (casi es siempre satisfecho si tomamos en cuenta el estándar más actualizado) pero ningún sistema criptográfico puede decirse totalmente seguro, en el sentido de que no pueda ser atacado de alguna manera nueva y novedosa. Lo que se tiene hasta la fecha es poder definir un sistema criptográfico como "seguro" si este puede evitar los ataques más conocidos, una importante manera de demostrar su seguridad es someterlo al estudio de la comunidad mundial dedicada el tema, lo que permitirá poder estar en principio seguro de que el sistema es "seguro" tanto como el mundo conoce hasta ese momento.

En términos más formales en la actualidad se esta discutiendo mucho sobre una definición de seguridad en los sistemas de CCP, por el momento existen dos corrientes, una de ellas afirma que todo esquema de CCP puede y debe de probar su seguridad vía los métodos formales que existen para ello u otros nuevos. La otra corriente no menos importante menciona que dicha seguridad formal no aporta mucho a la seguridad "real", es decir que en la práctica no se ve reflejado dicha seguridad.

De manera sencilla la seguridad de un sistema criptográfico ha ido modificándose, desde la primera noción, un sistema criptográfico era seguro si su función primitiva era de un solo sentido. Posteriormente se modificó esta definición a: Dada una clave pública y un mensaje cifrado (llamado ciphertext), entonces el sistema de CCP es seguro si no se puede derivar el texto ordinario o la clave secreta correspondiente. Una tercera y más fuerte definición de seguridad es: El sistema de CCP es seguro si no puede derivarse "cualquier" información de los plaintexts o de la clave a partir de toda la información posible que pueda tenerse y que el atacante pueda incluso acomodar para sus propósitos, incluyendo ciphertexts, plaintexts, parte de la clave, u otros parámetros del sistema como IV (vectores de inicialización).

En la actualidad la seguridad de un sistema de CCP no se limita a el propio sistema sino también a el modo de operación del algoritmo, del esquema, del protocolo, del dispositivo que lo aplica, etc.

All the responsibility in this site is mine, any comment send it to: jjangel@computacion.cs.cinvestav.mx
Let me know of any errors you take notice.
Copy Rigth © 2005