Криптография без сертификатов — это вариант криптографии на основе идентификаторов, призванный предотвратить проблему депонирования ключей . Обычно ключи генерируются центром сертификации или центром генерации ключей (KGC), которому предоставлены все полномочия и которому неявно доверяют. Чтобы предотвратить полный сбой системы в случае взлома KGC, процесс генерации ключей разделяется между KGC и пользователем. Сначала KGC генерирует пару ключей, где закрытый ключ теперь является частичным закрытым ключом системы. Оставшаяся часть ключа — это случайное значение, сгенерированное пользователем, и оно никогда никому не раскрывается, даже KGC. Все криптографические операции пользователя выполняются с использованием полного закрытого ключа, который включает как частичный ключ KGC, так и случайное секретное значение пользователя.
Одним из недостатков этого является то, что информация об идентичности больше не формирует весь открытый ключ. Это означает, что открытый ключ пользователя не может быть обнаружен только из строки идентификации пользователя и открытого ключа KGC. Таким образом, открытый ключ пользователя должен быть опубликован или иным образом получен другими пользователями. Одним из преимуществ системы является то, что можно проверить, что любой полученный открытый ключ принадлежит указанной строке идентификации. (Другими словами, метод распространения открытого ключа пользователя не обязательно должен быть безопасным.) Строка идентификации и открытый ключ KGC могут использоваться для проверки того, что полученный открытый ключ принадлежит строке идентификации. (Можно проверить, что полученный открытый ключ был сгенерирован из строки идентификации, закрытого ключа KGC и некоторого неизвестного значения). Обратите внимание, что для любой строки идентификации можно сгенерировать несколько пар открытого/закрытого ключей, но злоумышленники не будут иметь доступа к закрытому ключу KGC в процессе создания.
Чтобы зашифровать сообщение для другого пользователя, необходимы три фрагмента информации: 1) открытый ключ получателя и 2) строка идентификации, а также 3) открытая информация KGC (открытый ключ). Строка идентификации и открытый ключ KGC используются для проверки того, что открытый ключ получателя принадлежит получателю (был сгенерирован из строки идентификации и открытого ключа KGC). Для расшифровки пользователю нужно просто использовать свой закрытый ключ.
Для обеспечения высокой безопасности система без сертификатов должна доказать свою безопасность против двух типов злоумышленников. Злоумышленник типа 1 — относится к любой третьей стороне, которая может подделать открытые ключи пользователя, что соответствует получению случайного секретного значения пользователя. Злоумышленник типа 2 — относится к скомпрометированному или вредоносному KGC, который имеет доступ к частичным открытым и закрытым ключам всех пользователей.