Un certificato stabilisce un collegamento tra un'identità e una chiave pubblica; il collegamento è "garantito" da un'autorità di certificazione con una sorta di firma digitale o un'altra associazione crittografica simile.
La pagina di Wikipedia su "certificati impliciti" (indicata da @Clayton) descrive un concetto in cui l'algoritmo della chiave pubblica è tale che la chiave pubblica, il nome del proprietario della chiave e la firma della CA sono in qualche modo confusi in un singolo elemento leggero. Questo concetto sembra essere emerso dall'algoritmo ECQV e "certificato implicito" è stato coniato come passo di vendita per tale algoritmo. Infatti, puoi trovare la descrizione (leggermente di marketing tonica) da Certicom . Sembra (eventualmente) soggetto a una serie di brevetti (ad es. questo ).
Sebbene il concetto sia generico, sono a conoscenza di una sola implementazione effettiva, che è ECQV. Non è standardizzato e distribuito yet .
In ECQV, i meccanismi dell'algoritmo escogitano per memorizzare in un singolo elemento sia la chiave pubblica che l'ordinamento della firma dalla CA, mentre l'elemento non è più grande della chiave pubblica solo. Un sistema che tenta di utilizzare il certificato implicito per un determinato utente ha bisogno di tre elementi:
- la presunta identità del proprietario della chiave;
- il certificato implicito per quel proprietario;
- la chiave pubblica di CA;
e l'algoritmo ECQV accetta tutti e tre gli elementi per generare la chiave pubblica dell'utente. Questo è implicito in quanto non è ancora noto se il certificato esiste realmente; cioè dato un certificato implicito C e la chiave pubblica CA P , l'algoritmo ECQV dice: se il certificato C è di proprietà dell'utente U , quindi la chiave pubblica di U è K . Tutti gli "impliciti" risiedono nel "se".
Un concetto approssimativamente simile, ma più estremo, è crittografia basata sull'identità . Nella crittografia basata su ID, vengono generate più matematica al problema (abbinamenti su curve ellittiche ...) in modo da ottenere un risultato ancora migliore: rimozione del certificato. Il certificato è così implicito che non ha più bisogno di esistere. Con la crittografia basata su ID, l'identità dell'utente è la sua chiave pubblica. La crittografia basata su ID è "migliore" dei certificati impliciti perché consente di utilizzare l'utilizzo della chiave pubblica in modo non pertinente. Si consideri ad esempio il problema di inviare una e-mail crittografata a qualcuno (chiamiamolo Bob):
- Con i certificati classici (diciamo "espliciti"), devi prima ottenere il certificato di Bob. Per esempio. Bob te lo invia (tradizionalmente con una email firmata) o il tuo software lo trova in qualche directory.
- Con certificati impliciti, devi ancora ottenere il certificato di Bob. È più breve, quindi "più efficiente", ma ne hai bisogno.
- Con la crittografia basata su ID, non è necessario il certificato di Bob. Ce l'hai già: è il nome di Bob, ad esempio "Bob". Questo è sufficiente per crittografare e inviare l'e-mail.
Mi sembra che il concetto di certificato implicito, ad esempio ECQV, abbia difficoltà a trovare una quota di mercato; è schiacciato tra certificati "normali", su cui ECQV offre solo un vantaggio prestazionale percepito (che, più spesso, non ha alcuna rilevanza) e crittografia basata su ID, che offre alcuni vantaggi veramente strutturali.
(È stato riferito che Certicom e altri proprietari di brevetti riescono ancora a spingere i loro algoritmi in alcuni comitati di standardizzazione attraverso intense attività di lobbying. Non ho assistito personalmente a queste cose, però.)