Гибридная криптосистема

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Гибри́дная (или комбини́рованная) криптосисте́ма — это система шифрования, совмещающая преимущества криптосистемы с открытым ключом с производительностью симметричных криптосистем. Симметричный ключ используется для шифрования данных, а асимметричный для шифрования самого симметричного ключа, иначе это называется числовой упаковкой.

Принцип[править | править вики-текст]

Криптографические системы используют преимущества двух основных криптосистем: симметричной и асимметричной криптографии. На этом принципе построены такие протоколы, как PGP и TLS.

Основной недостаток асимметричной криптографии состоит в низкой скорости из-за сложных вычислений, требуемых ее алгоритмами, в то время как симметричная криптография традиционно показывает высокую скорость работы. Однако симметричные криптосистемы имеет один существенный недостаток — её использование предполагает наличие защищенного канала для передачи ключей. Для преодоления этого недостатка прибегают к асимметричным криптосистемам, которые используют пару ключей: открытый и закрытый.

Пример гибридного алгоритма[править | править вики-текст]

Hybrid algorithm ru.png

Этап отправки:

  • Алиса генерирует случайный сеансовый ключ
  • сообщение Алисы шифруется сеансовым ключом (с помощью симметричного алгоритма)
  • сеансовый ключ шифруется открытым ключом Боба (асимметричным алгоритмом)
  • Алиса посылает Бобу зашифрованное сообщение и зашифрованный сеансовый ключ

Этап приёма:

  • Боб получает зашифрованное сообщение Алисы и зашифрованный сеансовый ключ
  • Боб расшифровывает сеансовый ключ своим закрытым ключом
  • при помощи полученного, таким образом, сеансового ключа Боб расшифровывает зашифрованное сообщение Алисы

Шифрование[править | править вики-текст]

Большинство гибридных систем работают следующим образом. Для симметричного алгоритма (3DES, IDEA, AES или любого другого) генерируется случайный сеансовый ключ. Такой ключ как правило имеет размер от 128 до 512 бит (в зависимости от алгоритма). Затем используется симметричный алгоритм для шифрования сообщения. В случае блочного шифрования необходимо использовать режим шифрования (например CBC), что позволит шифровать сообщение с длиной, превышающей длину блока. Что касается самого случайного ключа, он должен быть зашифрован с помощью открытого ключа получателя сообщения, и именно на этом этапе применяется криптосистема с открытым ключом (RSA или Алгоритм Диффи — Хеллмана). Поскольку сеансовый ключ короткий, его шифрование занимает немного времени. Шифрование набора сообщений с помощью асимметричного алгоритма — это задача вычислительно более сложная, поэтому здесь предпочтительнее использовать симметричное шифрование. Затем достаточно отправить сообщение, зашифрованное симметричным алгоритмом, а также соответствующий ключ в зашифрованном виде. Получатель сначала расшифровывает ключ с помощью своего секретного ключа, а затем с помощью полученного ключа получает и всё сообщение.

См. также[править | править вики-текст]