Criptografía basada en identidad

From Wikipedia, the free encyclopedia

La criptografía basada en identidad o IBC (acrónimo de 'Identity-Based Cryptography'), fue introducida en 1984 por Adi Shamir.[1] Se caracteriza por el uso de atributos de identidad de los usuarios (cadenas de caracteres identificativos). Ejemplos de atributos de identidad: direcciones de email, números de teléfono, IP´s, nombres de dominio. A partir de estas cadenas identificativas se puede cifrar y verificar las firmas, sin ser necesario el uso de los certificados digitales de PKI. Por tanto ya no es necesario generar y manejar certificados de usuario y por tanto es mucho más fácil proporcionar criptografía a usuarios noveles ya que los mensajes pueden ser encriptados por los usuarios antes de que estos interactúen con cualquier entidad.

En un principio Adi Shamir[1] propuso una forma de usar el algoritmo RSA para firma electrónica o IBS (acrónimo de 'Identity-Based Signature'). Sin embargo hubo que esperar hasta 2001 cuando dos líneas de investigación independientes (Boneh and Franklin[2] y Cocks[3]) propusieron sistemas para conseguir sistemas de cifrado basado en identidad o IBE (acrónimo de 'Identity-Based Encryption'). También se han desarrollado otros sistemas para hacer firma usando este tipo este tipo de criptografía. Por ejemplo el propuesto por Boneh, Lyn y Shacham.[4] Los esquemas criptográficos propuestos hasta ahora que usan este tipo de criptografía se basan en la teoría matemática de los residuos cuadráticos o en la de los emparejamientos bilineales. Realmente la amplia mayoría de los esquemas criptográficos basados en identidad, y todos aquellos que son eficientes se basan en los emparejamientos bilineales y por eso a este tipo de criptografía se la llama a veces criptografía basada en emparejamientos o en inglés pairing-based cryptography.

Para cifrado (IBE)

La IBC confía en una entidad confiable llamada Generador de claves privadas llamado PKG por ser el acrónimo de 'Private Key Generator'. Antes de que las operaciones puedan comenzar el PKG tiene que generar un par de claves pública/privada (que vamos a llamar pkPKG y skPKG respectivamente). Estas claves son llamadas clave pública maestra y clave privada maestra respectivamente. Para operar, el PKG primero publica la clave pública maestra (pkPKG) a los usuarios de sus servicios. Dada la clave pública maestra cualquiera puede calcular la clave pública correspondiente a una identidad combinando la clave pública maestra con la cadena de identidad. Para obtener la correspondiente clave privada, la parte autorizada a usarla contacta con el PKG para que este use su clave privada maestra para generar la clave privada para la identidad ID.

El proceso de cifrado/descifrado funciona de la siguiente forma:

  • Alicia prepara un mensaje de texto plano M para B. Ella usa la identidad de Bob IDBob y la pkPKG para encriptar M, obteniendo un mensaje cifrado C. Alice envía C a Bob. Observar que IDBob y pkPKG son ya conocidos antes de que Alice comience a cifrar el mensaje a Bob. Por tanto no se requiere coordinación o preparación con Bob para enviarle un mensaje cifrado.
  • Bob recibe un mensaje cifrado C de Alice. En la mayoría de las implementaciones se asume que C viene con instrucciones en texto plano para contactar con el PKG y obtener la clave privada requerida para desencriptar el mensaje. Bob se autentica con el PKG, esencialmente enviándole suficiente información para probar que el IDBob le pertenece a él. Una vez probado el PKG le transmite a Bob su clave privada skIDBob a través de un canal seguro. Por ejemplo si el IDBob está basado en una dirección de correo electrónico, el PKG podría enviarle un mensaje a este correo electrónico para que Bob responda con una acción que provea un nivel de fiabilidad suficiente de que el propietario del IDBob es el que realmente responde al mensaje que el PKG envió. Por ejemplo el mensaje que envía el PKG podría tener un identificador que podría ser devuelto vía un enlace https en cual se puede usar para descargar su clave privada. Para tener un alto nivel de fiabilidad, a Bob se le podría requerir presentar sus credenciales en persona y recibir un compact disc conteniendo el skIDBob
  • Bob descifra C usando su clave privada skIDBob para recuperar el mensaje en texto plano M

