2015-08-18 3 views
1

Мой вопрос: как работает верблюд pgp, и если мой вывод правилен вообще, я не программист на Java, поэтому обратите внимание, что некоторые из следующих текстов могут не иметь никакого смысла.Camel PGP крипто и симметричные ключи

Задает ли он шифрованную информацию симметричным ключом, затем шифрует симметричный ключ открытым ключом и отправляет оба адресата (например, ftp-сервер), который затем расшифровывает симметричный ключ (ключ сеанса), а затем расшифровывает полезную нагрузку с помощью Это ? Или он шифрует полезную нагрузку с помощью ключа pub? Кроме того, любой из ключей генерирует каждое сообщение? Другими словами, скажем, у нас есть 20 файлов в каталоге, верблюд обрабатывает их один за другим, означает ли это, что симметричный ключ будет генерироваться 20 раз или он генерируется только один раз, а затем повторно используется?

Я пытаюсь найти лучшее решение для шифрования сообщений, кажется, что достаточно использовать только симметричный ключ (AES), поскольку я могу передать его через безопасный канал один раз, и это все, но реализация выглядит быть мучительным по сравнению с PGP (мне нужно реализовать инструмент Java для генерации, сохранения файлов и загрузки ключей AES, игры с вектором инициализации, HMAC и т. д.), но, с другой стороны, если последний создает каждый раз другой ключ было бы неэффективно в моем случае.

ответ

1

В OpenPGP, у вас есть два варианта, Apache Camel позволяет им обоим:

  • Hybrid Cryptography

    сеансовый ключ (новый один генерироваться каждый раз) шифруется с помощью государственная/частная (асимметричная) криптография. Этот ключ сеанса затем используется для шифрования фактической информации с использованием симметричной криптографии.

    Этот подход сочетает в себе преимущества публичной и частной и симметричной криптографии: он обеспечивает расширенные функции управления ключами OpenPGP, но не страдает огромными затратами на шифрование больших объемов данных с использованием криптографии с открытым/закрытым ключом.

    Создание новых случайных ключей сессии каждый раз очень дешево, поскольку они в основном представляют собой случайный блок данных и не требуют сложных вычислений, как для пар открытого/закрытого ключа.

    Использование GnuPG (и, возможно, всех других реализаций), этот подход используется по умолчанию при использовании gpg --encrypt. Если вы укажете открытый ключ получателя и парольную фразу, вы будете использовать этот подход.

  • Симметричное шифрование

    OpenPGP также позволяет непосредственно генерации ключа сеанса из ключевой фразы, которая непосредственно используется для симметричного шифрования. Это отключает функции управления ключами OpenPGP. Прямое симметричное шифрование редко используется с OpenPGP, но иногда может быть полезно.

    Использование GnuPG достигается, позвонив по телефону gpg --symmetric. Если вы зашифруете (и не подписываетесь), но вас попросят ввести парольную фразу, вы, вероятно, будете использовать симметричную криптографию.

В OpenPGP, государственная/частная криптография ключа никогда не используются для шифрования ввода непосредственно.