В криптографии гибридная криптосистема — это система, которая сочетает в себе удобство криптосистемы с открытым ключом и эффективность криптосистемы с симметричным ключом . [1] Криптосистемы с открытым ключом удобны тем, что не требуют от отправителя и получателя совместного использования общего секрета для безопасной связи. [2] Однако они часто опираются на сложные математические вычисления и, таким образом, как правило, гораздо менее эффективны, чем сопоставимые криптосистемы с симметричным ключом. Во многих приложениях высокая стоимость шифрования длинных сообщений в криптосистеме с открытым ключом может быть непомерной. Гибридные системы решают эту проблему, используя комбинацию обоих. [3]
Гибридную криптосистему можно построить с использованием любых двух отдельных криптосистем:
Гибридная криптосистема сама по себе является системой с открытым ключом, открытый и закрытый ключи которой такие же, как и в схеме инкапсуляции ключей. [4]
Обратите внимание, что для очень длинных сообщений основная часть работы по шифрованию/дешифрованию выполняется более эффективной схемой с симметричным ключом, в то время как неэффективная схема с открытым ключом используется только для шифрования/дешифрования короткого значения ключа. [3]
Все практические реализации криптографии с открытым ключом сегодня используют гибридную систему. Примерами являются протокол TLS [5] и протокол SSH [6] , которые используют механизм открытого ключа для обмена ключами (такой как Диффи-Хеллман ) и механизм симметричного ключа для инкапсуляции данных (такой как AES ). Формат файла OpenPGP [7] и формат файла PKCS#7 [8] являются другими примерами.
Hybrid Public Key Encryption (HPKE, опубликовано как RFC 9180) — это современный стандарт для универсального гибридного шифрования. HPKE используется в нескольких протоколах IETF, включая MLS и TLS Encrypted Hello.
Шифрование конверта является примером использования гибридных криптосистем в облачных вычислениях . В контексте облака гибридные криптосистемы также обеспечивают централизованное управление ключами . [9] [10]
Чтобы зашифровать сообщение, адресованное Алисе, в гибридной криптосистеме, Боб делает следующее:
Чтобы расшифровать этот гибридный шифртекст, Алиса делает следующее:
Если обе схемы инкапсуляции ключа и инкапсуляции данных в гибридной криптосистеме защищены от атак с адаптивным выбранным шифротекстом , то гибридная схема также наследует это свойство. [4] Однако можно построить гибридную схему, защищенную от атак с адаптивным выбранным шифротекстом, даже если инкапсуляция ключа имеет слегка ослабленное определение безопасности (хотя безопасность инкапсуляции данных должна быть немного сильнее). [12]
Шифрование конверта — это термин, используемый для шифрования с помощью гибридной криптосистемы, используемой всеми основными поставщиками облачных услуг , [9] часто как часть централизованной системы управления ключами в облачных вычислениях. [13]
Шифрование конверта дает имена ключам, используемым в гибридном шифровании: ключи шифрования данных (сокращенно DEK, используются для шифрования данных) и ключи шифрования ключей (сокращенно KEK, используются для шифрования DEK). В облачной среде шифрование с помощью шифрования конверта включает в себя локальную генерацию DEK, шифрование своих данных с помощью DEK, а затем отправку запроса на обертывание (шифрование) DEK с помощью KEK, хранящегося в потенциально более безопасной службе . Затем этот обернутый DEK и зашифрованное сообщение составляют шифротекст для схемы. Чтобы расшифровать шифротекст, обернутый DEK расшифровывается (дешифруется) с помощью вызова службы, а затем расшифрованный DEK используется для расшифровки зашифрованного сообщения. [10] В дополнение к обычным преимуществам гибридной криптосистемы, использование асимметричного шифрования для KEK в облачном контексте обеспечивает более простое управление ключами и разделение ролей, но может быть медленнее. [13]
В облачных системах, таких как Google Cloud Platform и Amazon Web Services , система управления ключами (KMS) может быть доступна как услуга. [13] [10] [14] В некоторых случаях система управления ключами будет хранить ключи в аппаратных модулях безопасности , которые представляют собой аппаратные системы, защищающие ключи с помощью аппаратных функций, таких как устойчивость к вторжениям. [15] Это означает, что KEK также могут быть более безопасными, поскольку они хранятся на защищенном специализированном оборудовании. [13] Шифрование конвертов упрощает централизованное управление ключами, поскольку централизованной системе управления ключами необходимо хранить только KEK, которые занимают меньше места, а запросы к KMS включают только отправку упакованных и распакованных DEK, которые используют меньшую полосу пропускания, чем передача целых сообщений. Поскольку один KEK может использоваться для шифрования многих DEK, это также позволяет использовать меньше места для хранения в KMS. Это также позволяет проводить централизованный аудит и контроль доступа в одной точке доступа. [10]