Una variación del proceso descrito más arriba es que el PKG pueda desencriptar C para Bob y transmitírselo de forma segura mediante autenticación. Este sistema es usado a veces para incrementar la facilidad de uso del proceso de descifrado.

Se puede ver claramente el punto débil de la IBE: Todas las claves privadas tienen que ser creadas por el PKG.

La autenticidad de la clave pública está garantizada implícitamente debido a que el transporte de la clave privada al usuario correspondiente es segura (Autenticidad, Integridad y Confidencialidad)

Para firma (IBS)

La firma usando criptografía basada en identificación es esencialmente el proceso inverso del proceso de cifrado

  • Alice se autentica con el PKG y recibe su clave privada skIDAlice
  • Usando su clave privada skIDAlice, Alice genera una firma s de M y la transmite a Bob.
  • Después de recibir M y s de Alice, Bob mira si s es una firma auténtica de M usando la identidad de Alice IDAlice y la clave pública pkPKG. Si la firma es genuina se acepta el mensaje, en otro caso no. Observar que Bob no necesita en ningún momento tener ningún tipo de certificado de Alice.

Seguridad

En la actualidad la amplia mayoría de los esquemas criptográficos basados en identidad, y todos aquellos que son eficientes, están basados en unas funciones matemáticas llamadas mapas no degenerativos bilineales. Un mapa no degenerativo bilineal es una función que asocia a un par de elementos (emparejamientos o pairing) de un grupo cíclico a otro del mismo orden primo, donde el problema del logaritmo discreto es computacionalmente difícil en el primer grupo.

La seguridad que aportan los mapas bilineales elegidos se basa en que se consideran funciones de un solo sentido (funciones que son fáciles de calcular su resultado dando sus parámetros de entrada pero es difícil calcular su inversa). A esta suposición se le suele llamar "Suposición Diffie-Hellman Bilineal" ya que el problema Diffie-Hellman Bilineal es reducible (algorítmicamente equivalente) al logaritmo discreto.[5]

Definición: Sean F y G dos grupos de tamaño q primo. G está descrito en términos de una operación aditiva y formado por puntos de una curva elíptica, mientras que F está descrito en términos de una operación multiplicativa y formado por un subconjunto de campo finito. Un par bilineal es un mapeado e:GxG->F con las siguientes propiedades:

  • Bilinearidad: Si R1, R2 son de G y a,b son de Z*q entonces e(a·R1,b·R2)=e(R1,R2)ab
  • No degenerativo: e no transforma todos los puntos de GxG en único punto de F
  • Eficiencia: El cálculo de e es eficiente para cualquier elemento del dominio.

El problema de Diffie-Hellman original se basa en que, dado un valor g (el generador de un grupo) y x,y enteros aleatorios, si se entrega gx, gy calcular gxy es computacionalmente difícil. La variante bilineal de este problema, llamado PBDH por el acrónimo de 'Problema Diffie-Hellman Bilineal', se basa en ese mismo principio. Si se tiene un grupo G de tamaño q primo, con un mapa e y a,b,c elementos al azar, si se entrega la tupla (G,q,e,P, aP, bP, cP), con P en G calcular e(P,P)abc es computacionalmente difícil.

Los sistemas mejor conocidos para IBC están basados en emparejamientos bilineales sobre curvas elípticas de dos tipos: Emparejamientos de Weil y emparejamientos de Tate. En estos dos sistemas el operador · se refiere a la multiplicación de un punto en una curva elíptica de enteros. Aunque computar las operaciones de multiplicación a·X es fácil, sin embargo encontrar a, dado X y a·X es computacionalmente difícil.

Ventajas e inconvenientes de la criptografía basada en identidad

Implementaciones

Referencias

Related Articles

Wikiwand AI