大文件 public 密钥和三个用户的更快加密

Faster Encryption of large file public key and three users

要加密的文件很大。我在加密部分。错误显示:

"Error reading password from Bios"

"Error getting password."

请让我知道该怎么做。提前致谢。

我有点想删除 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 导致了错误,如果这很重要的话?

不清楚您要做什么。当然,加密一个大文件。但是怎么办? Symmetric with AES, or asymmetric with RSA?

你的第一个命令,openssl genrsa 创建一个长度为 192 的 RSA public/private 密钥对,正如 Ken White 所说,这是一个坏主意,它不仅不是 2 的幂,而且是一个令人难以置信的短密钥长度; 512 位 RSA 密钥 were broken twenty years ago,让您估计这有多糟糕。事实上,我的 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:

你的第二个命令会做一些完全不同的事情。它尝试在 CBC 模式下使用 AES256 加密 Bigfile.txt,这没问题,但您没有为该命令提供 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,使用从密码派生的密钥在 CBC 模式下使用 AES256。然后,您会将此密码分发给三个收件人。这有多快?在我的笔记本电脑上,1GB 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 的加密速度约为 330MB/秒,它还告诉我们密钥派生是不安全的,我们应该改用 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