Un certificado establece un enlace entre una identidad y una clave pública; el enlace está "garantizado" por una Autoridad de Certificación con algún tipo de firma digital u otro enlace criptográfico similar.
La página de Wikipedia en "certificados implícitos" (señalado por @Clayton) describe un concepto donde el algoritmo de clave pública es tal que la clave pública, el nombre del propietario de la clave y la firma de la AC se combinan de alguna manera en un único elemento ligero. Este concepto parece haber surgido del algoritmo ECQV, y el "certificado implícito" se acuñó como un argumento de venta para ese algoritmo. De hecho, puede encontrar la descripción (ligeramente comercializada) en Certicom . Parece estar (posiblemente) sujeto a una gran cantidad de patentes (por ejemplo, esta ).
Aunque el concepto es genérico, solo conozco una implementación real, que es ECQV. No está estandarizado e implementado todavía .
En ECQV, la mecánica del algoritmo permite almacenar en un solo elemento tanto la clave pública como el tipo de firma de la AC, mientras que el elemento no es mayor que la clave pública solo. Un sistema que intenta utilizar el certificado implícito para un usuario determinado necesita tres elementos:
- la supuesta identidad del propietario de la clave;
- el certificado implícito para ese propietario;
- la clave pública de CA;
y el algoritmo ECQV toma los tres elementos para generar la clave pública del usuario. Esto es implícito porque aún no se sabe si realmente existe el certificado; es decir, dado un certificado implícito C y la clave pública de CA P , el algoritmo ECQV dice: si el certificado C es propiedad del usuario U , luego la clave pública de U es K . Todo lo "implícito" reside en el "si".
Un concepto más o menos similar, pero más extremo, es criptografía basada en identidad . En el cifrado basado en ID, se arrojan más matemáticas al problema (emparejamientos en curvas elípticas ...) para lograr un resultado aún mejor: la eliminación del certificado. El certificado es tan implícito que ya no necesita existir. Con la criptografía basada en ID, la identidad del usuario es su clave pública. El cifrado basado en ID es "mejor" que los certificados implícitos porque permite el uso de claves públicas de la nada. Considere, por ejemplo, el problema de enviar un correo electrónico cifrado a alguien (llamémosle Bob):
- Con los certificados clásicos (diga "explícito"), primero debes obtener el certificado de Bob. P.ej. Bob te lo envía (tradicionalmente con un correo electrónico firmado) o tu software lo encuentra en algún directorio.
- Con los certificados implícitos, aún tienes que obtener el certificado de Bob. Es más corto, por lo tanto "más eficiente", pero lo necesita.
- Con el cifrado basado en ID, no necesita el certificado de Bob. Ya lo tienes: es el nombre de Bob, es decir, "Bob". Esto es suficiente para que pueda cifrar y enviar el correo electrónico.
Me parece que el concepto de certificado implícito, es decir, ECQV, tiene problemas para encontrar alguna cuota de mercado; se comprime entre los certificados "normales", sobre los cuales ECQV solo ofrece una ventaja de rendimiento percibida (que, más a menudo, no tiene ninguna relevancia) y la criptografía basada en ID, que ofrece algunas ventajas realmente estructurales.
(Se ha informado que Certicom y otros propietarios de patentes aún logran impulsar sus algoritmos en algunos comités de estandarización a través de un intenso cabildeo. Sin embargo, no he presenciado estas cosas).