Более быстрое шифрование открытого ключа большого файла и трех пользователей - PullRequest
0 голосов
/ 12 октября 2019

Это большой файл для шифрования. Я нахожусь в части шифрования. Ошибка показывает:

«Ошибка чтения пароля из биоса»

«Ошибка получения пароля.»

Пожалуйста, дайте мне знать, что делать. Заранее спасибо.

Я хочу удалить режим cbc, потому что он медленный. Я прочитал это в статье. Кроме того, в инструкциях говорится, чтобы сделать это быстрее, поскольку это необходимо для трех пользователей.

Я думаю, что это проблема с использованием 192 вместо 4096 или выше, но мне нужно уменьшить его, чтобы заставить работать быстреевопрос.

openssl genrsa -aes256 -out pubPrivate.key 192

openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass File: pubPrivate.key

Кроме того, я где-то читал, что перед кодом есть цифры 0000, вызывающие ошибку, если это имеет значение?

1 Ответ

3 голосов
/ 12 октября 2019

Неясно, что вы пытаетесь сделать. Зашифруйте большой файл, конечно. Но как? Симметричный с AES или асимметричный с RSA ?

Ваша первая команда openssl genrsa создает общедоступный RSA/ частная пара ключей длиной 192, что, как отмечает Кен Уайт, является плохой идеей, причем не только степень 2, но и невероятно короткая длина ключа;чтобы оценить, насколько это плохо, 512-битные ключи RSA были сломаны двадцать лет назад . Фактически, мой openssl версии 1.1.1b явно отказывается даже создавать такую ​​пару ключей:

$ openssl genrsa -aes256 -out foo.key 192
Generating RSA private key, 192 bit long modulus (2 primes)
25769803792:error:04081078:rsa routines:rsa_builtin_keygen:key size too small:crypto/rsa/rsa_gen.c:78:

Ваша вторая команда затем делает что-то совершенно другое. Он пытается зашифровать Bigfile.txt с помощью AES256 в режиме CBC, что нормально, но вы не даете команде 256-битный ключ AES. Вместо этого вы указываете ему искать в файле ключей RSA ключевую фразу, что, конечно, не то, что вам нужно. Openssl также не принимает это:

$ openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass File: pubPrivate.key
Extra arguments given.
enc: Use -help for summary.

Итак, давайте предположим, что вы хотите симметрично зашифровать BigFile.txt с AES256 в режиме CBC, используя ключ, полученный из пароля. Затем вы передадите этот пароль трем получателям. Как быстро это? На моем ноутбуке с 1 ГБ BigFile.txt:

$ time openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass pass:start123
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.

real    0m3,099s
user    0m1,562s
sys     0m0,968s

Итак, openssl шифрует около 330 МБ / с, и это также говорит нам, что получение ключа небезопасно, и мы должны использовать PBKDF2 вместо. Давайте сделаем это:

$ time openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pbkdf2 -pass pass:start123

real    0m3,202s
user    0m1,656s
sys     0m1,077s
...