Шифрование больших файлов с использованием открытого ключа - PullRequest
10 голосов
/ 16 августа 2010

Мне нужно зашифровать файл размером 100 КБ с помощью открытого ключа.Я читал некоторые посты, в которых утверждается, что нецелесообразно напрямую шифровать большие файлы с помощью открытого ключа, и что предпочтительным методом является шифрование файла с использованием симметричного ключа, а затем шифрование этого симметричного ключа с использованием открытого ключа.Кажется, что наивным решением было бы разбить большой файл на части и зашифровать каждый из них, используя один и тот же открытый ключ.У меня вопрос, является ли и почему это решение неправильным?

Ответы [ 5 ]

4 голосов
/ 16 августа 2010

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

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

2 голосов
/ 16 августа 2010

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

Преимуществоиспользование симметричного шифрования и только использование криптографии с открытым ключом для (симметричного) ключа является производительностью: симметричная криптография в вычислительном отношении намного менее ресурсоемка (компромисс: вы должны хранить ключ в секрете - и это второй, асимметричный шагfor).

Разделение файла добавляет накладные расходы на управление (как вы можете быть уверенным, сколько будет чанков? что вы их все передали?) и не добавляет никакой безопасности.Наоборот.

1 голос
/ 13 июня 2011

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

1 голос
/ 24 августа 2010

Асимметричная криптография слишком медленная, наиболее часто используемый подход заключается в шифровании случайного симметричного ключа асимметричным и шифровании ваших данных этим симметричным ключом.И, кроме того, лучший способ - использовать хорошо известный протокол / стандарт для этой цели (например, OpenPGP).

1 голос
/ 16 августа 2010

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

...