Продолжительность расшифровки большого файла GPG - PullRequest
0 голосов
/ 19 января 2020

Я хочу зашифровать большие файлы на linux с помощью сценария bash. Когда я искал методы для этого, я подумал о GPG и попробовал. Но когда я запустил некоторые тесты, я заметил, что расшифровка больших файлов занимает очень много времени.

Тестовый сценарий Я сгенерировал 30 ГБ большой файл, заполненный случайным контентом. Затем я зашифровал его с помощью ключа RSA 4096. Насколько я понимаю, GPG - это программа гибридного шифрования, которая шифрует ключи сеанса с помощью ключа RSA Publi c. Следовательно, шифрование / дешифрование должно выполняться за секунды или, по крайней мере, в течение одной минуты, поскольку они используют эти ключи сеанса для шифрования фактических данных, не так ли? Но вот результаты теста - я не потрудился расшифровать файл при включенном compressen, так как это заняло бы у меня еще 2 - 3 часа ...

Характеристики системы:

  • Версия GPG: 2.2.19
  • Arch Linux
  • Docker
  • Intel i7

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

Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: some-key-name
Name-Comment: some-key-comment
Expire-Date: 0
Passphrase: 123456789

Для шифрования я использовал следующие команды:

gpg -q --output /outputFile.txt --recipient some-key-name --encrypt /inputFile.txt (with compression)
gpg -q --output /outputFile.txt -z 0 --recipient some-key-name --encrypt /inputFile.txt (without compression)

Эта команда для расшифровки файлов:

gpg -q --pinentry-mode loopback --batch --passphrase 123456789 --output /decryptedFile.txt --decrypt /encryptedFile.txt

Результаты испытаний Шифрование с включенным сжатием:

  • реальные 36m23.096s
  • user 14m54.920s
  • sys 2m31.870s

Шифрование с отключенным сжатием:

  • реальный 21m9,781s
  • user 1m39.590s
  • sys 2m20.980s

Расшифровка с отключенным сжатием:

  • реальный 140m13.050s
  • user 5m5.340s
  • sys 16m33.020s

Вопросы Я что-то упустил или использую инструмент неправильно? Знаете ли вы лучший способ шифрования больших файлов, в котором используется асимметричное шифрование c или, по крайней мере, он используется для шифрования ключей сеанса?

PS Я очень много гуглил и не нашел подходящего решения. Я также прочитал справочную страницу и не нашел подсказки, что я мог пропустить или сделал неправильно. Также учтите, что я знаю, что передача пароля gpg таким способом не является самым безопасным способом;)

...